Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanEkin Kahveci Değiştirilmiş 6 yıl önce
1
0-1 problemler 0-1 problemleri tam sayılı programlama problemler sınıfının önemli problemlerinden biridir. Bu tür problemlerde karar değişkeni sadece 0-1 değerlerini alır. Yani, 𝑥= 1, 𝑒ğ𝑒𝑟 𝑜𝑙𝑎𝑦 𝑔𝑒𝑟ç𝑒𝑘𝑙𝑒ş𝑖𝑦𝑜𝑟𝑠𝑎 0, 𝑑.𝑑.
2
SIRT ÇANTASI PROBLEMİ (KNAPSACK)
Bu problemlere örnek olarak SIRT ÇANTASI PROBLEMİ’ni gösterelim VERİLER: 𝑛−𝑜𝑏𝑗𝑒𝑙𝑒𝑟𝑖𝑛 𝑒ş𝑦𝑎𝑙𝑎𝑟ı𝑛 𝑠𝑎𝑦ı𝑠ı, 𝑎 𝑗 −𝑗. 𝑒ş𝑦𝑎𝑛ı𝑛 𝑎ğı𝑟𝑙ığı, 𝑐 𝑗 −𝑗. 𝑒ş𝑦𝑎𝑛ı𝑛 𝑓𝑎𝑦𝑑𝑎𝑙ı𝑙ığı, 𝑏−𝑠ı𝑟𝑡 ç𝑎𝑛𝑡𝑎𝑠ı𝑛ı𝑛 𝑘𝑎𝑝𝑎𝑠𝑖𝑡𝑒𝑠𝑖
3
DEĞİŞKENLER: (karar değişkeni)
𝑥 𝑗 = 1 , 𝑒ğ𝑒𝑟 𝑗. 𝑒ş𝑦𝑎 ç𝑎𝑛𝑡𝑎𝑦𝑎 𝑘𝑜𝑛𝑑𝑢𝑦𝑠𝑎, 0, 𝑑.𝑑.
4
KISITLAR ve AMAÇ FONKSİYONU
𝑗=1 𝑛 𝑎 𝑗 𝑥 𝑗 ≤𝑏 Çantaya konulacak eşyalar, çantanın kapasitesini aşmayacak. max 𝑍= 𝑗=1 𝑛 𝑐 𝑗 𝑥 𝑗 Bu problemin amacı, toplam faydalılığı maksimize etmektir.
5
ÖRNEK: Bir şirket, kapasitesi 700 ton olan bir yük gemisine sahiptir. Bu şirket belli bir rota ile farklı ağırlıklara sahip konteynerler taşımaktadır. Belli bir seyahat esnasında bu şirket aşağıdaki konteynerlerin bazılarını taşımalıdır:
6
Şirket, taşınacak yükü maksimize edecek yükleme şeklini belirlemelidir.
Bu problem 0-1 sırt çantası problemi olarak formüle edile bilir.
7
DEĞİŞKENLER ve KISITLAR:
𝑥 𝑗 = 1 , 𝑒ğ𝑒𝑟 𝑗.𝑘𝑜𝑛𝑡𝑒𝑦𝑛𝑒𝑟 𝑡𝑎şı𝑛𝑎𝑐𝑎𝑘𝑠𝑎, 0, 𝑑.𝑑. Toplam yük geminin kapasitesini aşmayacak. 100 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 10 ≤700 Burada 𝑎 𝑗 = 𝑐 𝑗 dir.
8
AMAÇ FONKSİYONU: Bu yük gemisinin taşıyacağı yükün maksimize edilmesidir. 𝑧= 𝑗=1 10 𝑐 𝑗 𝑥 𝑗 =100 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 𝑥 10
9
Problemin GAMS Kodu $title The 0-1 Knapsack Problem OPTION OPTCR=1e-10; SET J set of containers /c1*c10/; PARAMETERS C(J) benefit of container J /c1 100 c2 155 c3 50 c4 112 c5 70 c6 80 c7 60 c8 118 c9 110 c10 55/
10
A(J) weight of ontainer J; A(J) = C(J); SCALAR B maximum capacity of the freighter /700/; Variables z objective function variable x(J) binary choice; BINARY VARIABLE x; EQUATIONS COST objective function equation CAPA is the loading of the freighter;
11
COST. z =E= SUM(J, C(J). x(J)); CAPA. SUM(J, A(J)
COST .. z =E= SUM(J, C(J)*x(J)); CAPA .. SUM(J, A(J)*x(J)) =L= B; MODEL knapsack /ALL/; SOLVE knapsack USING mip MAXIMIZING z; Sonuç: Z=700 Seçilen konteynerler: 𝐶 1 , 𝐶 3 , 𝐶 4 , 𝐶 5 , 𝐶 6 , 𝐶 7 , 𝐶 8 , 𝐶 9 .
12
AKADEMİ PROBLEMİ. Akademi problemini örnek üzerinde göstermeğe çalışalım: Varsayalım ki, mühendislik akademisinin m sayıda üyesi var ve J aday kümesinden r sayıda yeni üye seçilmesi gerekiyor. Bu amaçla her gerçek üyeye en az 0, en fazla r sayıda adayı desteklemek fırsatı verilmiştir. En çok destek alan r aday akademiye alınacaktır. Seçim iki aşamalı yapılıyor.
13
Final seçim sürecinin öncesinde her adayın destek derecesini öğrenmek için ön test yapılmaktadır
Bu süreçte her gerçek üye P listesinde en fazla s adaya bir skor ataya bilir, fakat her kese de skor atamak zorunda değil. Her adayın sadece aldığı skorların toplamı bilinmektedir. Problem, test sonuçlarına dayanarak her adayın minimal ve maksimal sayıdaki final destek miktarlarının belirlenmesinden oluşmaktadır. Böyle ki, bir adaya skor atanması, bu adayın gerçek üye tarafından desteklenmesi anlamına gelir. Problem aşağıdaki gibi formüle edilir:
14
VERİLER: 𝐼 − 𝑀üℎ𝑒𝑛𝑑𝑖𝑠𝑙𝑖𝑘 𝑎𝑘𝑎𝑑𝑒𝑚𝑖𝑠𝑖𝑛𝑑𝑒𝑘𝑖 𝑔𝑒𝑟ç𝑒𝑘 ü𝑦𝑒 𝑠𝑎𝑦ı𝑠ı,
𝐽−𝑎𝑑𝑎𝑦 𝑠𝑎𝑦ı𝑠ı, 𝑆− 𝑎𝑡𝑎𝑛𝑎 𝑏𝑖𝑙𝑒𝑐𝑒𝑘 𝑓𝑎𝑟𝑘𝑙ı 𝑠𝑘𝑜𝑟 𝑚𝑖𝑘𝑡𝑎𝑟ı, 𝑝 𝑠 −𝑠. 𝑠𝑘𝑜𝑟, 𝑐 𝑗 −𝑗. 𝑎𝑑𝑎𝑦ı𝑛 𝑡𝑜𝑝𝑙𝑎𝑚 𝑠𝑘𝑜𝑟𝑢.
15
KARAR DEĞİŞKENİ: 𝑥 𝑖𝑗𝑠 = 1 , 𝑒ğ𝑒𝑟 𝑖.ü𝑦𝑒 𝑗. 𝑎𝑑𝑎𝑦𝑎 𝑝 𝑠 𝑠𝑘𝑜𝑟𝑢 𝑎𝑡𝑎𝑟𝑠𝑎, 0, 𝑑.𝑑.
16
KISITLAR: 𝑠=1 𝑆 𝑥 𝑖𝑗𝑠 ≤1 ∀𝑖=1,…𝐼 , ∀𝑗=1,…𝐽
Her üye, her adaya en fazla 1 skor ataya bilir. 𝑠=1 𝑆 𝑥 𝑖𝑗𝑠 ≤ ∀𝑖=1,…𝐼 , ∀𝑗=1,…𝐽 Her üye, 𝑝 𝑠 skorunu en fazla 1 adaya ataya bilir. 𝑗=1 𝐽 𝑥 𝑖𝑗𝑠 ≤ ∀𝑖=1,…𝐼 , ∀𝑠=1,…𝑆
17
Her adayın atayabileceği toplam skor, önceden verilmiş olan sayıya eşit olmalıdır. 𝑖=1 𝐼 𝑠=1 𝑆 𝑝 𝑠 𝑥 𝑖𝑗𝑠 = 𝑐 𝑗 ∀𝑗=1,…𝐽
18
AMAÇ FONKSİYONU: Her aday için, aldığı destek sayısının hem minimum, hem de maksimum değerinin bulunması gerekiyor. 𝑧= 𝑖=1 𝐼 𝑠=1 𝑆 𝑥 𝑖𝑗𝑠 ∀𝑗=1,…𝐽 𝑧 →𝑚𝑖𝑛 𝑧 →𝑚𝑎𝑥
19
ÖRNEK: Varsayalım ki, mühendislik akademisinin 20 üyesi var. J=8 aday içerisinden r=4 adayın seçilmesi gerekiyor. Skorların (p1= 10 , p2= 8 , p3= 3 , p4= 1) olduğunu, dolayısı ile s=4 olduğu verilmektedir. Her adayın aldığı skor, tabloda verilmiştir:
20
Varsayalım ki, atamalar aşağıdaki şekilde gerçekleşmiştir (bu bilgi bize konuyu anlamak için verilmiş, normalde bu bilgiye sahip değiliz.) :
22
Problemin GAMS Kodu $title the academy problem SETS I number of actual members /1*20/ J number of candidates /1*8/ DIN(J) S the number of different scores that can be assigned /1*4/; ALIAS(J,J1); PARAMETER P(S) the $s$-th score / /;
23
TABLE N(I,J) score assigned to candidate J by actual member I ;
24
SCALARS zmin, zmax; PARAMETER C(J) total score obtained by candidate J; C(J)=sum(I,N(I,J)); Variables z function to be optimized; BINARY VARIABLE x(I,J,S) if member I assigns score P(S) to candidate J takes on value 1. Otherwise 0. ; EQUATIONS OBJ function to be optimized L1(I,J) each member can assign at most one score to each candidate L2(I,S) each member I can assign score S to at most one candidate TOTALSCORE(J) totalscore given;
25
OBJ(J)$DIN(J). z =e= sum(I,sum(S,x(I,J,S))) ; L1(I,J)
OBJ(J)$DIN(J)..z =e= sum(I,sum(S,x(I,J,S))) ; L1(I,J)..sum(S,x(I,J,S))=l=1; L2(I,S)..sum(J,x(I,J,S))=l=1; TOTALSCORE(J)..sum(I,sum(S,P(S)*x(I,J,S)))=e=C(J); ** The model includes all the constraints. MODEL academy /ALL/; ** The output file is open. file aux /academy.out/; put aux; ** First of all, the empty set is assigned to the dynamic set. DIN(J)=NO; loop(J1, DIN(J1)=YES;
26
Solve academy using mip Minimizing z; zmin=z
Solve academy using mip Minimizing z; zmin=z.l; Solve academy using mip Maximizing z; zmax=z.l; put "J=",J1.tl:3, " zmin= ",zmin:3:0," zmax= ", zmax:3:0/; DIN(J1)=NO; );
27
Sonuç: J=1 Z min=8 Z max =20 J=2 Z min=3 Z max =14 J=3 Z min=15 Z max =20 J=4 Z min=2 Z max =13 J=5 Z min=15 Z max =20 J=6 Z min=2 Z max =18 J=7 Z min=3 Z max =20 J=8 Z min=1 Z max =8
28
Sonuç: 8 aday için minimum ve maksimum destek sayıları aşağıdaki tabloda verilmiştir:
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.