Gams Konteyner Problemi

Bir mermer firmasına ait ocaktan çıkarılan bloklar fabrikaya tırlar ile taşınacaktır. Ocakta taşınmayı bekleyen 26 adet mermer bloğu bulunmakta olup bunların ağırlıkları ve ebatları aşağıdaki tabloda verilmiştir. Bir tırın taşıma kapasitesi maksimum 40 ton, kasanın boyu 13.61 ve eni 2.48 metredir. İki bloğun üst üste veya veya yan yana taşınmasına izin verilmemektedir.

No Boy En Ağırlık(ton)
1 2.5 1.3 17.6
2 2.2 0.9 6.4
3 2.7 1.0 12.4
4 2.1 1.1 11.9
5 1.3 1.4 7.9
6 1.7 1.6 14.0
7 2.1 1.7 18.3
8 2.5 0.8 9.7
9 2.4 1.0 9.7
10 2.7 1.0 13.1
11 2.2 1.6 18.1
12 2.4 1.6 18.7
13 1.5 0.8 4.2
14 1.7 1.5 9.0
15 1.9 1.5 10.0
16 1.8 0.9 6.1
17 2.0 1.3 7.7
18 1.8 1.6 9.3
19 1.4 1.7 10.9
20 2.5 1.2 9.7
21 1.6 1.6 13.1
22 1.9 0.8 7.4
23 2.4 1.0 8.4
24 2.7 0.8 8.2
25 1.6 1.4 7.3
26 1.8 1.3 6.9

Bu bilgilere göre en az taşıma yapacak şekilde blokların tırlara nasıl yerleştirileceğini bulan karar modelini yazınız. Yazdığınız modelin GAMS kodunu yazınız.

 

Gams kodu

sets
i bloklar /1*26/
j tırlar /1*12/
k pozisyon /1,2/;
variable
x(i,j,k)  1 eğer i. blok j. tıra k. pozisyonda konulur ise
y(j)       1  eğer j. tır kullanılır ise
z           minimum tır sayısı;
binary variables
x,y;
table a(i,k) en ve boy ölçüleri
          1          2
1         2.5        1.3
2         2.2        0.9
3         2.7        1.0
4         2.1        1.1
5         1.3        1.4
6         1.7        1.6
7         2.1        1.7
8         2.5        0.8
9         2.4        1.0
10        2.7        1.0
11        2.2        1.6
12        2.4        1.6
13        1.5        0.8
14        1.7        1.5
15        1.9        1.5
16        1.8        0.9
17        2.0        1.3
18        1.8        1.6
19        1.4        1.7
20        2.5        1.2
21        1.6        1.6
22        1.9        0.8
23        2.4        1.0
24        2.7        0.8
25        1.6        1.4
26        1.8        1.3;
parameters
agirlik(i) blokların ağırlığı
/1        17.6
2         6.4
3         12.4
4         11.9
5         7.9
6         14.0
7         18.3
8         9.7
9         9.7
10        13.1
11        18.1
12        18.7
13        4.2
14        9.0
15        10.0
16        6.1
17        7.7
18        9.3
19        10.9
20        9.7
21        13.1
22        7.4
23        8.4
24        8.2
25        7.3
26        6.9/;
equations
boy(j)        blokların uzunluğu tırın boyunu aşamaz
en(i,j)       blokların eni tırın enini aşamaz
agirlikkis(j) blokların ağırlığı 40 tonu geçemez.
pozisyon(i,j) her blok bir pozisyonda tıra yerleştirilebilir
amac          toplam tır sayısını minimum yapmak;
boy(j).. sum((i,k), a(i,k)*x(i,j,k))=l=13.61*y(j);
en(i,j).. sum (k,a(i,k)*x(i,j,k))=l=2.48;
pozisyon(i,j).. sum(k,x(i,j,k))=l=1;
agirlikkis(j).. sum((i,k), agirlik(i)*x(i,j,k))=l=40;
amac.. z=e=sum(j, y(j));
model blok /all/
solve blok using mip minimizing z;
display
x.l, y.l, z.l;

2 Comments

  1. minimum tır sayısı sıfır çıkıyor.. kod mu yanlıs yoksa cozumsuz mü?

    Cevapla
    • Akif Yanbak14 Temmuz 2014 at 15:24

      2 sene önce yazmıştık derste. Çalışıyor diye hatırlıyorum. Kısıtlarda hata olabilir belki. Şuan programla ilgili kafamda birşey kalmadı sayılır 🙂 hatayı bulursanız buraya da eklerseniz sevinirim

      Cevapla

Your email address will not be published.