0 1 problemler SIRT ANTASI PROBLEM KNAPSACK DEKENLER
0 -1 problemler •
SIRT ÇANTASI PROBLEMİ (KNAPSACK) •
DEĞİŞKENLER: (karar değişkeni) •
KISITLAR ve AMAÇ FONKSİYONU •
Ö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:
Şirket, taşınacak yükü maksimize edecek yükleme şeklini belirlemelidir. Bu problem 0 -1 sırt çantası problemi olarak formüle edile bilir.
DEĞİŞKENLER ve KISITLAR: •
AMAÇ FONKSİYONU: •
Problemin GAMS Kodu $title The 0 -1 Knapsack Problem OPTION OPTCR=1 e-10; SET J set of containers /c 1*c 10/; PARAMETERS C(J) benefit of container J /c 1 100 c 2 155 c 3 50 c 4 112 c 5 70 c 6 80 c 7 60 c 8 118 c 9 110 c 10 55/
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;
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.
• 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:
VERİLER: •
KARAR DEĞİŞKENİ: •
KISITLAR: •
AMAÇ FONKSİYONU: •
ÖRNEK: Varsayalım ki, mühendislik akademisinin 20 üyesi var. J=8 aday içerisinden r=4 adayın seçilmesi gerekiyor. Skorların (p 1= 10 , p 2= 8 , p 3= 3 , p 4= 1) olduğunu, dolayısı ile s=4 olduğu verilmektedir. Her adayın aldığı skor, tabloda verilmiştir:
• 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. ) :
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, J 1); PARAMETER P(S) the $s$-th score /1 10 2 8 3 3 4 1/;
TABLE N(I, J) score assigned to candidate J by actual member I 1 2 3 4 5 6 7 8 1 3 10 8 1 2 1 10 8 3 3 1 3 10 8 4 3 10 8 1 5 4 8 10 1 6 1 10 8 3 7 10 8 3 1 8 3 10 1 8 9 8 3 10 1 10 3 10 1 8 11 8 10 3 12 10 13 10 8 14 10 1 3 8 15 3 10 8 1 16 10 1 8 3 17 1 3 10 8 18 1 3 8 10 19 1 10 3 8 20 8 1 10 3;
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 L 1(I, J) each member can assign at most one score to each candidate L 2(I, S) each member I can assign score S to at most one candidate TOTALSCORE(J) totalscore given;
OBJ(J)$DIN(J). . z =e= sum(I, sum(S, x(I, J, S))) ; L 1(I, J). . sum(S, x(I, J, S))=l=1; L 2(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(J 1, DIN(J 1)=YES;
Solve academy using mip Minimizing z; zmin=z. l; Solve academy using mip Maximizing z; zmax=z. l; put "J=", J 1. tl: 3, " zmin= ", zmin: 3: 0, " zmax= ", zmax: 3: 0/; DIN(J 1)=NO; );
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
Sonuç: 8 aday için minimum ve maksimum destek sayıları aşağıdaki tabloda verilmiştir:
- Slides: 28