SANAL İMALAT HÜCRELERİNDE İŞ ÇİZELGELENMESİ İÇİN YENİ

advertisement
SANAL İMALAT HÜCRELERİNDE İŞ ÇİZELGELENMESİ İÇİN
YENİ ÇÖZÜM YAKLAŞIMLARI
Saadettin Erhan KESEN
DOKTORA TEZİ
ENDÜSTRİ MÜHENDİSLİĞİ
GAZİ ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
NİSAN 2010
ANKARA
TEZ BİLDİRİMİ
Tez içindeki bütün bilgilerin etik davranış ve akademik kurallar çerçevesinde elde
edilerek sunulduğunu, ayrıca tez yazım kurallarına uygun olarak hazırlanan bu
çalışmada bana ait olmayan her türlü ifade ve bilginin kaynağına eksiksiz atıf
yapıldığını bildiririm.
Saadettin Erhan KESEN
Saadettin
Erhan
KESEN
HÜCRELERINDE
İŞ
tarafından
hazırlanan
ÇIZELGELENMESI
IÇIN
SANAL
İMALAT
YENI
ÇÖZÜM
YAKLAŞIMLARI adlı bu tezin Doktora tezi olarak uygun olduğunu onaylarım.
Prof.Dr. Zülal GÜNGÖR
………………………..……….
Tez Danışmanı, Endüstri Mühendisliği Anabilim Dalı
Bu çalışma, jürimiz tarafından oy birliği ile Endüstri Mühendisliği Anabilim Dalında
Doktora tezi olarak kabul edilmiştir.
Prof.Dr. Berna DENGİZ
………………………..……….
(Endüstri Mühendsiliği, Başkent Üni.)
Prof.Dr. Zülal GÜNGÖR
………………………..……….
(Endüstri Mühendsiliği, Gazi Üni.)
Prof.Dr. Ertan GÜNER
………………………..……….
(Endüstri Mühendsiliği, Gazi Üni.)
Prof. Dr. Ö. Faruk BAYKOÇ
………………………..……….
(Endüstri Mühendsiliği, Gazi Üni.)
Doç. Dr. Murat Caner TESTİK
………………………..……….
(Endüstri Mühendsiliği, Hacettepe Üni.)
Tarih: 21/04/2010
Bu tez ile G.Ü. Fen Bilimleri Enstitüsü Yönetim Kurulu Yüksek Lisans / Doktora
derecesini onamıştır.
Prof. Dr. Bilal TOKLU
Fen Bilimleri Enstitüsü Müdürü
……………………………….
iv
SANAL İMALAT HÜCRELERİNİNDE İŞ ÇİZELGELENMESİ İÇİN YENİ
ÇÖZÜM YAKLAŞIMLARI
(Doktora Tezi)
Saadettin Erhan KESEN
GAZİ ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
Nisan 2010
ÖZET
Günümüz rekabetçi pazar koşullarında, ürün hayat çevriminin giderek
kısalması ve talep yapısının değişkenlik göstermesi oldukça dinamik bir ortam
yaratmıştır. Firmalar bu dinamik ortamda ayakta kalabilmek ve üretim
maliyetlerini düşürebilmek için yenilikçi üretim sistemlerini incelemek ve bu
sistemleri benimsemek zorundadırlar. Özellikle küçük ve orta boyutlu parti tipi
üretim yapan firmalar için önerilmiş ve kurulum maliyeti çok düşük olan Sanal
İmalat Hücreleri (SİH) bu yenilikçi üretim sistemleri arasında öne çıkmaktadır.
SİH; Esnek İmalat Sistemlerinin (EİS) esneklik özelliğiyle, Hücresel İmalat
Sistemlerinin (HİS) basit akış tipi süreç özelliklerini bünyesinde toplayan melez
bir sistemdir. Bu tez çalışmasında literatürdeki mevcut çalışmalardan farklı
olarak SİH’nin performansını gerçekçi bir şekilde yansıtmak için işlerin nasıl
daha
etkin
çizelgelenebileceği
incelenmiştir.
Önerilen
SİH
çizelgeleme
probleminde, işler partiler halinde üretilmekte ve bu parti büyüklükleri daha
etkin bir Cmax elde edebilmek amacıyla, alt partilere bölünebilmektedir. Her bir
iş kendine özgü operasyon sırasına sahiptir ve bu operasyonlar için alternatif
makineler seti mevcuttur. Talep dalgalanmalarına hızlı bir şekilde cevap
verebilmek amacıyla makineler tesis içerisinde farklı noktalara yerleştirilmiştir.
Bu durum makineler arası taşıma zamanlarının da dikkate alınmasını
gerektirmektedir. Yukarıda tanımlanan problem için bir Karışık Tam Sayılı
v
Programlama (KTSP) modeli geliştirilmiştir. Ancak problemin karmaşıklığının
yüksek olmasından dolayı büyük boyutlu problemlerde KTSP kabul edilebilir
bir zaman içerisinde iyi sonuçlar verememiştir. Bu nedenle probleme kısa
zamanda etkin sonuçlar veren dört vektörlü bir Genetik Algoritma (GA)
sezgiseli önerilmiştir. 720 problemden oluşan, geniş bir problem seti üzerinde
elde edilen sonuçlar, GA’nın oldukça iyi bir performans sergilediğini ve
özellikle alt parti sayısının 1 olduğu durumda en iyi sonuçları bulduğunu
göstermiştir.
Bilim Kodu
: 906.1.141
Anahtar Kelimeler : Sanal imalat hücreleri, çizelgeleme, esnek atölye tipi
çizelgeleme, parti bölünmesi, meta-sezgisel
Sayfa Adedi
: 107
Tez Yöneticisi
: Prof.Dr. Zülal GÜNGÖR
vi
NEW SOLUTION APPROACHES FOR JOB SCHEDULING IN VIRTUAL
MANUFACTURING CELLS
(Ph.D. Thesis)
Saadettin Erhan KESEN
GAZİ UVIVERSITY
INSTITUTE OF SCIENCE AND TECHNOLOGY
April 2010
ABSTRACT
In today’s competitive market conditions, shortening product life cycle and
varying demand pattern create a highly dynamic environment. Firms have to
explore and adapt to novel production systems for surviving in the volatile
conditions and reducing their costs. Especially offered for the companies that
perform small-to-medium batch production, Virtual Manufacturing Cells
(VMCs) are prominent among these relatively new manufacturing systems.
VMCs appear to be a hybrid form accommodating the flexibility feature of
Flexible Manufacturing Systems (FMSs) and basic flow-line process of Cellular
Manufacturing Systems (CMSs). In this thesis, unlike existing literature, how
jobs can be scheduled in a more efficient manner is thoroughly examined to
reflect the realistic performance of VMCs. In the proposed VMCs scheduling
problem, jobs are produced in batches and batch sizes can be divided into sub
lots with smaller quantity of jobs to obtain lower Cmax value. There are multiple
jobs with different processing routes and a set of eligible machines is available
to process the operations. Machines are located to different areas in the shop
floor to quickly respond to demand changes. This, however, arises the issue of
travelling time consideration. A Mixed Integer Linear Programming (MILP)
model is developed for the problem defined above. Due to the intractability of
the problem, MILP model suffers to provide solutions for big sized problems in
a reasonable amount of time. We therefore present a Genetic Algorithm (GA)
vii
heuristic approach with four vectors to obtain satisfactory results in a shorter
computational time. On a wide range of randomly generated test instances
consisting of 720 problems, comparative results show that GA is quite
favourable and it finds the optimum solution for all problems in the case that
sub lot number is equal to 1.
Science Code
Key Words
Page Number
Adviser
: 906.1.141
: Virtual manufacturing cells, scheduling, flexible job shop
scheduling, lot streaming, meta-heuristic
: 107
: Prof.Dr. Zülal GÜNGÖR
viii
TEŞEKKÜR
Çalışmanın şekillenmesinde değerli bilgi ve birikimiyle beni yönlendiren ve sürekli
pozitif yönde motive ederek çalışma performansımı yüksek tutan çok değerli
danışman
Hocam
Prof.Dr.
Zülal
GÜNGÖR’e,
ve
yine
bilgilerinden
ve
birikimlerinden faydalandığım Tez İzleme Komitesi üyeleri Prof.Dr. Berna DENGİZ
ve Prof.Dr. Ertan GÜNER’e teşekkürü bir borç bilirim. Çalışmalarımın bir bölümünü
geçirdiğim New Jersey Institute of Technology Üniversitesinde (A.B.D.) yüksek
öngörümlemesi ve disiplini sayesinde ve ayrıca çalışkanlığı ile bana olan katkılarını
hiçbir zaman unutmayacağım Prof.Dr. Sanchoy K. DAS’a şükranlarımı ve en derin
saygılarımı iletirim.
Ve tabi ki; hayatımın her aşamasında olduğu gibi tez çalışmalarım süresince de beni
sonuna kadar destekleyen sevgili eşim Nur Feyzal KESEN’e sabır ve anlayışından
dolayı teşekkür ederim. Son olarak beni yetiştiren ve bugüne kadar emeklerini
esirgemeyen anneme, babama ve abilerime minnettarlığımı belirtmek isterim.
ix
İÇİNDEKİLER
Sayfa
ÖZET .......................................................................................................................... iv
ABSTRACT................................................................................................................ vi
TEŞEKKÜR..............................................................................................................viii
İÇİNDEKİLER ........................................................................................................... ix
ÇİZELGELERİN LİSTESİ......................................................................................... xi
ŞEKİLLERİN LİSTESİ .............................................................................................xii
SİMGELER VE KISALTMALAR...........................................................................xiii
1. GİRİŞ...................................................................................................................... 1
2. SANAL İMALAT HÜCRELERİ........................................................................... 6
2.1. Sanal Hücre Kavramı ..................................................................................... 7
2.2. SİH ile İlgili Tanımlamalar ve Terminoloji ................................................... 7
2.3. Sanal Hücrenin Hayatı ................................................................................. 11
2.4. Grup Teknolojisi Hücreleri ile Sanal İmalat Hücreleri Arasındaki
Farklılıklar.................................................................................................... 12
3. LİTERATÜR ARAŞTIRMASI............................................................................ 14
3.1. SİH’nin Tasarımı ile İlgili Çalışmalar ......................................................... 18
3.2. Operasyonel Seviyede SİH ile İlgili Çalışmalar .......................................... 23
3.3. SİH ile İlgili Gözlemsel Çalışmalar............................................................. 28
3.4. Genel Değerlendirme ................................................................................... 29
4. SİH ÇİZELGELEME PROBLEMİNİN KLASİK ÇİZELGELEME
PROBLEMLERİ AÇISINDAN İNCELENMESİ................................................ 31
4.1. Çizelgelemenin Organizasyon İçerisindeki Yeri ve Önemi......................... 31
4.2. Atölye Tipi Çizelgeleme Problemi (ATÇP) ................................................ 33
4.3. Esnek Atölye Tipi Çizelgeleme Problemi (EATÇP) ................................... 33
x
Sayfa
4.4. Parti Bölünmesi............................................................................................ 35
4.5. SİH Çizelgeleme Probleminin Karmaşıklığı ............................................... 37
5. ÖNERİLEN MATEMATİKSEL MODEL .......................................................... 39
5.1. Problemin Tanımı ve Varsayımlar............................................................... 39
5.2. Karışık Tam Sayılı Programlama (KTSP) Modeli....................................... 40
5.3. KTSP Modelinin Performansının Genel Değerlendirmesi .......................... 44
6. SİH’NİN ÇİZELGELENMESİ İÇİN GENETİK ALGORİTMA (GA)
YAKLAŞIMI........................................................................................................ 48
6.1. Kromozom Gösterimi .................................................................................. 48
6.2. Kromozomların SİH Çizelgelerine Dönüştürülmesi ve Yeniden
Sıralanması................................................................................................... 51
6.3. Çaprazlama Operatörü ................................................................................. 53
6.4. Mutasyon Operatörü .................................................................................... 55
6.5. Alt Parti Büyüklüklerinin Belirlenmesi ....................................................... 55
6.6. Seçim............................................................................................................ 57
7. DENEYSEL ÇALIŞMA ...................................................................................... 59
8. SONUÇ VE ÖNERİLER ..................................................................................... 71
KAYNAKLAR .......................................................................................................... 76
EKLER....................................................................................................................... 82
EK-1. Rassal test problemlerinin üretimi için hazırlanan MS Excel makrosu .......... 83
EK-2. Karışık tamsayılı programlama modeli için GAMS kodları ........................... 86
EK-3. Genetik algoritma sezgiseli için geliştirilen C++ kodları................................ 89
ÖZGEÇMİŞ ............................................................................................................. 107
xi
ÇİZELGELERİN LİSTESİ
Çizelge
Sayfa
Çizelge 3.1. Taranan makalelerin bir özeti (her bir kategorideki çalışmalar alfabetik
olarak sıralanmıştır) ............................................................................... 17
Çizelge 5.1. KTSP modelinden elde edilen sonuçların çözüm tipleri açısından
analizi ..................................................................................................... 46
Çizelge 6.1. Makine tipleri ve her bir makine tipine ait makineler............................ 49
Çizelge 6.2. İşlerin parti büyüklükleri ve operasyon sıraları ..................................... 49
Çizelge 6.3. 1 nolu iş için alt parti sayısının 2 olduğu 6 senaryo için alt parti
büyüklükleri........................................................................................... 56
Çizelge 6.4. 1 nolu iş için alt parti sayısının 3 olduğu 21 farklı senaryo için alt parti
büyüklükleri........................................................................................... 57
Çizelge 7.1. Deneysel çalışmada kullanılan parametreler ve seviyeleri .................... 59
Çizelge 7.2. İş sayısının 6 ve 8 olduğu deneyler için özet tablosu............................. 63
Çizelge 7.3. İş sayısının 10 ve 12 olduğu problemler için deneyler için özet tablosu65
Çizelge 7.4. İş sayısının 14 ve 16 olduğu problemler için deneyler için özet tablosu67
Çizelge 7.5. İş sayısının 18 ve 20 olduğu deneyler için özet tablosu......................... 69
xii
ŞEKİLLERİN LİSTESİ
Şekil
Sayfa
Şekil 2.1. Sanal İmalat Hücreleri için genel bir tesis yerleşim düzeni......................... 6
Şekil 2.2. İmalat sistemlerinin yerleşim organizasyonu ............................................ 10
Şekil 2.3. Sanal bir hücrenin hayatı ........................................................................... 11
Şekil 3.1. Sanal imalat hücreleri için sınıflandırma çatısı [Nomden ve ark., 2006] .. 15
Şekil 4.1. Bir imalat sistemindeki bilgi akış diyagramı[Pinedo, 1995] ..................... 32
Şekil 4.2. İki makineli akış tipi için iki çizelge (sayısal veriler işleri gösteriyor) (a)
alt partilerin olmadığı çizelge (çizelge 1); (b) alt partilerin olduğu çizelge
(çizelge 2) .................................................................................................. 36
Şekil 5.1. Toplam çizelgeleme ufkunun zaman aralıklarına bölünmesinin
verimsizliği................................................................................................ 39
Şekil 5.2. KTSP modelinde elde edilen sonuçların grafiksel olarak yorumlanması.. 47
Şekil 6.1. Makine atama vektörünün gösterimi ......................................................... 50
Şekil 6.2. Operasyon sırası, atanan alt parti numarası ve alt parti hacmi
vektörlerinin gösterimi .............................................................................. 50
Şekil 6.3. Yeniden sıralama metodunun Gantt şeması üzerinde gösterimi................ 52
Şekil 6.4. Her bir operasyon için sabit ID gösterimi.................................................. 53
Şekil 6.5. Operasyon sıra vektörünün permütasyon tipinde gösterimi ...................... 53
Şekil 6.6. Operasyon sırası üzerinde sıralı çaprazlama operatörünün gösterimi ....... 54
Şekil 6.7. Çaprazlama operatöründe tamir mekanizmasının gösterimi...................... 55
Şekil 6.8. Önerilen genetik algoritma yaklaşımının yapısı ........................................ 58
Şekil 7.1. Deneysel çalışmanın akış şeması ............................................................... 60
Şekil 7.2. İş sayısının 6 ve 8 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması ......................................................................................... 64
Şekil 7.3. İş sayısının 10 ve 12 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması ......................................................................................... 66
Şekil 7.4. İş sayısının 14 ve 16 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması ......................................................................................... 68
Şekil 7.5. İş sayısının 18 ve 20 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması ......................................................................................... 70
xiii
SİMGELER VE KISALTMALAR
Bu çalışmada kullanılmış bazı simgeler ve kısaltmalar, açıklamaları ile birlikte
aşağıda sunulmuştur.
Simgeler
Açıklama
#
Deney numarası
ojh
j işinin h. operasyonu
Ajh
j işinin h. operasyonunu yapabilecek makineler
kümesi
Nj
j işinin parti büyüklüğü
Pijh
j işinin h. operasyonunun i makinesindeki işlem
zamanı
dik
i makinesinden k makinesine taşıma zamanı
n
Toplam iş sayısı
m
Toplam makine tipi sayısı
q
Her bir makine tipine ait en büyük makine sayısı
L
Toplam alt parti sayısı
Kısaltmalar
Açıklama
GT
Grup teknolojisi
HİS
Hücresel imalat sistemleri
EİS
Esnek imalat sistemleri
TZÜ
Tam zamanında üretim
BDÜ
Bilgisayar destekli üretim
DHİS
Dinamik hücresel imalat sistemleri
SİH
Sanal imalat hücreleri
EATÇP
Esnek atölye tipi çizelgeleme problemi
KTSP
Karışık tam sayılı programlama
ATÇP
Atölye tipi çizelgeleme problemi
GA
Genetik algoritma
xiv
Kısaltmalar
Açıklama
MİP
Malzeme ihtiyaç planlaması
ÜPK
Üretim planlama ve kontrol
AÜÇ
Ana üretim çizelgesi
TYK
Tesis yerleşim kontrolü
KKE
Karınca kolonisi eniyilemesi
TA
Tabu araması
EÜT
Eniyilenmiş üretim teknolojisi
İS
İş sayısı
APS
Alt parti sayısı
TZ/İZ
Taşıma zamanının işlem zamanına oranı
ÇY
Çözüm yok
EÇ
Eniyi çözüm
TÇ
Tamsayılı çözüm
ÜS
Karışık tamsayılı programlama modeli için bulunan
en iyi tamsayılı çözüm (Üst sınır)
AS
Karışık tam sayılı programlama modeli için bulunan
alt sınır
 ÜS
AS (%)
Karışık tamsayılı programlama modeli için bulunan
alt sınır ve üst sınır arasındaki farkın % değeri
CPU1
Karışık tamsayılı programlama modeli için çözüm
zamanı
YığHac
Genetik algoritma için seçilen yığın hacmi
AF(ort)
Genetik algoritmanın beş çalıştırma sonundaki amaç
fonksiyonu değerlerinin ortalaması
AF(enk)
Genetik algoritmanın beş çalıştırma sonundaki en
küçük amaç fonksiyonu değeri
CPU2
Genetik algoritma için çözüm zamanı
AF ( ort )
 ÜS
(%)
Genetik algoritma ile karışık tam sayılı programlama
modeli çözümleri arasındaki farkın % değeri
1
1. GİRİŞ
Günümüzde tüm dünyayı etkisi altına alan ekonomik durgunluk diğer sektörler gibi
imalat sektöründe de firmaların maliyetlerini azaltması için kendi üretim süreçlerini
yeniden sorgulamalarını ve daha etkin hale getirmelerini zorunlu kılmaktadır.
Ekonomik krizle birlikte artan rekabet koşulları da firmaları zorlamaktadır. Ürün
hayat çevrimlerinin kısalması ve ürün çeşitliliğinin artması pazar şartlarının
değişkenliğini artırmıştır. Amerika Birleşik Devletleri’nde planlama ve yeniden
planlama için yıllık 250 milyar dolar harcandığını bilinmektedir ve etkin bir
planlama ile bu maliyet %10-30 oranında azaltılabilir [Tompkins ve ark., 2003].
Üretim yapan firmaların maliyetlerini azaltmak için değerlendireceği seçenekler
arasında ilk olarak hiç şüphesiz üretim sistemindeki makine yerleşimlerinin yeniden
düzenlemesi akla gelen fikirlerden biridir.
Üretim sistemlerinin ilk olarak gelişmeye başladığı zamanlarda ürün çeşitliliğin az ve
ürüne olan talebin yüksek olduğu ürün tipi yerleşim çok popülerdi. Ancak sonraları
farklı rakiplerin ortaya çıkması rekabeti artırmış ve müşterilerin farklı tip ürünler
istemeye başlaması ürün tipi yerleşimin esnekliğinin olmadığını açıkça ortaya
koymuştur. Ürün hacminin az ve ürün çeşitliliğinin yüksek olduğu pazar koşullarında
süreç tipi yerleşim önerilmiştir. Süreç tipi yerleşimde benzer üretim yeteneklerine
sahip makineler gruplandırılmış ve bu makine grupları departman adını almıştır.
Ancak süreç tipi yerleşimde de ürün miktarı arttıkça çizelgeleme işlemlerinin
kontrolünün zorlaşmaya başlaması ve hazırlık zamanlarının yüksek olduğu
durumlarda iş akış zamanlarının artması bu üretim sisteminin dezavantajları arasında
görülmektedir.
Ürün tipi yerleşim ve süreç tipi yerleşimin dezavantajlarını ortadan kaldırabilmek
için Grup Teknolojisi (GT) fikrinin imalattaki uygulaması olan Hücresel İmalat
Sistemleri (HİS) önerilmiştir. HİS’nin ilk adımı olan hücre formasyonunda benzer
üretim gereksinimine ya da tasarım özelliklerine sahip parçalar bir araya getirilerek
parça ailelerini oluşturur ve bu parça ailelerini üretmek için farklı üretim
yeteneklerine sahip makineler imalat ortamında fiziksel olarak bir araya getirilerek
2
makine hücrelerini oluştururlar. Yani tüm üretim sistemi birbirinden bağımsız
kontrol edilmesi daha kolay alt bölümlere ayrılır. Bu sayede sistemdeki karmaşıklık
azaltılmış ve hazırlık zamanlarında ciddi düşüşler meydana gelmiştir. Bu
özelliklerinden dolayı HİS, Bilgisayar Destekli Üretim (BDÜ), Esnek İmalat
Sistemleri (EİS), Tam Zamanında Üretim (TZÜ) gibi birçok modern üretim
sistemine temel teşkil etmiştir [Wemmerlov ve Hyer, 1989], [Kusiak, 1990],
[Wemmerlov ve Johnson, 1997]. Ancak HİS’nin de çok ciddi dezavantajları vardır.
HİS’de hücre formasyonu oluşturulurken talep miktarında ve ürün karışımında
değişiklik olmadığı varsayılmıştır. Ayrıca parça ya da parça ailelerinin sadece bir
makine hücresi içine hapsedilmesi hücreler içinde darboğaz makinelerin oluşmasına
ve makine kullanım oranlarının çok düşük olmasına neden olmaktadır. Ek olarak
makine kullanım oranlarındaki dengesizlikler de en önemli dezavantajları
arasındadır.
Değişken talep ortamında HİS’nin performansını artırmak için farklı metotlar
önerilmiştir.
Bunlardan
bir
tanesi
parçaların
üretim
gereksinimlerini
tamamlayabilmek için birden fazla makine hücresini ziyaret etmesine imkân
sağlamaktır [Gupta ve Tompkins, 1982], [Jensen ve ark.. 1996]. Ancak bu durum
çizelgeleme karmaşıklığını artırmakta ve HİS’nin temel prensibini ihlal etmektedir.
Diğer bir metot ise çok dönemli planlama ufkunu dikkate alan Dinamik Hücresel
İmalat Sistemleri’dir (DHİS) [Drolet ve ark. 2008], [Rheault ve ark., 1995], [Rheault
ve ark., 1996]. DHİS’de planlama ufku dönemlere ayrılmakta ve makine hücrelerinin
yerleşimi değişken talebe cevap verebilmek için dönemden döneme değişiklik
gösterebilmektedir [Rosenblat, 1986]. Bu metotta önemli olan nokta makine
yerleşimlerinin yeniden düzenlenmesinden ortaya çıkacak olan maliyet ile talep
değişikliği dolayısıyla mevcut yerleşimin bozulmasından ortaya çıkacak maliyet
arasında ödünleşim yapmaktır. Bu sistemin dezavantajı eğer makine yerleşimi çok
sık yapılırsa bu işlemin çok maliyetli ve zaman alıcı olmasıdır. Makinelerin
taşınamaz olduğu durumlarda da DHİS metodu uygulanabilirliğini kaybedecektir.
Bilgisayar teknolojilerindeki gelişmeye paralel olarak Esnek İmalat Sistemi (EİS) adı
verilen yeni bir imalat sistemi ortaya çıkmıştır. EİS bir ürün operasyonu için farklı
3
alternatif rotalar sağlayabilen farklı üretim yeteneklerine sahip bilgisayar kontrollü
makinelerden oluşan, malzeme taşımalarını konveyörler ve otomatik yönlendirmeli
araçların yaptığı yüksek teknolojiye sahip üretim sistemleridir. Bu sistemler çok
yüksek
esneklik
kabiliyetiyle
pazardaki
talep
dalgalanmalarına
cevap
verebilmektedir. Ancak yüksek yatırım maliyeti ve bu yüksek esnekliği kontrol
etmenin çok zor olduğu araştırmacılar tarafından sabit kılınmıştır.
İmalat
sistemlerinin
evrimleşme
süreci
içerisinde
ilerleyen
yıllarda
bazı
araştırmacılar imalat hücrelerinin farklı tiplerini önermişlerdir (sanal hücreler,
holonik hücreler, fraktal hücreler vb.). Bunlar arasında en çok dikkati çeken ise Sanal
İmalat Hücreleri (SİH) olmuştur. SİH fikri Ulusal Standartlar Bürosu tarafından
geliştirilmiştir. Bir sanal hücrede makineler GT hücrelerinde olduğu gibi parçaya ya
da parça ailelerine atanır ancak makinelerin fiziksel olarak gruplanıp bir araya
getirilmesi söz konusu değildir. Bir sanal hücre fiziksel bir hücre olarak değil bir veri
dosyası olarak tutulur. Kavramsal olarak, yeni bir iş sisteme geldiğinde kontrol
mekanizması o işin operasyonlarının geçeceği makineleri seçer. Bu atanan makineler
o işin üretimi bitinceye kadar geçici olarak mantıksal bir hücre gibi davranırlar ve o
işin üretimi bittiğinde hücre de kaybolur. Makinelerin tesis içerisindeki pozisyonları
değiştirilmediği
için
herhangi
bir
yer
değiştirme
maliyetine
katlanılması
gerekmemektedir. Böylece bir makine aynı anda birden fazla hücrenin elemanı
olabilmektedir. Böylece tesis süreç tipi yerleşim şeklinde çalışırken kontrol hücresel
biçimde olmaktadır. Böylece daha iyi bir sistem performansı ortaya çıkmaktadır
[Nomden ve ark., 2006].
SİH’nin gerçek performansının değerlendirilebilmesi için belirli ölçütler altında bu
sistemde çizelgeleme aktivitelerinin nasıl yapıldığını anlamak önemlidir. Ancak
literatüre bakıldığı zaman bu sistemlerin çizelgelenmesi ile ilgili çalışmaların
problemin karmaşıklığından dolayı çok az olduğu görülmektedir. Yapılan
çalışmalardaki büyük varsayımlar da sistemin gerçek performansını yansıtmaktan
çok uzaktır. Her ne kadar SİH fikri ilk önerildiğinde çizelgeleme devam ederken
işlerin sisteme gelebileceği çok dinamik bir çevreden bahsedilse de bununla ilgili
4
literatürde ilgili bir çalışmanın olmaması problemin klasik çizelgeleme teknikleri
tarafından çözümünün çok zor olmasından kaynaklanmaktadır.
SİH’de genel olarak her bir işin operasyon sırasının birbirinden farklı olduğu her bir
operasyon için tek bir makine değil bir makine seti olduğu kabul edilir. Klasik
çizelgeleme problemleri açısından problem bu haliyle Esnek Atölye Tipi
Çizelgeleme
Problemine
(EATÇP)
benzemektedir.
EATÇP
çizelgeleme
literatüründeki en zor problemlerinden biri olduğu ispatlanmıştır. Buna ek olarak
makineler arası taşıma zamanlarının dikkate alınması gerekmektedir çünkü SİH’de
makineler farklı noktalara konulmuştur. Ayrıca parti tipi üretim yapılmasından
dolayı parti büyüklüklerin alt partilere bölünüp bölünmeyeceği de önemli bir
noktadır. Operasyonların üst üste binmesinden dolayı çok aşamalı üretim
sistemlerinde sistemin performansını iyileştirdiği bilinen parti bölünmesi işlemi
problemi daha da karmaşık hale getirmektedir. Çalışmada partilerin alternatif rotalar
arasında çizelgeleme ölçütünü en iyileyecek biçimde alt partilere bölünmesine imkan
sağlanmıştır.
Çalışmanın ikinci bölümünde SİH ile ilgili olarak ayrıntılı bir analiz verilmiştir. SİH
kavramından bahsedilmiş, SİH ile ilgili genel tanımlamalar ve terminoloji
aktarıldıktan sonra sanal bir hücrenin hayat çevrimi ile GT hücreleri ile sanal hücre
arasındaki temel farklılıklar üzerinde durulmuştur.
Çalışmanın üçüncü bölümü tamamen literatür taraması kısmına ayrılmıştır. SİH ile
ilgili yapılan çalışmaları sınıflandırabilmek için anahtar faktörlerin neler olabileceği
tartışılmış ve bu faktörlere göre çalışmalar sınıflandırılmıştır. Bu sınıflandırmanın
ardından tasarım ile ilgili çalışmalar, operasyonel seviyede olan çalışmalar ve
gözlemsel çalışmalar başlıkları altında geniş bir literatür taraması verilmiş ve son
olarak genel bir değerlendirme de sunulmuştur.
Çalışmanın dördüncü bölümünde SİH çizelgeleme problemi klasik çizelgeleme
problemleri açısından ele alınmıştır çünkü SİH çizelgeleme probleminin klasik
çizelgeleme problemlerinden hangi sınıfa girdiğini belirlemek hem önerilecek
5
matematiksel modelin hem de sezgisel yaklaşımın geliştirilmesi açısından son derece
önemlidir. Bu kapsamda ilk olarak çizelgelemenin üretim planlama ve kontrol
kapsamında önemine vurgu yapılmış, ardından Atölye Tipi Çizelgeleme Problemi
kısaca incelenmiş (ATÇP), ardından onun bir genel formu olan EATÇP incelenmiş,
daha sonra parti bölünmesinin önemi vurgulanmış ve son olarak da SİH çizelgeleme
probleminin karmaşıklığı üzerinde durulmuştur.
Beşinci bölümde SİH çizelgeleme probleminin tanımı ve varsayımı yapılmış ve
önerilen matematiksel model ayrıntılarıyla sunulmuştur. Problem tanımı yapılırken
mümkün olduğunca SİH literatüründeki genel tanımına sadık kalınmıştır. Önerilen
Karışık Tam Sayılı Programlama (KTSP) modelinin genel olarak performansı
değerlendirilmiş ve büyük boyutlu problemlerin çözümünde etkin olmadığı
görülmüştür.
Önerilen matematiksel modelin problemin karmaşık doğasından dolayı iyi sonuçlar
vermemesi problem için kısa zamanda iyi sonuçlar verebilen bir meta-sezgisel
yaklaşımın geliştirilmesi gerektiğini zorunlu kılmıştır. Bu nedenle altıncı bölümde
birçok problemdeki etkin performansından dolayı Genetik Algoritma (GA) yaklaşımı
önerilmiştir. Probleme özgün kromozom gösterimi sunulmuş, kromozomların SİH
çizelgelerine dönüştürülmesi ve yeniden sıralanması için bir prosedür önerilmiş,
çaprazlama ve mutasyon operatörlerinin nasıl uygulandığı üzerinde durulmuş ve son
olarak alt parti büyüklüklerinin nasıl belirlendiği anlatılmıştır.
Yedinci bölüm deneysel çalışma kısmını içermektedir. Bu bölümde ilk olarak KTSP
ve GA modellerinin karşılaştırılması için rassal problem setinin oluşturulması
üzerinde durulmuştur. Bu problem setinin üretilmesi için dikkate alınması gereken
faktörler belirlenmiş ve 720 problemden oluşan çok geniş bir problem seti
oluşturulmuştur. Bu geniş problem seti üzerinde hem KTSP modeli sonuçları hem de
GA sonuçları alınmış ve karşılaştırmalı analizler verilmiştir.
Sekizinci ve son bölümde ise tez çalışması genel olarak incelenmiş ve ileride
yapılabilecek potansiyel çalışmalar üzerinde tartışılmıştır.
6
2. SANAL İMALAT HÜCRELERİ
SİH talebin belirsiz olduğu ya da tahmin edilemediği durumlar için önerilmiş bir
yaklaşımdır. Sanal bir hücrede makineler HİS’de olduğu gibi parça ya da parça
ailelerine tahsis edilir fakat makineler fiziksel olarak birbirlerine yakın
yerleştirilmemişlerdir. Sanal imalat hücresi yaklaşımı ilk olarak McLean ve ark.
(1982) tarafından çalışılmıştır [McLean ve ark., 1982]. Şekil 2.1’de bir SİH
görülmektedir.
SİH’de süreç yerleşimine sahip olan tesis geçici olarak bir parça ya da parça ailesine
atanır. Bir parça işleme gireceğinde o parça ailesine atanmış olan makine rotasına
yönlendirilir. Böylece fiziksel hücrelerde olduğu gibi baskın rota izleri oluşur. Sanal
hücredeki makineler o parça ya da parça ailesi için hazırlanır. Talep yapısında bir
değişkenlik söz konusu olduğunda herhangi bir sanal hücredeki makineler diğer
parçalara atanabilir. Makineler hareket etmeyeceği için yeniden düzenleme maliyeti
söz konusu değildir. Fiziksel hücrelerin kullanımı belirsiz talep ortamında hücrelerin
sıkça yeniden düzenlenmesini gerektireceği için sanal hücrelerin kullanımı bu açıdan
önemli bir avantajdır.
Sanal Hücreler
Şekil 2.1. Sanal İmalat Hücreleri için genel bir tesis yerleşim düzeni
7
2.1. Sanal Hücre Kavramı
Bu tezde önerilen SİH kavramı temellerini McLean ve ark. (1982)’nin çalışmasından
almaktadır. Sanal bir hücre sabit fiziksel bir makine grubu olarak değil ancak
merkezi bir bilgisayar kontrolöründe veri dosyaları olarak tutulur. Bir iş siparişi bir
makineler setine ihtiyaç duyduğunda sanal hücre kontrolörü ilgili makinelerin
kontrolünü ele alır ve onlar arasında bir bağlantı kurar. Herhangi bir makine sanal
hücrenin bir elemanı ya da boş bekleyen makineler havuzunun bir üyesi olabilir
[McLean ve ark., 1982].
2.2. SİH ile İlgili Tanımlamalar ve Terminoloji
Drolet
(1989)’un
karakteristikleri
tanımladığı
vermek
SİH
önemlidir
ile
zira
ilgili
terminoloji
önerilecek
ve
operasyonel
matematiksel
modelin
geliştirilmesine temel teşkil etmektedir. Bu karakteristikler aşağıdaki gibidir [Drolet,
1989].
a) Tipik bir parti büyüklüğü 40-50 birimi aşmamaktadır.
b) Parçalar istasyonlar arasında belirli bir zamanda partiler halinde taşınmaktadır.
c) Her bir istasyonun girişi ve çıkışında az miktarda parçanın birikmesine müsaade
edilmektedir.
d) Makine tipleri önemli bir hazırlık zamanına gerek duyulmaksızın farklı tipteki
işler arasındaki değişiklik yapabilmektedirler.
e) Her bir makine tipine ait makinelerden fabrika içerisinde dağılmış bir şekilde
birden fazla mevcuttur.
f)
Makine tipi çeşitliliği düşüktür ve en fazla 5-6 tanedir.
g) Siparişler Malzeme İhtiyaç Planlaması (MİP) çıktısından ve özel son dakika
müşteri taleplerinden gelmektedir.
h) Siparişler iş numaraları, miktarları, operasyon sıraları ve işlem zamanlarıyla
karakterize edilmektedir.
i)
Makineler oldukça esnektir.
j)
Makinelerin işlem yeteneklerinden dolayı, iş parçaları üretim ortamı içerisinde en
fazla 3-5 makine tipini ziyaret edebilmektedirler.
8
k) Operasyon sıraları sadece gerekli olan makine tipini ve sırasını tanımlamaktadır.
Spesifik rotalar sanal hücrelerin oluşturulması aşamasında seçilmektedir.
l)
Sanal bir hücre bir alt partinin siparişi için bir kez oluşturulmuşsa o alt partideki
her bir parça o hücrede üretilecektir.
SİH’nin fiziksel yerleşimi geleneksel imalat sistemlerinden farklıdır. SİH’deki
makinelerin fabrika içi yerleşimi ile süreç tipi yerleşim, ürün tipi yerleşim ve
hücresel yerleşimi kıyaslamak yerinde olacaktır. Şekil 2.2 bu sistemlerin fabrika içi
yerleşimlerini temsili olarak göstermektedir.
Süreç tipi yerleşimde (fonksiyonel yerleşim olarak da bilinir) bir makine tipine ait
tüm makineler bir araya getirilerek gruplandırılmıştır (Şekil 2.2-a). Bu tarz gruplara
genel olarak departman adı verilir. Süreç tipi yerleşimde sıklıkla kontrol edilmesi çok
zor iş akışları büyük miktarlarda iş partileri, makineler önünde bekleyen yüksek
miktarda ara stoklar bulunur. Ayrıca işlerin temin süreleri de uzamaktadır. Talebin
artması durumunda tesis büyümekte ve departmanlar genişlemektedir. Bu durum
sistemin etkinliğinin azalmasına, ara stok miktarlarının, temin sürelerinin ve akış
zamanlarının artmasına neden olmaktadır.
Ürün tipi yerleşimde (akış tipi yerleşim olarak da bilinir) ise makineler işin
makineler boyunca akabileceği bir şekilde yerleştirilirler (Şekil 2.2-b). Böyle bir
yerleşim ara stok miktarını, temin süresini ve akış zamanını düşürecektir. Ürün
çeşitliliği çok az ise ve bu ürünlerin teknolojik gereksinimleri benzerlik gösteriyorsa
ürün tipi yerleşim etkin olacaktır. Ancak talep büyüdüğünde ve ürün karışımında
değişiklik olduğunda ek makinelerin hatta yerleştirilmesi gerekecek, alan sıkıntısı
ortaya çıkacak ve makinelerin yeniden düzenlenmesi gerekecektir.
Oldukça yaygın olan diğer bir yerleşim biçimi hücresel yerleşimdir (Şekil 2.2-c).
Hücresel yerleşim birbirleriyle yakından ilişkili makine setinden oluşur ve herhangi
bir hücredeki makinelerin yerleşimi öyle bir şekilde düzenlenmiştir ki; bir parça akış
tipi yerleşimde olduğu gibi bir hücreden kolayca geçebilir. Hücre sayısının az olması,
hücredeki makinelerin fiziksel olarak gruplanması ve ürün benzerliklerinden dolayı
9
bu sistemlerdeki çizelgeleme işlemleri daha basittir. Ancak ürün karışımı
değiştiğinde bu yerleşim etkinliğini kaybetmeye başlar ve darboğaz makinelerin
ortaya çıkması daha fazla makine alımını gerektirir. Bazen herhangi bir hücredeki
makinenin diğer bir hücreye taşınması bile gerekebilir.
Ürün tipi yerleşim ve hücresel yerleşimde tahmin teknikleri kullanılarak dikkatli bir
pazar analizi yapılmalıdır. Ayrıca parça ailelerin belirlenmesi içinde hassas bir
çalışma gereklidir. Bu iki yerleşim ürün miktarı ve karışımına karşı çok hassastır.
Hükümet
politikaları,
borsalar,
teknolojik
yenilikler,
rekabetçi
firmaların
stratejilerindeki değişiklikler talep yapısını değiştirebilir hatta ürün yaşam çevrimini
kısaltabilir. Bu tarz etmenler bu iki tip yerleşimin etkinliğini belirli bir seviyede
tutmak için makinelerin tesis içerisindeki pozisyonlarının değişmesi anlamına
geldiğinden bu yerleşimlerin orta ve uzun vade de çok etkin yerleşimler olmadığı
açıkça görülmektedir.
Şekil 2.2-d, 40 adet makine ve 5 makine tipinden oluşan SİH için genel bir tesis
yerleşimini göstermektedir. Sistemde 3 adet aktif hücre görülmektedir. SİH’de genel
olarak üç durum önemlidir (i) makine tiplerinin çeşitliliği, (ii) belirli bir makine
tipinin içeriği ve sayısı ve son olarak (iii) bunların tesis yerleşimi içindeki
dağıtımıdır.
SİH farklı makine tiplerinden oluşmaktadır ve bu makine tiplerinin sayısı üretimi
yapılacak olan işlerin teknolojik gereksinimleriyle doğru orantılıdır. Her bir makine
tipine ait tesis içerisinde farklı bölgelere yerleştirilmiş birden fazla makine olduğu
için hem kapasite miktarı artırılır hem de alternatif rotalar sağlanmış olur.
10
a)
b)
c)
d)
Şekil 2.2. İmalat sistemlerinin yerleşim organizasyonu
Makinelerin tesis içerisindeki dağıtımı malzeme taşımaları için önemli bir
problemdir. Şekil 2.2-d incelendiğinde makinelerin tesis içine keyfi olarak dağıtıldığı
düşünülebilir ancak durum böyle değildir. Aynı yeteneklere sahip makinelerin
kümelenmesi yerine tesis içinde bu makineler farklı noktalara dağıtılmıştır. Bu
şekilde talep miktarı arttığında ek makinelerin konması rotalama esnekliğini
artıracaktır. Böylece toplam taşıma miktarında da belirgin bir artış gözlenmeyecektir.
SİH için farklı tesis yerleşimiyle ilgili bazı çalışmalar olsa da bu konu farklı bir
araştırma alanıdır ve bu tezin kapsamı içerisinde değildir. Burada benzer işlem
11
yeteneklerine sahip makinelerin mümkün olduğunca birbirine yakın olmadığı durum
dikkate alınacaktır ki bu toplam taşıma etkinliğini artıracaktır.
2.3. Sanal Hücrenin Hayatı
Sanal hücrenin hayatı ile bir biyolojik hücrenin yaşamı arasında bir benzerlik kurmak
mantıklı olabilir [Drolet, 1989]. Bu benzerlik Şekil 2.3’de görülmektedir.
Sanal Bir Hücrenin Hayat Çevrimi (Hücre Elastisitesi)
SANAL HÜCRENİN OLUŞUMU
BÜYÜYEN HÜCRE
OLGUNLAŞAN HÜCRE
KÜÇÜLEN HÜCRE
YOKOLAN HÜCRE
GENEL BİR
HÜCRE
Şekil 2.3. Sanal bir hücrenin hayatı
İŞ
MAKİNE
12
Herhangi bir iş, işleme alınmak üzere bir kez seçilirse bunun için bir sanal hücre
kontrolörüne ve bir hücreye ihtiyaç vardır. Tesisteki mevcut makineler kümesi
arasında kontrolör o iş için kapasite ve teknolojik kısıtları sağlayan bir makine setini
atayacaktır. Bu sanal hücrenin oluşumu demektir. Gerekli tüm kaynaklar temin
edildiğinde o makineye gönderilir. İlk olarak ziyaret edilecek makine ilgili parçanın
operasyon sırasındaki ilk makine tipine ait bir makine olacak ve bu böyle devam
edecektir. İlk makine ilgili işi işlemek için hazır olduğunda kontrolör o işin üretimine
başlanmasına izin verebilir. İlk parça ilk istasyonda işlendikten sonra ikinci istasyona
taşınır ve akış tipine benzer şekilde parçanın üretimine devam edilir. Bu safha
büyüyen hücre olarak bilinir. İlgili parçanın üretimi için gerekli tüm makineler o
parça üzerinde çalışmaya başladıkları zaman ilgili hücrenin olgunlaştığı söylenebilir.
Tabi ki ters sürecin oluşması kaçınılmazdır. Hücre küçülecek ve sonra da
kaybolacaktır. Bunun anlamı sanal hücre kontrolörünün artık mevcut olmadığıdır.
2.4. Grup Teknolojisi Hücreleri ile Sanal İmalat Hücreleri Arasındaki
Farklılıklar
Sanal imalat hücreleri fiziksel olarak birbirlerine yakın konumlandırılmadıkları için
GT hücrelerine göre malzeme taşıma miktarları daha fazladır. Ancak bu taşıma
miktarları sanal hücrelerin oluşturulması aşamasında en küçüklenebilir. Ayrıca GT
hücrelerinde var olan makine kullanım oranları arasındaki dengesizlikten dolayı
ihtiyaç duyulan ilave kapasiteye gerek yoktur.
Özetle bir sanal hücre geleneksel GT hücresine kıyasla bazı avantajları vardır:
a) Sanal bir hücre istendiği zaman oluşturulabilir ve dağıtılabilir.
b) Bir sanal hücre kontrolörü ürün karışımı, talep, iş rotaları gibi dış kaynaklı
değişimleri karşı kendisini adapte edebilir.
c) GT’de talep değişimlerine cevap verebilmek için yapılan hücre yerleşimlerinin
değiştirilmesinden kaynaklanan maliyet oluşmamaktadır.
d) Sanal hücrelerde makine kullanım oranları daha yüksek olmaktadır.
13
Herhangi bir makine belirli bir anda belirli bir sanal hücrenin elemanı iken başka bir
zaman diliminde farklı bir sanal hücrenin elemanı olabilir. Hatta aynı makine belirli
bir anda birden fazla sanal hücrenin elemanı olabilir. Bu durum SİH’de makine
kullanım oranlarının yüksek ve makine ihtiyacının düşük olduğunu açıklamaktadır.
14
3. LİTERATÜR ARAŞTIRMASI
SİH ile ilgili olarak araştırmacılar şu ana kadar birbirinden farklı tanımlamalar
yapmışlardır. Ancak bu tanımlar arasındaki ortak görüş tesis yerleşimi ile imalat
işlemlerinin organize ve kontrol edilme biçiminin birbirinden farklı olduğudur. SİH
aslında tesis yerleşimini az ya da çok dikkate alan Üretim Planlama ve Kontrol
(ÜPK) için bir ana fikirdir. Ancak tesis yerleşimi SİH’nin tasarımında belirli
dereceye kadar rehberlik yapabilir. Bu sebepten tesis yerleşimi SİH ile ilgili literatür
araştırmasında önemli bir özelliktir.
Değişen çevrenin gereksinimleri ve imalat sistemlerinin bu değişime olan
adaptasyonlarını açıklamakta yerleşim tipleri yetersiz kalabilmektedir. Bu değişimler
stratejik, taktiksel veya operasyonel seviyelerde olabilmektedir. Bunun sonucunda
SİH yapılarının tümel bilgileri kullanan tasarım çabalarından mı yoksa sadece yerel
bilgilerin kullanıldığı operasyonel çabaların sonucunda mı oluştuğu tartışma
konusudur. Böylece ikinci özellik SİH’nin şekillendiği ÜPK hiyerarşisi içresindeki
seviye olacaktır. Bu AÜÇ (Ana Üretim Çizelgesi) olarak bilinen göreli olarak daha
durağan SİH yapılarının oluştuğu orta ya da uzun dönemli planlamalardır. Bazı
durumlarda SİH’leri oldukça dinamiktir ve TYK (Tesis Yerleşim Kontrolü) olarak
bilinen tek bir iş ile ilgili de olabilir. Bu iki seviye arasında SİH’nin dönemsel veya
düzenli gözden geçirildiği MİP seviyesi olarak bilinen bir seviye daha vardır.
Üçüncü özellik ise imalat gereksinimlerindeki benzerliklerin kullanılması ya da ürün
ailelerin dikkate alınmasıdır. Bu özellik GT’nin merkezini oluşturmaktadır.
Benzerlikler rotalarda ya da iş istasyonlarında özellikle ekipman gereksinimlerinde
olabilir. Rotalardaki benzerlikler operasyonların yapılmasında (örneğin hazırlık ve
işlem zamanlarının düşürülmesinde) fayda sağlarken iş istasyonu gereksinimindeki
benzerlikler operasyonların koordinasyonunda fayda sağlamaktadır. Sonuç olarak
GT fikrinin uygulanıp uygulanmaması SİH ile ilgili olarak yapılmış çalışmaların
değerlendirilmesinde önemli bir faktör olarak karşımıza çıkmaktadır.
15
Son olarak da SİH ile ilgili yapılan tanımlamalar incelendiğine üç farklı kaynağın
dikkate alınması gerektiği görülmüştür: (i) makine, (ii) insan ve (iii) malzeme taşıma
ekipmanıdır. Bu kaynakların her birinin incelenmesi SİH’nin tasarımı ve operasyonu
için farklı zorluklar getirmektedir. Genel olarak ne kadar çok kaynak dikkate alınırsa
problem de o kadar karmaşık hale gelmektedir. İnsan faktörünün SİH’nin tasarımı
aşamasına dahil edilmesi operasyonel işlemlere ek olarak organizasyonel konuların
da dikkate alınmasını gerektirebilir.
AÜÇ
Talep:
hacim
Karışım,
Grup Teknolojisi
MİP
YZK
İnsan
Makineler
Yerleşim
Taşıma
Ekipmanı
Şekil 3.1. Sanal imalat hücreleri için sınıflandırma çatısı [Nomden ve ark., 2006]
SİH ile ilgili literatür çalışmaları incelendiğinde bir diğer farklılık da otomatik imalat
sistemlerinin ve bilgisayar kontrolünün açıkça dikkate alınıp alınmadığıdır. Bu
durum otomatik olmayan ortamlarda mevcut olan, insan gibi çeşitli problemleri en
azından kısmi olarak ortadan kaldırır. İkinci olarak, farklı araştırma yaklaşımları
kullanılmıştır. Böylece SİH ile ilgili geçmiş çalışmalar üç farklı yaklaşıma ayrılabilir.
İlk olarak SİH’nin tasarım aşamasına odaklanan çalışmalar, ikinci olarak SİH’nin
16
operasyonel performansını inceleyen çalışmalar ve son olarak da SİH ile ilgili
gözleme dayalı çalışmalar dikkate alınmıştır.
Yukarıdaki nedenlere bağlı olarak SİH ile ilgili geçmiş çalışmalar aşağıdaki
faktörlere göre sınıflandırılmıştır (Şekil 3.1).
a) Araştırma Tipi: tasarımla ilgili çalışmalar, operasyonel çalışmalar, ya da
gözlemsel çalışmalar
b) Kaynaklar: Makineler, taşıma ekipmanları, insan
c) SİH’nin Uygulama Seviyesi: Orta-uzun dönem (AÜÇ), kısa-orta dönem, ya da
dönemsel (MİP) ya da uygulama seviyesi (TYK)
d) Yerleşim dikkate alındı mı?
e) Grup teknolojisi kullanıldı mı?
f) İmalat sisteminde otomasyon dikkate alındı mı?
Çizelge 3.1, Şekil 3.1’deki çerçeveye bağlı kalınarak sınıflandırılmış ve gözden
geçirilmiş makalelerin şematik bir özetini göstermektedir.
Çizelge 3.1’deki çalışmalar listesine bakıldığında ilk dikkati çeken konu SİH ile ilgili
olarak yapılan çalışmaların son yıllarda artış göstermiş olmasıdır. İkinci olarak GT
prensibinin çoğu çalışmalarda dikkate alındığı görülmektedir. Teknolojik ve finansal
kısıtlamalardan
dolayı
geleneksel
hücrelerin
kullanımının
uygun
olmadığı
durumlarda dahi GT fikri kullanılmaya çalışılmıştır. Ayrıca, işlerin etkin bir şekilde
sıralanması nedeniyle ortaya çıkan kısa-dönemli faydalardan uzun-dönemli SİH’nin
oluşturulmasına
kadar
SİH’lerin
ÜPK
seviyelerinin
tümünde
uygulandığı
görülmektedir. SİH ile ilgili gözlemsel çalışmaların sayısının çok düşük olduğu
açıktır. Gözleme dayalı mevcut çalışmaların da genel olarak hücresel imalatın
kullanıcıları üzerinde odaklandığı görülmektedir. Deneysel çalışmalardaki girdiler
özellikle
tasarım
ve
operasyon
alanlarındaki
araştırma
faktörlerinin
gerçekleştirilmesini sağlayabilir. Bu özellikle model tabanlı araştırmalarda belirli
kaynak tiplerinin eklenmesi açısından doğrudur.
17
Çizelge 3.1. Taranan makalelerin bir özeti (her bir kategorideki çalışmalar alfabetik
olarak sıralanmıştır)
Arş. Tipi
Yazar(lar)
Drolet ve ark, 1996
Fung ve ark., 2008
Irani ve ark., 1993
Kesen ve ark., 2009
Kesen ve ark., 2010a
Kesen ve ark., 2010b
Khilwani ve ark., 2009
Ko ve Egbelu, 2003
Mak ve ark., 2005; 2007
Mak ve Wang, 2002
McLean ve ark., 1982
Tasarım Mertins ve ark., 2000
Montreuil ve ark., 1992
Moodie ve ark., 1994
Prince ve Kay, 2003
Ratchev, 2001
Rheault ve ark., 1995
Saad ve ark., 2002
Sarker ve Li, 2001
Slomp ve ark., 2004;2005
Subash ve ark., 2000
Thomalla, 2000
Vakharia ve ark., 1999
Flynn, 1987
Flynn ve Jacobs, 1986; 1987
Jacobs ve Bragg, 1988
Jensen ve ark., 1996, 1998
Kesen ve ark., 2009
Kannan, 1997
Operasyon
Kannan, 1998
Kannan ve Ghosh, 1995
Kannan ve Ghosh, 1996a;1996b
Shambu ve Suresh, 2000
Suresh ve Meredith, 1994
Suresh ve Slomp, 2005
Hyer ve Brown, 1999
Gözlemsel Wemmerlöv ve Hyer, 1989
Wemmerlöv ve Johnson, 2000
Kaynaklar Uyg. Sevi. Yerleşim
M/T/M/T/M/T/M/T/M/T/M/T/M/-/M/-/M/T/M/T/M/-/M/-/İ
M/T/M/-/M/-/İ
M/T/M/-/M/T/M/T/M/-/İ
M/-/M/T/M/-/M/-/M/-/M/-/M/-/M/-/M/-/M/-/M/-/M/-/M/T/M/-/M/-/İ
M/-/İ
M/-/İ
M/-/İ
-/-/-/MİP/TYK
AÜÇ/-/-/MİP/TYK
-/MİP/TYK
-/MİP/TYK
-/MİP/-/MİP/-/MIP/TYK
-/MİP/TYK
-/MİP/AÜÇ/MİP/-/MİP/TYK
-/MİP/TYK
AÜÇ/-/-/MİP/-/MİP/TYK
-/MİP/-/MİP/TYK
-/MİP/TYK
AÜÇ/MİP/-/MİP/TYK
AÜÇ/-/AÜÇ/AÜÇ/-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
-/-/TYK
AÜÇ/-/AÜÇ/-/AÜÇ/-/-
Y
Y
Y
Y
Y
Y
GT
GT
GT
GT
GT
Otomasyon
O
O
O
O
O
O
O
Y
Y
O
O
O
Y
Y
O
O
Y
Y
Y
GT
GT
GT
GT
O
O
GT
GT
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
GT
GT
GT
GT
GT
GT
GT
GT
GT
GT
GT
GT
GT
GT
GT
Kaynaklar: M (Makine), T (Malzeme taşıma ekipmanı), İ (İnsan).
Uygulama seviyesi: AÜÇ (Ana üretim çizelgesi), MİP (Malzeme ihtiyaç planlaması), TYK (Tesis
yerleşim kontrolü).
Yerleşim: Y(Yerleşim açıkça dikkate alındı)/GT: Grup teknolojisi açıkça dikkate alındı.
18
Tüm araştırmacıların kaynak tipi olarak makineyi seçtiklerini, bazılarının malzeme
taşıma ekipmanlarını kaynak olarak dikkate aldıklarını ancak insan faktörünün çoğu
çalışmalarda dikkate alınmadığı görülmektedir. Bunun nedeni muhtemelen karmaşık
bir yapısı olan SİH ile ilgili problemlerin çözümünü daha da zorlaştırmamaktır.
Ortaya çıkan farklı bir sonuç ise SİH’nin operasyonel konularıyla ilgilenen
araştırmacıların tasarım konusuyla ilgilenmediklerini göstermektedir. Yani bu iki
farklı konu üzerinde çalışan araştırmacılar genel olarak birbirlerinden ayrılmaktadır.
Aslında tasarım metotları operasyonel performans değerlendirilmelerindeki temele
göre ciddi şekilde geliştirilebilirler. Bununla birlikte, tasarımla ilgili bazı makaleler
benzetim tekniği kullanılarak yapılan operasyonel performans değerlendirmelerini
dikkate almışlardır. Ayrıca tasarım ile ilgili çalışmaların sayısının operasyonel ve
deneysel çalışmalara oranla daha fazla olduğu görülmektedir. Genel olarak tüm
alanlarla ilgili olarak daha birçok çalışma yapılabileceği görülmektedir.
3.1. SİH’nin Tasarımı ile İlgili Çalışmalar
McLean ve ark. (1982)’nin çalışması sanal imalat hücreleri terimini inceleyen ilk
çalışmadır [McLean ve ark., 1982]. GT hücrelerinin sanal otomasyon ile sanal imalat
hücrelerine dönüştüğü otomatik bir imalat tesisinin kontrolü üzerinde durmuşlardır.
İş istasyonlarının sanal hücrelerde eşzamanlı olarak kullanımından dolayı SİH’nin
geleneksel hücrelerden daha esnek bir yapıda oldukları belirtilmiştir. İşlerle onları
üretmek için gerekli olan makinelerin birleşmesiyle oluşan geçici imalat hücreleri
gibi önemli işlemlerden bahsetmişlerdir. İkinci önemli işlem ise işler arasında çeşitli
kaynakların paylaşılmasıyla ilgili kararları içermektedir.
Yukarıda adı geçen çalışma bu konuda çalışma yapmak isteyen birçok araştırmacıya
ilham vermiştir. Örneğin Montreuil ve ark. (1992) organizasyonun (mantıksal
yapının) yerleşimden (fiziksel yapıdan) ayrılabileceği fikrini incelemişlerdir. Basitçe
ifade etmek gerekirse, süreç tipi yerleşim söz konusuysa fonksiyonel bir
organizasyonun şart olmadığı ya da ürün tipi bir organizasyonun sadece ürün tipi
yerleşime mahsus olmadığını ifade etmektedirler [Montreuil ve ark., 1992]. Bununla
19
ilgili diğer makaleler, değişen imalat gereksinimlerine adapte olabilmek için
kaynakların bir noktadan diğer noktaya taşınmasıyla ilgili bakış açıları sunmuşlardır.
Dinamik hücrelerin uygulanabilirliği bir örnek olarak verilebilir [Drolet ve ark.,
1996; Rheault ve ark., 1995]. Bu bağlamda SİH, dinamik tesis yerleşim probleminin
belirli bir parametre aralığıyla ilgilidir. Örnek olarak Balakrishnan ve Cheng (1998)
çalışması incelenebilir. Ürün karışımı ve miktarı çok değişken ise tesis yerleşiminin
değiştirilmesinden doğan maliyet fazla olacağından bu akıllıca olmayacaktır
[Balakrishnan ve Cheng, 1998].
Diğer bir çalışmada Moodie ve ark. (1994) SİH kullanarak işlerin çizelgelenmesiyle
ilgili bir yapı sunmuşlardır. Her bir iş bir iş istasyonları kümesine atanmıştır. Böylece
tek ürün için geçici bir akış tipi hat oluşturulmuştur. Problem için bir doğrusal
programlama modeli kurulmuştur ve amaç toplam taşıma uzaklığı ile işlerin toplam
gecikmelerinin en küçüklenmesidir [Moodie ve ark. 1994]. Sarker ve Li (2001) bu
problemi her bir iş için kaynaklar şebekesi içerisinden bir yol bulmak olarak
tanımlamışlar ve bu problemi en son işin en son makinedeki tamamlama zamanını en
küçüklemeye çalışan bir algoritma ile çözmüşlerdir [Sarker ve Li, 2001]. Thomalla
(2000) aynı problemi Lagrangian gevşetmeleri yaklaşımıyla gecikmeleri en
küçükleyerek çözmüştür [Thomalla, 2000]. Diğer bir yaklaşımda ise Mak ve Wang
(2002) toplam taşıma uzaklıklarını en küçüklemeye çalışan Genetik Algoritma (GA)
yaklaşımı sunmuşlardır [Mak ve Wang, 2002]. Mak ve ark. (2005) aynı problem için
doğrusal olmayan matematiksel model geliştirmişler ve bu problemi çözmek için
yine GA yaklaşımını kullanmışlardır. Ancak burada iki farklı amacı dikkate
almışlardır: (i) toplam taşıma uzaklığının en küçüklenmesi ve (ii) tüm ürünlerin
toplam gecikmelerinin en küçüklenmesidir [Mak ve ark., 2005]. Mak ve ark. (2007)
ise aynı problem için bu kez Karınca Kolonisi Eniyilemesi (KKE) algoritması
geliştirmişlerdir ve yine toplam taşıma uzaklıklarını en küçüklenmeye çalışmışlardır
[Mak ve ark., 2007].
Irani ve ark. (1993) süreç tipi yerleşimli departmanlar ile akış tipi hücrelerden oluşan
melez bir yerleşimin oluşturulmasına yönelik vurgu yaparak tesis yerleşim
problemini incelemişlerdir. Basit akış verilerini kullanarak, bazı kaynaklar parça
20
ailelerinin ortak kapasite kullanımına müsaade etmek amacıyla birbirlerine yakın
noktalara konulmuşlardır. Bu kaynaklar daha sonra SİH’lerinin birer elamanı
olmuşlardır. Graph teorisi yardımıyla iki adet problem çözülmüştür. Her bir çözümde
benzer üretim yeteneklerine sahip bazı makineler kümelendirilerek süreç tipi
yerleşime dönüştürülmüş ve farklı üretim yeteneklerine sahip makinelerde akış tipi
bir hat meydana getirilmiştir [Irani ve ark., 1993].
Ayrıca, farklı imalat departmanlarından gelen işçilerin parça ailelerinin üretimine
katılmasını inceleyen çeşitli çalışmalar mevcuttur. Kaynaklar bu sanal takımlar
arasında paylaşılmaktadır. Sanal işçi ekibi atanan parça ailelerinin siparişlerinin
çizelgelenmesinden sorumludur. Ancak toplam üretim kapasitesinin kullanımıyla
ilgili olarak sanal takımlar arasında çatışma çıkmaktadır. Mertins ve ark. (2000) sanal
ekipler arasındaki bu çatışmayı çözmek için basit bir yaklaşım önermişlerdir. Parti
büyüklükleri eşit kapasite kullanımına sahip olmakta ve her bir sanal ekibin üretim
kapasitesini sırayla
kullanması
gerekmektedir.
Benzetim sonuçlarından bu
yaklaşımın katkı sağladığı gösterilmiştir [Mertins ve ark., 2000].
Vakharia ve ark. (1999) kuyruk teorisini kullanarak gerçek bir akış tipi üretimde
SİH’nin analizi ile ilgilenmişlerdir. Farklı üretim aşamalarında kaynakların işlere
atanması ile bir kaynak havuzu oluşturulması arasındaki ödünleşimi ve bunların akış
performansına etkilerini incelemişlerdir. Farklı üretim aşamalarındaki makine bir
parça ailesinin üretimine atanırken, o üretim aşaması içindeki makineler tüm parça
aileleri arasında paylaşılmaktadır. Bu yaklaşımın toplam üretim zamanını
düşürdüğünü göstermişlerdir [Vakharia ve ark., 1999].
Subash ve ark. (2000) sanal hücre formasyonu için bir yapı önermişlerdir. Aslında
yazarlar, sanal hücrelerin formasyonu için farklı kümeleme algoritmalarını test
etmişlerdir [Subash ve ark., 2000]. Ratchev (2001) ve Saad ve ark. (2002) SİH
oluşturabilmek için bir metot sunmuşlardır [Ratchev, 2001; Saad ve ark., 2002]. Bu
metodun ilk aşaması ürün karışımının imalat gereksinimlerinin analiz edilmesidir. Bu
gereksinimler ekipman tipi, toleranslar ve işin gereksinimlerini karşılayabilmek için
bir ya da daha fazla makinenin mevcut olmasıdır. Bileşenler daha sonra benzer
21
imalat
gereksinimlerine
sahip
parçaların
uygun
bir
kümesi
içine
gruplandırılmaktadır. Sonraki adım ise en az taşıma miktarı veya en çok üretim
miktarı gibi çeşitli ölçütler kullanarak makinelerin bu kümelere atanması işlemidir.
Son adım ise bir önceki aşamada kullanılan performans ölçütlerinin etkinliklerini
ölçmek amacıyla oluşturulan senaryo analizlerini içermektedir.
Kesen ve ark. (2010a) SİH’nin çizelgelenmesi için matematiksel model ve GA
yaklaşımı önermişlerdir. Problemde her bir işin rotasının birbirinden farklı olduğunu
ve bu işleri işlemek üzere tesis içerisinde mevcut makine tiplerinin birden fazla
makineden oluştuğunu varsaymışlardır. İşlerin partiler halinde üretildiği ve partilerin
bölünmediği kabulü altında ağırlıklandırılmış toplam taşıma miktarı ile en son işin en
son makindeki tamamlanma zamanını en küçüklemeye çalışmışlardır. Rassal olarak
üretilmiş problem setleri üzerinde GA’nın kısa sürede iyi çözümler bulduğu
gösterilmiştir [Kesen ve ark., 2010a]. Kesen ve ark. (2010b) ise aynı problemde,
partilerin alt partilere bölünebildiği kabulüyle bir matematiksel model önermişler ve
rassal bir problem seti üzerinde toplam taşıma miktarı ile en son işin en son
makinedeki tamamlanma zamanının birbirleriyle çeliştiğini göstermişlerdir [Kesen
ve ark., 2010b].
Saad ve ark. (2002) üretim planlama ve hücre formasyonu için üç aşamadan oluşan
bütünleşik bir yapı sunmuşlardır. Birinci aşamada mevcut hücre yerleşimine iş
yüklemesi yapılmaktadır. İkinci aşamada benzetim tekniği yardımıyla mevcut hücre
yerleşimi mevcut iş yüklemesi altında önceden belirlenmiş üretim miktarı ve işlerin
toplam gecikmeleri gibi ölçütlere göre test edilmektedir. Mevcut hücre yerleşiminin
performansı tatmin edici değilse, hücreler yeniden düzenlenmekte ve yeni sanal
imalat hücreleri oluşturulmaktadır. Oluşturulan yapı mevcut işlerin üretim
gereksinimlerine göre kaynakların yeterliliğini kontrol etmektedir. İşler benzer
üretim
gereksinimlerine
sahip
oldukları
için
GT’nin
özelliklerinden
faydalanılmaktadır. Aynı zamanda işlerin kaynaklara atanmasındaki esneklik imalat
tesisinin kullanım oranının daha yüksek olmasını sağlamaktadır. Önerilen
matematiksel model hücreler arası taşımayı ve gecikmeleri en küçüklenmektedir.
22
Model önerildikten sonra Tabu Araması (TA) tekniğiyle probleme çözüm
önerilmiştir [Saad ve ark., 2002].
Daha geniş bir bakış açısı Üretim Akış Analizi’nin daha gelişmiş sürümünü ortaya
koyan Prince ve Kay (2003) tarafından sunulmuştur. Farklı parça aileleri tarafından
makinelerin paylaşılmasına müsaade ederek sanal gruplar oluşturmuşlardır. Sonuç
olarak, sanal bir grubun hem süreç tabanlı (benzer makineler havuzu) hem de ürün
tabanlı olabileceği gösterilmiştir. Geliştirilen bu yapı iki gerçek hayat problemine
uygulanmıştır [Prince ve Kay., 2003].
Ko ve Egbelu (2003) SİH oluşturmak için iki algoritma önermişlerdir. İlk algoritma
rota verilerini analiz etmek ve rotalarda sıkça ortaya çıkan makinelerin bir kümesini
oluşturmak için kullanılmıştır. Bu aday SİH’ler sonuç SİH yerleşimini belirleyen
ikinci algoritma yardımıyla analiz edilmektedirler. Herhangi bir makine birden fazla
SİH’nin elemanı olabilir ve birden fazla işe hizmet verebilir [Ko ve Egbelu, 2003].
Slomp ve ark. (2004) ve Slomp ve ark (2005) SİH’lerin tasarımı için bir yapı
önermişlerdir. Önerdikleri yapıda özellikle sınırlı sayıda işçi ve işçi becerisinin
olduğu varsayılmıştır. İlk olarak işleri ve makineleri gruplayan ve daha sonra
SİH’leri oluşturmak için işçilerin bu gruplara atanmasını sağlayan amaç
programlama modeli geliştirmişlerdir. Amaç kapasitenin mümkün olduğunca fazla
bir şekilde kullanılmasıdır ancak SİH’lerin de mümkün olduğunca birbirinden
bağımsız bir şekilde kurulmalarını sağlamaktır [Slomp ve ark., 2004; 2005].
Fung ve ark. (2008) sanal hücre oluşumuna ve uygun kaynakların seçilmesine
yardımcı olabilecek çok aşamalı hücre formasyonu metodolojisi geliştirmişlerdir. İlk
olarak kaynaklar, mevcut kapasiteyi ve maliyetleri dikkate alan doğrusal
programlama modeliyle üretim işlemlerini tamamlamak için seçileceklerdir.
Mantıksal olarak sanal hücreleri oluşturmak için alternatif üretim rotalarına sahip
olan parçalar, kaynak elemanı yaklaşımıyla analiz edilmektedirler. Kaynak
elemanlarının oluşturulmasında aday sanal hücreleri eniyilemek için rota tabanlı bazı
23
sezgisel yaklaşımlar önermişlerdir. Son olarak, önerilen metodolojiyi uygulamak
amacıyla vaka çalışması yapılmıştır [Fung ve ark., 2008].
Khilwani ve ark. (2009) benzerlik indekslerini en büyükleyen ve temin sürelerini en
küçükleyen SİH tasarımı içn çalışmışlar ve matematiksel model ile çözüm prosedürü
geliştirmişlerdir. Rassal olarak üretilmiş problem setleri üzerinde önerilen yaklaşımın
performansı test edilmiştir [Khilwani ve ark., 2009].
SİH’nin tasarımıyla ilgili olarak yapılan makaleler genel olarak incelendiğinde
kullanılan verilerin genellikle uygulama yapılan fabrikaya has olduğu görülmektedir.
SİH’lerin gerçek hayat problemlerine uygulanmasının ve adaptasyonun kolay olduğu
söylenebilir. Bazı yazarlar kurgusal veriler kullanırken ve bazıları da daha önce
kullanılmış rassal verileri kullanmaktadırlar. Kullanılan bilgi düzeyi de farklılıklar
göstermektedir. Çalışmaların bir kısmında sadece rota bilgisi kullanırken, bazılarında
ise ayrıntılı bir gruplama kararı verebilmek için rota kartları incelenmiştir. Kullanılan
performans ölçütleri de birçok farklılık göstermektedir. Finansal ölçütlerden
operasyonel ölçütlere kadar hatta harici elemanların sayısı ve hücrelerinin
yoğunluğuna kadar birçok performans ölçütü kullanılmıştır. Tesis yerleşimini dikkate
alan makaleler ayrıca toplam taşıma uzaklığının da en küçüklenmesi üzerinde
durmuşlardır. Belirli bir tasarım metodu, çözümü çok zor olan bir problemi içerebilir.
Bu çalışmalar içerisinde 5 adet makalede TA, GA ve KKE tekniğinin
kullanılabileceği gösterilmiştir.
3.2. Operasyonel Seviyede SİH ile İlgili Çalışmalar
Bu bölümde SİH’yi operasyonel boyutta inceleyen makaleler ele alınmıştır.
Flynn ve Jacobs (1986; 1987) saf hücresel yerleşim olarak değerlendirilemeyecek bir
tesis yerleşimi üzerinde benzetim tekniği kullanarak GT uygulaması yapmışlardır.
Bu araştırmalar, sanal hücresel yerleşimle ilgili çalışmalar olarak yapılmasa da
bulgular sanal hücresel imalat sistemleriyle yakından ilgilidir. Gerçek bir hayat
problemi üzerinde tesis yerleşiminin, ürün karışımı dağılımının ve ekipmanların
24
parça ailelerine atanmasının etkileri üzerinde yoğunlaşmışlardır [Flynn ve Jacobs,
1986; 1987]. Bu çalışmalardan çıkarılacak genel sonuç, fonksiyonel yerleşimin en iyi
alternatif olduğudur. Flynn (1987), fonksiyonel yerleşim ve hücresel yerleşimde hatta
ekipmanların işlere atandığı fonksiyonel bir yerleşimde Jacobs ve Bragg (1988)
tarafından önerilen tekrarlı işlerin sıralamasıyla ilgili prosedürü kullanarak bir
çalışma yapmışlardır. Bu ortamda hazırlık zamanlarını azaltan sıralama kurallarıyla
birlikte değerlendirilen fonksiyonel yerleşim, hücresel yerleşimden ve direkt olarak
ekipmanların işlere atandığı fonksiyonel yerleşimden daha iyi bir performans
göstermiştir. Sadece ekipmanın kalıcı olarak işe atanması, hazırlık zamanını çok
fazla azaltmamaktadır. İş benzerliklerinin esnek kullanımı en iyi performansı
vermektedir [Flynn, 1987].
Suresh ve Meredith (1994) fonksiyonel yerleşimde parça ailesi tabanlı çizelgeleme
kullanımının etkisini araştıran
ilk
çalışmayı
yapmışlardır. Bu sistemlerin
kıyaslanabilir parti büyüklükleri ve hazırlık zamanlarının düşük olduğu durum
altında hücresel yerleşimden ve fonksiyonel yerleşimden daha iyi performans
sağladığını göstermişlerdir. Ancak, hazırlık zamanlarının belirli bir eşik değerinden
yüksek olduğu durumda ve hücresel yerleşimin sanal hücrelerin fonksiyonel
yerleşime göre daha düşük parti hacmiyle çalıştığı durumlarda, geleneksel hücresel
yerleşimin diğer iki yerleşimden daha iyi performans sergilediği ortaya çıkmıştır
[Suresh ve Meredith, 1994].
Yukarıdaki çalışmada incelenen sistem, “ilk gelen ilk hizmet görür” çizelgeleme
kuralına göre çalışmaktadır. Ancak Kanan ve Ghosh, (1996a; 1996b) ve Kanan
(1997; 1998) farklı parça ailesi tabanlı diğer çizelgeleme kurallarının kullanımını
incelemişlerdir [Kanan ve Ghosh, 1996a; 1996b Kanan 1997; Kanan 1998]. Parça
ailesi tabanlı çizelgeleme yapılan fonksiyonel tipi yerleşime sahip sistemleri, sanal
hücresel imalat sistemi olarak isimlendirmişlerdir. Kesen ve ark. (2009) farklı parça
ailesi tabanlı çizelgeleme yöntemleri kullanarak sanal hücreleri, hücresel yerleşimi
ve fonksiyonel yerleşimi benzetim tekniği yardımıyla karşılaştırmışlardır [Kesen ve
ark., 2009]. KKE metodunu kullanarak da metamodel denklemler oluşturmuşlardır.
Sonuçlar sanal hücrelerin diğer iki yerleşim tipinden daha iyi performansa sahip
25
olduğunu göstermiştir. Suresh ve Slomp (2005) bu çizelgeme ölçütlerini ayrıntılı bir
şekilde incelemişlerdir.
Kanan ve Ghosh (1996a) fonksiyonel yerleşim, hücresel yerleşim ve 2 adet sanal
hücre tipini incelemişlerdir. İki sanal hücre sistemi arasında, birincide verilen
herhangi bir iş merkezindeki parça ailesine ait bir iş, en fazla kuyruk olan makineye
girecektir. İkinci sanal hücre sisteminde, rotasında en az makine kalan aile
seçilecektir. %75 ve %85 olarak iki farklı atölye iş yükü, iki farklı hazırlık zamanı ve
dört farklı talep yapısı dikkate alınmıştır. Talep yapıları iki farklı parti büyüklüğü
seviyesi ile dengelenmiş ve dengelenmemiş ürün karışımlarını içermektedir. En iyi
performansı sanal hücre sistemleri, daha sonra fonksiyonel yerleşim ve en sonda
hücresel yerleşim göstermektedir. Sanal hücre sistemleri parti büyüklüğünün düşük,
talep yapısının dengesiz ve iş yükünün fazla olduğu durumlarda bile diğer iki sisteme
göre daha iyi performans sergilemiştir [Kanan ve Ghosh, 1996a].
Yukarıdaki çalışmada parti büyüklüğü için iki seviye kullanılmış olsa da, parti
büyüklükleri hem hücresel hem de fonksiyonel yerleşim için aynıdır. Bu durumda
sanal hücre sistemlerinin gösterdikleri iyi performans Suresh ve Meredith (1994)’ün
çalışmasındaki SİH ile ilişkilidir.
Kanan ve Ghosh (1996b) beş farklı SİH’nin performansını beş farklı parti ailesi
seçim kuralına göre incelemişlerdir. Bu çalışmada yine SİH’lerin genel fonksiyonel
ve hücresel yerleşime göre daha iyi sonuç verdiği görülmüştür. Ancak hücresel
yerleşimde düşük parti büyüklükleri ve yüksek hazırlık zamanları kullanılmamıştır
[Kanan ve Ghosh, 1996b]. Benzer sonuçlar Kanan (1997)’nin çalışmasında da
gösterilmiştir. Hazırlık zamanlarının ve parça ailesi sayılarının yüksek olduğu
durumlarda dahi SİH’nin fonksiyonel yerleşimden daha iyi sonuçlar verdiği
gözlenmiştir [Kanan, 1997]. Kanan (1998) parti büyüklüklerinden daha küçük
transfer parti büyüklüklerinin kullanımının etkisini incelemiştir. Bu faktörün beş
farklı seviyesi ile iki farklı atölye toplam iş yükü, parti büyüklüğü ve hazırlık zamanı
kullanılmıştır. Bu çalışma göstermiştir ki; hücresel yerleşimin performansını artırma
26
çabalarına karşın hücresel yerleşim SİH’yi yalnızca düşük atölye yükü, küçük parti
büyüklüğü ve yüksek hazırlık zamanı düzeneği altında geçebilmiştir [Kanan, 1998].
Jensen ve ark. (1998) akış tipi üretimin ve her bir departmanda birden fazla
makinenin olduğu iş merkezlerinin nadiren de olsa değiştirilebildiği (atölye tipi
üretime benzer) bir üretim sistemini incelemişlerdir. Üç faktör dikkate alınmıştır: (i)
departman içerisindeki makine hazırlık zamanlarının koordinasyonu ya da iki ailetabanlı çizelgeleme kuralı (en erken teslim tarihi ve en kısa işlem zamanı), (ii) işlem
zamanlarının %0-70 aralığında olan hazırlık zamanlarıdır. Birinci faktörle birlikte
yani bir departman içerisindeki uyumlu makine hazırlıkları, bir departmanda yalnızca
makineler boş olduğunda, iki ya da daha fazla makinenin aynı aile için hazırlık
zamanı olmaksızın işlem yapabilmesine müsaade edilmiştir. Bu her bir iş
merkezindeki büyük hazırlıkların sayısını azaltmaktadır. Parça ailesi tabanlı
çizelgelemenin hazırlık zamanlarının işlem zamanlarının belirli bir yüzdesinden
büyük olduğu durumlarda faydalı olduğu gösterilmiştir. Ancak parça ailesi hazırlık
zamanı, işlem zamanlarının %15’inden daha düşük olduğunda parça ailesi tabanlı
çizelgelemenin hiçbir avantajı yoktur [Jensen ve ark., 1998]. Jensen ve ark. (1996)
benzer şekilde sonuçlar göstermiştir.
Shambu ve Suresh (2000) melez hücresel sistemlerin performansını incelemişlerdir.
Ayrıca fonksiyonel ve melez sistemlerdeki parça ailesi tabanlı çizelgeleme
kurallarını araştırmışlardır [Shambu ve Suresh, 2000].
Suresh ve Slomp (2005) yukarıdaki çalışmalara ek olarak insan faktörünü de dikkate
almışlardır. HİS’nin birçok avantajı işçilerin farklı becerilere sahip olmasından ve
farklı hücrelere hizmet verebilmesinden kaynaklanmaktadır ve bu yüzden işgücü ile
ilgili esnekliğin dikkate alınması gerektiği üzerinde durmuşlardır. Böylece çift
kaynak kısıtlı (makine-insan) sistemlerde hazırlık zamanının düşük olduğu, işçilerin
farklı iş becerilerine sahip olmadığı, düşük parti büyüklüğünün olduğu parametre
düzeyinde SİH’nin fonksiyonel ve hücresel yerleşimden daha iyi performans
sergilediğini belirtmişlerdir. Ancak düşük parti büyüklüğü, farklı iş becerilerine sahip
ve farklı hücreler arasında hizmet verebilen işçilerin olduğu bir parametre aralığında
27
geleneksel (fiziksel) hücrelerin SİH’den ve fonksiyonel yerleşimden daha iyi
sonuçlar verdiği belirtilmiştir [Suresh ve Slomp, 2005].
İncelendiği kadarıyla literatürde SİH’nin operasyonel özellikleri ile ilgili yapılan
çalışma sayısının az olduğu görülmektedir. Bu çalışmalarda yaygın olarak benzetim
tekniği kullanılmıştır. Akış zamanından ara stok miktarına, kullanım oranından
gecikmelere kadar geniş bir performans ölçütü dikkate alınmıştır.
Çalışmalar deneysel faktörlere göre de gruplanabilir. Çoğu çalışmada yerleşim ve
hücre formasyon prosedürlerinden oluşan imalat sistem tipi dikkate alınmıştır.
İncelenen 15 çalışmanın 12’sinde tesis yerleşimi dikkate alınmıştır. Fonksiyonel
yerleşimde her bir işin bütün departmanlarda işlem görebileceği ya da bir parça
ailesinin bütün hücrelere atanabileceği bir hücresel yerleşim gibi çok uç noktalar
incelenmiştir. Ayrıca performans farklılıklarını gösterebilmek için değişik hücre
formasyonları araştırılmıştır.
İmalat sisteminin diğer bir kritik noktası onun kontrol yapısıdır. Hem parça
ailelerinin makinelere atanması hem de işlerin sırası sistemin genel performansı
üzerinde önemli bir etkiye sahiptir. Hücresel yerleşimlerde parça ailelerinin
atanacağı hücre sabitken fonksiyonel yerleşimde bu bazı parça ailesi atama
kurallarına bağlıdır. Parça ailelerinin makinelere atanması hazırlık zamanlarının
düşürülmesinde önemli bir faktördür.
Ürün karışımındaki ve talep hacmindeki değişkenliğinin yüksek olduğu dinamik
ortamlarda SİH’nin iyi çalıştığı belirtilmektedir. Değişken ürün karışımı birçok
çalışmada incelenirken talep hacmindeki değişkenlik çok ilgi görmemiştir. Parça
ailelerinin yapısı ve boyutu sadece bir çalışmada incelenmiştir. Malzeme taşıma ile
ilgili birçok durum mevcuttur. Taşıma sistemi, taşıma zamanları ayrıca parti
büyüklükleri ve transfer partilerinin kullanımı malzeme taşıma ekipmanının
yüklenmesinde önemli bir etkiye sahiptir. Parti büyüklüklerinin sıklıkla üzerinde
durulurken, transfer partileri aynı ilgiyi çekememiştir.
28
3.3. SİH ile İlgili Gözlemsel Çalışmalar
Wemmerlöv ve Hyer (1989)’in çalışması Amerikan endüstrisindeki muhtemel
hücresel imalat kullanıcılarına yönelik anketlere dayanmaktadır. Ankete katılan
kullanıcılardan elde edilen sonuç, GT ile ilgili kazanımları elde etmek için
ekipmanların işlere atanması prensibinin etkili olduğudur. Bu firmalarda makine
tahsisi, makineleri hücresel yapıya dönüştürmeden uygulanmaktadır. Bazıları,
ekipmanların tam olarak işlere tahsis edilmesi şeklindeyken bazıları hem imalat
hücrelerini hem de ekipman tahsisinin kombinasyonu olan melez yapılardır. Genel
olarak tahsis edilmiş ekipman yalnız başına hücresel yerleşimin en büyük faydasını
üretmektedir. Ekipmanların yer değiştirme maliyetinin birçok firma tarafından
fiziksel bir hücre oluşturmanın en büyük maliyet kalemlerinden biri olduğu
belirtilmiştir. Ayrıca geçici yüklemelerdeki değişkenliğin ve işlerin hücreler arası
transferinin, hücrelerle ilgili problemli bir konu olduğu belirtilmiştir [Wemmerlöv ve
Hyer, 1989].
Daha yeni bir çalışmada Hyer ve Brown (1999) endüstrideki 15 farklı vakanın
sonuçlarını yorumlamışlardır. Ayrıca parça/parça ailelerine tahsis edilen insan ve
ekipmanlardan oluşan bir sanal hücre ve iş akışlarının zaman ve bilgiyle bağlantılı
olduğu, fakat kaynakların fiziksel olarak kümelendirilmediği imalat hücrelerinin
sınıflandırılmasıyla ilgili yapı önermişlerdir. Araştırmacılar tasarım ve operasyonel
konularda yaygın olarak incelenen faktörlerin yanında organizasyonel konuların
önemine de vurgu yapmışlardır. Bunlar işçilere bilgi aktarımı, bu bilgi ile ilgili
davranış yeteneği, farklı beceri gerektiren işler için işçilerin eğitimi ve takım
çalışması becerileri gibi konuları içermektedir [Hyer ve Brown, 1999].
Wemmerlöv ve Johnson (2000) uygulamada bir hücrenin nasıl tasarlanacağını ve
imalat hücresi oluşturmanın nedenlerini araştırmışlardır. Ayrıca imalat hücresinin
oluşumunu engelleyen kısıtları da incelemişlerdir. Bu kısıtlar arasında beceri
eksikliği ya da ekipmanları taşımanın yüksek maliyeti ve yetersiz talep hacmi
gelmektedir. Bu faktörler hücresel imalata girişteki en büyük engeller olarak
görülmektedir [Wemmerlöv ve Johnson, 2000].
29
Yukarıda bahsedilen gözleme dayalı çalışmalarla ilgili olarak bazı çıkarımlar
yapılabilir. Yapılan anket ve vaka çalışmalarında hücresel imalatla ilgili gözlemsel
çalışmaların çok sınırlı sayıda olduğu görülmektedir. Gözlemsel çalışmalar oldukça
yüzeysel boyutta kalsa da, geçmişteki analitik ve benzetim çalışmalarına rehberlik
etmiştir. Fakat bu metotlara yeni deneysel faktörler sağlayabilmek açısından daha
fazla gözlemsel çalışmanın yapılması gerektiği açıktır. Parametre aralıklarını
belirlemek için tanımlayıcı istatistik metotlarından da faydalanılabilir.
Gözlemsel çalışmalardan çıkan sonuç hücresel imalatın tahmin edildiğinden daha az
kullanıldığıdır. Anketi cevaplayan çoğu firma, geleneksel HİS’yi kullanmadıklarını
kullananlar da fabrikalarındaki çoğu parça için bir ya da iki hücrenin olduğunu
belirtmişlerdir. Açıkça yalın HİS’nin pratikteki kullanımı çok azdır. Ancak
çalışmalar
HİS’nin
neden
kullanılmadığı
konusunda
ayrıntılı
bir
bilgi
sunmamaktadır.
3.4. Genel Değerlendirme
SİH’nin ilk olarak çalışılmasından bu yana yaklaşık olarak otuz yıla yakın süre
geçmiştir. Literatür incelenmesi sonucunda SİH ile ilgili olarak hangi tipte çalışmalar
olduğu ayrıntılı bir şekilde incelenmiştir. SİH kavramı özellikle tesis yerleşim
probleminden ayrı olarak özellikle MİP için geliştirilmiştir. Değişen çevrenin
gereksinimleri ve buna bağlı olarak imalat sistemlerinin bu çevreye uyumu üzerine
vurgu yapılmıştır. İmalat sisteminin içinde bulunduğu tesis yerleşiminin kısmi olarak
ya da tamamen değiştirilmesinin bu değişen koşullara cevap verebilme noktasında
bir yere kadar yeterli olduğu görülmüştür. Üçüncü önemli konu parça/parça
ailelerinin dikkate alınması ya da benzerliklerin imalat sistemi içerisinde
kullanılmasıdır.
Çalışmaların çok büyük bir kısmı genellikle tasarım ve operasyonel konular
üzerinedir. Ancak gözlemsel çalışmalar fazla bulunmamaktadır.
30
Bu bölümdeki sınıflandırma dikkate alındığında bu tezin SİH’nin operasyonel
kısmıyla ilgili olduğu söylenebilir. Kaynak olarak makine ve malzeme taşıma sistemi
dikkate alınmıştır. Bu bölümün başında da belirtildiği gibi SİH’nin tasarım kısmında
ne kadar fazla kaynak dikkate alınırsa problem o kadar karmaşıklaşmaktadır. Bu
yüzden iki farklı kaynak araştırma kapsamına alınmıştır. SİH’nin uygulama seviyesi
çok uzun dönemli değil kısa ve orta vadeli kararlar almaya yöneliktir. Çizelgeleme
problemi taktiksel ve operasyonel kararları içerdiğinden dolayı uygulama düzeyi
MİP ve TYK’yı içermektedir. Yerleşim açık bir şekilde problemin içerisine dahil
edilmiştir. Çoğu çizelgeleme problemlerinde yerleşimin ve taşımaların çoğunlukla
ihmal edilmesine rağmen SİH’lerin yapısı gereği yerleşimin modele dahil edilmesi
önem arz etmektedir. Aksi halde genel SİH tanımından uzaklaşılmış olunacaktır.
Çalışma bazı noktalarıyla literatürdeki çalışmalardan farklılık göstermektedir.
Literatür incelendiğinde SİH’nin çizelgelenmesi ile ilgili matematiksel model
geliştirme ve sezgisel model önerme konusunda yetersizlikler olduğu görülmektedir.
SİH çizelgeleme problemi ile ilgilenen araştırmacılar toplam çizelgeleme ufkunu
dönemlere ayırmış ve her bir operasyonun bu dönem başlarında işleme
başlayabileceklerini varsaymışlardır. Bu varsayım önerilen modellerin sistemin
gerçek performansını açıklamasına engel olmaktadır. Dönem uzunluğu büyük
seçildiğinde sistem performansı daha da kötüleşmekte bunun aksine düşük
seçildiğinde de çözüm zamanı uzamaktadır. Herhangi bir işin öncül operasyonu
bitmiş olmasına ve ardıl operasyonunu yapacak makinenin boş olmasına rağmen
ardıl operasyonun gereksiz olarak dönem başını beklemesi geliştirilen modellerin
yetersiz olduğunu göstermektedir. Araştırmacılar tarafından yapılan bir diğer
varsayımda bir işin ardışık operasyonlarının ardışık dönemlerde başlaması
gerektiğidir. Sanal hücre kavramının anlaşılabilmesi açısından bu varsayım önemli
olsa da sistemin genel performansının temsil edilmesi noktasında önerilen modeli
yetersiz kılmaktadır. Tez çalışmasındaki önerilen model ise bu varsayımlardan
arındırılmış ve daha net sistem performansı sunmaktadır. Ayrıca taşıma zamanlarının
da modele dahil edilmesi, tezin literatürdeki mevcut diğer çalışmalardan olan farkını
ortaya koymaktadır.
31
4. SİH ÇİZELGELEME PROBLEMİNİN KLASİK ÇİZELGELEME
PROBLEMLERİ AÇISINDAN İNCELENMESİ
SİH çizelgeleme problemini incelemeden önce bu probleme klasik çizelgeleme
problemleri
açısından
bakılması
faydalı
olacaktır.
Bu
çerçevede
kısaca
çizelgelemenin karar verme sürecindeki etkisinden ve ÜPK işlemleri açısından
önemi üzerinde durulacaktır.
Çizelgeleme genel olarak sınırlı sayıda kaynağın zaman ekseninde görevlere
atanması olarak tanımlanmaktadır. Bir ya da daha fazla amacın en iyilenmesini
hedefleyen bir karar verme sürecidir. Kaynaklar bir atölyedeki makineler, bir inşaat
sahasındaki işçiler, bir havaalanındaki uçuş pistleri olabilir. Görevler bir üretim
sürecindeki operasyonlar, bir havaalanındaki kalkışlar ya da inişler, bir inşaat
projesindeki aşamalar olabilir. En iyilenmek istenen amaçlar da çeşitli formlarda
olabilir. En çok kullanılan çizelgeleme amaçlarından (ölçütlerinden) birisi en son işin
en son makinedeki tamamlanma zamanının en küçüklenmesidir. Bir diğer amaç
teslim tarihinden sonra tamamlanan işlerin sayısının en küçüklenmesi olabilir.
Çizelgelerin verilen amaçlar üzerinde ne derece etkili olduğu açık olmayabilir.
“Rastgele bir çizelgeyi dikkate almak yerine iyi bir çizelge elde etmek için zaman
harcamaya değer mi?” sorusu akla gelebilir fakat iyi bir çizelge genellikle sistem
performansı üzerinde önemli bir etkiye sahiptir.
4.1. Çizelgelemenin Organizasyon İçerisindeki Yeri ve Önemi
Çizelgeleme fonksiyonu bir organizasyon ya da sistem üzerindeki diğer
fonksiyonlarla sıkı bir bağlantıya sahip olmak zorundadır. Bu bağlantılar sistemden
bağımsız olabilir ya da bir durumdan diğerine çok büyük farklılıklar gösterebilir.
Bir imalat sisteminde siparişler serbest bırakılmalı ve teslim tarihleri ile ilgili işlere
dönüştürülmelidir. İşler genellikle iş merkezi içindeki makineler tarafından verilen
sırada işlenmek zorundadır. İşler o iş için meşgul olan makineler önünde operasyonu
başlatabilmek için belirli süre beklemek zorunda kalabilirler. Yüksek önceliğe sahip
32
işler makinelerde işleme diğer işlere göre önce başlayabilirler. Bir üretim sistemi
içerisindeki işlem görecek olan işlerin detaylı çizelgelemesi operasyonların
kontrolünü ve etkinliğini sürdürebilmek için gereklidir.
Çizelgeleme fonksiyonu organizasyon içerisindeki birkaç önemli fonksiyonla daha
etkili bir ara yüze sahip olmalıdır. Çizelgeleme işlemleri tüm organizasyon için orta
ve uzun vadeli planlama işlemlerinin gerçekleştirildiği üretim planlama sürecinden
etkilenir. Bu süreç üst seviyede ürün karışımını ve uzun dönemli kaynak tahsisini
eniyilemek için stok seviyelerini, talep tahminlerini ve kaynak ihtiyaçlarını dikkate
almalıdır. Bu planlama fonksiyonu tarafından alınan kararlar çizelgeleme üzerinde
etkili olabilir. Çizelgeleme ayrıca atölyeden girdiler alır. Atölyede oluşan makine
arızalanmaları ya da tahmin edilenden daha uzun işlem zamanları gibi beklenmedik
olaylar dikkate alınmalıdır çünkü bu olaylar çizelgeler üzerinde çok büyük etki
yaratabilirler. Şekil 4.1 bir imalat sistemindeki bilgi akışını göstermektedir.
Üretim planlama, ana
üretim çizelgeleme
Kapasite
durumu
Çizelgeleme
kısıtları
Siparişler, talep
tahminleri
Miktarlar,
teslim tarihleri
Malzeme ihtiyaçları,
Malzeme
planlama, kapasite
ihtiyaçları
planlama
Atölye siparişleri,
serbest bırakılma zamanları
Çizelgeleme ve yeniden
çizelgeleme
Çizelgenin
performansı
Ayrıntılı
çizelgeleme
Dağıtım
Atölye
durumu
Atölye yönetimi
İş
yükleme
Veri
toplama
Atölye
Şekil 4.1. Bir imalat sistemindeki bilgi akış diyagramı[Pinedo, 1995]
33
Çizelgelemenin ÜPK süreci içerisindeki öneminden bahsettikten sonra Atölye Tipi
Çizelgeleme Problemi (ATÇP) üzerinde durulacaktır. Çünkü SİH çizelgeleme
problemi açısından oldukça büyük bir önem teşkil etmektedir.
4.2. Atölye Tipi Çizelgeleme Problemi (ATÇP)
ATÇP endüstri de en sık kullanılan çizelgeleme problem tipleri arasındadır ve
kombinatoriyel eniyileme problemleri içerisindeki en zor problemlerden birisidir
[Sönmez ve Baykasoğlu, 1998]. ATÇP’de verilen n adet iş m adet makinede

işlenecektir. Her bir j işi nj adet operasyon sırasından o j1 , o j 2 , , o jn j
 oluşmaktadır.
ojh (j işinin h. operasyonunu) önceden tanımlanmış mjh makinesinde operasyon yarıda
kesilmeden
pjh
zaman
birimi
kadar
işlem
görecektir.
Operasyonlar
o j1 , o j 2 , , o jn j öncelik kısıtını ihlal etmeden sırayla işleneceklerdir. ATÇP belirli bir
performans ölçütü altında makineler üzerinde uygun bir operasyon sırası oluşturması
işleminden oluşur. ATÇP için en çok kullanılan performans ölçütü Cmax yani en son
işin en son makinedeki tamamlanma zamanıdır. Cmax amaç fonksiyonu, Cj j işinin
tamamlanma zamanını göstermek üzere max(C1,…,Cn) olarak tanımlanabilir. Lawler
ve ark. (1982)’nin notasyonunu kullanarak Jm//Cmax probleminin NP-Zor problem
sınıfında olduğu Garey ve ark. (1976) tarafından ispatlanmıştır. Yani bu problemi
makul zamanlar içerisinde çözebilecek bir algoritma şu ana kadar bulunmamıştır ve
bulunması zor gözükmektedir [Garey ve ark., 1976].
ATÇP için birçok yaklaşım önerilmiştir. Dağıtım kuralları, matematiksel
programlama, yapay zeka teknikleri benzetim metotları ve sezgiseller kullanılan
metotlar arasındadır. Matematiksel programlama kullanılarak bu probleme en iyi
çözümün bulunmasının çok zaman alıcı olduğu belirtilmiştir. Bu sebepten birçok
araştırmacı meta-sezgisel metotlarının bu problem üzerinde uygulanmasıyla
uğraşmışlardır. ATÇP problemi ile ilgili çok geniş bir literatür mevcuttur.
4.3. Esnek Atölye Tipi Çizelgeleme Problemi (EATÇP)
ATÇP problemi için kesin çözüm veren bir algoritma olmamasına karşın, araştırma
çevrelerinde bu problemin daha karmaşık halini çözmeye çalışma gayreti vardır. Bu
34
problem Esnek Atölye Tipi Çizelgeleme Problemi (EATÇP) olarak bilinmektedir.
EATÇP’yi modelleme ve çözme ihtiyacı modern makinelerin artık birbiriyle örtüşen
kabiliyetlerinin olmasından kaynaklanmaktadır [Baykasoğlu ve ark., 2004]. Bir
operasyonun gidebileceği alternatif rotalar varken bunları dikkate almadan önceden
belirlenmiş rotalar üzerinden gidilmesi imalat sisteminin gerçek performansını
yansıtmayacaktır.
EATÇP ATÇP’nin genelleştirilmiş bir halidir ve ATÇP’nin bütün özelliklerini ve
karmaşıklıklarını içermektedir. EATÇP’de geleneksel çizelgeleme problemleri (her
bir operasyonun başlama zamanı) haricinde bir de rota politikasını (her bir
operasyona hangi makinenin atanacağı) tayin etmek gerekmektedir. EATÇP
endüstride çok karşılaşılan bir çizelgeleme problemidir. EATÇP’de, Her bir j işi nj


adet operasyon sırasından geçmektedir o j1 , o j 2 , , o jn j . ojh (j işinin h. operasyonu)
verilen bir Ajh makine seti içerisinden sadece birinde işlenecektir. ojh operasyonunun i
makinesindeki işlem zamanı Pijh (Pijh>0) zaman birimi kadardır. Böylece EATÇP her
bir ojh operasyonu için bir makine M  o jh   Ajh seçmek ve başlama zamanını tjh
bulmaktır.
EATÇP probleminde iki iş için Bruker ve Schlie (1983) polinomial zamanlı bir
algoritma önermişlerdir. Rota seçildiğinde, EATÇP ATÇP’ye dönüşeceği için
çizelgeleme ve rotalama kararlarının ayrık bir şekilde değerlendirildiği ilk çalışmalar
Akella ve Chong (1984), Bona ve Brandimarte (1990) ve Brandimarte (1993)
tarafından yapılmıştır.
Daha sonra Jurish (1992) rotalama ve çizelgelemeyi eşzamanlı olarak incelemiştir.
Daha sonra (Dauzère-Pérès ve Paulli, 1997), Mastrolilli ve Gambardella (2000),
Kacem ve ark. (2002), Xia ve Wu. (2005), Gao ve ark. (2008) problem üzerinde
meta-sezgisel metotların kullanılmasıyla ilgili çalışmalar yapmışlardır.
SİH çizelgelenmesi probleminde her bir işin rotası farklı olduğu için ve her bir
operasyonun
içinde
alternatif
makineler
olduğundan
problem
EATÇP’ye
35
benzemektedir. Buna ek olarak problemin tanımında işlerin partiler halinde geldiği
ve partilerin bölünmesine izin verildiğinden bir sonraki alt bölümde parti
bölünmesinden bahsedilecektir.
4.4. Parti Bölünmesi
Geleneksel çizelgeme problemlerinde, işlerin bölünmediği ve bir işin herhangi bir
operasyonunun ardıl makineye gönderilmeden önce öncül makinede tamamlanması
gerektiği varsayılır [Glass ve Potts, 1998]. Ancak bir iş birbirinin aynı birçok
parçadan oluşuyorsa o işin operasyonlarının ardışık makineler arasında üst üste
binmesine müsaade edilerek iş daha küçük alt partilere bölünebilir. Çok aşamalı
üretim sistemlerinde işlerin alt partilere ayrılması işine parti bölünmesi adı verilir
[Chen ve Steiner, 1998].
Parti bölünmesi kavramı ilk olarak Reiter (1966) tarafından önerilmiştir ve
Eniyilenmiş Üretim Teknolojisi (EÜT) ile yakından ilgilidir [Şen ve Benli, 1999].
Parti bölünmesi ile ilgili literatürün çok büyük bir kısmı Cmax’ın en küçüklenmesi ile
ilgilidir [Chen ve Steiner, 1999].
Parti bölünmesinin etkisini daha iyi anlayabilmek için bir örnek üzerinde tartışalım.
Şekil 4.2’de görüldüğü gibi iki iş ve iki makineli akış tipi bir üretim sistemi olsun. İş
1 ve İş 2 sırasıyla ikiye ve üçe bölünsün. İş 1 ve İş 2’nin makine 1’deki işlem
zamanları 6 zaman birimi ve makine 2’deki işlem zamanları ise sırasıyla 4 ve 3
zaman birimi olsun. Şekil 4.2-a parti bölünmesi olmadığında Cmax değeri 15 ancak
Şekil 4.2-b partilerin bölündüğü durumda Cmax değeri 13 olmaktadır yani daha iyi bir
sistem performansı gözükmektedir.
36
(a)
M1
1
2
1
M2
zaman
2
10
6
15
12
(b)
M1
1
1
2
1
M2
zaman
3
2
1
5
6
2
2
8
2
2
9
10
11
12
13
Şekil 4.2. İki makineli akış tipi için iki çizelge (sayısal veriler işleri gösteriyor) (a) alt
partilerin olmadığı çizelge (çizelge 1); (b) alt partilerin olduğu çizelge
(çizelge 2)
Genel olarak parti bölünmesinin amacı her bir ürün için alt parti sayılarını, her bir alt
partinin büyüklüğünü ve alt partilerin işlem sıralarını bulmaktır. Böylelikle
ilgilenilen performans ölçütü en iyilenir [Zhang ve ark., 2005]. Ancak problem
genellikle çözülemediği için bu genel amaçtaki bütün faktörler dikkate alınmayabilir.
Aşağıdaki terimler parti bölünmesi ile ilgili farklı durumları özetlemektedir. Detaylar
için [Kalir ve Sarin, 2001] çalışması incelenebilir.

Tek ürün/Çok ürün: Tek bir ürün ya da birden fazla ürünün dikkate alınmasıdır.
SİH çizelgeleme probleminde birden fazla ürün üzerinde durulmuştur.

Sabit/Eşit/Tutarlı/Değişken alt parti büyüklüğü: Sabit alt parti büyüklüğü tüm
ürünler/işler için bütün alt partilerin tüm aşamalarda eşit sayıda parça içerdiği
durumu yansıtmaktadır. Eşit alt parti büyüklüğü her bir iş için, alt parti
büyüklüklerinin eşit olduğu durumu gösterir. Sabit ve eşit alt parti büyüklükleri
arasındaki tek fark sadece birden fazla ürün için olmasıdır. Tutarlı alt parti
büyüklüğü bir iş alt parti sayılarının üretim aşamalarından geçerken değişmediği
durumlar için kullanılır. Değişken alt parti büyüklüğü alt parti büyüklükleri ile
ilgili hiçbir kısıtlamanın olmadığı durumlar için kullanılır. Bu tezde kullanılan alt
parti büyüklüğü tutarlı alt parti büyüklüğü şeklindedir. Bir işin alt partilerinin
sayısı o işin işleneceği tüm makinelerde (operasyon rotası) aynıdır.
37

Boş Beklemesiz/Boş beklemeli: Boş beklemesiz durumda belirli bir üretim
aşamasındaki alt partiler bekleme olmadan ardı ardına işlem görürler. Ancak boş
beklemeli durumda alt partiler üretim aşamalarından geçerken beklemeler
olabilir. Tezde alt partilerin herhangi bir üretim aşamasında beklemelerin
olabileceği varsayılmıştır. Diğer durumda üretim sisteminin gerçek performansı
yansıtılmamaktadır.

Beklemesiz/Beklemeli Çizelgeler: Beklemesiz çizelgelerde her bir alt parti bir
önceki aşamada işlendikten hemen sonra bir sonraki alt partiye aktarıldığı
varsayılmaktadır. Beklemeli çizelgelerde ise bir alt parti ardışık üretim aşamaları
arasında bekleyebilmektedir. Tezde alt partilerin üretim aşamaları arasında
bekleyebileceği kabul edilmiştir.

Bağımlı
Hazırlık/Bağımsız
hazırlık/Hazırlık
yok:
Eğer
bağımlı
hazırlık
gerekliyse, herhangi bir aşamada hazırlık alt parti mevcut olana kadar
başlayamaz. Bağımsız hazırlık için alt partilerin mevcut olup olmamasından
bağımsızdır. Bazen de hazırlık zamanları ihmal edilir ya da oluşmaz. Tez
çalışmasında parti hazırlık zamanının olmadığı varsayılmaktadır.

Kesikli/sürekli alt partiler: Kesikli alt partiler için alt parti büyüklüğünün
tamsayı olması gerekmektedir. Sürekli alt partiler için böyle bir kısıtlama yoktur.
Tez çalışmasında alt parti büyüklüklerinin kesikli değerler aldığı kabul
edilmektedir çünkü üretim yapılan işlerin tamsayı olmaması gibi bir durum
yoktur.

Birbirine karışan/karışmayan alt partiler: Çok ürünün söz konusu olduğu bir
ortamda birbirine karışan alt partilere izin verildiyse, j ürününün alt partilerinin
sırası k ürününün alt partileri tarafından yarıda kesilebilir. Birbirine karışmayan
alt partilerde, bir ürünün alt partileri başka bir ürünün alt partileri tarafından
engellenemez. Tez çalışmasında alt partilerin operasyonların başka bir ürünün alt
partileri tarafından kesilmediği varsayılmıştır.
4.5. SİH Çizelgeleme Probleminin Karmaşıklığı
Bundan önceki üç bölümde SİH çizelgeleme problemine benzerlik göstermesi
açısından kısaca ATÇP’den, EATÇP’den ve parti bölünmesinden bahsedildi.
38
ATÇP’de her bir işin işlem rotası birbirinden farklıdır ve bu problemin NP-Zor
problem sınıfında olduğu Gayer ve ark. (1976) tarafından ispatlanmıştır [Gayer ve
ark., 1976]. EATÇP’de ise ATÇP’ye ek olarak her bir operasyon için tek makine
yerine
bir
alternatif
makineler
seti
bulunmaktadır.
Böylece
EATÇP’de
operasyonların çizelgelenmesine ek olarak birde operasyonlara makine ataması da
dikkate alınacağı için EATÇP, ATÇP’den daha karmaşık bir problemdir. SİH
çizelgelenmesi problemi EATÇP probleminin tüm zorluğunu içermektedir. SİH
çizelgelenmesi probleminde EATÇP’ye ek olarak parti bölünmesinin de olduğu
dikkate alınmıştır. Parti bölünmesi işlemi problemin tipi önemli olmaksızın problemi
daha zor hale getirmektedir. Bunlara ek olarak makinelerin arasındaki taşımalarda
dikkate alınacağı için SİH çizelgeleme problemi NP-Zor sınıfında bir problem
olduğu garanti edilir. Yani problem için kabul edilebilir zamanlarda en iyi sonucu
verebilecek bir algoritmanın bulunması şu an için mümkün değildir.
39
5. ÖNERİLEN MATEMATİKSEL MODEL
SİH’nin çizelgelenmesi ile ilgili şu ana kadar yapılan çalışmaların tümü Drolet
(1989), Mak ve Wang (2002), Mak ve ark. (2005), Mak ve ark. (2007) HİS’ye benzer
şekilde SİH’de hücre oluşturmanın önemine değinmişlerdir. Sanal imalat hücresi
fikrinin anlaşılmasını artırmak için, toplam çizelgeleme zamanını dönemlere
bölmüşlerdir ve bir işin bir operasyonu başladığı zaman ardışık operasyonun bir
sonraki dönemde başlaması gerektiğini ve operasyonların sadece dönem başlarında
başlayabileceğini varsaymışlardır. Örneğin ojh, j işinin h. operasyonu olduğu
düşünülürse ve zaman aralığının 5 saniye olduğu varsayılırsa Şekil 5.1’de görüldüğü
gibi etkin olmayan bir şekilde operasyonlar makinelere atanır.
Makineler
o1,3
o2,2
M3
M2
o1,1
M1
o2,1
0
5
10
o1,2
15
20
25
30
35
40
Zaman (sn.)
Makinelerdeki boş beklemeler
Şekil 5.1. Toplam çizelgeleme ufkunun zaman aralıklarına bölünmesinin verimsizliği
Böyle bir çizelgeleme stratejisi açıkça görüldüğü gibi makineler arasında gereksiz
boş beklemelerin oluşmasına neden olmaktadır. Bu sebepten daha etkin bir
çizelgeleme modeli geliştirilmesi gerekmektedir. Önerilen matematiksel modelde
gereksiz boş beklemeler oluşmayacak ve bir işin ardışık operasyonları çizelgeleme
ölçütünü eniyileyecek şekilde öncelik kısıtlarını ihlal etmeden istenilen zaman
biriminde başlayabilecektir. Bir sonraki bölümde SİH çizelgeleme probleminin
tanımı verilecektir.
5.1. Problemin Tanımı ve Varsayımlar
SİH çizelgeleme problemi m adet makine ve n adet işten oluşmaktadır. Her bir j işi nj


adet operasyon sırasından geçmektedir o j1 , o j 2 ,, o jn j . ojh (j işinin h. operasyonu)
verilen bir Ajh makine seti içerisinden sadece birinde işlenecektir. ojh operasyonunun i
makinesindeki işlem zamanı Pijh (Pijh>0) zaman birimi kadardır. İşler partiler halinde
40
üretilmektedir ve j işinin parti hacmi Nj birimdir. Her bir operasyon için birden fazla
alternatif makine olduğu için her bir işin parti hacminin alt partilere bölünebileceği
dikkate alınmıştır. Böylece bir işin ardışık operasyonların üst üste binmesi söz
konusudur. j işinin p alt partisinde üretilecek olan miktar ilgili işin tüm operasyonları
için aynıdır. Makinelerin üretim alanı içerisinde farklı noktalara yerleştirildiği
dikkate alınmış ve herhangi bir ojh operasyonu i makinesinde tamamlandıktan sonra
oj,h+1 operasyonu k makinesinde işlenmeye başlamadan önce dik zaman birimi kadar
taşıma süresinin geçmesi gerekmektedir. Böylelikle SİH çizelgeleme problemi ojh
operasyonu için bir makine seçmek M  o jh   Ajh , j işinin p alt partisinde üretilecek
olan Vjp miktarını bulmak ve ilgili iş ve alt parti için başlama zamanı tjhp’yi
bulmaktır.
Problemle ilgili varsayımlar aşağıdaki gibidir. Tüm işlerin çizelgelemeye
başlandığında hazır olduğu ve çizelgeleme tamamlanana kadar sisteme başka bir işin
gelmediği varsayılmıştır. Tüm işlerin operasyon sıralarının önceden tanımlı olduğu
ve problemle ilgili operasyonların işlem zamanları, parti hacimleri, makineler arası
taşıma zamanları bilgilerinin bilindiği kabul edilmektedir. Alt parti sayısının
problemdeki bütün işler için eşit ve önceden bilindiği kabul edilmektedir.
Makinelerde hazırlık zamanı oluşmadığı varsayılmaktadır. Makinelerin yerlerinin
değiştirilemeyeceği kabul edilmektedir. Herhangi bir işin bir operasyonu bitmeden
diğer bir operasyon başlayamaz. Her bir iş bir makineyi en fazla bir kez ziyaret
edebilir. Makine bozulmaları ve bakım politikaları ihmal edilmektedir.
5.2. Karışık Tam Sayılı Programlama (KTSP) Modeli
Problemin tanımı ve varsayımları verildikten sonra bu bölümde SİH çizelgelenmesi
için geliştirilen Karışık Tam Sayılı Programlama (KTSP) modeli verilecektir.
Parametreler
i,k
: makine sayısı (i,k=1,…,m)
j
: iş sayısı (j=1,…,n)
41
h
: operasyon sayısı (h=1,…,hj)
p
: alt parti sayısı (p=1,…,L)
l
:her bir makine için atanan operasyonların sayısı (l=1,…,li)
Nj
: j işi için üretilecek parti büyüklüğü
Pijh
: ojh operasyonu için i makinesindeki birim işlem zamanı.
dik
: i ve k makineleri arasındaki taşıma zamanı.
M
: çok büyük bir sayı
Karar Değişkenleri
Cmax
: en son işin en son makinedeki tamamlanma zamanı.
Vjp
: j işinin p alt partisinde üretilecek olan parça miktarı.
Yijhp
: 1 eğer ojh operasyonunun p. alt partisi için i makinesi seçildiyse, 0 dd.
Xijhlp : 1 eğer ojh operasyonunun p. alt partisi i makinesinde l. sırada yapılacaksa, 0
dd.
Zikjhp
: 1 eğer ojh operasyonu i makinesinde ve oj,h+1 operasyonu k makinesinde
yapılacaksa, 0 dd.
tjhp
: ojh operasyonunun p alt partisi için başlama zamanı.
Tmil
: i makinesinde l sıradaki işin başlama zamanı.
Minimize Cmax
(5.1)
Modelin amacı Eş. 5.1 en son işin en son makinedeki tamamlanma zamanının en
küçüklenmesidir. Cmax değeri ne kadar düşük olursa imalat sistemi içerisindeki
makinelerin kullanım oranları daha yüksek olmaktadır. Atölye tipi ortamlarda da bu
çizelgeleme ölçütü sıklıkla kullanılmaktadır.
Kısıtlar

Cmax  t jh j p  V jp Pijh j  M 1  Yijh j p

i, j , p
(5.2)
42
Eş. 5.2 modeldeki Cmax değerinin sistemdeki tüm işlerin tüm alt partilerine ait son
operasyonların bitiş zamanından büyük ya da eşit olması gerektiğini garanti
etmektedir. Burada o jh j
operasyonunun alternatif makine setleri içerisinden
hangisine atanacağı bir karar değişkeni olduğu için Yijh j p ikili değişkenin alacağı
değere göre kısıt genelleştirilmiştir.
V
jp
 Nj
j
(5.3)
p
Eş. 5.3 sistemdeki herhangi bir j işinin tüm alt parti büyüklüklerinin ilgili işin parti
büyüklüğüne eşit olması gerektiğini göstermektedir. Alt parti sayıları önceden
bilindiği için toplama alt parti indisi üzerinden yapılmaktadır.
t jhp  V jp Pijh  M 1  Yijhp    dik Z ikjhp  t j ,h 1, p
i, k , j , p, h : i  k , h  h j (5.4)
k
Eş. 5.4 bir işin herhangi bir alt partisi için ardıl operasyonun en erken öncül
operasyonda işlemin tamamlanıp ardıl makineye ilgili makineler arasındaki taşıma
zamanı kadar bir süre geçtikten sonra başlayabileceğini göstermektedir.
Tmil  V jp Pijh  Tmi ,l 1  M 1  X ijhlp 
i, j , h, l , p : l  li
(5.5)
Eş. 5.5 herhangi bir makinede işlenecek ardışık işler için ardıl işin başlama
zamanının en erken öncül iş bittikten sonra başlayabileceğini belirtmektedir.
Tmil  t jhp  M 1  X ijhlp 
i, j , h, l , p
(5.6)
Tmil  t jhp  M 1  X ijhlp 
i, j , h, l , p
(5.7)
Eş. 5.6 ve Eş.5.7’nin beraber değerlendirilmesi gerekmektedir. Xijhlp değişkeni 1
değerini aldığında yani j işinin h. operasyonu p alt partisi için i makinesinde l. sırada
yapılacaksa i makinesindeki l sırasındaki işin j işinin p alt patisine ait h operasyonu
43
olduğunu ve bunların başlama zamanlarının birbirine eşit olması gerektiğini ifade
eder. Xijhlp değişkeni model içerisinde çok ayrı bir öneme sahiptir çünkü işlere ait
operasyonların başlama zamanlarıyla makinelere atanan operasyonların başlangıç
zamanı açısından aynı eksene oturtulmasını sağlamaktadır. Bu değişkenin modele
dahil edilmesi bazı doğrusal olmayan kısıt setlerinin modelden kaldırılmasına
yaramaktadır.
 X
j
h
ijhlp
1
i, l
(5.8)
p
Eş. 5.8 herhangi bir i makinesinin l. sırasına en fazla bir operasyon atanabileceğini
gösterir.
 Y
ijhp
i
1
j , h
(5.9)
p
Eş. 5.9 bir j işinin p alt partisine ait h. operasyonunun alternatif makineler kümesi
içerisinden herhangi bir makinede yapılması gerektiğini göstermektedir.
X
ijhlp
 Yijhp
i, j , h, p
(5.10)
l
Eş. 5.10 denge kısıtıdır ve Yijhp değişkeni 1 değerini alırsa yani j işinin h.
operasyonunun p alt partisi i makinesinde yapılacaksa bu operasyon i makinesinde
herhangi bir l sırasında yapılmak zorundadır.
2Z ikjhp  Yijhp  Ykj , h 1, p
i, k , j , h, p : h  h j
(5.11)
Z ikjhp  Yijhp  Ykj , h 1, p  1
i, k , j , h, p : h  h j
(5.12)
Eş. 5.11 ve Eş. 5.12’nin birlikte dikkate alınması gerekmektedir. Bu iki kısıt
doğrusallaştırma için kullanılan kısıt setleridir. Z ikjhp değişkeni aslında Yijhp ve
Ykj ,h 1, p değişkenlerinin çarpımı olarak sisteme dahil edilmiştir. Doğrusal olmayan
44
terimleri modelden kaldırmak için yukarıdaki kısıtlar sisteme katılmıştır. j işinin p
alt-partisi için ardışık operasyonları h ve h+1 sırasıyla i ve k makinelerinde
işlenecekse (Yijhp=1 ve Yk,j,h+1,p=1) ancak bu şartlarda Zikjhp değeri 1 olacağını aksi
halde 0 olacağını göstermektedir.
V jp  M  Yijhp
j , h, p
(5.13)
i
Eş. 5.13 herhangi bir j işinin bir p alt partisi için h. operasyonu herhangi bir
makinede yapılacaksa j işinin p alt partisinde üretilecek miktar (Vjp) 0’dan büyük
olacaktır aksi halde 0 olacaktır.
Cmax  0
(5.14)
V jp  0 ve tamsayı
j , p
(5.15)
t jhp  0
j , h, p
(5.16)
Tmil  0
i, l
(5.17)
Yijhp  0,1
i, j , h, p
(5.18)
X ijhlp  0,1
i, j , h, l , p
(5.19)
Z ikjhp  0,1
i, k , j , h, p
(5.20)
Eş. 5.14-Eş. 5.20 modeldeki değişkenlerin negatif olmama kısıtlarıdır.
5.3. KTSP Modelinin Performansının Genel Değerlendirmesi
Üzerinde çalışılan bir probleme matematiksel model önerildikten sonra aynı
probleme bu kez bir meta-sezgisel yaklaşım önermenin nedeni problemin
karmaşıklığından dolayı büyük boyutlu problemlerde matematiksel modelin etkin
sonuçlar verememesi ve çözüm zamanının çok uzamasıdır. Deneysel çalışma
bölümünde çözümlerin ayrıntılı bir analizi yapılacak olmasına karşın problem için
neden bir sezgisel algoritma geliştirildiğini göstermek için KTSP modelinin problem
seti üzerindeki performansı incelenecektir.
45
Modelin performansını görmek için 720 problemden oluşan çok geniş bir problem
seti oluşturulmuştur. Bu problem seti oluşturulurken dikkate alınan parametreler İş
Sayısı (İS), Makine Sayısı (MS), Alt Parti Sayısı (APS) ve Taşıma Zamanının İşlem
Zamanına oranı (TZ/İZ)’dır. Bu parametrelerden sırasıyla 8, 2, 3 ve 3 seviye
seçilerek toplam 8×2×3×3=144 kombinasyon oluşturulmuştur. Her bir kombinasyon
için de 5 farklı rassal problem üretilmiş ve toplam 144×5=720 adet rassal problem
üretilmiştir. Bu 720 problemin her birinin çözümü için toplam 2 saat süre tanınmıştır.
2 saatlik süre içerisinde en iyi çözüm bulunamadığı takdirde varsa tam sayılı çözüm
aranmıştır. Bu süre içerisinde hiçbir çözümün bulunamadığı problemlerde olmuştur.
Çizelge 5.1 ve Şekil 5.2 KTSP modelinin ürettiği çözümlerin analizi için
konulmuştur. Çizelge 5.1’deki “ÇY” ilgili kombinasyona ait toplam 15 tane problem
içerisinde bulunamayan çözümlerin sayısını vermektedir. “EÇ” ifadesi ilgili
kombinasyon içinde kaç tanesine en iyi çözümü bulunduğunu göstermektedir. “TÇ”
ise ilgili parametre kombinasyonuna ait problemler içinde kaç tanesine tam sayılı
çözüm bulunduğunu göstermektedir. 720 problem içerisinde 511 tane tam sayılı
çözüm, 119 tanesinde en iyi çözüm bulunmuş 90 tane probleme de 2 saat içerisinde
herhangi bir çözüm bulunamamıştır. Bulunan en iyi çözümlerin çok büyük bir kısmı
iş sayısının düşük ve alt parti sayısının 1 olduğu yani partilerin bölünmediği durumda
bulunmuştur. Ayrıca çözüm bulunamayan problemlerin çok büyük bir kısmı alt parti
sayısının 3 olduğu durumlarda görülmüştür. Bu durum alt parti sayısının artışının
problemin zorluk derecesini ciddi bir şekilde artırdığını göstermektedir.
Böylece 720 problemin sadece 119 tanesinde (%16) en iyi çözümün bulunması
problemin matematiksel olarak ifade etmenin yanında kısa zamanda en iyi ya da en
iyiye yakın çözümlerin getirilmesi açısından sezgisel bir algoritmanın önerilmesi
gerektiğini ortaya koymaktadır. Bu nedenle bir sonraki bölümde GA yaklaşımı
sunulacaktır.
46
Çizelge 5.1. KTSP modelinden elde edilen sonuçların çözüm tipleri açısından analizi
İş Sayısı
Makine Sayısı
Alt Parti Sayısı
Çözüm Tipi
ÇY
2
6
3
2
8
3
2
10
3
3
12
4
3
14
4
3
16
4
3
18
4
3
20
4
Genel Toplam
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
EÇ
15
3
15
3
14
1
15
2
4
11
15
14
2
9
14
10
3
11
6
8
6
8
5
3
5
1
2
1
1
2
90
119
Toplam
TÇ
12
15
12
15
1
14
15
13
11
1
2
6
1
5
4
4
9
2
9
15
12
15
15
15
15
15
10
14
15
13
15
15
14
15
15
12
15
15
15
15
15
15
15
15
511
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
720
47
15
Frekanslar
12
9
ÇY
6
EÇ
TÇ
3
0
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
2
(MS)
3
(MS)
6 (İS)
2
(MS)
3
(MS)
8 (İS)
2
(MS)
3
(MS)
10 (İS)
3
(MS)
4
(MS)
3
(MS)
4
(MS)
12 (İS)
14 (İS)
Param etre Seviyeleri
3
(MS)
4
(MS)
16 (İS)
3
(MS)
4
(MS)
18 (iS)
3
(MS)
4
(MS)
20 (İS)
Şekil 5.2. KTSP modelinde elde edilen sonuçların grafiksel olarak yorumlanması
48
6. SİH’NİN ÇİZELGELENMESİ İÇİN GENETİK ALGORİTMA (GA)
YAKLAŞIMI
Modelin karmaşıklığının çok fazla olmasından dolayı geliştirilen KTSP modelinin
büyük boyutlu problemlerde yetersiz kaldığı bir önceki bölümde gösterilmişti. Bu
amaçla probleme kısa zamanda iyi çözümler verebilecek bir meta-sezgisel
algoritmanın geliştirilmesi gerektiği açıktır. GA yaklaşımı ilk olarak Holland (1975)
tarafından literatüre dahil edilmiştir. GA birçok kombinatoriyel eniyileme
problemlerinin çözümündeki etkileyici performansından dolayı sık bir şekilde
kullanılmaktadır. Bu performansından dolayı SİH’nin çizelgelenmesinde de
kullanılacaktır.
GA genellikle tüm bireyleri içeren (kromozom olarak da bilinir) rassal olarak
üretilmiş başlangıç yığını ile çözüme başlar. Önceden tanımlanmış bir nesil süresi
boyunca çözümler, evrimsel teoriyi taklit amacıyla geliştirilmiş çaprazlama ve
mutasyon operatörleriyle iyileştirilmeye çalışılır. Algoritma her bir nesil sonunda en
iyi bireyleri tutmayı hedeflemektedir.
6.1. Kromozom Gösterimi
Kromozom gösterimi uygun bir bireyin temsil edilmesi açısından son derece
önemlidir. Etkin olmayan ya da problemin yapısına çok uygun olmayan bir gösterim
algoritmanın performansının düşmesine ve hantallaşmasına neden olabilir.
SİH’nin çizelgelenmesi problemi operasyonlara hangi makinelerin atanacağı,
operasyonların çizelgelenmesi ve her bir işin alt partisinde ne kadar parçanın
üretileceği kararlarının birleşiminden oluşmaktadır. Çalışmada bir kromozom 4
vektörden oluşmaktadır. (i) makine atama vektörü (burada v1 olarak adlandırılmıştır),
(ii) operasyon sıra vektörü (burada v2 olarak adlandırılmıştır), (iii) ilgili operasyonun
hangi alt partiye ait olduğunu gösteren vektör (burada v3 olarak adlandırılmıştır), (iv)
ilgili operasyona ait alt parti için ne kadar parça üretileceğini gösteren vektör (burada
v4 olarak adlandırılmıştır).
49
Bir temsili örnek üzerinden gitmek kromozomun nasıl oluşturulduğunu anlamak
açısından faydalı olacaktır. Varsayalım ki çizelgelenecek 4 iş var ve A, B, C ve D
olmak üzere 4 farklı makine tipi mevcut. Buna ek olarak alt parti sayısının da 2
olarak belirlendiğini düşünelim. Makine tipleri A, B, C ve D sırasıyla 2, 3, 2 ve 2
adet makineden oluşmaktadır. Çizelge 6.1 makine tiplerini ve her bir makine tipine
ait makine numaralarını göstermektedir. Çizelge 6.2 ise her bir iş için parti
büyüklüklerini ve operasyon sıralarını göstermektedir.
Çizelge 6.1. Makine tipleri ve her bir makine tipine ait makineler
Makine tipi
A
B
C
D
Makine numarası
1,2
3,4,5
6,7
8,9
Çizelge 6.2. İşlerin parti büyüklükleri ve operasyon sıraları
İş numarası
1
2
3
4
Parti Hacmi
24
32
13
9
Operasyon sırası
(C)(A)
(A)(B)(C)
(B)(C)(D)
(D)(A)
Her bir makine atama vektöründe v1(r), r. pozisyona yerleştirilmiş operasyon için
atanan makineyi göstermektedir. Şekil 6.1 makine atama vektörünü göstermektedir.
Kromozom uzunluğu toplam operasyon sayısı ile alt parti sayısının çarpımına eşittir.
Örnek problemde toplam 10 adet operasyon olduğu için ve alt parti sayısı da 2 olarak
verildiği için kromozom uzunluğu 10×2=20’dir. Şekil 6.1’de örneğin, 4. pozisyon
birinci alt parti için o2,2 operasyonunu göstermektedir ve bu operasyon için üç
makine atanabilir bunlar makine 3, makine 4 ve makine 5’dir. o2,2 operasyonuna
ikinci alt parti için atanan makinede 14. sıradaki 3 numaralı makinedir.
Permütasyon tipi gösterim operasyon sıralarını göstermek için uygun bir yol gibi
görünebilir fakat öncelik ilişkilerinden dolayı üretilecek çözümler uygun çözüm
olmayabilir. Atölye tipi çizelgeleme problemi için Gen ve ark. (1994) alternatif bir
50
yol önermişlerdir: Her bir operasyonu kendi bağlı bulunduğu iş numarası ile
göstermekte ve daha sonra bunları verilen bir kromozomda ortaya çıkış sırasına göre
yorumlamaktadırlar. Bu metot, SİH’nin çizelgelenmesinde operasyon sıra vektörünü
göstermek için kullanılabilir. Her bir j işi nj sıradaki operasyonu göstermek için, alt
parti sayısı ile nj değerinin çarpım sayısı kadar kromozomda gözükmektedir. Örnek
olarak Şekil 6.2’de gösterilen operasyon sırası aşağıda gösterilen sıralı operasyon
listesi şeklinde yorumlanır:
(o3,1)2→ (o2,1)1→ (o4,1)2→ (o4,1)1→ (o1,1)1→ (o3,1)1→ (o2,1)2→ (o1,2)1→ (o3,2)1→ (o4,2)1→
(o2,2)1→ (o3,2)2→ (o2,2)2→ (o2,3)2→ (o1,1)2→ (o3,3)2→ (o3,3)1→ (o2,3)1→­(o4,2)2→ (o1,2)2
(oj,h)p: j işinin p. alt partisine ait h. operasyonunu göstermektedir.
Kromozomdaki üçüncü vektör (v3(s)) ilgili operasyonun hangi alt partiye ait olduğunu
göstermektedir. Dördüncü vektör ise ilgili operasyonun ilgili alt partisi için atanacak
alt parti büyüklüğünü göstermektedir. Örnek problemde birinci iş (V1,1=15 ve
V1,2=9), ikinci iş (V2,1=20 ve V2,2=12), üçüncü iş (V3,1=10 ve V3,2=3) ve dördüncü iş
(V4,1=4 ve V4,2=5) olarak alt parti büyüklükleri belirlenmiştir.
Vj,p: j işinin p alt partisinden üretilecek miktar.
Pozisyon: r
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Operasyon o1,1 o1,2 o2,1 o2,2 o2,3 o3,1 o3,2 o3,3 o4,1 o4,2 o1,1 o1,2 o2,1 o2,2 o2,3 o3,1 o3,2 o3,3 o4,1 o4,2
Makine Atama: v1(r)
6
2
2
4
7
5
6
8
9
1
7
2
1
3
7
4
7
9
8
2
Şekil 6.1. Makine atama vektörünün gösterimi
Pozisyon: öncelik s
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19
20
Operasyon sırası: v2(s)
3
2
4
4
1
3
2
1
3
4
2
3
2
2
1
3
3
2
4
1
Atanan alt parti: v3(s)
2
1
2
1
1
1
2
1
1
1
1
2
2
2
2
2
1
1
2
2
Alt parti hacmi: v4(s)
3
20
5
4
15 10 12 15 10
4
20
3
12 12
9
3
10 20
5
9
Şekil 6.2. Operasyon sırası, atanan alt parti numarası ve alt parti hacmi vektörlerinin
gösterimi
51
Bu tip bir kromozom gösterimi sayesinde her üretilen kromozom daima uygun
çözüm sırasını temsil eder ve kodlama alanı permütasyon tipi gösterime göre oldukça
azalır.
Belirli sayıda başlangıç çözümü dört vektörlü gösterime sadık kalınarak rassal olarak
üretilmiştir. Daha sonra, deşifreleme işlemi kromozomları SİH çizelgeleri haline
dönüştürür ve genetik operatörler bize çözüm kalitesini artırmak için yardımcı
olurlar.
6.2. Kromozomların SİH Çizelgelerine Dönüştürülmesi ve Yeniden Sıralanması
Genel olarak bir kromozom operasyonlar arasına gereksiz bekleme zamanları
eklenebileceğinden sınırsız sayıda çizelgeye dönüştürülebilir. Bu çalışmada
operasyonlar mümkün olduğunca sola doğru sıkıştırılacaktır. Genel olarak bir
operasyonun
başlama
zamanı
makineler
üzerindeki
operasyon
sıralarını
değiştirmeden ve başka bir operasyonun başlama zamanını geciktirmeden daha
erkene alınamıyorsa böyle bir çizelgeye aktif çizelge denir. Ancak bir operasyonun
başlama zamanı makineler üzerindeki operasyon sıralarını değiştirerek erken
başlatılamıyorsa bu çizelgelere de yarı aktif çizelge denir. Baker (1974) Cmax gibi
bilinen bir performans ölçütü dikkate alındığında en iyi çizelgenin aktif çizelgeler
arasından birisi olduğunu göstermiştir. Burada önerilen yeniden sıralama
mekanizması ile yapılan işlem de kromozomları bir aktif çizelge haline
dönüştürmektir.
Aynı alt parti için, aynı işin operasyonları arasındaki öncelik kısıtlarından dolayı, bir
makine üzerindeki operasyonlar arasında boş bekleme zamanları olabilir. Diyelim ki
bj,h, oj,h operasyonunun başlangıç zamanı ve cj,h de oj,h operasyonunun tamamlanma
zamanı olsun. oj,h operasyonu ancak öncülü olan oj,(h-1) operasyonu bittikten sonra
işlemine başlayabilir. t iB de başlayan ve t iE de biten verilen bir [t iB , t iE ] zaman
aralığında oj,h operasyonunu i makinesine yerleştirmek için;
52
B j ,h
max{t iB , c j ,h } if h  2

t iB
if h  1
(6.1)
eğer oj,h operasyonunun başlangıcından zaman aralığının bitimine kadar oj,h için
yeterli boşluk varsa [t iB , t iE ] aralığında operasyon yapılacaktır yani;
max{t iB , c j ,( h 1) } if h  2
t  B
if h  1
t i  Pj ,h
E
i
(6.2)
Önerilen deşifreleme yapısı ile her bir operasyon, sıra vektöründe izlendiği sırayla
ilgili makinelere birer birer atanacaktır. oj,h operasyonu i makinesine çizelgelenirken,
i makinesinde o ana kadar atanmış olan işler soldan sağa doğru en erken mevcut
zaman aralığını bulmak için kontrol edilir. Eğer böyle bir zaman aralığı mevcutsa,
oraya atanır, aksi halde i makinesinin sonuna atanır. Bu prosedür Şekil 6.3’de
gösterilmektedir.
(o3,1)1
Makine3
Makine2
(o3,2)1
(o1,2)1
(o2,1)1
(o1,2)1
Makine1 (o1,1)1
1
2
3
4
5
6
7
8
9
10
Zaman
Şekil 6.3. Yeniden sıralama metodunun Gantt şeması üzerinde gösterimi
Önerilen deşifreleme ve yeniden sıralama metodu bir operasyonun atanacağı makine
üzerindeki en erken zaman aralığını aramasına olanak sağlar. Böylece operasyon sıra
vektöründe v operasyonundan sonra gelen bir r operasyonu v operasyonundan daha
önce çizelgelenebilir. Ebeveynlerden gelen kalıtsal mirasın yeni bireylere aktarılması
için operasyon sıra vektörünün ilgili deşifrelenmiş çizelgedeki sıraya uygun olarak
yeniden sıralanması gerekmektedir.
53
Çaprazlama
ve
mutasyon
operatörleri
kromozoma
uygulanmadan
önce
kromozomdaki operasyon sırası deşifrelenmiş çizelgedeki operasyonların başlama
zamanına göre yeniden sıralanır.
6.3. Çaprazlama Operatörü
Gen ve ark. (1994)’nın gösteriminde operasyon sıra vektöründeki her bir gen direkt
olarak bir işin operasyonunu göstermiyor ancak içerik tabanlı bir operasyona işaret
ediyordu. Bu yüzden, çaprazlama operatörü için ebeveynlerin çözümlerini taşıyan
operasyon sırasına sahip çocukların oluşturulması çok zordur. Kalıtımı güçlendirmek
için Gen ve ark. (1994)’nın gösterimindeki operasyon sıra vektörü permütasyon tipi
gösterime dönüştürülmüştür. Herhangi bir operasyonu bağlı bulunduğu iş numarası
ve operasyon sırasıyla göstermek doğal olsa da, bir operasyon Şekil 6.4’de görüldüğü
gibi sabit ID yardımıyla da gösterilebilir. Permütasyon sırasında operasyonlar
öncelik sıralarına göre listelenir. Şekil 6.2’deki operasyon sırası Şekil 6.5’de
gösterilen permütasyon gösterim tipine dönüştürülebilir.
Sabit ID (r)
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20
Operasyon o1,1 o1,2 o2,1 o2,2 o2,3 o3,1 o3,2 o3,3 o4,1 o4,2 o1,1 o1,2 o2,1 o2,2 o2,3 o3,1 o3,2 o3,3 o4,1 o4,2
Atanan alt parti: v3(r) 2 1 2 1 1 1 2 1 1 1 1 2 2 2 2 2 1 1 2 2
Şekil 6.4. Her bir operasyon için sabit ID gösterimi
2
3
Operasyon sırası: v2(s) 16 3
Atanan alt parti: v3(s) 2 1
19
9
2
1
Pozisyon: öncelik s
1
4
5
6
7
1
6
13
1
1
2
8
9
10 11 12 13 14 15 16 17 18 19 20
2
7
10 4 17 14 15 11 18 8
5 20 12
1
1
1
1
1
2
2
2
2
2
1
2
2
İşaret edilen operasyon o3,1 o2,1 o4,1 o4,1 o1,1 o3,1 o2,1 o1,2 o3,2 o4,2 o2,2 o3,2 o2,2 o2,3 o1,1 o3,3 o3,3 o2,3 o4,2 o1,2
Şekil 6.5. Operasyon sıra vektörünün permütasyon tipinde gösterimi
Kısmi haritalanmış, sıralı, çevrim gibi ve daha birçok çaprazlama operatörü
permütasyon tipi gösterim için önerilmiştir. Bu çalışmada operasyon sıra vektörü için
sıralı çaprazlama operatörü kullanılacaktır.
54
Ebeveyn 1
16 3 19 9
1
6 13 2
7 10 4 17 14 15 11 18 8
Yeni birey
9 11 3 19 1
6 13 2
7 10 4 17 14 15 16 12 8 20 5 18
Ebeveyn 2
6 13 9 10 11 14 7
3 19 1
5 20 12
4 16 12 8 15 2 17 20 5 18
Şekil 6.6. Operasyon sırası üzerinde sıralı çaprazlama operatörünün gösterimi
Sıralı çaprazlama operatörünün adımları aşağıdaki gibidir:
Adım 1: Bir ebeveynden bir alt küme oluşturmak için iki tane geni rassal olarak seç.
Adım 2: Bu ebeveynden alınan alt kümeyi aynı pozisyonlarda yeni bireye kopyala.
Adım 3: Çocuğun operasyon vektöründeki atanmamış pozisyonlara atama yapmak
için, ikinci ebeveyndeki tüm operasyonları soldan sağa kontrol et. Eğer ilgili
operasyon birinci ebeveyndeki alt kümeden gelmişse, ikinci ebeveynin operasyon
sırasındaki bir sonraki operasyona geç. Aksi halde, ikinci ebeveynden gelen ilgili
operasyonu yeni bireyin operasyon vektöründeki ilgili pozisyonuna yerleştir. İkinci
ebeveynden gelen operasyonlar, yeni bireyin tam bir birey olması için gerekli
operasyonlardır.
Bu prosedür Şekil 6.6’da görülmektedir.
Şekil 6.6’da üretilen yeni bireyin operasyon sırası aşağıdaki gibi olacaktır:
(o4,1)1→ (o1,1)2→ (o2,1)1→ (o4,1)2→ (o1,1)1→ (o3,1)1→ (o2,1)2→ (o1,2)1→ (o3,2)1→ (o4,2)1→
(o2,2)1→ (o3,2)2→ (o2,2)2→ (o2,3)2→ (o3,1)2→ (o1,2)2→ (o3,3)1→ (o4,2)2→­(o2,3)1→ (o3,3)2
Uygulanan çaprazlama operatöründe yukarıda da görüldüğü gibi 12. pozisyondaki
(o3,2)2 operasyonu ile 15. pozisyondaki (o3,1)2 operasyonları öncelik kısıtlarını ihlal
etmektedir. Bu sebepten çaprazlama operatöründe üretilen sonuçlar bir tamir
mekanizmasına girmekte ve oluşturulan yeni birey aşağıdaki gibi uygun çözüm
şekline getirilmektedir. Bu mekanizma Şekil 6.7‘de gösterilmektedir.
55
Tamir öncesi uygun
9 11 3 19 1
olmayan çözüm
6 13 2
7 10 4 17 14 15 16 12 8 20 5 18
Tamir sonrası
uygun çözüm
6 13 2
7 10 4 16 14 15 17 12 8 20 5 18
9 11 3 19 1
Şekil 6.7. Çaprazlama operatöründe tamir mekanizmasının gösterimi
Makine atama vektörü için geliştirilen çaprazlama operatörü operasyon sırası için
geliştirilen çaprazlama operatörü ile ilişkilidir. Yeni bireydeki operasyon hangi
ebeveynden geldiyse yeni bireyde ilgili operasyona atanan makine operasyonun
geldiği ebeveyndeki atanan makine olmaktadır. Yeni bireydeki atanacak alt parti
büyüklükleri belirlenirken şu şekilde bir yol izlenmiştir: Herhangi bir işin belirli bir
alt parti büyüklüğü atanırken her iki ebeveynde ilgili işin ilgili alt partisine ait parti
büyüklüklerinin ortalaması alınarak yeni bireye atanmaktadır.
Sıralı çaprazlama operatörü tarafından oluşturulan yeni bireyin operasyon sıra
vektörü yeni bireyler yığına dahil edilmeden önce her bir operasyonu ilgili iş
numarasına çevirerek yeniden Gen ve ark. (1994)’nın gösterimine dönüştürülür.
6.4. Mutasyon Operatörü
Mutasyon operatörü ebeveynlerinden bir miktar farklı yeni bireyler üretmek için
uygulanmaktadır. Bu çalışmada gen tabanlı mutasyon uygulanmıştır. Makine atama
vektörleri için gen tabanlı mutasyon her hangi bir r genini (1≤r≤N) rassal olarak
seçer. Sonra, mutasyon operatörü tarafından seçilen gendeki operasyon için mevcut
makinelerden farklı bir atama yapılır. Operasyon sıra vektörleri için gen tabanlı
mutasyon belirli bir olasılıkla herhangi bir s (2≤s≤N) genini rassal olarak seçer. s
geni için, v2(s-1) ile v2(s) yer değiştirir.
6.5. Alt Parti Büyüklüklerinin Belirlenmesi
SİH’nin çizelgelenmesinde karar değişkenlerinden birisi de alt parti sayısının birden
büyük olduğu durumlarda alt parti büyüklüklerinin belirlenmesidir. Teorik olarak her
bir alt partiye atanan parça miktarlarının birerli değişimleri ile amaç fonksiyonu
değerinin alacağı değerlerin yeniden hesaplanması gereklidir. Ancak bu işlem
56
sezgisel algoritmaların doğasına uygun olmadığından ve hesaplama zamanını
artıracağından aşağıdaki gibi bir metot uygulanmıştır.
Algoritmanın başında rassal çözümler üretilirken her bir iş için parti büyüklüğü alt
partiler arasında eşit olarak dağıtılmıştır. Yeni üretilen bir birey çaprazlama ve
mutasyon operatörlerine tabi tutulduktan sonra ilgili operasyon sırası ve atanan
makineler değiştirilmeden sadece alt parti büyüklükleri değiştirilerek o birey için
daha iyi bir amaç fonksiyonu değeri elde edilip edilemeyeceği aranmıştır. Deneysel
çalışma kısmında da görüleceği gibi herhangi bir işin parti sayısı en az 5 (k) olacağı
kabul edilmiştir. Bu sebeple bir işin parti sayısının 5’li gruplara ayrılacağı
düşünülmüştür. Alt parti sayısının 2 olduğu durumda oluşacak senaryo sayısı k+1 (6)
kadar olmaktadır. Ancak alt parti sayısının 3 olduğu durumda oluşacak senaryo
sayısı (k+2)×(k+1)/2 (7×6/2=21) kadar olmaktadır. Buradan da görülebileceği gibi alt
parti sayısı arttığında oluşacak senaryo sayısı çok hızlı bir artış göstermektedir.
Çizelge 6.3 ve Çizelge 6.4 sırasıyla alt parti sayısının 2 ve 3 olduğu durumlar için alt
parti büyüklüklerini vermektedir.
Çizelge 6.3. 1 nolu iş için alt parti sayısının 2 olduğu 6 senaryo için alt parti
büyüklükleri
Senaryolar
1. alt parti büyüklüğü
2. alt parti büyüklüğü
1. Senaryo
V1,1=24×0/5=0
V1,2=24×5/5=24
2. Senaryo
V1,1=24×1/55
V1,2=24×4/519
3. Senaryo
V1,1=24×2/510
V1,2=24×3/514
4. Senaryo
V1,1=24×3/514
V1,2=24×2/59
5. Senaryo
V1,1=24×4/519
V1,2=24×1/55
6. Senaryo
V1,1=24×5/5=24
V1,2=24×0/5=0
57
Çizelge 6.4. 1 nolu iş için alt parti sayısının 3 olduğu 21 farklı senaryo için alt parti
büyüklükleri
Senaryolar
1. alt parti büyüklüğü
2. alt parti büyüklüğü
3. alt parti büyüklüğü
1. Senaryo
V1,1=24×0/5=0
V1,2=24×0/5=0
V1,3=24×5/5=24
2. Senaryo
V1,1=24×0/5=0
V1,2=24×1/55
V1,3=24×4/519
3. Senaryo
V1,1=24×0/5=0
V1,2=24×2/510
V1,3=24×3/514
4. Senaryo
V1,1=24×0/5=0
V1,2=24×3/514
V1,3=24×2/510
5. Senaryo
V1,1=24×0/5=0
V1,2=24×4/519
V1,3=24×1/55
6. Senaryo
V1,1=24×0/5=0
V1,2=24×5/5=24
V1,3=24×0/5=0
7. Senaryo
V1,1=24×1/55
V1,2=24×0/5=0
V1,3=24×4/519
8. Senaryo
V1,1=24×1/55
V1,2=24×1/55
V1,3=24×3/514
9. Senaryo
V1,1=24×1/55
V1,2=24×2/510
V1,3=24×2/59
10. Senaryo
V1,1=24×1/55
V1,2=24×3/514
V1,3=24×1/55
11. Senaryo
V1,1=24×1/55
V1,2=24×4/519
V1,3=24×0/5=0
12. Senaryo
V1,1=24×2/510
V1,2=24×0/5=0
V1,3=24×3/514
13. Senaryo
V1,1=24×2/510
V1,2=24×1/55
V1,3=24×2/59
14. Senaryo
V1,1=24×2/510
V1,2=24×2/59
V1,3=24×1/55
15. Senaryo
V1,1=24×2/510
V1,2=24×3/514
V1,3=24×0/5=0
16. Senaryo
V1,1=24×3/514
V1,2=24×0/5=0
V1,3=24×2/510
17. Senaryo
V1,1=24×3/514
V1,2=24×1/55
V1,3=24×1/55
18. Senaryo
V1,1=24×3/514
V1,2=24×2/510
V1,3=24×0/5=0
19. Senaryo
V1,1=24×4/519
V1,2=24×0/5=0
V1,3=24×1/55
20. Senaryo
V1,1=24×4/519
V1,2=24×1/55
V1,3=24×0/5=0
21. Senaryo
V1,1=24×5/5=24
V1,2=24×0/5=0
V1,3=24×0/5=0
6.6. Seçim
Önerilen GA yaklaşımında, seçim işlemi hem ebeveynlerin hem de yeni üretilen
bireylerin kurtulmak için eşit şansa sahip oldukları geniş bir yığın havuzunda
yapılmaktadır. Direkt uygunluk tabanlı yaklaşımın tartılama probleminin üstesinden
gelebilmek için sıralı secim uygulanmıştır. Metot gayet basittir: yığındaki tüm
bireyleri dikkate alan amaç fonksiyonları üzerinde performanslarına göre en iyiden
en kötüye sırala ve ranklarına göre bu çözümlerin hepsine bir seçilme olasılığı ata.
Her bir nesilde, belirli sayıdaki en iyi çözüm tutulacak ve geri kalan bireyler bir
58
sonraki nesle aktarılabilmek için rulet çemberiyle seçilecektir. Önerilen GA
yaklaşımının çatısı Şekil 6.8’de verilmektedir.
prosedür: Genetik Algoritma
girdi: HİS veri seti, GA parametreleri
çıktı: optimale yakın bir çizelge
başla
t←0;
Dört vektör gösterimli P(t)’yi başlat;
Deşifreleme metoduyla eval(P) için uygunluk değerini hesapla;
Operasyon başlangıç zamanına göre operasyon sırasını yeniden düzenle;
durdurma kriteri sağlanmamışsa
C(t)’yi elde etmek için sıralı çaprazlama operatörüyle P(t) yi çaprazla;
C(t)’yi elde etmek için gen tabanlı mutasyonla P(t) yi mutasyona uğrat;
Deşifreleme metoduyla eval(P(t), C(t)) uygunluk değerini hesapla;
P(t) ve C(t) den karışık örnekleme (mixed sampling) ile P(t+1)’i seç.
Operasyon başlangıç zamanına göre operasyon sırasını yeniden düzenle;
t←t+1;
bitir
çıktı optimale yakın bir çizelge;
bitir
Şekil 6.8. Önerilen genetik algoritma yaklaşımının yapısı
59
7. DENEYSEL ÇALIŞMA
Deneysel çalışma rassal olarak üretilmiş çok geniş bir veri seti üzerinde yapılmıştır.
Test problemlerinin üretilmesinde kullanılan parametreler ve seviyeleri Çizelge
7.1’de görülmektedir.
Çizelge 7.1. Deneysel çalışmada kullanılan parametreler ve seviyeleri
Parametreler
İş Sayısı
Parametre seviyeleri
Seviye sayısı
6, 8, 10, 12, 14, 16, 18, 20
8
2
Alt parti sayısı
İş sayısı 6, 8, 10 için 2 ve 3
İş sayısı 12, 14, 16, 18, 20 için 3 ve 4
1, 2, 3
Taşıma zamanının işlem zamanına oranı
0.5, 1, 2
3
Makine sayısı
3
İş sayısı diğer tüm çizelgeleme problemlerinde olduğu gibi problemin karmaşıklığını
belirleyen en önemli parametrelerden biridir ve bu parametre için 8 farklı seviye
belirlenmiştir. Makine tipi sayısı ise iş sayısının yarısı olarak belirlenmiştir. Örneğin
iş sayısı 6 olan tüm problemlerde makine tipi sayısının 3 olduğu kabul edilmiştir. Her
bir makine tipine ait en fazla makine sayısı için iş sayısı boyutuna göre 2 farklı
seviye belirlenmiştir. Alt parti sayısı da dikkate alınması gereken parametrelerden
biridir ve bunun için de 3 farklı seviye belirlenmiştir. Problemde taşıma zamanları da
dikkate alındığı için bu zamanları da bir eksene dayandırmak gerekmektedir. Bunun
için taşıma zamanının işlem zamanına oranı temel alınmış ve bunun için de 3 farklı
seviye seçilmiştir. Böylece 8×2×3×3=144 adet problem kombinasyonu mevcuttur.
Her bir problem kombinasyonu için de 5 farklı problem üretilmiş ve toplam
144×5=720 adet problem rassal olarak üretilmiştir. Böylesine geniş bir problem
setinin çözümü için gerekli olan prosedür Şekil 7.1’de verilmiştir.
60
Her bir parametre düzeyi için MS Excel’de
makro kullanarak test problemlerinin rassal
olarak üretilmesi ve dosyalara yazdırılması
Üretilen her bir test probleminin okunup
gerekli KTSP modelinin GAMS kodu
haline C++ kullanılarak dönüştürülmesi
Test problemlerinin çözümü için C++’da
GA modelinin geliştirilmesi
C++’da tasarlanan bir kullanıcı ara yüzü
ile problemlerin ardışık olarak seri bir
şekilde çözülmesi
Elde edilen KTSP modeli ile GA model
sonuçlarının MS Excel’de yorumlanması
ve raporlanması
Şekil 7.1. Deneysel çalışmanın akış şeması
Problem setinin rassal üretimi için Excel Makroları kullanılmıştır. Ayrıntılar için Ek1’i inceleyiniz. Geliştirilen KTSP modelleri GAMS/Cplex 22.5 paket programında
çözülmüştür. Ayrıntılar için Ek-2’yi inceleyiniz. Deneyler Intel Core 2 Duo 2.33
GHz işlemcili 1.0 GB Ram özelliklerine sahip kişisel bilgisayarda yapılmıştır. Test
problemlerinin üretilmesinde işlem zamanları alt sınırı 2 ve üst sınırı 10 zaman
birimi olan düzgün dağılıma uygun olarak üretilmiştir. İşlerin parti büyüklükleri alt
sınırı 5 ve üst sınırı 40 olan düzgün dağılıma uygun olarak üretilmiştir. İşlerin
operasyon sıraları rassal olarak üretilmiştir ve birbirlerinden farklıdır. İşlerin
geçeceği operasyon sayıları ise alt sınırı 2 ve üst sınırı ilgili problem setine ait
makine tipi sayısı arasında düzgün dağılıma uygun olarak üretilmiştir. KTSP
modelinin en iyi çözümü bulması için 2 saat süre ayrılmıştır. 2 saat içerisinde en iyi
çözüm bulunmadığı takdirde o ana kadar bulunmuş tamsayılı çözüm (üst sınır)
karşılaştırma olarak verilmiştir.
61
GA modeli ise Borland C++ programlama dilinde geliştirilmiştir. Ayrıntılar için Ek3’ü inceleyiniz. Deney koşulları sabit tutularak, GA modeli de Intel Core 2 Duo 2.33
GHz işlemcili 1.0 GB Ram özelliklerine sahip kişisel bilgisayarda çalıştırılmıştır.
GA’nın olasılıklı yapısından dolayı tutarlı sonuçlar elde etmek için her bir problem 5
kez çalıştırılmıştır. GA’da kullanılan parametreler uygun bir zaman aralığında tatmin
edici sonuçlar elde etmek üzere deneysel olarak ayarlanmıştır. Problem boyutunun
büyüklüğüne göre yığın hacmi 2000 ile 40000 arasında değişmektedir. Nesil sayısı
ise tüm problemler için sabit tutulmuş ve 1000 olarak seçilmiştir.
Bundan sonraki çizelge ve şekiller tüm problemler üzerinde KTSP modeli ile GA
modelinin karşılaştırma analizleri için verilmiştir. Çizelge 7.2, Çizelge 7.3, Çizelge
7.4 ve Çizelge 7.5’deki # deney numarasını, n toplam iş sayısını, q ilgili deney için
her bir makine tipine ait en büyük makine sayısını, L alt parti sayısını,
TZ
taşıma
İZ
zamanının işlem zamanına oranını, ÜS KTSP modeli için bulunan en iyi tamsayılı
çözümün amaç fonksiyonu (Cmax) değerini yani üst sınır değerini, AS KTSP modeli
için Cplex çözücüsünün bulduğu alt sınır değerini göstermektedir. ÜS
AS (%) KTSP
modeli için bulunan üst sınır ile alt sınır arasındaki sapmayı göstermektedir ve Eş.
7.1’deki gibi hesaplanmaktadır:
ÜS
AS (%) 
ÜS  AS
100
ÜS
(7.1)
CPU1 ilgili deney numarası için KTSP modelinin saniye cinsinden çözüm zamanını
göstermektedir. YığHac GA yaklaşımı için seçilen yığın hacmini göstermektedir.
AF(ort) GA’nın 5 çalıştırma sonunda amaç fonksiyonu değerlerinin ortalamasını,
AF(enk) ise bu 5 çalıştırma sonundaki en küçük amaç fonksiyonu değerlerini
göstermektedir. CPU2 ise GA’nın 5 çalıştırma sonundaki ortalama çalıştırma
AF ( ort )
(%) GA modeli ile KTSP modeli
zamanını saniye cinsinden göstermektedir. ÜS
çözümleri arasındaki farkın % cinsinden ifadesidir ve Eş. (7.2)’deki gibi
hesaplanmaktadır:
62
AF ( ort )
ÜS
(%) 
AF (ort )  ÜS
100
AF (ort )
(7.2)
Daha önce de belirtildiği gibi her bir deneyden 5 farklı problem üretilmiştir ve
tablolardaki değerler bu beş tane problemin ortalamasıdır. Çizelge 7.2 iş sayısının 6
ve 8 olduğu deneyler için verilmiştir ve incelendiğinde alt parti sayısının 1 olduğu
toplam 12 deneyin hepsinde ÜS
AS (%) değeri 0’ a eşittir yani en iyi çözümler
bulunmuştur. En iyi çözümlerin bulunduğu deneyler koyu olarak gösterilmiştir.
Ancak alt parti sayısının 2 olduğu durumlarda ÜS
AS (%) değerleri çok yükselmekte
hatta alt parti sayısı 3’e çıktığında iş sayısı çok küçük olsa da sapma değerleri çok
artmaktadır. Bu durum parti bölünmesinin problemi ne kadar zorlaştırdığını ortaya
koymaktadır. 8. ve 16. deneylere KTSP modeli alt sınır değeri dahi bulamamıştır.
Paralel şekilde çözüm zamanları da (CPU1) alt parti sayısının 2 ve 3 olduğu
durumlarda bir hayli yükselmektedir.
Alt parti sayısının 1 olduğu toplam 12 deneyin 12’sinde de GA en iyi sonuçlara
ulaşmıştır. Bu sonuç GA’nın probleme iyi sonuç getirebilmesi açısından
güvenilirliğini de ortaya koymaktadır. Alt parti sayısının 2 ve 3 olduğu durumlarda
GA’nın performansı daha da iyileştirilebilir ancak Bölüm 6.5’de belirtildiği gibi alt
partilere atanacak hacimlerin birerli değişimlerinin incelenmesi sezgisel metotların
doğasına aykırı olduğu için bu durum benimsenmemiştir. GA’nın çözüm zamanı 1 sn
civarında çok kısa bir süredir. Şekil 7.2 iş sayısı 6 ve 8 için KTSP modeli ile GA
modelinin karşılaştırmalı sonuçlarını vermektedir.
63
Çizelge 7.2. İş sayısının 6 ve 8 olduğu deneyler için özet tablosu
Problemle ilgili
parametreler
#
n
q
L
KTSP modeli
TZ
İZ
ÜS
AS
ÜS
AS (%)
GA yaklaşımı
CPU1
YığHac AF(ort) AF(enk)*
(sn.)
CPU2  AF ( ort ) (%)
ÜS
(sn.)
1 6
2
1
0,5
623,4
623,4 0,0
0,4
2000
623,4
623,4
0,1
0,0
2 6
2
1
1
639,2
639,2 0,0
5,3
2000
639,2
639,2
0,1
0,0
3 6
2
1
2
1013,6 1013,6 0,0
1,1
2000
1013,6 1013,6
0,1
0,0
4 6
2
2
0,5
378,4
226,7 40,1
5760,7 2000
490,7
480,4
1,3
22,9
5 6
2
2
1
573,8
268,4 53,2
5789,9 2000
723,8
703,6
1,3
20,7
6 6
2
2
2
727,6
473,8 34,9
7056,3 2000
867,0
842,0
1,3
16,1
7 6
2
3
0,5
428,2
10,2
97,6
7200,0 2000
593,1
573,6
0,6
27,8
8 6
2
3
1
473,4
0,0
100,0
7200,0 2000
608,3
588,8
0,7
22,2
9 6
2
3
2
804,0
113,4 85,9
7200,0 2000
983,2
955,4
0,6
18,2
10 6
3
1
0,5
608,0
608,0 0,0
5,4
2000
608,0
608,0
0,1
0,0
11 6
3
1
1
798,2
798,2 0,0
1,8
2000
798,2
798,2
0,1
0,0
12 6
3
1
2
942,0
942,0 0,0
20,3
2000
942,0
942,0
0,1
0,0
13 6
3
2
0,5
330,2
189,2 42,7
7200,0 2000
495,8
481,2
1,3
33,4
14 6
3
2
1
486,8
243,1 50,1
4359,8 2000
637,4
622,4
1,5
23,6
15 6
3
2
2
735,2
484,4 34,1
5763,3 2000
887,7
870,4
1,3
17,2
16 6
3
3
0,5
338,6
0,0
100,0
7200,0 2000
492,3
479,6
0,7
31,2
17 6
3
3
1
495,8
72,9
85,3
7200,0 2000
640,5
628,6
0,7
22,6
18 6
3
3
2
669,8
84,9
87,3
7200,0 2000
850,0
834,2
0,7
21,2
19 8
2
1
0,5
870,0
870,0 0,0
6,3
3000
870,0
870,0
0,2
0,0
20 8
2
1
1
1081,8 1081,8 0,0
3,2
3000
1081,8 1081,8
0,3
0,0
21 8
2
1
2
1529,0 1529,0 0,5
1440,9 3000
1529,0 1529,0
0,3
0,0
22 8
2
2
0,5
493,8
201,1 59,3
7200,0 3000
668,8
651,8
2,9
26,2
23 8
2
2
1
756,4
441,2 41,7
7200,0 3000
905,5
893,2
3,0
16,5
24 8
2
2
2
1077,4 582,7 45,9
7076,7 3000
1290,0 1266,2
3,0
16,5
25 8
2
3
0,5
413,0
26,8
93,5
7200,0 3000
588,6
573,4
1,5
29,8
26 8
2
3
1
605,2
24,6
95,9
7200,0 3000
765,4
746,0
1,7
20,9
27 8
2
3
2
965,0
312,6 67,6
7200,0 3000
1171,6 1153,4
1,6
17,6
28 8
3
1
0,5
869,2
869,2 0,0
49,3
3000
869,2
869,2
0,3
0,0
29 8
3
1
1
947,6
947,6 0,0
76,6
3000
947,6
947,6
0,3
0,0
30 8
3
1
2
1258,0 1258,0 0,0
1555,8 3000
1258,0 1258,0
0,3
0,0
31 8
3
2
0,5
440,2
162,1 63,2
7200,0 3000
598,5
587,6
6,0
26,5
32 8
3
2
1
718,0
435,1 39,4
7156,8 3000
831,8
810,8
5,0
13,7
33 8
3
2
2
1016,0 510,4 49,8
6564,0 3000
1196,9 1166,4
4,4
15,1
34 8
3
3
0,5
451,6
49,7
89,0
7200,0 3000
597,6
583,2
1,6
24,4
35 8
3
3
1
598,0
27,0
95,5
7200,0 3000
755,2
742,6
1,6
20,8
36 8
3
3
2
853,0
164,0 80,8
7200,0 3000
1108,2 1068,4
1,6
23,0
64
1800
1600
1400
Cmax
1200
1000
KTSP
GA
800
600
400
200
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
0
İş Sayısı (6)
İş Sayısı (8)
Deney no
Şekil 7.2. İş sayısının 6 ve 8 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması
Çizelge 7.3 iş sayısının 10 ve 12 olduğu durumlardaki analizleri içermektedir.
Tablodaki N/A ilgili deney numarası için çözüm bulunamadığını göstermektedir. 43,
44, 45, 49, 51, 52 ve 58. deneylerde KTSP modelinin hiçbir sonuç bulamadığı
görülmektedir. Bu deneylerin de yine alt parti sayısının 2 ve 3 olduğu durumlarda
ortaya çıkmaktadır. 61, 62, 63, 67, 70 ve 71. deneylerde KTSP modelinin yine
probleme hiçbir alt sınır değeri bulamadığı görülmektedir. Bu 36 deney içerisinde
KTSP modeli altı deney için en iyi çözümü bulmuştur. En iyi çözümlerin bulunduğu
bu deneyler yine koyu olarak gösterilmiştir. Bu deneylerin hepsinde alt parti sayısı
1’dir. Burada yine KTSP modeli için çözüm zamanlarının modeli durdurma ölçütü
olan 7200 saniyeye dayandığı görülmektedir.
En iyi çözümün bulunduğu 6 deneyde GA’da en iyi çözümleri yakalamıştır. GA’nın
çözüm zamanının (CPU2) 15 sn civarlarında bir süre olduğu görülmektedir.
Şekil 7.3 incelendiğinde ise GA’nın performansının giderek arttığı ve çözüm
kalitesinin KTSP modeline daha da yaklaştığı açıkça görülmektedir. 6 tane deney
için KTSP modelinin çözüm getiremediği yine görülmektedir.
65
Çizelge 7.3. İş sayısının 10 ve 12 olduğu problemler için deneyler için özet tablosu
Problemle ilgili
parametreler
#
n
q
KTSP modeli
TZ
İZ
L
ÜS
AS
ÜS
AS (%)
GA yaklaşımı
CPU1
CPU2  AF ( ort ) (%)
YığHac AF(ort) AF(enk)*
ÜS
(sn.)
(sn.)
37 10
2
1
0,5
1062,6 1062,6 0,0
17,2
5000
1062,6 1062,6
0,5
0,0
38 10
2
1
1
1300,8 1300,8 0,0
106,4
5000
1300,8 1300,8
0,5
0,0
39 10
2
1
2
1825,6 1782,1 2,4
1818,4 5000
1868,0 1819,8
0,6
2,3
40 10
2
2
0,5
555,0
117,3
78,9
7200,0 5000
864,7
839,6
10,0
35,8
41 10
2
2
1
810,0
810,0
0,0
5640,8 5000
810,0
810,0
10,9
0,0
42 10
2
2
2
1424,0 1340,0 5,9
7200,0 5000
1607,7 1580,6
10,1
11,4
43 10
2
3
0,5
N/A
N/A
N/A
7200,0 5000
863,4
4,0
N/A
44 10
2
3
1
N/A
N/A
N/A
7200,0 5000
1080,4 1061,8
4,1
N/A
45 10
2
3
2
N/A
N/A
N/A
7200,0 5000
1580,1 1542,4
4,4
N/A
46 10
3
1
0,5
984,0
969,1
1,5
3525,3 5000
1113,2 1068
0,6
11,6
47 10
3
1
1
1088,4 1044,6 4,0
1688,7 5000
1142,3 1120,6
0,6
4,7
48 10
3
1
2
1753,4 1455,2 17,0
4338,2 5000
1831,4 1739,8
0,6
4,3
49 10
3
2
0,5
N/A
863,5
14,1
N/A
N/A
N/A
7200,0 5000
844,4
844,8
50 10
3
2
1
919,0
87,5
90,5
7200,0 5000
1139,4 1106,6
12,6
19,3
51 10
3
2
2
N/A
N/A
N/A
7200,0 5000
1548,4 1519,6
13,4
N/A
52 10
3
3
0,5
N/A
N/A
N/A
7200,0 5000
741,5
722,2
3,6
N/A
53 10
3
3
1
859,5
1,8
99,8
7200,0 5000
1053,9 1032
4,3
18,4
54 10
3
3
2
1151,0 0,7
99,9
7200,0 5000
1426,5 1409,2
4,1
19,3
55 12
3
1
0,5
1235,8 1222,0 1,1
3734,6 10000 1293,0 1257,8
1,6
4,4
56 12
3
1
1
1562,0 1433,6 8,2
4380,7 10000 1654,2 1619,8
1,6
5,6
57 12
3
1
2
2276,7 2276,7 0,0
3421,0 10000 2276,7 2276,7
1,8
0,0
58 12
3
2
0,5
N/A
N/A
7200,0 10000 1132,2 1113,8
50,0
N/A
59 12
3
2
1
1181,7 0,7
99,9
7200,0 10000 1338,5 1318
50,4
11,7
60 12
3
2
2
1691,0 144,0
91,5
7200,0 10000 1905,4 1854,8
36,3
11,3
61 12
3
3
0,5
817,0
0,0
100,0
7200,0 10000 980,7
10,7
16,7
62 12
3
3
1
1149,0 0,0
100,0
7200,0 10000 1256,5 1224,8
10,6
8,6
63 12
3
3
2
1510,0 0,0
100,0
7200,0 10000 1767,2 1741
10,1
14,6
64 12
4
1
0,5
1161,7 1019,0 12,3
5808,4 10000 1240,8 1205,2
1,5
6,4
65 12
4
1
1
1400,7 1400,7 0,0
4344,1 10000 1400,7 1400,7
1,6
0,0
66 12
4
1
2
2400,0 2400,0 0,0
5762,9 10000 2400,0 2400,0
1,7
0,0
67 12
4
2
0,5
887,3
0,0
100,0
7200,0 10000 1125,2 1098,8
76,5
21,1
68 12
4
2
1
968,0
2,3
99,8
7200,0 10000 1223,0 1186,6
71,3
20,9
69 12
4
2
2
1691,8 168,0
90,1
7200,0 10000 1873,2 1819
64,2
9,7
70 12
4
3
0,5
771,8
0,0
100,0
7200,0 10000 904,4
10,8
14,7
71 12
4
3
1
1038,6 0,0
100,0
7200,0 10000 1180,8 1168,6
10,1
12,0
72 12
4
3
2
1617,4 4,2
99,7
7200,0 10000 1825,0 1790,8
10,3
11,4
N/A
956,8
877,6
66
3000
2500
Cmax
2000
KTSP
1500
GA
1000
500
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
0
İş Sayısı (10)
İş Sayısı (12)
Deney no
Şekil 7.3. İş sayısının 10 ve 12 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması
Çizelge 7.4 iş sayısının 14 ve 16 olduğu deneylerin analizini içermektedir. Bu
deneylerin hiç birisinde KTSP modeli en iyi çözümü bulamamıştır. Alt parti
sayısının 3 olduğu 12 problemin hiçbirisine de alt sınır geliştirememiştir. Bu yüzden
bu problemlerde ÜS
AS (%) değeri 100’dür. CPU1 değerleri yükselmeye devam
etmektedir ve 36 deneyin 29’unda üst sınır değeri olan 7200 saniyeye ulaşılmıştır.
GA modeli için ise çözüm zamanları ortalaması 50 saniye civarlarındadır.
Şekil 7.4 incelendiğinde 5 deneyde GA’nın KTSP modelinde daha iyi çözümler
verdiği görülmektedir. Diğer deneylerde de yine KTSP modeline çok yakın bir
performans göstermektedir.
67
Çizelge 7.4. İş sayısının 14 ve 16 olduğu problemler için deneyler için özet tablosu
Problemle ilgili
parametreler
#
n
q
L
TZ
İZ
KTSP modeli
ÜS
AS
ÜS
AS (%)
GA yaklaşımı
CPU1
Secs
YığHac
AF(ort) AF(enk)*
CPU2
Secs
 ÜSAF ( ort ) (%)
73 14 3
1 0,5
1476,2 985,6
33,2
5771,2 15000
1630,4
1607,0
3,4
9,5
74 14 3
1 1
1518,8 1137,2 25,1
5816,6 15000
1687,5
1653,8
3,3
10,0
75 14 3
1 2
2742,6 2025,8 26,1
5766,4 15000
2719,2
2648,2
3,5
-0,9
76 14 3
2 0,5
951,0 55,4
94,2
7200,0 15000
1277,2
1254,6
85,9
25,5
77 14 3
2 1
1248,0 52,1
95,8
7200,0 15000
1530,4
1482,6
91,4
18,5
78 14 3
2 2
1951,0 110,0
94,4
7200,0 15000
2250,8
2191,4
68,1
13,3
79 14 3
3 0,5
1010,2 0,0
100,0
7200,0 15000
1093,6
1073,0
31,0
7,6
80 14 3
3 1
1229,2 0,0
100,0
7200,0 15000
1320,1
1297,0
24,4
6,9
81 14 3
3 2
2127,6 0,0
100,0
7200,0 15000
2221,2
2194,2
27,4
4,2
82 14 4
1 0,5
1358,8 396,1
70,9
7200,0 15000
1498,1
1462,2
3,3
9,3
83 14 4
1 1
1572,0 686,2
56,3
7200,0 15000
1708,9
1673,4
3,3
8,0
84 14 4
1 2
2435,2 1564,6 35,8
7200,0 15000
2605,1
2500,6
3,0
6,5
85 14 4
2 0,5
863,0 58,1
93,3
7200,0 15000
1122,8
1103,0
128,2
23,1
86 14 4
2 1
1337,8 79,8
94,0
7200,0 15000
1564,6
1533,8
107,9
14,5
87 14 4
2 2
2093,6 20,8
99,0
7200,0 15000
2309,6
2263,4
89,0
9,4
88 14 4
3 0,5
851,6 0,0
100,0
7200,0 15000
1012,9
996,8
31,0
15,9
89 14 4
3 1
1274,4 0,0
100,0
7200,0 15000
1330,2
1302,0
25,0
4,2
90 14 4
3 2
2017,6 0,0
100,0
7200,0 15000
2134,4
2085,4
22,9
5,5
91 16 3
1 0,5
1707,8 1288,0 24,6
6259,9 30000
1844,8
1814,2
13,8
7,4
92 16 3
1 1
2057,8 1595,3 22,5
3048,7 30000
2094,2
2040,2
14,0
1,7
93 16 3
1 2
3178,8 2237,4 29,6
6746,1 30000
3035,9
2946,8
21,9
-4,7
94 16 3
2 0,5
1158,3 15,3
98,7
7200,0 30000
1341,0
1322,2
68,1
13,6
95 16 3
2 1
1584,6 23,2
98,5
7200,0 30000
1763,2
1730,0
103,1
10,1
96 16 3
2 2
2487,0 14,0
99,4
7200,0 30000
2571,3
2508,4
75,2
3,3
97 16 3
3 0,5
952,8 0,0
100,0
7200,0 30000
1053,8
1037,8
94,5
9,6
98 16 3
3 1
1641,6 0,0
100,0
7200,0 30000
1647,9
1627,2
95,9
0,4
99 16 3
3 2
2601,0 0,0
100,0
7200,0 30000
2473,5
2434,8
109,2
-5,2
100 16 4
1 0,5
1313,8 943,1
28,2
5292,5 30000
1481,2
1420,6
21,5
11,3
101 16 4
1 1
1958,4 617,7
68,5
7200,0 30000
2139,9
2090,4
39,9
8,5
102 16 4
1 2
2896,4 1104,3 61,9
7200,0 30000
3004,2
2895,8
31,4
3,6
103 16 4
2 0,5
1193,6 43,6
96,3
7200,0 30000
1382,9
1361,6
76,5
13,7
104 16 4
2 1
1501,0 24,1
98,4
7200,0 30000
1709,0
1677,6
74,5
12,2
105 16 4
2 2
2058,6 0,0
100,0
7200,0 30000
2293,0
2236,6
74,6
10,2
106 16 4
3 0,5
1191,2 0,0
100,0
7200,0 30000
1230,4
1214,8
127,4
3,2
107 16 4
3 1
1713,6 0,0
100,0
7200,0 30000
1649,4
1624,8
135,6
-3,9
108 16 4
3 2
2479,8 0,0
100,0
7200,0 30000
2402,2
2350,4
107,5
-3,2
68
3500
3000
Cmax
2500
2000
KTSP
GA
1500
1000
500
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
0
İş Sayısı (14)
İş Sayısı (16)
Deney no
Şekil 7.4. İş sayısının 14 ve 16 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması
Çizelge 7.5 iş sayısının 18 ve 20 olduğu deneylerin analizi için hazırlanmıştır. KTSP
modelinin giderek hantallaştığı ve performansının kötüleştiği görülmektedir. Alt parti
sayısının 3 olduğu 12 adet deneyin hiç birisinde KTSP modeli probleme alt sınır
geliştirememiştir. Diğer deneyler içinde ÜS
AS (%) değeri çok yüksektir. CPU1
değerlerinin 3’ü dışında hepsi yani 33 adet deney de 7200 saniyede sonlandırılmıştır.
GA’nın KTSP’ye göreli performansı artmış ve 36 deneyin 20’sinde daha iyi çözüm
bulmuştur. CPU2 değeri ise problemin boyutları büyüdüğü için yükselmiş ama
sadece 300 saniye civarlarındadır ve KTSP göre kıyaslanmayacak derecede iyidir.
Şekil 7.5 incelendiğinde de GA’nın KTSP modeline göre performansının daha da net
bir şekilde yükseldiği açıkça görülmektedir.
69
Çizelge 7.5. İş sayısının 18 ve 20 olduğu deneyler için özet tablosu
Problemle ilgili
parametreler
#
n
q
L
KTSP modeli
TZ
İZ
ÜS
AS
ÜS
AS (%)
GA yaklaşımı
CPU2
CPU1
YığHac AF(ort) AF(enk)*
Secs
Secs
 ÜSAF ( ort ) (%)
109 18
3
1
0,5
1642,4 996,6 39,3
6975,3
35000
1834,7
1795,8
23,5
10,5
110 18
3
1
1
2136,4 941,4 55,9
7200,0
35000
2299,9
2262,6
42,5
7,1
111 18
3
1
2
2937,6 1305,9 55,5
7200,0
35000
3066,1
3012,0
50,4
4,2
112 18
3
2
0,5
1434,8 39,3
97,3
7200,0
35000
1610,6
1569,8
125,1
10,9
113 18
3
2
1
1897,0 23,9
98,7
7200,0
35000
2041,4
1995,0
177,4
7,1
114 18
3
2
2
2703,2 9,9
99,6
7200,0
35000
2887,6
2822,4
129,2
6,4
115 18
3
3
0,5
1630,2 0,0
100,0
7200,0
35000
1474,2
1458,0
263,2
-10,6
116 18
3
3
1
2361,8 0,0
100,0
7200,0
35000
1767,2
1717,8
254,0
-33,6
117 18
3
3
2
3126,2 0,0
100,0
7200,0
35000
2672,2
2616,6
372,0
-17,0
118 18
4
1
0,5
1571,8 849,9 45,9
7057,5
35000
1823,2
1794,6
48,6
13,8
119 18
4
1
1
2067,0 1027,2 50,3
6510,7
35000
2405,8
2344,8
57,8
14,1
120 18
4
1
2
2993,2 952,1 68,2
7200,0
35000
3187,2
3081,6
60,0
6,1
121 18
4
2
0,5
1508,0 25,7
98,3
7200,0
35000
1551,1
1525,4
174,9
2,8
122 18
4
2
1
1994,2 4,3
99,8
7200,0
35000
1920,3
1879,0
172,6
-3,8
123 18
4
2
2
3247,6 29,9
99,1
7200,0
35000
3033,3
2961,8
184,5
-7,1
124 18
4
3
0,5
1930,4 0,0
100,0
7200,0
35000
1324,8
1299,2
366,2
-45,7
125 18
4
3
1
2502,0 0,0
100,0
7200,0
35000
1869,0
1822,2
340,1
-33,9
126 18
4
3
2
3192,6 0,0
100,0
7200,0
35000
2711,8
2655,8
310,8
-17,7
127 20
3
1
0,5
2156,4 711,8 67,0
7200,0
40000
2344,6
2281,8
229,0
8,0
128 20
3
1
1
2805,4 793,0 71,7
7200,0
40000
2912,3
2848,4
129,8
3,7
129 20
3
1
2
3420,2 944,5 72,4
7200,0
40000
3480,0
3394,2
136,5
1,7
130 20
3
2
0,5
2109,4 17,3
99,2
7200,0
40000
1773,3
1733,8
290,0
-19,0
131 20
3
2
1
3183,6 21,9
99,3
7200,0
40000
2421,6
2377,4
328,5
-31,5
132 20
3
2
2
3364,2 90,3
97,3
7200,0
40000
3246,0
3147,2
408,0
-3,6
133 20
3
3
0,5
1805,4 0,0
100,0
7200,0
40000
1534,5
1349,6
440,5
-17,7
134 20
3
3
1
2456,8 0,0
100,0
7200,0
40000
1899,9
1746,8
578,6
-29,3
135 20
3
3
2
3860,6 0,0
100,0
7200,0
40000
2960,4
2760,8
650,4
-30,4
136 20
4
1
0,5
1936,4 702,2 63,7
7200,0
40000
2309,8
2144,8
108,5
16,2
137 20
4
1
1
2479,6 387,4 84,4
7200,0
40000
2697,4
2414,4
130,2
8,1
138 20
4
1
2
3566,0 495,7 86,1
7200,0
40000
3696,2
3407,2
155,6
3,5
139 20
4
2
0,5
1708,6 26,0
98,5
7200,0
40000
1639,2
1498,8
425,9
-4,2
140 20
4
2
1
2126,4 13,6
99,4
7200,0
40000
2076,1
1890,8
309,7
-2,4
141 20
4
2
2
3464,6 7,5
99,8
7200,0
40000
3138,4
2829,4
309,1
-10,4
142 20
4
3
0,5
2128,8 0,0
100,0
7200,0
40000
1464,7
1441,0
732,7
-45,3
143 20
4
3
1
2235,0 0,0
100,0
7200,0
40000
1903,3
1862,4
673,4
-17,4
144 20
4
3
2
4052,8 0,0
100,0
7200,0
40000
3084,1
3020,2
694,5
-31,4
70
4500
4000
3500
Cmax
3000
2500
KTSP
2000
GA
1500
1000
500
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
0
İş Sayısı (18)
İş Sayısı (20)
Deney no
Şekil 7.5. İş sayısının 18 ve 20 olduğu problemler için KTSP modeli ile GA’nın
karşılaştırılması
71
8. SONUÇ VE ÖNERİLER
Günümüz endüstrisinde ürün hayat çevrimlerinin giderek kısalması ve ürüne olan
talebin çok değişkenlik arz etmesi üretim ve imalat sektörlerinde çok dinamik bir
yapının oluşmasına neden olmuştur. Bu dinamik ortamda hayatta kalabilen firmalar
kendi üretim süreçlerini sürekli olarak sorgulayan ve geliştirebilen firmalar olacaktır.
Firmaların ayakta kalabilmesi için bu dinamik yapıya adaptasyon sağlamalarının
dışında üretim maliyetlerini de düşürerek rakip firmalara karşı avantaj sağlamaları da
diğer bir önemli faktördür. Bu rekabetçi ortamda firmalar üretim süreçlerini
iyileştirmeye ve geliştirmeye çalışırken genellikle tesis yerleşim düzenlerinin
değiştirilmesi popüler bir yaklaşımdır.
Üretim süreçlerinin evrimsel geçmişine bakıldığında ilk olarak ürün talebinin yüksek
ve çeşitliliğin az olduğu durumlara uygun olarak ürün tipi yerleşim revaçtaydı. Rakip
firmaların çoğalması ve ürün çeşitliliğinin artması neticesinde fabrika yerleşimi süreç
tipi yerleşime kaymıştı. Ancak süreç tipi yerleşiminde özellikle hazırlık zamanının
yüksek olduğu durumlarda etkin çalışamaması ve çizelgeleme işlemlerinin takibinin
çok güç olmasından dolayı uygulamada sıkıntılar yaşanıyordu. Bu sıkıntıların
giderilmesi ve alternatif bir tesis yerleşimi olarak hücresel yerleşim literatüre
sunuldu. Hücresel yerleşimde benzer üretim gereksinimlerine sahip parçalar
gruplanarak parça aileleri oluşturuluyor ve bu parçaları işlemek üzere farklı üretim
yeteneklerine sahip makineler fiziksel olarak gruplandırılıp makine hücreleri
oluşturuluyordu. Kısacası tesis daha küçük birbirinden bağımsız alt sistemlere
bölünmüş oluyordu. Böylece iş akışları daha rahat, akış zamanları daha düşük ve
çizelgeleme işlemleri daha rahat kontrol ediliyordu. Fakat hücresel yerleşimde hücre
formasyonu oluşturulurken talebin durağan olduğu daha statik bir ortam varsayımı
yapılıyordu. Dinamik ortamlarda talep yapısının değişmesi mevcut hücre
yerleşimlerinin etkinliğini kaybetmesine darboğaz makinelerin oluşmasına ve üretim
zamanlarının yükselmesine neden olmaktaydı.
72
Bilgisayar teknolojisinin gelişmesiyle birlikte üretim sistemleri de bu gelişmeden
kendine düşen payı almak istemekteydi. Bu gelişime paralel olarak daha donanımlı
ve esnek ortamlara adapte olacak bir üretim sistemi önerilmişti. Esnek İmalat
Sistemleri (EİS) olarak adlandırılan bu üretim sisteminde yüksek donanımlı ve
birden fazla işlem kabiliyetine sahip makineler dinamik çevre koşullarına ayak
uydurabilmesi açısından göz dolduruyordu. Fabrika içi malzeme taşıma işlemlerinin
konveyör ya da otomatik yönlendirmeli araçlarla yapıldığı bu sistemler üretim
çağının tüm gereksinimlerine cevap veriyordu. Ancak bu sistemin ilk kurulum
maliyetinin çok yüksek olması maalesef birçok küçük ve orta boyutlu işletme
tarafından kullanılamamasına neden oluyordu. Bununla birlikte çizelgeleme işleri
çok zor kontrol ediliyordu.
1980’li yılların başlarında bazı araştırmacılar EİS’deki gibi esnek bir yapıya sahip
ancak kurulum maliyeti düşük, hücresel yerleşimde de olduğu gibi hücre içerisinde
parça akışının kolay olduğu bir imalat sistemi fikrini ilk kez önerdiler ve bu sistemi
Sanal İmalat Hücreleri (SİH) olarak isimlendirdiler. Bu tez çalışmasında göreli
olarak yeni olan bu üretim sistemi üzerinde durulmuştur. SİH genel olarak EİS ile
HİS’nin etkin özelliklerini bünyesinde toplayan melez bir üretim sistemidir. EİS’de
olduğu gibi bir operasyona birden fazla alternatif makine sunarak esneklik
sağlamaktadır. Aynı zamanda HİS’de olduğu gibi bir işin bir hücreye atandıktan
sonra düz bir şekilde akışına müsaade ederek HİS’ye de benzemektedir. Ancak
HİS’den farklı olarak farklı üretim yeteneklerine sahip makinelerin fiziksel olarak
gruplayıp sabit hücreler oluşturmak yerine hücreler geçici olarak oluşturulmaktadır.
Bir işin üretimine başlanacağında o işi yapacak olan makineler atanıp bir hücre
mantığıyla çalışacak ancak o işin üretimi bittiğinde ilgili hücre kaybolacaktır.
Kısacası hücreleme mantıksal bazda oluşturulacak ve hücreler geçici olacaktır.
SİH ile ilgili literatür incelendiğinde araştırmacıların sanal hücre ile ilgili
tanımlamalarının temel benzerlikleri olsa da bazı farklılıkları da barındırdığı
görülmüştür. SİH ile ilgili araştırmaların genel olarak iki başlık altında toplandığı
anlaşılmaktadır. Bunlar (i) SİH’nin tasarımı ile ilgili olarak yapılan çalışmalar ve (ii)
operasyonel
düzeyde
yapılan
çalışmalardır.
Operasyonel
düzeyde
yapılan
73
çalışmalarda genellikle parça ailesi tabanlı çizelgeleme kurallarının geliştirildiği
pasif sanal hücre yapıları ön plana çıkmaktadır. SİH’nin tasarımı ile ilgili
çalışmalarda daha geniş bir perspektiften problem ele alınmış ve daha uzun vadeli
kararlarla ilgilenilmiştir.
Bu tez çalışması SİH’nin tasarımı ile ilgilidir ve genel olarak çizelgeleme üzerinde
durmaktadır. Üretim çizelgeleme aşaması üretim planlama ve kontrol şeması altında
operasyonel seviyede kararları içerse de problemin ele alınışı itibariyle SİH’nin
tasarımını da irdelemektedir. Çalışmanın SİH’nin çizelgelenmesi ile ilgilenmesindeki
temel amaç bundan önceki çizelgeleme çalışmalarındaki matematiksel ve sezgisel
yöntemlerin etkin olmaması ve bu alandaki eksikliğin giderilmeye çalışılmasıdır.
Çalışmanın diğerleriyle arasındaki en büyük fark probleme klasik çizelgeleme
problemleri açısından yaklaşılması olmuştur.
Problem tanımı yapılırken mümkün olduğunca genel SİH tanımına sadık kalınmış ve
problemin temelinden sarsacak varsayımlardan uzak durulmuştur. Çalışma bu yönü
ile alana oldukça yenilik katmaktadır. Çizelgelenecek işlerin partiler halinde
üretildiğini ve partilerin alt partilere bölünebileceği düşünülmüştür. İşlerin operasyon
sıralarının birbirlerinden farklı olduğu dikkate alınmıştır. Makineler üretim alanında
farklı bölgelere yerleştirildiği için makineler arası taşıma uzaklıkları da dikkate
alınmıştır. Çizelgeleme ölçütü ise en son işin en son makinedeki tamamlanma
zamanının (Cmax) en küçüklenmesidir. Alınması gereken karalar ise her bir
operasyona hangi makinenin atandığı, her bir operasyonun başlama zamanı ve her bir
işin alt partilerine atanan parti büyüklüklerinin ne kadar olacağıdır.
Bu bilgiler ışığında ilk olarak problem için Karışık Tam Sayılı Programlama (KTSP)
modeli geliştirilmiştir. Önerilen model oldukça esnek bir yapıya sahiptir. Alt parti
sayısı modelde bir parametredir ve bu değer bir olarak seçildiğinde parti
bölünmesinin olmadığı anlamına gelmektedir ve problem bu durumda Esnek Atölye
tipi çizelgeleme problemine benzemektedir. Ayrıca her bir operasyon için o
operasyonu işleyebilecek bir makine setinin olduğu düşünülmüştür. Bir operasyon
için alternatif makineler kümesi yerine sadece tek bir makinede işlem göreceği
74
düşünüldüğünde model basitçe daha temel bir form olan Atölye tipi çizelgeleme
problemine dönüştürülebilir. Bu yüzden önerilen model çok esnek bir yapıda
kurulmuştur.
Problemin karmaşık yapısından dolayı önerilen KTSP modelinin büyük boyutlu
problemlerde iyi performans göstermediği görülmüştür. Bu amaçla kısa sürelerde iyi
çözümler elde edebilmek amacıyla kombinatoriyel eniyileme problemlerinin
çözümünde yüksek performansından dolayı sıklıkla kullanılan Genetik Algoritma
(GA) tabanlı bir sezgisel metot geliştirilmiştir. Probleme özel olarak tasarlanmış dört
vektörlü bir kromozom yapısı sunulmuştur. Bu vektörler operasyonlara atanan
makineleri, çizelgelenecek operasyonların sıralarını, çizelgelenecek operasyonların
hangi alt partiye ait olduklarını ve alt parti büyüklüklerini temsil etmektedir.
Problemin deneysel kısmı için rassal olarak üretilmiş çok geniş bir problem seti
hazırlanmıştır. Test problemlerinin oluşturulmasında önem teşkil eden parametreler
belirlenmiş ve bu parametrelerin çeşitli seviyelerin kombinasyonları toplam olarak
720 adet test probleminin oluşturulmasını gerektirmiştir. Bu problem setleri üzerinde
KTSP modeli ile GA sezgiselinin performansları karşılaştırılmıştır. Alt parti
sayısının artırılmasının özellikle problemi çok zorlaştırdığı görülmüştür. Küçük
boyutlu problemlerde KTSP modeli çözüm kalitesi olarak GA’dan biraz daha iyi
performans göstermesine karşın problem boyutu arttığında GA yaklaşımı KTSP
modelinden daha iyi çözümler bulmuştur. Alt parti sayısının 1 olduğu problemlerde
GA’nın eniyi çözüleri yakalaması onun güvenilirliğinin de bir göstergesidir. Çözüm
zamanı dikkate alındığında ise en büyük boyutlu problemlerde bile GA’nın çözüm
zamanı 5 dk civarında olmuştur. Sonuç olarak çizelgeleme problemleri operasyonel
düzeyde kararlar oldukları için hızlı kararlar alabilmek son derece önemlidir. Çok
kısa süreler içerisinde probleme iyi çözümler veren GA SİH’nin çizelgelenmesinde
etkin bir şekilde kullanılabileceği görülmüştür.
Çalışma birkaç farklı açıdan genişletilebilir. Örneğin çizelgeleme ölçütü olarak Cmax
yerine geciken işlerin sayısının en küçüklenmesi ya da erken tamamlanma ve
gecikmelerin en küçüklenmesi gibi teslim tarihi tabanlı daha farklı çizelgeleme
75
ölçütleri incelenebilir. Birden fazla çizelgeleme ölçütünün birlikte ele alındığı çok
amaçlı modeller üzerinde durulabilir. Pareto en iyi sonuçlar aranabilir ya da amaç
programlama gibi yaklaşımlar kullanılabilir.
Problemin karmaşıklığının çok yüksek olmasına karşın probleme özgün veriler
kullanarak matematiksel modele kıyasla daha kısa sürede en iyi çözüm verebilecek
dal ve sınır algoritmalarının geliştirilip geliştirilemeyeceği ayrı bir çalışma konusu
olarak düşünülebilir.
Tez çalışmasında GA yaklaşımı kullanılmış olsa da Tabu Arama, Benzetilmiş
Tavlama, Karınca Kolonileri Eniyilemesi, Değişken Komşuluk Arama, Kuş Sürüsü
Eniyilemesi
gibi
farklı
meta-sezgisel
algoritmaların
problem
üzerindeki
performansları incelenebilir ve birbirleriyle hem çözüm kalitesi hem de çözüm
zamanı açısından karşılaştırma yapılabilir.
76
KAYNAKLAR
Akella, R., Chong, Y.,. “Performance of a hierarchical production scheduling
policy”, IEEE Transactions on Components, Hybrids and Manufacturing
Technology, 7(3):225-248 (1984).
Baker, K.,. “Introduction to Sequencing and Scheduling”, New York, Wiley, 13-54
(1974).
Balakrishnan, J., Cheng, C.H.,. “Dynamic layout algorithms: a state-of-the-art
survey”, Omega-International Journal of Management Science, 26(4):507-521
(1998).
Baykasoğlu, A., Özbakır, L., Sönmez, A.İ.,. “Using multiple objective tabu search
and grammars to model and solve multi-objective flexible job shop scheduling
problems”, Journal of Intelligent Manufacturing, 15(6):777-785 (2004).
Bona, B., Brandimarte, P.,. “Hybrid hierarchical scheduling and control systems in
manufacturing”, IEEE Transactions on Robotics and Automation, 6(6):673-686
(1990).
Brandimarte, P.,. “Routing and scheduling in a flexible job shop by tabu search”,
Annals of Operations Research, 41(3):157-183 (1993).
Brucker, P., Schlie, R.,. “Job-shop scheduling with multi-purpose machines”,
Computing 45(4):369-375 (1990).
Chen, J., Steiner, G.,. “Lot streaming with attached setups in three-machine flow
shops”, IIE Transactions, 30(11):1075–1084 (1998).
Chen, J., Steiner, G.,. “Discrete lot streaming in two-machine flow shops”, INFOR
Journal, 37(2):160–173 (1999).
Dauzère-Pérès, S., Paulli, J.,. “An ıntegrated approach for modeling and solving the
general multiprocessor job-shop scheduling problem using tabu search”, Annals of
Operations Research, 70(3):824-835 (1997).
Drolet, J.R.,. “Scheduling virtual cellular manufacturing systems”, PhD thesis,
Purdue University, West Lafeyette, USA 21-80 (1989).
Drolet, J.R., Abdulnour, G., Rheault, M.,. “The cellular manufacturing evolution”,
Computers & Industrial Engineering, 31(1/2):139–142 (1996).
Drolet, J.R., Marcoux, Y., Abdulnour, G.,. ”Simulation based performance
comparison between dynamic cells, classical cells and job shops: a case study”,
International Journal of Production Research, 46(2):509-536 (2008).
77
Flynn, B.B.,. “Repetitive lots: the use of a sequence-dependent set-up time
scheduling procedure in group technology and traditional shops”, Journal of
Operations Management, 7(1):203-216 (1987).
Flynn, B.B., Jacobs, F.R.,. “A simulation comparison of group technology with
traditional job shop manufacturing”, International Journal of Production Research,
24(5):1171-1192 (1986).
Flynn, B.B., Jacobs, F.R.,. “An experimental comparison of cellular (group
technology) layout with process layout”, Decision Sciences, 18(4):562-581 (1987).
Fung, R.Y.K., Liang, F., Jiang, Z., Wong, T.N.,. “A multi-stage methodology for
virtual cell formation oriented agile manufacturing”, International Journal of
Advanced Manufacturing Technology, 36(7-8):798-810 (2008).
Gao, J., Sun, L., Gen, M.,. “A hybrid genetic and variable neighborhood descent
algorithm for flexible job shop scheduling problems”, Computers & Operations
Research, 35(9):2892-2907, (2008).
Garey, M.R., Johnson, D.S., Sethi, R.,. “The complexity of flowshop and jobshop
scheduling”, Mathematics of Operations Research, 1:117-129 (1976).
Gen, M., Tsujimura, Y., Kubota, E.,. “Solving job-shop scheduling problem using
genetic algorithms”, In: Proceedings of the 16th international conference on
computer and industrial engineering, Ashikaga, Japan, 576-579 (1994).
Glass, C.A., Potts, C.N.,. “Structural properties of lot streaming in a flow shop.
Mathematics of Operations Research, 23(3):624–639 (1998).
Gupta, R.M., Tompkins, J.A.,.”An examination of the dynamic behavior of part
families in group technology”, International Journal of Production Research,
20(1):73-86 (1982).
Holland, J.H.,. “Adaptation in Natural and Artificial Systems”, The University of
Michigan Press: Ann Arbor, 14-37 (1975).
Hyer, N.L., Brown, K.A.,. “The discipline of real cells”, Journal of Operations
Management, 17(5):557-574 (1999).
Irani, S.A., Cavalier, T.M, Cohen, P.H.,. “Virtual manufacturing cells: exploiting
layout design and intercell flows for the machine sharing problem”, International
Journal of Production Research, 31(4):791–810 (1993).
Jacobs, F.R., Bragg, D.J.,. “Repetitive lots-flow time reductions through sequencing
and dynamic batch sizing”, Decision Sciences, 19(2):281-294 (1988).
78
Jensen, J.B., Malhotra, M.K., Philipoom, P.R.,. “Machine dedication and process
flexibility in a group technology environment”, Journal of Operations
Management, 14:19-29 (1996).
Jensen, J.B., Malhotra, M.K., Philipoom, P.R.,. “Family-based scheduling of shops
with functional layouts”, International Journal of Production Research,
36(10):2687-2700 (1998).
Jurisch, B.,. “Scheduling jobs in shops with multi-purpose machines”, Ph.D.
Dissertation, Fachbereich Mathematik/Informatik, Universitat Osnabruck 31-39
(1992).
Kacem, I., Hammadi, S., Borne, P.,. “Approach by localization and multiobjective
evolutionary optimization for flexible job-shop scheduling problems”, IEEE
Transactions on Systems, Man and Cybernetics Part C: Applications and Review,
32(1):1-13 (2002).
Kalir, A.A., Sarin, S.C.,. “A near-optimal heuristic for the sequencing problem in
multiple-batch flow shops with small equal sublots”, Omega, 29(6):577-584 (2001).
Kannan, V.R., Ghosh, S.,. “Using dynamic cellular manufacturing to simplify
scheduling in cell based production systems”, Omega, 23(4):443-452 (1995).
Kannan, V.R.,. “A simulation analysis of the ımpact of family configuration on
virtual cellular manufacturing”, Production Planning & Control, 8(1):14–24 (1997).
Kannan, V.R.,. “Analysing the trade-off between efficiency and flexibility in cellular
manufacturing systems”, Production Planning & Control, 9(6):572-579 (1998).
Kannan, V.R., Ghosh, S.,. “A virtual cellular manufacturing approach to batch
production”, Decision Sciences, 27(3):519-539 (1996a).
Kannan, V.R., Ghosh, S.,. “Cellular manufacturing using virtual cells. International
Journal of Operations and Production Management 16(5):99-112 (1996b).
Kesen, S.E., Toksarı, M.D., Güngör, Z., Güner, E.,. “Analyzing the behaviors of
virtual cells (vcs) and traditional manufacturing systems: ant colony optimization
(aco)-based metamodels”, Computers & Operations Research, 36(7):2275-2285
(2009).
Kesen, S.E., Das, S.K., Güngör, Z.,. “A genetic algorithm based heuristic for
scheduling of virtual manufacturing cells (VMCs)”, Computers & Operations
Research, 37(6):1148-1156 (2010a).
Kesen, S.E., Das, S.K., Güngör, Z.,. “A mixed ınteger programming formulation for
scheduling of virtual manufacturing cells (VMCs)”, International Journal of
Advanced Manufacturing Technology, 47(5-8):665-678 (2010b).
79
Khilwani, N., Ulutaş, B.H., İşlier, A.A., Tiwari, M.K.,. “a methodology to design
virtual cellular manufacturing systems”, Journal of Intelligent Manufacturing,
Basımda 1-12 (2009).
Ko, K.C., Egbelu, P.J.,. “Virtual cell formation”, International Journal of
Production Research, 41(11):2365-2389 (2003).
Kusiak, A.,.”Intelligent Manufacturing Systems”, New Jersey, Prentice Hall, 31-42
(1990).
Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.H.G.,. “Recent developments in
deterministic sequencing and scheduling: a survey”, Deterministic and Stochastic
Scheduling, 84:35-74 (1982).
Mak, K.L., Lau, J.S.K., Wang, X.X.,. “A genetic scheduling methodology for virtual
cellular manufacturing systems”, International Journal of Computer Integrated
Manufacturing, 20(6):524-537 (2007).
Mak, K.L., Peng, P., Wang, X.X., Lau, T.L.,. “An ant colony optimization algorithm
for scheduling virtual cellular manufacturing systems”, International Journal of
Computer Integrated Manufacturing, 20(6):524-537 (2007).
Mak, K.L., Wang, X.X.,. “Production scheduling and cell formation for virtual
cellular manufacturing systems”, International Journal of Advanced
Manufacturing Technology, 20(2):144-152 (2002).
Mastrolilli, M., Gambardella, L.M.,. “Effective neighborhood functions for the
flexible job shop problem”, Journal of Scheduling, 3(1):3-20 (2000).
McLean, C.R., Bloom, H.M., Hopp, T.H.,. “The virtual manufacturing cell”,
Proceedings of the Fourth IFAC/IFIP Conference on Information Control
Problems in Manufacturing Technology, Gaithesburg, MD, USA, 105-111 (1982).
Mertins, K., Friedland, R., Rabe, M.,. “Capacity assignment of virtual manufacturing
cells by applying lot size harmonization”, International Journal of Production
Research, 38(17):4385-4391 (2000).
Montreuil, B., Drolet, J.R., Lefrancois, P.,. “The design and management of virtual
manufacturing systems”, In proceedings of American Production & Inventory
Control Society Conference, 4-5 October, Quebec, Montreal, 410-414 (1992).
Moodie, C.L., Drolet, J.R., Ho, Y.C., Warren, G.M.H.,. “Cell design strategies for
efficient material handling” In Material Flow Systems in Manufacturing (Chapter
3), New York, NY: J.M.A. (ed) Tanchoco, Chapman&Hall 76-101 (1994).
80
Nomden, G., Slomp, J., Suresh, N.C.,. “Virtual manufacturing cells: a taxonomy of
past research and identification of future research issues”, International Journal of
Flexible Manufacturing Systems, 17:71-92 (2006).
Pinedo, M.,. “Scheduling: Theory, Algorithms, and Systems”, Prentice Hall Inc.
New Jersey. 14-20 (1995).
Prince, J., Kay, J.M.,. “Combining lean and agile characteristics: creation of virtual
groups by enhanced production flow analysis”, International Journal of Production
Economics, 85(3):305–318 (2003).
Ratchev, S.M.,. “Concurrent process and facility prototyping for formation of virtual
manufacturing cells”, Integrated Manufacturing Systems, 12(4):306-315 (2001).
Reiter, S.,. “A system for managing job-shop production”, The Journal of Business,
34:371–393 (1966).
Rheault, M., Drolet, J.R., Abdulnour, G.,. “Physically reconfigurable virtual cells: a
dynamic model for a highly dynamic environment”, Computers & Industrial
Engineering, 29(1-4):221-225 (1995).
Rheault, M., Drolet, J.R., Abdulnour, G.,. “Dynamic cellular manufacturing system
(DCMS)”, Computers & Industrial Engineering, 31(1-2):143-146 (1996).
Rosenblat, M.J.,. “The dynamics of plant layout”, Management Science, 32(1):7686 (1986).
Saad, S.M., Baykasoğlu, A., Gindy, N.N.Z.,. “An integrated framework for
reconfiguration of cellular manufacturing systems using virtual cells”, Production
Planning & Control, 13(4):381-393 (2002).
Sarker, B.R., Li, Z.,. “Job routing and operations scheduling: a network-based virtual
cell formation approach”, Journal of the Operational Research Society, 52(6):673–
681 (2001).
Slomp, J., Chowdary, B.V., Suresh N.C.,. “Design and operation of virtual
manufacturing cells. In Proceeedings of FAIM Conference, Tampa, FL 94-101
(2004).
Slomp, J., Chowdary, B.V., Suresh N.C.,. “Design of virtual manufacturing cells: a
mathematical programming approach”, Robotics and Computer Integrated
Manufacturing, 21(3):273-288 (2005).
Shambu, G., Suresh N.C.,. “Performance of hybrid cellular manufacturing systems: a
computer simulation ınvestigation”, European Journal of Operational Research,
120(2):436-458 (2000).
81
Sönmez, A.I., Baykasoğlu, A.,. “A new dynamic programming formulation of (n*m)
flowshop sequencing problems with due dates”, International Journal of
Production Research, 36(8):2269-2283 (1998).
Subash, B.A., Nandurkar, K.N., Thomas, A.,. “Development of virtual cellular
manufacturing systems for SMEs”, Logistics Information Management, 13(4):228242 (2000).
Suresh, N.J., Meredith, J.R.,. “Coping with the loss of pooling synergy in cellular
manufacturing systems, Management Science, 40(4):466-483 (1994).
Suresh, N.C., Slomp, J.,. “Performance comparison of virtual cellular manufacturing
with functional and cellular layouts in DRC settings”, International Jourrnal of
Production Research, 43(5):945-979 (2005).
Şen, A., Benli, O.S.,. “Lot streaming in open shops”, Operations Research Letters,
23(3-5): 135–142 (1999).
Thomalla, C.S.,. “Formation of virtual cells in maufacturing systems”, In
Proceeedings Group Technology/Cellular Manufacturing World Symposium, San
Juan, Puerto Rico, 13-16 (2000).
Tompkins, J.A., White, J.A., Bozer, Y.A., Tanchoco, J.M.A.,.”Facilities Planning”,
NewYork Wiley, 7-12 (2003).
Vakharia, A.J., Moily, J.P., Huang, Y.,. “Evaluating virtual cells and multistage
flowshops”, International Journal of Flexible Manufacturing Systems, 11(3):291–
314 (1999).
Wemmerlov, U., Hyer, N.L.,.”Cellular manufacturing in the us industry: a survey of
users”, International Journal of Production Research, 27(9):1511-1530 (1989).
Wemmerlov, U., Johnson, D.J.,.”Cellular manufacturing at 46 user plants:
implementation experiences and performance improvement”, International Journal
of Production Research, 35(1):29-49 (1997).
Wemmerlov, U., Johnson, D.J.,.”Empirical findings on manufacturing cell design”,
International Journal of Production Research, 38(3):481-507 (2000).
Xia, W., Wu, Z.,. “An effective hybrid optimization approach for multi-objective
flexible job-shop scheduling problem”, Computers & Industrial Engineering,
48(2):409-425.
Zhang, W., Changyu, Y., Liu, J., Linn, R.J.,. “Multi-job lot streaming to minimize
the mean completion time in m-1 hybrid flowshops”, International Journal of
Production Economics, 96(2):189-200 (2005).
82
EKLER
83
EK-1. Rassal test problemlerinin üretimi için hazırlanan MS Excel makrosu
Private Sub CommandButton1_Click()
Dim Seeds(): Dim LotSize(): Dim NumOper(): Dim NumIndMac(): Dim ArrforMacs
Dim ArrforOpers(): Dim DistMat(): Sheets("ProbAttributes").Select
Sheets("ProbAttributes").Select
Sheets("ProbAttributes").Range("A1").Select
NumofFile = Val(ActiveCell.Offset(0, 1))
LotSizeLB = Val(ActiveCell.Offset(1, 1))
LotSizeUB = Val(ActiveCell.Offset(2, 1))
ProTimeLB = Val(ActiveCell.Offset(3, 1))
ProTimeUB = Val(ActiveCell.Offset(4, 1))
SeedRoot = Val(ActiveCell.Offset(5, 1))
ReDim Seeds(1 To NumofFile)
For i = 1 To NumofFile
Seeds(i) = Int(Rnd * 100000)
Next i
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Do
Sheets("ProbAttributes").Select
ActiveCell.Offset(1, 0).Select
If ActiveCell = "" Then End
NumJob = ActiveCell.Offset(0, 1)
NumMacType = ActiveCell.Offset(0, 2): NumMacInType = ActiveCell.Offset(0, 3)
NumSubLot = ActiveCell.Offset(0, 4): TToverOT = ActiveCell.Offset(0, 5)
Dim LenofFileNum As Integer
Dim xx As String
xx = NumofFile
LenofFileNum = Len(xx)
For FileNum = 1 To NumofFile
Randomize (Seeds(FileNum))
xx = FileNum
If (Len(xx) < LenofFileNum) Then
For i = 1 To LenofFileNum - Len(xx)
xx = "0" & xx
Next
End If
PrbName = "J" & NumJob & "_M" & NumMacType & "_I" & NumMacInType & "_P" &
NumSubLot & "_R" & TToverOT & "_" & xx & ".txt"
'Her bir işten ne kadar üretileceği atanıyor
ReDim LotSize(1 To NumJob): ReDim NumOper(0 To NumJob)
For i = 1 To NumJob
LotSize(i) = Int(LotSizeLB + Rnd * (LotSizeUB - LotSizeLB + 1))
NumOper(i) = Int(2 + Rnd * (NumMacType - 2 + 1))
Next
ReDim NumIndMac(1 To NumMacType): ReDim ArrforMacs(1 To NumMacType)
For i = 1 To NumMacType
NumIndMac(i) = Int(2 + Rnd * (NumMacInType - 2 + 1))
ArrforMacs(i) = i
Next
ReDim ArrforOpers(1 To NumJob, 1 To NumMacType)
For i = 1 To NumJob
For j = 1 To NumOper(i)
rassal = Int(1 + Rnd * (NumMacType - j + 1))
ArrforOpers(i, j) = ArrforMacs(rassal)
84
EK-1 (Devam). Rassal test problemlerinin üretimi için hazırlanan MS Excel makrosu
For k = rassal + 1 To NumMacType - j + 1
ArrforMacs(k - 1) = ArrforMacs(k)
Next k
Next j
For l = 1 To NumMacType
ArrforMacs(l) = l
Next l
Next i
'verilerin diğer sayfaya yazılması
Sheets("ProbGeneration").Activate: Rows("1:5000").Select: Rows("1:5000").Select
Selection.ClearContents
Range("A1").Select
ActiveCell.Offset(0, 0) = "Kesen"
ActiveCell.Offset(1, 0) = "Number_of_Jobs": ActiveCell.Offset(1, 1) = NumJob
ActiveCell.Offset(2, 0) = "Num_Mach_Types": ActiveCell.Offset(2, 1) = NumMacType
ActiveCell.Offset(3, 0) = "Ind_Mac_In_Type": ActiveCell.Offset(3, 1) = NumMacInType
ActiveCell.Offset(4, 0) = "Num_of_Sub_Lot": ActiveCell.Offset(4, 1) = NumSubLot
ActiveCell.Offset(5, 0) = "Transp/Process": ActiveCell.Offset(5, 1) = TToverOT
ActiveCell.Offset(7, 0) = "Batch_Sizes(J)"
ActiveCell.Offset(7, 0).Activate
For i = 1 To NumJob
ActiveCell.Offset(i, 0) = i
ActiveCell.Offset(i, 1) = LotSize(i)
Next i
ActiveCell.Offset(1 + NumJob, 0).Activate
ActiveCell.Offset(1, 0) = "Num_of_Ind_Mac_In_Each_Type(M)": ActiveCell.Offset(1,
0).Activate
For i = 1 To NumMacType
ActiveCell.Offset(i, 0) = I: ActiveCell.Offset(i, 1) = NumIndMac(i)
Next i
ActiveCell.Offset(NumMacType + 1, 0).Activate
ActiveCell.Offset(1, 0) = "Num_of_Oper_for_Each_Job(J)": ActiveCell.Offset(1, 0).Activate
For i = 1 To NumJob
ActiveCell.Offset(i, 0) = I: ActiveCell.Offset(i, 1) = NumOper(i)
Next i
ActiveCell.Offset(NumJob + 1, 0).Activate
ActiveCell.Offset(1, 0) = "Oper_Seq_of_Each_Job(J)": ActiveCell.Offset(1, 0).Activate
For i = 1 To NumJob
ActiveCell.Offset(i, 0) = i
For j = 1 To NumOper(i)
ActiveCell.Offset(i, j) = ArrforOpers(i, j)
Next j
Next i
ActiveCell.Offset(NumJob + 1, 0).Activate
ActiveCell.Offset(1, 0) = "Proc_Time_of_Each_job(J,H,I)": ActiveCell.Offset(1, 0).Activate
'ActiveCell.Offset(1, 0).Activate
SumOper = 0
For i = 1 To NumJob
For j = 1 To NumOper(i)
'ActiveCell.Offset(SumOper + j, 0) = "J" & i & ".H-" & j
Toplam = 0
For k = 1 To NumMacType
If (ArrforOpers(i, j) = k) Then
For l = 1 To NumIndMac(k)
85
EK-1 (Devam). Rassal test problemlerinin üretimi için hazırlanan MS Excel makrosu
ActiveCell.Offset(SumOper + l, 0) = i: ActiveCell.Offset(SumOper + l, 1) = j:
ActiveCell.Offset(SumOper + l, 2) = Toplam + l
ActiveCell.Offset(SumOper + l, 3) = Int(ProTimeLB + Rnd() * (ProTimeUB ProTimeLB + 1))
Next l
SumOper = SumOper + NumIndMac(k)
Exit For
Else
Toplam = Toplam + NumIndMac(k)
End If
Next k
Next j
Next i
ActiveCell.Offset(SumOper + 2).Activate
ActiveCell = "Dist_Matrix_Between_Each_Machine_Pairs(I,I)": TotalMachines = 0
For i = 1 To NumMacType
TotalMachines = TotalMachines + NumIndMac(i)
Next i
ReDim DistMat(TotalMachines, TotalMachines)
Counter = 1
For i = 1 To TotalMachines
For j = 1 To TotalMachines
If (i = j) Then
GoTo AA
ElseIf (i < j) Then
ActiveCell.Offset(Counter, 0) = i: ActiveCell.Offset(Counter, 1) = j
Gecici = (LotSizeLB + LotSizeUB) * (ProTimeLB + ProTimeUB) * TToverOT / 4
DistMat(i, j) = Int(Rnd * (Gecici + 1) + Gecici / 2)
ActiveCell.Offset(Counter, 2) = DistMat(i, j)
Counter = Counter + 1
Else
ActiveCell.Offset(Counter, 0) = i: ActiveCell.Offset(Counter, 1) = j
ActiveCell.Offset(Counter, 2) = DistMat(j, i): Counter = Counter + 1
End If
AA:
Next j
Next i
'.xls uzantılı dosyadaki veriler .txt uzantılı dosyaya kopyalanacak
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim MyData As DataObject
Dim FileS, f, FileTS, s
Set MyData = New DataObject
Set FileS = CreateObject("Scripting.FileSystemObject")
PrbName = "C:\VMCs_instancesR1\" & PrbName
FileS.CreateTextFile (PrbName)
'Create a file
Set f = FileS.GetFile(PrbName)
Set FileTS = f.OpenAsTextStream(ForWriting, TristateUseDefault)
Cells.Select: Selection.Copy: Selection.Copy
Selection.Copy: MyData.GetFromClipboard
FileTS.Write MyData.GetText
FileTS.Close
Next FileNum
Loop
End Sub
86
EK-2. Karışık tamsayılı programlama modeli için GAMS kodları
$onuellist
sets
j iş seti
/J-1*J-6/
i makine seti /I-1*I-6/
l makine sıra seti /L-1*L-6/
h operasyon seti /H-1*H-25/
p parti seti
/P-1*P-2/;
alias(i,k); alias(h,hp); alias(l,lp);
scalar M çok büyük bir sayı /100000/;
parameter N(j) Her bir parça tipinden üretilecek miktar /
J-1 30
J-2 39
J-3 20
J-4 15
J-5 25
J-6 22 /;
parameter OPS(j) Her bir iş için operasyon sayısı /
J-1 3
J-2 2
J-3 2
J-4 3
J-5 2
J-6 2 /;
parameter MAUM(i,k) makineler arası taşıma süresi matrisi /
I-1.I-2
61
I-1.I-3
38
I-1.I-4
45
I-1.I-5
71
I-1.I-6
110
I-2.I-1
61
I-2.I-3
72
I-2.I-4
101
I-2.I-5
56
I-2.I-6
94
I-3.I-1
38
I-3.I-2
72
I-3.I-4
94
I-3.I-5
55
I-3.I-6
76
I-4.I-1
45
I-4.I-2
101
I-4.I-3
94
I-4.I-5
103
I-4.I-6
102
I-5.I-1
71
I-5.I-2
56
I-5.I-3
55
I-5.I-4
103
I-5.I-6
88
I-6.I-1
110
I-6.I-2
94
I-6.I-3
76
I-6.I-4
102
I-6.I-5
88 /;
87
EK-2 (Devam). Karışık tamsayılı programlama modeli için GAMS kodları
parameter MIZ(j,h,i) Operasyonların makinelerdeki işlem zamanları /
J-1.H-1.I-1 2
J-1.H-1.I-2 5
J-1.H-2.I-5 6
J-1.H-2.I-6 8
J-1.H-3.I-3 8
J-1.H-3.I-4 5
J-2.H-1.I-3 9
J-2.H-1.I-4 6
J-2.H-2.I-5 3
J-2.H-2.I-6 8
J-3.H-1.I-3 5
J-3.H-1.I-4 8
J-3.H-2.I-5 6
J-3.H-2.I-6 4
J-4.H-1.I-1 6
J-4.H-1.I-2 2
J-4.H-2.I-3 3
J-4.H-2.I-4 3
J-4.H-3.I-5 6
J-4.H-3.I-6 2
J-5.H-1.I-3 10
J-5.H-1.I-4 10
J-5.H-2.I-1 4
J-5.H-2.I-2 9
J-6.H-1.I-1 4
J-6.H-1.I-2 6
J-6.H-2.I-3 6
J-6.H-2.I-4 7 /
variables
af amaç fonksiyon değeri
Cmax en son işin en son makinedeki tamamlanma zamanı
t(j,h,p) j işinin h'nci operasyonunun başlama zamanı
Tm(i,l) i makinesinde l'nci sıradaki işin başlama zamanı
Y(i,j,h,p) j işinin h'nci operasyonu i makinesinde yapılacaksa 1 dd 0
X(i,j,h,l,p) j işinin h'nci operasyonu i makinesinde l'nci sırada yapılacaksa 1 dd 0
Z(i,k,j,h,p) j işinin h'nci operasyonu i makinesinde ve h+1'nci operasyonu k makinesinde yapılacaksa
1 dd 0
V(j,p) j işinin p'nci partisinden üretilecek miktar ;
positive variables Cmax, t, Tm;
binary variables Y, X, Z;
integer variables V;
equations
amacfonk enküçüklenecek amaç fonksiyonu
kisit1 Cmax değeri tüm operasyonlarının bitiş zamanından büyük yada eişt olmalı
kisit2 bir işin tüm partilerinden üretilecek toplam parça sayısı o işin parti büyüklüğüne eşit olmalı
kisit3 bir işin bir operasyonunun başlayabilmesi için bir önceki operasyonunun tamamlanmış ve
taşımanın yapılmış olması gerekir
kisit4 bir makinenin herhangi bir sırasındaki iş önceki iş bitmeden işleme başlayamaz
kisit5 ve-veya kısıtı j işinin h'nci operasyonunu i makinesinde l'nci sırada yapılacaksa başlangıç
zamanları aynı olmalı
kisit6 ve-veya kısıtı j işinin h'nci operasyonunu i makinesinde l'nci sırada yapılacaksa başlangıç
kisit7 bir işin bir operasyonu bir makinedeki herhangi bir pozisyona atanabilir
kisit8 bir işin bir opersyonu bir makineye atanmak zorundadır
88
EK-2 (Devam). Karışık tamsayılı programlama modeli için GAMS kodları
kisit9 j işinin h'nci operasyonu i makinesinin atanmışsa j işi i makinesinin herhangi bir sırasında
yapılacaktır. (denge kısıtı)
kisit10 bir işin ardışık operasyonlarının yapılacağı makinelerle ilgili bağlayıcı kısıt (1.kısım)
kisit11 bir işin ardışık operasyonlarının yapılacağı makinelerle ilgili bağlayıcı kısıt (2.kısım)
kisit12 ;
amacfonk.. af=e=Cmax+sum((j,p), 0.00000001*ord(p)*V(j,p)) +sum((i,j,h,p)$(ord(h) le OPS(j)),
0.00000001*Y(i,j,h,p))+sum((i,j,h,p,l)$(ord(h) le OPS(j)), 0.00000001*X(i,j,h,l,p));
kisit1(j,h,i,p)$(ord(h) eq OPS(j) and MIZ(j,h,i)ne 0).. Cmax=g=t(j,h,p)+V(j,p)*MIZ(j,h,i)-M*(1Y(i,j,h,p));
kisit2(j).. sum(p,V(j,p))=e=N(j);
kisit3(i,j,h,hp,p)$(ord(hp)-ord(h)eq
1
and
ord(hp)le
OPS(j)
and
MIZ(j,h,i)ne
0)..
t(j,h,p)+V(j,p)*MIZ(j,h,i)-M*(1-Y(i,j,h,p))+sum(k$(MIZ(j,hp,k)ne
0),MAUM(i,k)*Z(i,k,j,h,p))=l=t(j,hp,p);
kisit4(j,h,i,l,lp,p)$(ord(h) le OPS(j) and ord(lp)-ord(l) eq 1 and MIZ(j,h,i) ne 0)..
Tm(i,l)+V(j,p)*MIZ(j,h,i)=l=Tm(i,lp)+(1-X(i,j,h,l,p))*M;
kisit5(j,h,i,l,p)$(ord(h) le OPS(j) and MIZ(j,h,i) ne 0).. Tm(i,l)=l=t(j,h,p)+(1-X(i,j,h,l,p))*M;
kisit6(j,h,i,l,p)$(ord(h) le OPS(j) and MIZ(j,h,i) ne 0).. Tm(i,l)=g=t(j,h,p)-(1-X(i,j,h,l,p))*M;
kisit7(i,l).. sum(j,sum(h$(ord(h) le OPS(j) and MIZ(j,h,i) ne 0),sum(p,X(i,j,h,l,p))))=l=1;
kisit8(j,h)$(ord(h) le OPS(j)).. sum((i,p)$(MIZ(j,h,i) ne 0),Y(i,j,h,p))=g=1;
kisit9(j,h,i,p)$(ord(h) le OPS(j) and MIZ(j,h,i) ne 0).. sum(l,X(i,j,h,l,p))=e=Y(i,j,h,p);
kisit10(j,h,hp,i,k,p)$(ord(hp)-ord(h) eq 1 and ord(hp) le OPS(j) and MIZ(j,h,i) ne 0 and MIZ(j,hp,k)
ne 0).. 2*Z(i,k,j,h,p)=l=Y(i,j,h,p)+Y(k,j,hp,p);
kisit11(j,h,hp,i,k,p)$(ord(hp)-ord(h) eq 1 and ord(hp) le OPS(j) and MIZ(j,h,i) ne 0 and MIZ(j,hp,k)
ne 0).. Z(i,k,j,h,p)=g=Y(i,j,h,p)+Y(k,j,hp,p)-1;
kisit12(j,h,p)$(ord(h) le OPS(j)).. V(j,p)=l=M*sum(i$(MIZ(j,h,i) ne 0),Y(i,j,h,p));
model VMCs /all/;
VMCs.limcol=0;
VMCs.limrow=0;
VMCs.reslim=3600;
VMCs.iterlim=1e9;
VMCs.optfile=1;
VMCs.optcr=0;
VMCs.prioropt=1;
option solprint=off;
$onecho > cplex.opt
workmem 1000
nodefileind 3
$offecho
solve VMCs using mip minimizing af;
file outfile /_Model_J6_M3_I2_P2_R0.5_1.txt/;
put outfile; put 'Job_Number'; put card(j); put /;
put 'Machine_Number '; put card(i); put /;
put 'Sub_Lot_Number '; put card(p); put /; put 'Objective_Value '; put af.l; put /;
put 'Lower_Bound '; put VMCs.ObjEst; put /; put 'Number_of_Iteration '; put VMCs.IterUsd; put /;
put 'IsOptimum '; put VMCs.ModelStat; put /;
put 'CPU_Second '; put VMCs.ResUsd; put /;
put /; loop((j,h,p)$t.l(j,h,p), put 't '; put j.tl;put h.tl; put p.tl; put t.l(j,h,p);put /;);
put /; loop((i,l)$Tm.l(i,l), put 'Tm '; put i.tl;put l.tl; put Tm.l(i,l);put /;);
put /; loop((j,p)$V.l(j,p), put 'V '; put j.tl;put p.tl; put V.l(j,p);put /;);
put /; loop((i,j,h,p)$Y.l(i,j,h,p), put 'Y '; put i.tl; put j.tl; put h.tl; put p.tl; put Y.l(i,j,h,p);put /;);
put /; loop((i,j,h,l,p)$X.l(i,j,h,l,p), put 'X '; put i.tl; put j.tl; put h.tl; put l.tl; put p.tl; put X.l(i,j,h,l,p);put
/;);
put /; loop((i,k,j,h,p)$Z.l(i,k,j,h,p), put 'Z '; put i.tl; put k.tl; put j.tl; put h.tl; put p.tl; put
Z.l(i,k,j,h,p);put /;);
89
EK-3. Genetik algoritma sezgiseli için geliştirilen C++ kodları
#include <clx.h>
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <fstream.h>
int PopSize;
int GenNum;
int FitFunc(int **CFeasSolu);
int Crossover(int **CP1, int **CP2);
int Permutation(int **CFeasSolu);
int Mutation(int **CFeasSolu);
int FitFunc2(int **CFeasSolu);
int JobNum, MacTypeNum, MaxIndMac, SubLotNum, *BatchSize, *IndMacNum, **P1, **P2;
int *OperNum, **OperSeq, ***ProcTime, **DistMat, TotIndMacNum, UniChroLen, ChroLen,
**Offspring, **SLS;
double TToverPT, N=5.0;
int main(int argc, char* argv[])
{
string StrWorkFolder, StrPrbRoot, StrPrbFileName, Str;
randomize();
StrWorkFolder=argv[1];
StrPrbRoot=argv[2];
StrPrbFileName=argv[3];
PopSize=atoi(argv[4]);
GenNum=atoi(argv[5]);
SetCurrentDir(AnsiString(StrWorkFolder.begin()));
char temp[120];
FILE *ifp_,*ofp1, *ofp3 ;
string path_for_input_, conv_file, best_sol_chro;
path_for_input_=StrPrbRoot+StrPrbFileName;
conv_file="Conv_"+StrPrbFileName;
best_sol_chro="Chro_"+StrPrbFileName;
fopen(conv_file.begin(),"w");
fopen(best_sol_chro.begin(), "w");
if((ifp_=fopen(path_for_input_.begin(),"r"))==NULL){
printf("The file can not open\n");
exit(1);
}
/*Reading data from input file*/
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &JobNum);
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &MacTypeNum);
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &MaxIndMac);
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &SubLotNum);
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%f", &TToverPT);
90
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
ofstream out;
int a, b, i, j, k, l;
int ***FeasSolu, **DumOpSeqSubLot, **DumFeasSolu;
int JobIndex, Temp, LowLimMac=0, Prob1, Prob2, Counter, Remain, Best, Worst, Order,
BestObjVal;
double RoundUp, RoundDown, DivLot, RanNum, TimeDiff;
//FILE *ifp, *ofp1, *ofp2, *ofp3;
clock_t StartTime, EndTime;
if((BatchSize=(int*)calloc(JobNum+1,sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
fscanf(ifp_, "%s", temp);
for(i=1; i<=JobNum; i++){
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &BatchSize[i]);
}
if((IndMacNum=(int*)calloc(MacTypeNum+1,sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
fscanf(ifp_, "%s", temp);
for(i=1; i<=MacTypeNum; i++){
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &IndMacNum[i]);
}
if((OperNum=(int*)calloc(JobNum+1,sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
fscanf(ifp_, "%s", temp);
for(i=1; i<=JobNum; i++){
fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &OperNum[i]);
}
OperSeq=(int**)calloc(JobNum+1, sizeof(int*));
for(i=1; i<=JobNum; i++){
if((OperSeq[i]=(int*)calloc(MacTypeNum+1, sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
fscanf(ifp_, "%s", temp);
for(i=1; i<=JobNum; i++){
fscanf(ifp_, "%s", temp);
for(j=1; j<=MacTypeNum; j++){
if(j<=OperNum[i]){
fscanf(ifp_, "%d", &OperSeq[i][j]);
}
else
break;
}
}
ProcTime=(int***)calloc(JobNum+1, sizeof(int**));
91
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
for(i=0; i<=JobNum; i++){
if((ProcTime[i]=(int**)calloc(MacTypeNum+1, sizeof(int*)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
for(i=0; i<=JobNum; i++){
for(j=0; j<=MacTypeNum; j++){
if((ProcTime[i][j]=(int*)calloc(MaxIndMac+1, sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
}
fscanf(ifp_, "%s", temp);
for(i=1; i<=JobNum; i++){
for(j=1; j<=MacTypeNum; j++){
if(j<=OperNum[i]){
for(k=1; k<=MacTypeNum; k++){
if(k==OperSeq[i][j]){
for(l=1; l<=IndMacNum[k]; l++){
fscanf(ifp_, "%s", temp); fscanf(ifp_, "%s", temp); fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &ProcTime[i][j][l]);
}
break;
}
}
}
else
break;
}
}
/*Toplam makine sayısı hesaplanacak*/
TotIndMacNum=0;
for(i=1; i<=MacTypeNum; i++){
TotIndMacNum+=IndMacNum[i];
}
DistMat=(int**)calloc(TotIndMacNum+1, sizeof(int*));
for(i=0; i<=TotIndMacNum; i++){
if((DistMat[i]=(int*)calloc(TotIndMacNum+1, sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
fscanf(ifp_, "%s", temp);
for(i=1; i<=TotIndMacNum; i++){
for(j=1; j<=TotIndMacNum; j++){
if(i!=j){
fscanf(ifp_, "%s", temp); fscanf(ifp_, "%s", temp);
fscanf(ifp_, "%d", &DistMat[i][j]);
DistMat[i][j];
}
else
DistMat[i][j]=0;
92
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
}
}
/*Bütün veriler dosyadan okundu. Kromozom uzunluğu hesaplanacak*/
UniChroLen=0; ChroLen=0;
for(i=1; i<=JobNum; i++){
UniChroLen+=OperNum[i];
}
ChroLen=SubLotNum*UniChroLen;
/*Popülasyon hacmi kadar hafızada alan ayrılması gerekmektedir.*/
if((FeasSolu=(int***)calloc(PopSize+1,sizeof(int**)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
for(i=0; i<=PopSize; i++){
if((FeasSolu[i]=(int**)calloc(5, sizeof(int*)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
for(i=0; i<=PopSize; i++){
for(j=0; j<=4; j++){
if((FeasSolu[i][j]=(int*)calloc(ChroLen+1, sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
}
if((DumFeasSolu=(int**)calloc(5, sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
for(i=0; i<=4; i++)
if((DumFeasSolu[i]=(int*)calloc(ChroLen+1, sizeof(int)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
if((DumOpSeqSubLot=(int**)calloc(ChroLen+1,sizeof(int*)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
for(i=0; i<=ChroLen; i++){
if((DumOpSeqSubLot[i]=(int*)calloc(3, sizeof(int*)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
}
if((P1=(int**)calloc(5,sizeof(int*)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
if((P2=(int**)calloc(5,sizeof(int*)))==NULL){
printf("No enough space in memory\n");
exit(1);
}
93
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
for(i=0; i<=4; i++)
if((P1[i]=(int*)calloc(ChroLen+1, sizeof(int)))==NULL)
exit(1);
for(i=0; i<=4; i++)
if((P2[i]=(int*)calloc(ChroLen+1, sizeof(int)))==NULL)
exit(1);
if(SubLotNum==2){
if((SLS=(int**)calloc(SubLotNum+1, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=SubLotNum; i++)
if((SLS[i]=(int*)calloc(N+2, sizeof(int)))==NULL)
exit(1);
}
if(SubLotNum==3){
if((SLS=(int**)calloc(SubLotNum+1, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=SubLotNum; i++)
if((SLS[i]=(int*)calloc((N+1)*(N+2)/2+1, sizeof(int)))==NULL)
exit(1);
}
if((ofp1=fopen(conv_file.begin(), "w+"))==NULL)
exit(1);
for(int Dongu=1; Dongu<=1; Dongu++){ /////////////////////////////////Burada 5 defa tekrar yapılacak
StartTime=clock();
/*Burada popülasyon hacmi kadar uygun çözüm üretilecek*/
for(a=1; a<=PopSize; a++){
JobIndex=0;
for(i=1; i<=SubLotNum; i++){
for(j=1; j<=JobNum; j++){
for(k=1; k<=OperNum[j]; k++){
JobIndex++;
DumOpSeqSubLot[JobIndex][1]=j;
DumOpSeqSubLot[JobIndex][2]=i;
}
}
}
for(i=1; i<=ChroLen; i++){
Temp=random(ChroLen-i+1)+1;
FeasSolu[a][2][i]=DumOpSeqSubLot[Temp][1];
FeasSolu[a][3][i]=DumOpSeqSubLot[Temp][2];
for(j=Temp+1; j<=ChroLen-i+1; j++){
DumOpSeqSubLot[j-1][1]=DumOpSeqSubLot[j][1];
DumOpSeqSubLot[j-1][2]=DumOpSeqSubLot[j][2];
}
}
/*burada ilgili işin ilgili operasyonu için hangi makinenin atanacağı belirlenecek*/
for(i=1; i<=ChroLen; i++){
JobIndex=0;
for(j=1; j<=i; j++){
if(FeasSolu[a][2][i]==FeasSolu[a][2][j]&&FeasSolu[a][3][i]==FeasSolu[a][3][j])
JobIndex++;
}
for(k=1; k<OperSeq[FeasSolu[a][2][i]][JobIndex]; k++){
LowLimMac=LowLimMac+IndMacNum[k];
94
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
}
FeasSolu[a][1][i]=LowLimMac+random(IndMacNum[OperSeq[FeasSolu[a][2][i]][JobIndex]])+1;
LowLimMac=0;
}
/*Her bir operasyonun alt partilerine eşit miktarda parti büyüklükleri dağıtılacak*/
for(i=1; i<=ChroLen; i++){
for(j=1; j<=JobNum; j++){
if(FeasSolu[a][2][i]==j){
RoundUp=ceil(BatchSize[FeasSolu[a][2][i]]/SubLotNum);
RoundDown=floor(BatchSize[FeasSolu[a][2][i]]/SubLotNum);
if((RoundUpBatchSize[FeasSolu[a][2][i]]/SubLotNum)>=(BatchSize[FeasSolu[a][2][i]]/SubLotNumRoundDown)){
DivLot=RoundDown;
}
else
DivLot=RoundUp;
}
if(FeasSolu[a][3][i]!=SubLotNum){
FeasSolu[a][4][i]=DivLot;
}
else
FeasSolu[a][4][i]=BatchSize[FeasSolu[a][2][i]]-(SubLotNum-1)*DivLot;
}
}
/*Her bir çözüm uygunluk değerlerinin hesaplanması için FitFunc2 fonksiyonuna gönderiliyor*/
for(i=1; i<=4; i++)
for(j=1; j<=ChroLen; j++)
DumFeasSolu[i][j]=FeasSolu[a][i][j];
FeasSolu[a][0][1]=FitFunc2(DumFeasSolu); //ilgili bireyin makespan değeri 1. elemanına
atanıyor.
//printf("%d", FeasSolu[a][0][1]);
} //popülasyon döngüsünün sonu
/*Rassal olarak üretilen bireylerin Cmax değerleri hesaplandı. Artık GA'nın yapısı oluşturulacak*/
for(b=1; b<=GenNum; b++){
/*Çaprazlama operatörü için iki adet rassal birey seçiliyor*/
Prob1=random(PopSize)+1;
back: Prob2=random(PopSize)+1;
if(Prob1==Prob2){
goto back;
}
for(i=1; i<=4; i++)
for(j=1; j<=ChroLen; j++){
P1[i][j]=FeasSolu[Prob1][i][j];
P2[i][j]=FeasSolu[Prob2][i][j];
}
/*Ebeveynler sırasıyla premütasyon tipi gösterime dönüştürülecekler*/
Permutation(P1);
Permutation(P2);
Crossover(P1, P2); //Crossover fonksiyonu çağrılıyor.
Mutation(Offspring); //Mutation fonksiyonu çağrılıyor.
Offspring[0][1]=FitFunc2(Offspring); //Yeni üretilen bireyin amaç fonksiyonu değeri
for(i=1; i<=4; i++)
95
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
for(j=1; j<=ChroLen; j++)
DumFeasSolu[i][j]=Offspring[i][j];
Best=Offspring[0][1];
/*Bu noktada ilgili birey için farklı alt parti büyüklüğü kombinasyonları denenecek.*/
if(SubLotNum==2){
for(i=1; i<=JobNum; i++){
for(j=1; j<=N+1; j++){
SLS[1][j]=ceil(((j-1)/N)*BatchSize[i]);
SLS[2][j]=BatchSize[i]-SLS[1][j];
for(k=1; k<=ChroLen; k++){
if((DumFeasSolu[2][k]==i)&&(DumFeasSolu[3][k]==1))
DumFeasSolu[4][k]=SLS[1][j];
if((DumFeasSolu[2][k]==i)&&(DumFeasSolu[3][k]==2))
DumFeasSolu[4][k]=SLS[2][j];
}
DumFeasSolu[0][1]=FitFunc2(DumFeasSolu);
if(DumFeasSolu[0][1]<Best){
for(k=1; k<=4; k++)
for(l=1; l<=ChroLen; l++)
Offspring[k][l]=DumFeasSolu[k][l];
Offspring[0][1]=DumFeasSolu[0][1];
Best=DumFeasSolu[0][1];
}
}
}
}
if(SubLotNum==3){
for(i=1; i<=JobNum; i++){
Counter=0;
for(j=1; j<=N+1; j++){
Remain=N-j+1;
for(k=1; k<=Remain+1; k++){
Counter++;
SLS[1][Counter]=ceil((j-1)/N*BatchSize[i]);
SLS[2][Counter]=ceil((k-1)/N*BatchSize[i]);
SLS[3][Counter]=BatchSize[i]-SLS[1][Counter]-SLS[2][Counter];
}
}
DumFeasSolu[0][1]=FitFunc2(DumFeasSolu);
if(DumFeasSolu[0][1]<Best){
for(j=1; j<=4; j++)
for(k=1; k<=ChroLen; k++)
Offspring[j][k]=DumFeasSolu[j][k];
Offspring[0][1]=DumFeasSolu[0][1];
Best=DumFeasSolu[0][1];
}
}
}
/*Bu noktada popülasyondaki en kötü bireyle yeni üretilen bireyin yerleri değiştirilecek*/
Worst=0;
for(a=1; a<=PopSize; a++){
if(FeasSolu[a][0][1]>Worst){
Worst=FeasSolu[a][0][1];
Order=a;
96
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
}
}
if(Offspring[0][1]<FeasSolu[Order][0][1]){
for(i=1; i<=4; i++)
for(j=1; j<=ChroLen; j++)
FeasSolu[Order][i][j]=Offspring[i][j];
FeasSolu[Order][0][1]=Offspring[0][1];
}
BestObjVal=FeasSolu[1][0][1];
for(a=1; a<=PopSize; a++){
if(FeasSolu[a][0][1]<BestObjVal){
BestObjVal=FeasSolu[a][0][1];
Order=a;
}
}
fprintf(ofp1, "%d\n", BestObjVal);
}//Jenerasyon döngüsünün sonu
fclose(ofp1);
/*En iyi sonuç bulunup dosyaya yazdırılacak*/
EndTime=clock();
TimeDiff=(EndTime-StartTime)/CLK_TCK;
bool opened;
do{
opened=false;
out.open("SolutionStatistics.txt", ios::app);
if (out.is_open()){
opened=true;
out<< StrPrbFileName <<"\t"<< JobNum <<"\t"<< MacTypeNum <<"\t"<< MaxIndMac
<<"\t"<< SubLotNum <<"\t"<< TToverPT<<"\t";
out<< PopSize <<"\t"<< GenNum <<"\t"<< BestObjVal <<"\t"<< TimeDiff<<endl;
out.close();
}
}while(!opened);
if((ofp3=fopen(best_sol_chro.begin(), "a"))==NULL)
exit(1);
fprintf(ofp3, "%-8d\n", BestObjVal);
for(i=1; i<=4; i++){
for(j=1; j<=ChroLen; j++){
fprintf(ofp3, "%3d", FeasSolu[Order][i][j]);
}
fprintf(ofp3, "\n");
}
fclose(ofp3);
//int iii=1;
} ///Tekrar dongüsünün sonu
}// main fonksiyonunun sonu
//****************MAİN FONKSİYONUNUN SONU********************//
/****************FITFUNC FONKSİYONUNUN İÇERİĞİ****************/
int FitFunc(int **CFeasSolu){
int i, j, k, OrdForSeq, SeqIndex, OrdForMac, Count, JobPred, MacPred, SumMacNum, Diff,
**CompTime, Makespan;
if((CompTime=(int**)calloc(TotIndMacNum+1, sizeof(int*)))==NULL)
97
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
exit(1);
for(i=0; i<=TotIndMacNum; i++)
if((CompTime[i]=(int*)calloc(100, sizeof(int)))==NULL)
exit(1);
for(i=0; i<=TotIndMacNum; i++) //CompTime ilk değer ataması yapılıyor.
for(j=0; j<100; j++)
CompTime[i][j]=0;
for(i=1; i<=ChroLen; i++){
OrdForSeq=0; SeqIndex=0, OrdForMac=0;
for(j=1; j<i; j++){
if((CFeasSolu[2][i]==CFeasSolu[2][j])&&(CFeasSolu[3][i]==CFeasSolu[3][j])){
OrdForSeq++;
SeqIndex=j;
}
if(CFeasSolu[1][i]==CFeasSolu[1][j]){
OrdForMac++;
}
}
Count=0;
for(j=1; j<=SeqIndex; j++){
if(CFeasSolu[1][j]==CFeasSolu[1][SeqIndex]){
Count++;
}
}
if(SeqIndex==0) JobPred=0;
else
JobPred=CompTime[CFeasSolu[1][SeqIndex]][Count]+DistMat[CFeasSolu[1][SeqIndex]][CFeasSol
u[1][i]];
MacPred=CompTime[CFeasSolu[1][i]][OrdForMac];
SumMacNum=0;
for(j=1; j<=MacTypeNum; j++){
SumMacNum+=IndMacNum[j];
if(CFeasSolu[1][i]<=SumMacNum){
Diff=CFeasSolu[1][i]+IndMacNum[j]-SumMacNum;
break;
}
}
if(JobPred>=MacPred)
CompTime[CFeasSolu[1][i]][OrdForMac+1]=JobPred+CFeasSolu[4][i]*ProcTime[CFeasSolu[2][i]][
OrdForSeq+1][Diff];
else
CompTime[CFeasSolu[1][i]][OrdForMac+1]=MacPred+CFeasSolu[4][i]*ProcTime[CFeasSolu[2][i]]
[OrdForSeq+1][Diff];
}
Makespan=0;
for(i=1; i<=TotIndMacNum; i++)
for(j=1; j<100; j++)
if(CompTime[i][j]>=Makespan)
Makespan=CompTime[i][j];
return Makespan;
}
98
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
/**************CROSSOVER FONKSİYONUNUN İÇERİĞİ****************/
int Crossover(int **CP1, int **CP2){
int i, j, k, Gene1, Gene2, Temp, Control, GenePosi, Total, Upper, Ctrl1, Ctrl2, Ctrl3, **P1SLS,
**P2SLS, **OSLS;
if((Offspring=(int**)calloc(5, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=4; i++)
if((Offspring[i]=(int*)calloc(ChroLen+1, sizeof(int)))==NULL)
exit(1);
if((P1SLS=(int**)calloc(SubLotNum+1, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=SubLotNum; i++)
if((P1SLS[i]=(int*)calloc(JobNum+1, sizeof(int)))==NULL)
exit(1);
if((P2SLS=(int**)calloc(SubLotNum+1, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=SubLotNum; i++)
if((P2SLS[i]=(int*)calloc(JobNum+1, sizeof(int)))==NULL)
exit(1);
if((OSLS=(int**)calloc(SubLotNum+1, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=SubLotNum; i++)
if((OSLS[i]=(int*)calloc(JobNum+1, sizeof(int)))==NULL) exit(1);
Gene1=random(ChroLen)+1;
R: Gene2=random(ChroLen)+1;
if(Gene1==Gene2){
goto R;
}
if(Gene1>Gene2){
Temp=Gene1;
Gene1=Gene2;
Gene2=Temp;
}
for(i=1; i<=4; i++)
for(j=Gene1; j<=Gene2; j++)
Offspring[i][j]=CP1[i][j];
GenePosi=0;
for(i=1; i<=ChroLen; i++){
Control=0;
for(j=Gene1; j<=Gene2; j++){
if(CP2[2][i]==Offspring[2][j]){
Control=1;
break;
}
}
if(Control==0){
GenePosi++;
if(GenePosi==Gene1)
GenePosi=Gene2+1;
for(k=1; k<=4; k++)
Offspring[k][GenePosi]=CP2[k][i];
}
}
/*İlgili birey yeniden eski tip gösterime dönüştürülecek*/
99
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
for(i=1; i<=ChroLen; i++){
Total=0;
for(j=1; j<=JobNum; j++){
Total+=OperNum[j];
if(UniChroLen*(Offspring[3][i]-1)+Total>=Offspring[2][i]){
Offspring[2][i]=j;
break;
}
}
}
for(i=1; i<=ChroLen; i++){
Total=0;
for(j=1; j<=JobNum; j++){
Total+=OperNum[j];
if(UniChroLen*(CP1[3][i]-1)+Total>=CP1[2][i]){
CP1[2][i]=j;
break;
}
}
}
for(i=1; i<=ChroLen; i++){
Total=0;
for(j=1; j<=JobNum; j++){
Total+=OperNum[j];
if(UniChroLen*(CP2[3][i]-1)+Total>=CP2[2][i]){
CP2[2][i]=j;
break;
}
}
}
/*Birden büyük alt parti hacimleri için yeni bireyin alt parti değerleri belirlenecek*/
if(SubLotNum==2){
for(i=1; i<=JobNum; i++){
Ctrl1=0, Ctrl2=0;
for(j=1; j<=ChroLen; j++){
if(CP1[2][j]==i && CP1[3][j]==1){
P1SLS[1][i]=CP1[4][j];
Ctrl1=1;
}
if(CP1[2][j]==i && CP1[3][j]==2){
P1SLS[2][i]=CP1[4][j];
Ctrl2=1;
}
if(Ctrl1==1 && Ctrl2==1)
break;
}
}
for(i=1; i<=JobNum; i++){
Ctrl1=0, Ctrl2=0;
for(j=1; j<=ChroLen; j++){
if(CP2[2][j]==i && CP2[3][j]==1){
P2SLS[1][i]=CP2[4][j];
Ctrl1=1;
}
100
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
if(CP2[2][j]==i && CP2[3][j]==2){
P2SLS[2][i]=CP2[4][j];
Ctrl2=1;
}
if(Ctrl1==1 && Ctrl2==1)
break;
}
}
for(i=1; i<=JobNum; i++){
OSLS[1][i]=ceil((P1SLS[1][i]+P2SLS[1][i])/2.0);
OSLS[2][i]=BatchSize[i]-OSLS[1][i];
}
for(i=1; i<=JobNum; i++){
for(j=1; j<=ChroLen; j++){
if(Offspring[2][j]==i && Offspring[3][j]==1)
Offspring[4][j]=OSLS[1][i];
if(Offspring[2][j]==i && Offspring[3][j]==2)
Offspring[4][j]=OSLS[2][i];
}
}
}
if(SubLotNum==3){
for(i=1; i<=JobNum; i++){
Ctrl1=0, Ctrl2=0, Ctrl3=0;
for(j=1; j<=ChroLen; j++){
if(CP1[2][j]==i && CP1[3][j]==1){
P1SLS[1][i]=CP1[4][j];
Ctrl1=1;
}
if(CP1[2][j]==i && CP1[3][j]==2){
P1SLS[2][i]=CP1[4][j];
Ctrl2=1;
}
if(CP1[2][j]==i && CP1[3][j]==3){
P1SLS[3][i]=CP1[4][j];
Ctrl3=1;
}
if(Ctrl1==1 && Ctrl2==1 && Ctrl3==1)
break;
}
}
for(i=1; i<=JobNum; i++){
Ctrl1=0, Ctrl2=0, Ctrl3=0;
for(j=1; j<=ChroLen; j++){
if(CP2[2][j]==i && CP2[3][j]==1){
P2SLS[1][i]=CP2[4][j];
Ctrl1=1;
}
if(CP2[2][j]==i && CP2[3][j]==2){
P2SLS[2][i]=CP2[4][j];
Ctrl2=1;
}
if(CP2[2][j]==i && CP2[3][j]==3){
P2SLS[3][i]=CP1[4][j];
101
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
Ctrl3=1;
}
if(Ctrl1==1 && Ctrl2==1 && Ctrl3==1)
break;
}
}
for(i=1; i<=JobNum; i++){
OSLS[1][i]=ceil((P1SLS[1][i]+P2SLS[1][i])/2.0);
OSLS[2][i]=ceil((P1SLS[2][i]+P2SLS[2][i])/2.0);
OSLS[3][i]=BatchSize[i]-OSLS[1][i]-OSLS[2][i];
}
for(i=1; i<=JobNum; i++){
for(j=1; j<=ChroLen; j++){
if(Offspring[2][j]==i && Offspring[3][j]==1)
Offspring[4][j]=OSLS[1][i];
if(Offspring[2][j]==i && Offspring[3][j]==2)
Offspring[4][j]=OSLS[2][i];
if(Offspring[2][j]==i && Offspring[3][j]==3)
Offspring[4][j]=OSLS[3][i];
}
}
}
/*Çaprazlama operatöründen üretilebilecek infeasible sonuçlar için bir tamir mekanizması
çalıştırılacak*/
for(i=1; i<=ChroLen; i++){
Total=0, Upper=0;
for(j=1; j<=i; j++)
if((Offspring[2][i]==Offspring[2][j])&&(Offspring[3][i]==Offspring[3][j]))
Total++;
for(j=1; j<=OperSeq[Offspring[2][i]][Total]; j++)
Upper+=IndMacNum[j];
if(!((Offspring[1][i]<=Upper)&&(Offspring[1][i]>UpperIndMacNum[OperSeq[Offspring[2][i]][Total]]))){
for(j=i+1; j<=ChroLen; j++){
if((Offspring[2][i]==Offspring[2][j])&&(Offspring[3][i]==Offspring[3][j])){
if((Offspring[1][j]<=Upper)&&(Offspring[1][j]>UpperIndMacNum[OperSeq[Offspring[2][j]][Total]])){
Temp=Offspring[1][j];
Offspring[1][j]=Offspring[1][i];
Offspring[1][i]=Temp;
break;
}
}
}
}
}
return 0;
}
/*********MUTATION FONKSİYONUNUN İÇERİĞİ****************/
int Mutation(int **CFeasSolu){
int i, j, k, Locus, Total=0, NewMac=0, **CCFeasSolu, Total2=0;
if((CCFeasSolu=(int**)calloc(5, sizeof(int*)))==NULL)
exit(1);
102
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
for(i=0; i<=4; i++)
if((CCFeasSolu[i]=(int*)calloc(ChroLen+1, sizeof(int)))==NULL)
exit(1);
/*İlk olarak makine atama kısmı için mutasyon işlemi yapılacak*/
Locus=random(ChroLen)+1;
for(i=1; i<=MacTypeNum; i++){
Total+=IndMacNum[i];
if(CFeasSolu[1][Locus]<=Total){
R1: NewMac=Total-IndMacNum[i]+random(IndMacNum[i])+1;
if(NewMac==CFeasSolu[1][Locus])
goto R1;
CFeasSolu[1][Locus]=NewMac;
break;
}
}
for(i=1; i<=4; i++)
for(j=1; j<=ChroLen; j++)
CCFeasSolu[i][j]=CFeasSolu[i][j];
/*Şimdi operasyon sırasıına mutasyon operatörü uygulanacak*/
for(i=1; i<=4; i++)
for(j=1; j<=ChroLen-Locus; j++)
CFeasSolu[i][j]=CCFeasSolu[i][Locus+j];
for(i=1; i<=4; i++)
for(j=1; j<=Locus; j++)
CFeasSolu[i][ChroLen-Locus+j]=CCFeasSolu[i][j];
/*Tekrar bir tamir mekanizması gerekiyor*/
for(i=1; i<=ChroLen; i++){
Total=0; Total2=0;
for(j=1; j<=i; j++)
if((CFeasSolu[2][i]==CFeasSolu[2][j])&&(CFeasSolu[3][i]==CFeasSolu[3][j]))
Total++;
for(j=1; j<=ChroLen; j++)
if((CCFeasSolu[2][j]==CFeasSolu[2][i])&&(CCFeasSolu[3][j]==CFeasSolu[3][i])){
Total2++;
if(Total2==Total){
for(k=1; k<=4; k++)
CFeasSolu[k][i]=CCFeasSolu[k][j];
Total2=0;
break;
}
}
}
return 0;
}
/**********PERMUTATION FONKSİYONUNUN İÇERİĞİ****************/
int Permutation(int **CFeasSolu){
int i,j, SumMacNum, OrdForSeq, *COperSeq;
if((COperSeq=(int*)calloc(ChroLen+1, sizeof(int)))==NULL)
exit(1);
for(i=1; i<=ChroLen; i++){
SumMacNum=0;
for(j=1; j<CFeasSolu[2][i]; j++)
SumMacNum+=OperNum[j];
103
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
OrdForSeq=0;
for(j=1; j<=i; j++)
if((CFeasSolu[2][i]==CFeasSolu[2][j])&&(CFeasSolu[3][i]==CFeasSolu[3][j]))
OrdForSeq++;
COperSeq[i]=(CFeasSolu[3][i]-1)*UniChroLen+SumMacNum+OrdForSeq;
}
for(i=1; i<=ChroLen; i++)
CFeasSolu[2][i]=COperSeq[i];
return 0;
}
/*************FITFUNC2 FONKSİYONUNUN İÇERİĞİ*******************/
int FitFunc2(int **CFeasSolu){
int i, j, k, l, m, n, OrdForSeq, SeqIndex, OrdForMac, Count, JobPred, MacPred, SumMacNum, Diff,
**CompTime, **StartTime, Makespan;
int Done, Temp1, Temp2, Temp3, Temp4, C1, C2;
if((CompTime=(int**)calloc(TotIndMacNum+1, sizeof(int*)))==NULL)
exit(1);
if((StartTime=(int**)calloc(TotIndMacNum+1, sizeof(int*)))==NULL)
exit(1);
for(i=0; i<=TotIndMacNum; i++)
if((CompTime[i]=(int*)calloc(100, sizeof(int)))==NULL) exit(1);
for(i=0; i<=TotIndMacNum; i++) //CompTime ilk değer ataması yapılıyor.
for(j=0; j<100; j++)
CompTime[i][j]=0;
for(i=0; i<=TotIndMacNum; i++)
if((StartTime[i]=(int*)calloc(100, sizeof(int)))==NULL) exit(1);
for(i=0; i<=TotIndMacNum; i++) //StartTime ilk değer ataması yapılıyor.
for(j=0; j<100; j++)
StartTime[i][j]=0;
for(i=1; i<=ChroLen; i++){
OrdForSeq=0, SeqIndex=0, OrdForMac=0;
for(j=1; j<i; j++){
if((CFeasSolu[2][i]==CFeasSolu[2][j])&&(CFeasSolu[3][i]==CFeasSolu[3][j])){
OrdForSeq++;
SeqIndex=j;
}
if(CFeasSolu[1][i]==CFeasSolu[1][j]){
OrdForMac++;
}
}
Count=0;
for(j=1; j<=SeqIndex; j++){
if(CFeasSolu[1][j]==CFeasSolu[1][SeqIndex]){
Count++;
}
}
if(SeqIndex==0) JobPred=0;
else
JobPred=CompTime[CFeasSolu[1][SeqIndex]][Count]+DistMat[CFeasSolu[1][SeqIndex]][CFeasSol
u[1][i]];
MacPred=CompTime[CFeasSolu[1][i]][OrdForMac];
SumMacNum=0;
for(j=1; j<=MacTypeNum; j++){
104
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
SumMacNum+=IndMacNum[j];
if(CFeasSolu[1][i]<=SumMacNum){
Diff=CFeasSolu[1][i]+IndMacNum[j]-SumMacNum;
break;
}
}
Count=0;
Done=0;
for(j=1; j<i; j++){
if(CFeasSolu[1][i]==CFeasSolu[1][j]){
Count++;
/*İşlemler birinci durum için yapılacak*/
if((JobPred>=CompTime[CFeasSolu[1][i]][Count1])&&(JobPred+CFeasSolu[4][i]*ProcTime[CFeasSolu[2][i]][OrdForSeq+1][Diff]<=StartTime[CFea
sSolu[1][i]][Count])){
Done=1;
Temp1=CFeasSolu[1][i];
Temp2=CFeasSolu[2][i];
Temp3=CFeasSolu[3][i];
Temp4=CFeasSolu[4][i];
for(k=i; k>j; k--)
for(l=1; l<=4; l++)
CFeasSolu[l][k]=CFeasSolu[l][k-1];
CFeasSolu[1][j]=Temp1;
CFeasSolu[2][j]=Temp2;
CFeasSolu[3][j]=Temp3;
CFeasSolu[4][j]=Temp4;
for(k=OrdForMac; k>=Count; k--){
StartTime[CFeasSolu[1][j]][k+1]=StartTime[CFeasSolu[1][j]][k];
CompTime[CFeasSolu[1][j]][k+1]=CompTime[CFeasSolu[1][j]][k];
}
StartTime[CFeasSolu[1][j]][Count]=JobPred;
CompTime[CFeasSolu[1][j]][Count]=JobPred+CFeasSolu[4][j]*ProcTime[CFeasSolu[2][j]][OrdForS
eq+1][Diff];
C1=0; C2=0;
for(k=j+1; k<=i; k++){
if((CFeasSolu[2][k]==CFeasSolu[2][j])&&(CFeasSolu[3][k]==CFeasSolu[3][j])){
Temp1=CFeasSolu[1][k];
Temp2=CFeasSolu[2][k];
Temp3=CFeasSolu[3][k];
Temp4=CFeasSolu[4][k];
for(l=k; l>j+C1+C2; l--)
for(m=1; m<=4; m++)
CFeasSolu[m][l]=CFeasSolu[m][l-1];
CFeasSolu[1][j+C1+C2]=Temp1;
CFeasSolu[2][j+C1+C2]=Temp2;
CFeasSolu[3][j+C1+C2]=Temp3; CFeasSolu[4][j+C1+C2]=Temp4;
C1++;
for(l=j+C1+C2; l<=k; l++){
if(CFeasSolu[1][l]==CFeasSolu[1][j+C1+C2-1]){
Temp1=CFeasSolu[1][l];
Temp2=CFeasSolu[2][l];
Temp3=CFeasSolu[3][l];
Temp4=CFeasSolu[4][l];
for(m=l; m>j+C2; m--)
for(n=1; n<=4; n++)
CFeasSolu[n][m]=CFeasSolu[n][m-1];
CFeasSolu[1][j+C2]=Temp1;
CFeasSolu[2][j+C2]=Temp2;
CFeasSolu[3][j+C2]=Temp3; CFeasSolu[4][j+C2]=Temp4;
C2++;
}
}
105
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
}
}
break;
}
/*Aynı işlemler ikinci durum için de yapılacak*/
if((JobPred<CompTime[CFeasSolu[1][i]][Count1])&&(CFeasSolu[4][i]*ProcTime[CFeasSolu[2][i]][OrdForSeq+1][Diff]<=StartTime[CFeasSolu[1][
i]][Count]-CompTime[CFeasSolu[1][i]][Count-1])){
Done=1;
Temp1=CFeasSolu[1][i];
Temp2=CFeasSolu[2][i];
Temp3=CFeasSolu[3][i];
Temp4=CFeasSolu[4][i];
for(k=i; k>j; k--)
for(l=1; l<=4; l++)
CFeasSolu[l][k]=CFeasSolu[l][k-1];
CFeasSolu[1][j]=Temp1;
CFeasSolu[2][j]=Temp2;
CFeasSolu[3][j]=Temp3;
CFeasSolu[4][j]=Temp4;
for(k=OrdForMac; k>=Count; k--){
StartTime[CFeasSolu[1][j]][k+1]=StartTime[CFeasSolu[1][j]][k];
CompTime[CFeasSolu[1][j]][k+1]=CompTime[CFeasSolu[1][j]][k];
}
StartTime[CFeasSolu[1][j]][Count]=CompTime[CFeasSolu[1][j]][Count-1];
CompTime[CFeasSolu[1][j]][Count]=StartTime[CFeasSolu[1][j]][Count]+CFeasSolu[4][j]*ProcTime
[CFeasSolu[2][j]][OrdForSeq+1][Diff];
C1=0; C2=0;
for(k=j+1; k<=i; k++){
if((CFeasSolu[2][k]==CFeasSolu[2][j])&&(CFeasSolu[3][k]==CFeasSolu[3][j])){
Temp1=CFeasSolu[1][k];
Temp2=CFeasSolu[2][k];
Temp3=CFeasSolu[3][k];
Temp4=CFeasSolu[4][k];
for(l=k; l>j+C1+C2; l--)
for(m=1; m<=4; m++)
CFeasSolu[m][l]=CFeasSolu[m][l-1];
CFeasSolu[1][j+C1+C2]=Temp1;
CFeasSolu[2][j+C1+C2]=Temp2;
CFeasSolu[3][j+C1+C2]=Temp3; CFeasSolu[4][j+C1+C2]=Temp4;
C1++;
for(l=j+C1+C2; l<=k; l++){
if(CFeasSolu[1][l]==CFeasSolu[1][j+C1+C2-1]){
Temp1=CFeasSolu[1][l];
Temp2=CFeasSolu[2][l];
Temp3=CFeasSolu[3][l];
Temp4=CFeasSolu[4][l];
for(m=l; m>j+C2; m--)
for(n=1; n<=4; n++)
CFeasSolu[n][m]=CFeasSolu[n][m-1];
CFeasSolu[1][j+C2]=Temp1;
CFeasSolu[2][j+C2]=Temp2;
CFeasSolu[3][j+C2]=Temp3; CFeasSolu[4][j+C2]=Temp4;
C2++;
}
}
}
}
break;
}
} //if döngüsünün kıvırcığı
} //j değişkeninin döngüsü
if(Done==0){
106
EK-3 (Devam). Genetik algoritma sezgiseli için geliştirilen C++ kodları
if(JobPred>=MacPred){
StartTime[CFeasSolu[1][i]][OrdForMac+1]=JobPred;
CompTime[CFeasSolu[1][i]][OrdForMac+1]=JobPred+CFeasSolu[4][i]*ProcTime[CFeasSolu[2][i]][
OrdForSeq+1][Diff];
}
else{
StartTime[CFeasSolu[1][i]][OrdForMac+1]=MacPred;
CompTime[CFeasSolu[1][i]][OrdForMac+1]=MacPred+CFeasSolu[4][i]*ProcTime[CFeasSolu[2][i]]
[OrdForSeq+1][Diff];
}
}
}//i değişkeninin döngüsü
Makespan=0;
for(i=1; i<=TotIndMacNum; i++)
for(j=1; j<100; j++)
if(CompTime[i][j]>=Makespan)
Makespan=CompTime[i][j];
return Makespan;
}
//---------------------------------------------------------------------------
107
ÖZGEÇMİŞ
Kişisel Bilgiler
Soyadı, adı
: KESEN, Saadettin Erhan
Uyruğu
: T.C.
Doğum tarihi ve yeri
: 06.01.1980 Adana
Medeni hali
: Evli
Telefon
: 0 (312) 582 38 03
Faks
: 0 (312) 230 84 34
e-mail
: [email protected]
Eğitim
Derece
Yüksek Lisans
Eğitim Birimi
Selçuk Üni./Endüstri Müh. ABD
Mezuniyet Tarihi
2004
Lisans
Selçuk Üni./Endüstri Müh.
2001
Lise
Borsa Lisesi
1996
Yıl
Yer
Görev
2002-2004
Selçuk Üniversitesi
Araştırma Görevlisi
2004-
Gazi Üniversitesi
Araştırma Görevlisi
İş Deneyimi
Yabancı Dil
İngilizce
Hobiler
Futbol, Tenis, Yüzme
Download