α α α α α = α - Ankara Üniversitesi Açık Ders Malzemeleri

advertisement
KONU 5: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ – II
5.1. Simpleks Yöntem
D.p.p.’ nin bir başlangıç temel uygun çözümünden (uç noktadan) başlayarak, karşı gelen
amaç fonksiyonunun değerini de göz önüne alıp, ardışık sayısal işlemlerle en iyi çözümü
araştıran bir yaklaşımdır.
Uygun çözüm bölgesinin bir uç noktasından başlanarak, amaç fonksiyonunu istenilen yöne
götüren uç noktalar göz önüne alınıp, komşu bir uç noktaya geçilmektedir. Böylece, modelin
tüm uç noktaları işleme girmediğinden, yoğun işlem yükünden kurtulmuş olunur.
Simpleks yöntem,

Tek bir noktada en iyi çözüm,

Birden fazla uç noktada en iyi çözüm (seçenek çözüm),

Sınırsız çözüm,

Uygun olmayan çözüm,
gibi durumlara cevap vermektedir.
Bunların yanı sıra, modelin yapısında veya parametrelerinde meydana gelebilecek muhtemel
değişimlerin en iyi çözümü nasıl etkileyebileceği de bu algoritma ile analiz edilebilmektedir.
Bir başlangıç temel uygun çözüm nasıl elde edilir?
Temel: Bir vektör uzayındaki vektörler a1 , a2 ,..., an olsun. Eğer, a1 , a2 ,..., an vektörleri
i. Doğrusal bağımsız,
ii. Vektör uzayını yaratıyor,
ise, bu vektör uzayı için temel oluşturur.
Doğrusal bağımsızlık: Bir vektör uzayındaki vektörler a1 , a2 ,..., an için
n
1a1  2a2  ...  nan  i ai
(5.1)
i 1
eşitliği, tüm i , i  1,2,..., n için sağlanıyorsa, a1 , a2 ,..., an vektörleri doğrusal bağımsızdır. En
az bir i  0, i  1,2,..., n ise, a1 , a2 ,..., an vektörleri doğrusal bağımlıdır.
1
Vektör uzayını yaratma: a1 , a2 ,..., an bir vektör uzayının vektörleri olsun. Eğer, vektör
uzayındaki her vektör, a1 , a2 ,..., an vektörlerinin doğrusal bileşimi olarak gösterilebiliyorsa bu
vektörler vektör uzayını yaratıyor denir.
Örnek 1: a1  1 2 1 , a2  2 9 0 ve a3  3 3 4  vektörleri E 3 için bir temel midir?
a1 , a2 ve a3 ’ ün doğrusal bağımsız olması ve vektör uzayını yaratması gerekir.
Çözüm:
Bunun yerine, A   a1 a2 a3  olmak üzere, Aα  b denklem sisteminde A1 ’ in bulunması
yeterlidir.
1a1  2a2   3a3  b
1 1 2 1  2 2 9 0   3 3 3 4   b1 b2 b3 
1  22  3 3  b1 

21  92  3 3  b2   Aα  b olacak biçimde α vektörü bulunmalı.

1  4 3  b3
Bunun için A1 ’ in bulunması yeterlidir.
1 2 3 
A  2 9 3  ise, A  1  0 olup, A tersinirdir. Buna göre, a1 , a2 ve a3 doğrusal bağımsız
1 0 4 
vektörler olup, E 3 için bir temel oluşturur.
5.1.1. Doğrusal Programlama Problemlerinin Standart Biçimi
Bir d.p.p.’ ne simpleks algoritmasını uygulayabilmek için, öncelikli olarak verilen d.p.p.’ i
mutlaka standartlaştırılmalıdır. Buna göre standart haldeki bir d.p.p. açık olarak
min/ max f  X    j 1 c j X j
n
 j 1 aij X j  bi
n
Xj  0
, i  1,2,..., m
, j  1,2,..., n
(5.2)
biçiminde tanımlanır. Matris gösterimi ile
2
min/ max f  X   cX
AX  b
X0
(5.3)
biçiminde olur.
Standart biçime dönüştürme işleminde,

Tüm kısıt fonksiyonları eşitlik biçiminde olmalıdır.

Sağ yan değerler, bi , i  1,2,..., m , negatif değildir.

Tüm değişkenler negatif olmama kısıtlayıcılarını sağlar.

Amaç fonksiyonu en büyükleme veya en küçükleme biçimindedir.
Standartlaştırma işlemi için,

Kısıtlar “  ” biçiminde ise, kısıtlara bir değişken eklenir. Bu değişkene “gevşek
değişken” denir.

Kısıtlar “  ” biçiminde ise, kısıtlardan bir değişken çıkarılır. Bu değişkene “fazla
değişken” denir.

Kısıtlar “  ” biçiminde ise, kısıtlarda bir değişiklik yapılmaz.
Burada, gevşek veya fazla değişken kullanılmayan veya fazla gelen kapasiteyi gösterir. Bu
değişkenlerin maliyetleri sıfırdır ( cG  cF  0 ).
Örnek 2:
P : max Z  2 X1  4 X2
3 X1  5 X 2  6
 2 X1  X2  2
biçiminde tanımlı d.p.p.‘ ni standart halde gösteriniz.
X1  3 X 2  8
3 X1  2 X 2  4
X1 , X 2  0
Çözüm:
P : max Z  2 X1  4 X2
3 X1  5 X 2  X 3  6
2 X1  X 2  X 4  2
X1  3 X 2  8
3 X1  2 X 2  X 5  4
X i  0 , i  1,2,...,5
3
5.1.2. Eşanlı Doğrusal Denklem Sistemi
(5.3) ifadesi ile tanımlı d.p.p.’ deki kısıt sistemi AX  b ’ nin çözümü için iki durum söz
konusudur.
 a11 a12
a
 21 a22
 .
.
 .
.

.
.

am1 am2
AX  b
... a1n   X1   b1 
... a2n   X2   b2 
.
.  .    . 
.
.  .   . 
   
.
.  .   . 
... amn   X n  bm 
Aek   A : bm n1 : Eklemeli matris
Durum 1: Rank  Aek   Rank  A  ise, AX  b denklem sisteminin bir çözümü yoktur.
Durum 2: Rank  Aek   Rank  A   k ise,
(i) k  n ise, tek çözüm vardır.
(ii) n  k ise, sınırsız çözüm vardır.
 A b1 
Aek   A : bm n1   1
 , A1 : k  n , A2 :  m  k   n , b1 : k  1 , b2 :  m  k   1
 A2 b2 
olmak üzere, A1X  b1 doğrusal bağımsız kısıt sistemini, A2X  b2 doğrusal bağımlı kısıt
sistemini tanımlasın. Burada, eğer X vektörü, A1X  b1 sistemini sağlıyorsa, A2X  b2
sistemini de sağlar. O halde, A2X  b2 doğrusal bağımlı kısıtlarını göz ardı ederek, A1X  b1
doğrusal bağımsız kısıtları ele alınsın. Rank  A1   k olduğundan, A1 ’ in k tane bağımsız
kolonu seçilebilir.
A1  B : N  olmak üzere, B , k  k boyutlu temel matris, N , k   n  k  boyutlu temel
olmayan matris olsun. X   X B X N  karar değişkenleri vektöründe, X B , temel değişkenler
vektörü, XN , temel dışı değişkenler vektörü olarak tanımlansın. Buna göre, doğrusal bağımsız
kısıt sistemi için
4
A1X  b1
X 
B N  X B   b1
 N
BX B  NX N  b1
B1BX B  B 1NX N  B 1b1
elde edilir. Buradan
XB  B1b1  B1NX N
(5.4)
olur. (5.4) eşitliğinde aşağıdaki durumlar ile karşılaşılır.

k  n olduğunda, A1X  b1 sisteminin XB  B1b1 ’ den bulunan tek çözümü vardır.
Dolayısıyla, tek çözüm uygun çözüm olacaktır. Bu çözüme temel çözüm denir.
X B  B1b  0  Temel uygun çözümdür.
X B  B1b  0  Temel uygun çözüm değildir.
X B  B1b  0  Bozulmuş temel uygun çözümdür.

n  k olduğunda, k tane çözüme ulaşılır.  n  k  tane değişkene keyfi değerler
vermek gerekir. Verilen her keyfi değere göre çözüm değişecektir. Bu durumda,
sınırsız çözüme ulaşılır.
5.1.3. Temel Çözümler
AX  b , n bilinmeyenli, m doğrusal kısıttan oluşan bir denklem sistemi olsun. Burada,
n  m dir. A matrisinden, m  m boyutlu tekil olmayan (tersinir) B matrisi seçilir. Sıfırdan
farklı olan m tane değişken temel değişkendir. Elde edilebilecek olası temel çözümler,
n!
n 
sayıda olacaktır.
 m 
  m! n  m!
Örnek 3:
P : max Z  2 X1  3 X2  4 X3
2 X1  3 X 2  2 X 3  3
4 X1  2 X 2  6 X 3  5
X i  0 , i  1,2,3
biçiminde tanımlı d.p.p.’ nin olası temel uygun çözümlerini elde ediniz.
5
Çözüm:
 3
 2   3 tane olası temel uygun çözüm vardır.
 
2 3 2 
3
A
, b    olmak üzere,

 5
4 2 6 
 2 3
i. B   a1 a2   

4 2
B1 
1
B
,
X B   X1 X 2  , X N  X 3
 2 3  1 / 4 3 / 8 
 4 2    1 / 2 1 / 4 

 

 1 / 4 3 / 8  3 9 / 8   0
XB  B1b  
   

 1 / 2 1 / 4  5 1 / 4   0
olup, XB   X1 X2  temel uygun çözümdür. Amaç fonksiyon değeri,
9
1
Z1  2   3   4  0  3 .
8
4
2 2 
ii. B   a1 a3   

4 6 
B1 
1
B
, X B   X 1 X 3  , X N  X2
 6 2 3 / 2 1 / 2
 4 2    1 1 / 2 

 

3 / 2 1 / 2 3  2   0
XB  B1b  
   

 1 1 / 2  5  1 / 2  0
olup, XB   X1 X3  temel uygun çözüm değildir. Bu nedenle, amaç fonksiyon değeri
hesaplanamaz.
3 2 
iii. B   a2 a3   
 , XB   X2 X3  , XN  X1
2 6 
B1 
1
B
 6 2  3 / 7 1 / 7
 2 3    1 / 7 3 / 14 

 

 3 / 7 1 / 7 3  4 / 7   0
XB  B1b  
   

 1 / 7 3 / 14  5 9 / 14   0
6
olup, XB   X2 X3  temel uygun çözümdür. Amaç fonksiyon değeri,
4
9
Z3  2  0  3   4   4.2857 .
7
14
Burada, Z3  Z1 olduğundan, optimal çözüm değeri X*   0 4 / 7 9 / 14  olur.
Bir d.p.p.’ nin en iyi çözüm değerinin elde edilmesi için izlenen bu yol, etkin olmayan bir
yoldur. Çünkü, değişken sayısının artması durumunda temel çözüm sayısı da artar. Ayrıca,
temel çözümlerin incelenmesi problemin sınırsız çözümünün olup olmadığını belirlemeye
yetmez. Bu nedenle, uç noktalar arasında yinelemeli bir yöntem olan Simpleks yöntem ile en
iyi uç nokta bulunmalıdır.
5.1. Simpleks Algoritması
min f  X   cX
AX  b
X0
(5.5)
biçiminde tanımlı bir d.p.p.’ nin en iyi çözümünün elde edilmesi amacıyla uygulanacak
Simpleks yönteminin algoritmik adımları aşağıdaki gibidir:
Adım 1: Bir B temeli seçilerek, B 1 hesaplanır. Burada, işlem kolaylığı bakımından B
temelinin seçilmesinde birim matrise yer verilir, B  I .
Adım 2: B temeline ilişkin bir başlangıç temel uygun çözüm belirlenir, X B  B1b . XN  0
alınır. ZB  cBXB hesaplanır.
Adım 3: Adım 2’ de bulunan amaç fonksiyonu değeri ZB ’ nin en küçük olup olmadığını test
etmek için, temel dışı değişkenlere ilişkin Z j  c j değeri hesaplanır. Burada,
Z j  c j  cBB1a j  c j
(5.6)
olup, “en iyilik ölçütü” olarak adlandırılır.
Adım 4: (5.5) ifadesi ile tanımlı bir en küçükleme problemi için hesaplanan tüm Z j  c j  0
ise, optimal çözüme ulaşılmıştır. Son bulunan çözüm en iyi çözümdür. Eğer, en az bir
Z j  c j  0 ise,


Zk  ck  max Z j  c j :  Z j  c j   0
(5.7)
ölçütüne göre temele alınacak vektör belirlenir. Bu durumda ak vektörü temele alınır.
7
Adım 5: ak vektörüne ilişkin yk değerleri, y k  B 1ak , hesaplanır. Burada,

yk  0 ise, sınırsız çözüme ulaşılır.

yk  0 ise, yk ’ nın en az bir elemanı sıfırdan farklı oluyorsa
X

XBr
 min  Bi : yik  0 
yrk
 yik

(5.8)
ölçütüne göre, temelden çıkacak değişken belirlenir. Yeni çözüm uygun çözüm olur ve
devam edilir.
Adım 6: r. vektör temelden çıkarılır, yerine ak vektörü alınır. Belirlenen yeni temel için de
X B  B1b ve ZB  cBXB hesaplanır. Adım 3’ ten devam edilir.
NOT: (5.5) ifadesi ile tanımlı d.p.p.
max f  X   cX
AX  b
X0
(5.9)
biçiminde tanımlı olduğunda, Adım 3’ te, (5.6) eşitliği ile tanımlanan en iyilik ölçütü, temel
dışı değişkenlere ilişkin Z j  c j değerleri için
Z j  c j  cBB1a j  c j  0
(5.10)
biçimindedir. Adım 4’ te (5.7) eşitliği ile verilen temelden çıkacak değişkeni belirlemede
kullanılan ölçüt ise,


Zk  ck  min Z j  c j :  Z j  c j   0
(5.11)
olarak tanımlanır.
Örnek 4:
P : min Z   X1  X2
X1  X 2  6
 X1  2 X 2  8
X1 , X 2  0
biçiminde tanımlı d.p.p. için, simpleks algoritmasını kullanarak en iyi çözüm değerini elde
ediniz.
8
Çözüm:
Verilen primal problem standart biçime getirilir.
P : min Z   X1  X2  0 X3  0 X 4
X1  X 2  X 3  6
 X1  2 X 2  X 4  8
X i  0 , i  1,2,3,4
Burada, A katsayılar matrisi ve sağ yan değerler vektörü
 1 1 1 0
A   a1 a2 a3 a4   

 1 2 0 1 
6 
b 
8 
,
olur.
I. Yineleme:

1 0  1
B   a3 a4   
, X B   X 3 X 4  , X N   X1 X 2   0
 B
0 1 

 1 0  6  6   0
XB  B1b  
    
 0 1  8  8   0

6 
ZB  c B X B   0 0     0
8 
,
Bulunan amaç fonksiyon değeri optimal mi? Temel dışı değişkenler, X1 ve X2 ’ ye
ilişkin Z j  c j değerleri hesaplanır.
 1 0   1
Z1  c1  cBB1a1  c1   0 0 
     1  1
0 1   1
1 0  1 
Z2  c2  cBB1a2  c2   0 0 
     1  1
0 1  2



Zk  ck  max Z j  c j :  Z j  c j   0  max1, 1  1
olur. Bu durumda, herhangi bir a vektörü temele alınabilir. a2 vektörünün temele
alındığı kabul edilsin.

1 0  1  1   0
y2  B1a2  
olduğundan,
    
0 1  2 2  0
XBr
6 8 
 min  ,   4 olur. Buna göre, temelin 2. elemanı X 4 temelden çıkar.
yrk
1 2 

1 1 
Yeni temel, B   a3 a2   
 olur. II. Yinelemeye geçilir.
0 2
9
II. Yineleme:

1 1 / 2 6  2   0
XB  B1b  
    
 0 1 / 2  8   4   0
, X B   X 3 X 2  , X N   X1 X 4   0
2 
ZB  cBXB   0  1    4
4 

Bulunan yeni amaç fonksiyon değeri optimal mi? Temel dışı değişkenler, X1 ve X 4 ’ e
ilişkin Z j  c j değerleri hesaplanır.
1 1 / 2  1
Z1  c1  cBB1a1  c1   0  1 
     1  3 / 2
0 1 / 2   1
1 1 / 2 0 
Z4  c4  cBB1a4  c4   0  1 
     1  1 / 2
0 1 / 2  1 

Z1  c1  3 / 2  0 olduğundan, a1 vektörü temele alınır.

1 1 / 2  1  3 / 2  0
y1  B1a1  
   

0 1 / 2   1  1 / 2   0
Buna göre, temelin 1. elemanı X 3 temelden çıkar.

 1 1
Yeni temel, B   a1 a2   
 olur. III. Yinelemeye geçilir.
 1 2
III. Yineleme:

2 / 3 1 / 3 6  4 / 3   0
XB  B1b  
   

1 / 3 1 / 3  8  14 / 3  0

4 / 3 
ZB  cBXB   1  1 
 6
14 / 3

Bulunan yeni amaç fonksiyon değeri optimal mi? Temel dışı değişkenler, X 3 ve X 4 ’ e
, X B   X1 X 2  , X N   X 3 X 4   0
ilişkin Z j  c j değerleri hesaplanır.
2 / 3 1 / 3 1 
Z3  c3  cBB1a3  c3   1  1 
    0  1
1 / 3 1 / 3  0 
2 / 3 1 / 3 0 
Z4  c4  cBB1a4  c4   1  1 
 00
1 / 3 1 / 3  1 

Tanımlanan d.p.p. için hesaplanan tüm Z j  c j  0 olduğundan, optimal çözüme
ulaşılmıştır. Son bulunan çözüm, en iyi çözümdür.
10
X*   X1 X2   4 / 3 14 / 3 ,
Z *  6
Burada, Z4  c4  0 olması seçenek çözüm olduğunu gösterir. Bu durumda tüm olası
noktaları bulabilmek için a4 vektörü temele alınsın.
1 1 / 2 0   1 / 3  0
y 4  B1a4  
   

0 1 / 2  1   1 / 3  0
Buna göre, temelin 2. elemanı X2 temelden çıkar.
 1 0
Yeni temel, B   a1 a4   
 olur.
 1 1 
1 0  6  6   0
XB  B1b  
, X B   X1 X 4  , X N   X 2 X 3   0
    
1 1  8  14   0
X*   X1 X2   6 0 ,
Z *  6 olup, verilen d.p.p. için alternatif çözüm elde edilmiştir.
Bu iki seçenek çözümün dışbükey bileşimleri ile iki seçenek çözüm arasındaki doğru parçası
üzerinde tanımlı diğer seçenek çözümler de elde edilebilir.
X  1X1  2X2
4 / 3 
6 


1




0 
14 / 3
   4 / 3   1    6 


 14 / 3


olur. Buna göre,
  0  X  6 0  , Z *  6
  1  X  X1   4 / 3 14 / 3 , Z *  6
1
2
   X  11 / 3 7 / 3 , Z *  6
bulunur.
11
Download