Professional Documents
Culture Documents
Optimizasyon MATLAB
Optimizasyon MATLAB
Optimizasyon MATLAB
İÇİNDEKİLER
İÇİNDEKİLER..................................................................................................................... i
SİMGELER.......................................................................................................................... i
ŞEKİLLER LİSTESİ............................................................................................................ i
TABLOLAR LİSTESİ ......................................................................................................... i
1 GİRİŞ........................................................................................................................... 1
2 İŞLEM ......................................................................................................................... 1
3 FİRE MİKTARININ EN AZA İNDİRİLMESİ .......................................................... 1
3.1 Amaç Fonksiyonu ................................................................................................ 1
3.2 Sınırlayıcılar ......................................................................................................... 1
4 MATLAB PROGRAMI .............................................................................................. 1
4.1 Açıklamalı Kodlar ................................................................................................ 2
4.2 Girdi ve Çıktılar ................................................................................................... 4
5 SONUÇLAR ve YORUM ........................................................................................... 5
SİMGELER
b: Yatay doğrultudaki boyut
h: Dikey doğrultudaki boyut
x: Optimize edilecek adet
i: Yerleştirme indeksi
j: Sipariş indeksi
n: Sipariş adedi
f: Amaç fonksiyonu
ŞEKİLLER LİSTESİ
TABLOLAR LİSTESİ
i
İsmail H. ŞANLITÜRK Fırat Üniversitesi Müh. Fak. Makine Mühendisliği - 2010
1 GİRİŞ
İmalat sektöründeki firmalarda kârın yüksek olması için kullanılan yarı mamullerin en
yüksek yüzdeyle kullanılabilmesi, ayrıca atık miktarının da en düşük düzeyde kalması
gerekmektedir. Bu çalışmanın kapsamında olan siparişi verilen dikdörtgen biçimindeki
plakaların ana levhaya yerleştirilmesinde de bu değişmez.
Güncel sistemlerde genetik algoritma, yapay sinir ağları gibi yöntemlerle geliştirilmiş,
minimum fire sağlayan yazılımlar kullanılmaktadır.
Bahsedilen yazılımlar önce tek bir levha yerleştirip, geriye kalan alanı en yüksek verimle
kullanacak şekilde her bir levhayı teker teker yerleştirerek fire miktarını en düşük seviyeye
indirmeyi amaçlarlar. Bunu yaparken hem alan hem biçim optimizasyonu yaparlar.
Bu çalışmada gelen sipariş okunarak, fire en az olacak şekilde alan optimizasyonu
yapılmıştır. Bunu yaparken MATLAB Optimization Toolbox’da bulunan “fmincon” aracı
kullanılmıştır.
2 İŞLEM
Siparişi verilen dikdörtgen biçiminde cam levhaların 6000x3200mm boyutundaki ana
levhaya en az fire verecek biçimde yerleştirilmesi istenmektedir. İşlem yapılacak malzeme
cam olduğu için lazer veya su jetiyle kesme işlemindeki gibi kısmi kesimler mümkün değildir.
Önce yatay veya dikey olmak üzere boydan boya cam kesilir. Geriye kalan parçalardaki
biçimler de her seferinde boydan boya olacak şekilde kesilerek istenen ürünler elde edilir.
3.2 Sınırlayıcılar
Sipariş miktarı ana levhanın alanına eşit ya da ana levhadan daha büyük olursa en fazla
sayıda levha yerleştirilecektir.
n
x b h
j 1
j j j bT hT j 1...n (3.2)
4 MATLAB PROGRAMI
Amaç fonksiyonu ve sınır şartları ana levha alanının verimli kullanılması hakkında ifade
içermediği için yerleştirmenin program yazılırken dikkate alınması gereklidir.
Ayrıca “fmincon” aracı küsürlü sonuç üretebilmektedir. Ancak adet küsürlü
olamayacağından küsürlere karşılık gelen alan kullanılamayacaktır. Bunu engellemek için
1
İsmail H. ŞANLITÜRK Fırat Üniversitesi Müh. Fak. Makine Mühendisliği - 2010
sipariş edilen her bir levhanın ana levhaya en fazla kaç adet sığabileceği hesaplanmıştır. Bu
hesap yatay ve dikey yerleşim için tekrarlanmıştır. Bu sayede levha alanını en verimli
kullanacak şekilde yerleştirme yapılması amaçlanmıştır.
Programda bulunan adetlerin sipariş sayısından fazla olması halinde bu adetler sabitlenip
amaç fonksiyonu güncelleştirilerek yeniden optimizasyon yapılmaktadır.
2
İsmail H. ŞANLITÜRK Fırat Üniversitesi Müh. Fak. Makine Mühendisliği - 2010
aEssiz_(i)=[];
end
i=i-1;
end
%Guncellestirilen adetlere gore yeniden optimizasyon yapiliyor
if j>1
xHepsi=fmincon(@(xHepsi)
odevAmac(xHepsi,aEssiz_,bEssiz,sabit,xsabit),zeros(1,m),aEssiz_,bEssiz,[],[
],0,[]);
dHepsiTsayi=fix(xHepsi);
end
m=1;
%Yerlestirme listesi guncellestiriliyor
for i=1:n
if eksikler(i)~=0
hepsiTsayi(i)=dHepsiTsayi(m);
m=m+1;
else
hepsiTsayi(i)=cHepsiTsayi(i);
end
end
%Her bir levhanin tek basina ana levhaya en fazla kac adet
%sigabilecegi hesaplaniyor
for i=1:n
for j=1:2
for k=1:2
xTek=fmincon(@(xTek)
amac(xTek,bhi(i,j)),0,bhi(i,j),lBoyut(k),[],[],0,[]);
cTekTsayi(j,k,i)=fix(xTek);
xTek_(j,k,i)=xTek;
end
end
%Levhanın yatay yerlestirilmesi durumunda sigabilen levha adedi
yatay(i,:)=diag(cTekTsayi(:,:,i))';
%Dikey durumda adet
dikey(i,:)=fliplr(diag(fliplr(cTekTsayi(:,:,i)))');
end
dizilim=[yatay;dikey];
i=1; k=1; x1=0; y1=0; eskiBoy=0; eskiEn=0;
kalanBoyut=lBoyut; m_=1; toplam=0;i_=1;
while i<=n
yerlesen=1;
%Yatay yerlesimde mi daha fazla yer kaliyor dikey yerlesimde mi?
if kalanBoyut(1)-dizilim(i,1)*bhi(i,1)<kalanBoyut(1)-
dizilim(i+4,1)*bhi(i,2)
a=1;
b=2;
else
a=2;
b=1;
end
%Yerlesen levha sayisi siparis sayisina ulasincaya kadar
while yerlesen<=hepsiTsayi(i)
en(i)=bhi(i,a);
boy(i)=bhi(i,b);
%Levha yerlestirecek yer kalmadiysa diger levhalarin sigip
%sigmadigi kontrol ediliyor
if kalanBoyut(2)<boy(i)
i=i+1;
break;
end
3
İsmail H. ŞANLITÜRK Fırat Üniversitesi Müh. Fak. Makine Mühendisliği - 2010
4
İsmail H. ŞANLITÜRK Fırat Üniversitesi Müh. Fak. Makine Mühendisliği - 2010
5 SONUÇLAR VE YORUM
Yazılan program ……. A.Ş.’de kullanılan programla karşılaştırıldığında verimi çok
düşük kalmaktadır. Ticari programlarda toplam alana göre yerleştirme miktarının belirlenmesi
yerine, kalan alana maksimum sayıda levha yerleştirilmesi yapılmaktadır.
Ayrıca yazılan program yükseklik doğrultusundaki alanı verimli kullanırken, yatay
doğrultudaki alanı verimli kullanamamaktadır.