• Sonuç bulunamadı

5. ÖNERİLEN ÇÖZÜM YÖNTEMLERİ

5.3. Problem İçin Geliştirilen Değişken Komşuluk Arama (DKA) Yöntemi

Çözüm gösterimi

Bu çalışmada literatürdeki diğer gösterimlerden farklı olarak makine yerleşimine dayanan bir çözüm gösterimi kullanılmıştır. Bu gösterim problemin gerçek yapısına çok benzeyen bir gösterimdir.

Her üretim aşaması ayrı bir sütunda ve belli bir aşamadaki her bir makine de ayrı bir satırda gösterilmekte ve makineye atanan işlemler bir vektörle ifade edilmektedir. Bu 3 boyutlu gösterimde makineleri göstermek için ayrıca bir yapı kurma gerekliliği ortadan kalkmaktadır. Ayrıca her makineye atanan işlem (ürün) sayısı değişken olabilmektedir.

Gösterimin yazılım ortamında kodlanması için 3 boyutlu vektör kullanılmaktadır.

Makinedeki her bir işlem, o işlemin yer aldığı ana tablodaki yerini gösteren işaretçi olarak gösterilmektedir. İşaretçiler C++ programlama dilinin güçlü yönlerinde biri olup istenen verinin aranmadan doğrudan ulaşılmasına olanak sağlamaktadır. Geliştirilen çözüm yaklaşımının konunun daha iyi anlaşılması için aşağıda bir örnek problem verilmiş ve çözüm elde etmek için kullanılan yapılarla yöntemler doğrudan bu örnek üzerinde açıklanmıştır.

Örnek Problem: 3 sipariş, 2 ürün tipi ve 3 üretim aşamasının olduğu, toplamda 10 üründen oluşan bir problem düşünelim. Her üretim aşamasında sırasıyla 2, 3, 2 makine olsun. Ürünlerin ait oldukları siparişler ve ürün tipleri Çizelge 5.2.’de gösterilmiştir.

Çizelge 5.2. Örnek problemde yer alan ürünlerin ait olduğu siparişler ve ürün tipleri

Ürün No 1 2 3 4 5 6 7 8 9 10

Sipariş No 1 1 1 2 2 2 3 3 3 3

Ürün Tipi 1 1 2 1 2 2 1 1 2 2

Örnek probleme göre çözüm gösterimi Şekil 5.2’de verildiği gibidir.

Makine Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7^ 10^ 3 5 4 3 5 8^ 10^ 9^ 6 M-2 3 8^ 9^ 1 5 2 1 9^ 10^ 2 1 4 7^

M-3 8^ 7^ 6

Şekil 5.2. Önerilen yöntemdeki çözüm gösterimi örneği.

Bu çözüm gösteriminden anlaşılan şudur:

Akış tipi üretim sisteminde üç aşama vardır. Her aşamadaki makine sayıları 2, 3, 2’dir. Her aşamaya ait makineler satırlarda M-1, M-2, M-3 şeklinde gösterilmiştir. 1. ve 3.

üretim aşamasında 3. makineler olmadığından, iş kuyruğunu gösteren M-3 satırları X işareti ile kapatılmıştır. Sistemdeki her işin bir türü ve ait olduğu bir sipariş vardır. Çizelge 5.21.’de gösterildiği gibi 1. siparişin 1. ürün tipindeki 1. işi 1, 1. işin, 1. ürün tipindeki 2.

işi 2, 1. siparişin 2. ürün tipindeki 1. işi 3, 2. siparişin, 1. ürün tipindeki 1. işi 4 numaralı iş şeklinde devam eden bir iş numaralaması yapılmıştır. Buradaki amaç sistemde yer alan her işe benzersiz (unique) bir numara atamaktır. Burada 1 numaralı siparişe ait işler normal font, 2 numaralı siparişe ait işler altı çizili olarak, 3 numaralı siparişe ait işler ise yanında ^ işareti ile gösterilmiştir. Gösterimdeki iş sıralaması keyfidir.

Kullanılan komşuluk yapıları

Çalışmada farklı komşuluk yapıları da kullanılmıştır. Bunlar izleyen kesimde detaylı olarak verilmektedir.

5.3.2.1. İkili yer değiştirme (aynı makine):

Aynı makineye atanmış ürünlerden iki tanesi rastgele seçilir ve ikisinin yerleri karşılıklı olarak değiştirilir. Bir örnek Şekil 5.3’de verilmiştir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 10 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 7 4 6 5 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 10 2 1 9 10 2 1 4 7

M-3 8 7 6

Şekil 5.3. Aynı Makinede İkili Yer Değiştirme

5.3.2.2. İkili yer değiştirme (farklı makine)

Aynı aşamada bulunan farklı iki makine rassal olarak seçilir. Her makineden birer işlem rassal olarak seçilir ve bunların yerleri karşılıklı olarak yer değiştirilir. Örnek, Şekil 5.4.’de verilmiştir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 7 4 6 5 3 6 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 5

Şekil 5.4. Farklı Makinelerde İkili Yer Değiştirme

5.3.2.3. İkili ardışık yer değiştirme

Bir makineye atanmış ürünlerden birisi rassal olarak seçilir, bu ürün aynı makinede kendinden bir önce veya bir sonra gelen ürünle yer değiştirilir. Şekil 5.5.’de durum örneklenmiştir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 7 4 6 5 3 5 4 3 5 10 8 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Şekil 5.5. İkili Ardışık Yer Değiştirme

5.3.2.4. Araya ekleme (aynı makine)

Bir makine rassal olarak seçilir. Bu makineye atanan işlemlerden biri rassal olarak seçilir. Bu işlem ait olduğu işlem sırasından silinir ve rassal belirlenen bir pozisyondaki işlemlerin arasına eklenir. Şekil 5.6. tanımlanan işlemi göstermektedir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 7 4 6 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Şekil 5.6. Aynı Makinede Araya Ekleme

5.3.2.5. Araya ekleme (farklı makine)

Aynı aşamada iki farklı makine rassal seçilir. Birinci makineden rassal bir işlem seçilir, bu ürün ikinci makinede rassal bir pozisyonda araya eklenir. Örnek, Şekil 5.7’de verilmiştir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 10 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 2 1 4 7

M-3 8 7 6

Şekil 5.7. Farklı Makinede Araya Ekleme

5.3.2.6. Ters çevirme

Herhangi bir aşamada rassal bir makine seçilir. Bu makinedeki işlem sıralamasının rassal olarak belirlenen bir bölümünün sıralaması tam tersi olarak değiştirilir. Şekil 5.8’de örneklenmiştir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 10 4 3 5 8 10 9 6

M-2 1 9 8 3 5 2 1 9 2 1 4 7

M-3 8 7 6

Şekil 5.8. Ters Çevirme

5.3.2.7. Parça değişimi

Herhangi bir aşamada rassal iki makine seçilir. Bu makinelerde belli büyüklükteki (3 veya daha fazla işlem içeren) rassal parçalar seçilir ve bunlar karşılıklı olarak yer değiştirilir. Bu değişimde, her işlem, karşı parçadaki aynı sıradaki işlemle değiştirilir. Şekil 5.9’da örneklenmiştir.

Aşama-1 Aşama-2 Aşama-3

M-1 2 5 4 6 7 3 5 4 3 5 8 10 9 6

M-2 3 8 9 1 5 2 1 9 10 2 1 4 7

M-3 8 7 6

Aşama-1 Aşama-2 Aşama-3

M-1 2 8 9 1 7 3 5 10 4 3 5 8 10 9 6

M-2 1 5 4 6 5 2 1 9 2 1 4 7

M-3 8 7 6

Şekil 5.9. Parça Değişimi

Çizelgedeki işlemlerin zamanlama hesaplamaları

Algoritmaların çalışması sırasında amaç fonksiyonu hesaplaması yapılırken, çizelgedeki işlemlerin başlama ve bitiş zamanlarının da hesaplanması gerekmektedir. Bu hesaplamaların yapılabilmesi için aşağıda adımları verilen zaman hesaplama algoritması geliştirilmiştir.

Geliştirilen zaman hesaplama algoritmasında kullanılan notasyon şu şekildedir :

h: İşlem gören aşama numarası

H: Aşama Sayısı

mh: h aşamasındaki m makinesi

Mh: h aşamasındaki makine sayısı

JT: Bir işlemin başlayabileceği en erken zaman (öncül işlemin bitiş zamanı)

MT: Bir işlemin makineye yüklenebileceği en erken zaman

ST: Bir işlemin başlama zamanı

FT: Bir işlemin bitiş zamanı

f: Bir makinedeki işlemlerin sıralama pozisyonu numarası

r: Başlama ve bitiş zamanları hesaplanacak işlem

NJ(r): r işleminin bir sonraki aşamadaki ardıl işlemi

PJ(r): r işleminin bir önceki aşamadaki öncül işlemi

MN(r): r işleminin aynı makinede kendinden bir sonra gelen işlem

MP(r): r işleminin aynı makinede kendinden bir önce gelen işlem.

İşlerin başlama ve bitiş zamanlarını veren algoritmanın sözde kodu şu şekildedir:

Girdi: Hesaplanacak Çizelge, Problem Bilgileri Adım-0:

0.1. h=0, mh = 0, f=0

0.2. mh makinesinde şu işlemleri yap.

0.2.1. f = 0 ise r.JT=0, r.MT=0, r.ST=0, r.FT=pm(h)(r) NJ(r).JT = r.FT, MN(r).MT=r.FT

Eğer f>0 ise r.JT=0, r.ST=enb(r.JT, r.MT), r.FT=r.ST + pm(h)(r) NJ(r).JT=r.FT, MN(r).MT=r.FT

0.2.2. f=f+1 , f=Rm(h) ise mh = mh + 1

0.2.3. Eğer mh = Mh ise Adım-1’e git yoksa Adım-0.2’ye git.

Adım-1:

1.0. h=h+1 , mh=0, f=0.

Benzer Belgeler