Hafta 9-10-11 Dinamik Programlama

39
EM302 Yöneylem Araştırması 2 Dinamik Programlama Dr. Özgür Kabak

Transcript of Hafta 9-10-11 Dinamik Programlama

Page 1: Hafta 9-10-11 Dinamik Programlama

EM302 Yöneylem Araştırması 2

Dinamik Programlama

Dr. Özgür Kabak

Page 2: Hafta 9-10-11 Dinamik Programlama

Kibrit Çöpü Oyunu

Masa üzerinde 30 kibrit çöpü vardır

İki kişi (ben ve rakibim) oynuyor:

Sırası gelen 1,2 veya 3 kibrit çöpü çekiyor.

Ben başlıyorum, rakibim oynuyor, ben oynuyorum …

Son çöpü alan oyuncu kaybediyor.

Oyunu kazanmayı nasıl başarabilirim?

Page 3: Hafta 9-10-11 Dinamik Programlama

550

770

900

1050

510

680

790

580

760

660

700

830

610

790

540

940

790

270

1030

1390

1

2

3

4

5

6

7

8

9

10

En kısa yol – Ağ Problemi

Page 4: Hafta 9-10-11 Dinamik Programlama

Aşama 1 Aşama 2 Aşama 3 Aşama 4 Aşama 5

Page 5: Hafta 9-10-11 Dinamik Programlama

Dinamik Programlama Uygulamalarının

Özellikleri

Sorun her aşamada bir karar alınacak şekilde aşamalara

bölünebilir

Her aşamanın kendisi ile ilgili durumları vardır.

Herhangi bir aşamada seçilen karar mevcut aşamadaki

durumun bir sonraki aşamadaki duruma nasıl

dönüştüğünü tanımlar

Mevcut durum verildiğinde, geri kalan aşamalar için

geçerli en iyi karar önceden erişilen durumlara veya

önceden seçilen kararlara dayanmamalıdır

Sorundaki durumlar T aşamadan birine sınıflandırılmışsa;

t, t+1,...,T aşamaları boyunca kazanılan ödül veya

maliyetleri, t+1, t+2,..., T aşamalarında kazanılan ödül

veya maliyetler ile ilişkilendiren bir yineleme vardır.

Page 6: Hafta 9-10-11 Dinamik Programlama

𝑓𝑡 𝑖 = min𝑗

𝑐𝑖𝑗 + 𝑓𝑡+1(𝑗)

Page 7: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri - Örnek

Bir şirketin ürününe önümüzdeki dört ay boyunca talep sırasıyla 1, 3, 2 ve 4 adettir.

Her ayın başında şirket o ay kaç adet ürün üreteceğine karar vermek zorundadır.

Üretim için hazırlık (sabit) maliyeti $3’dır.

Üretilen her ürün için değişken maliyet $1’dır.

Her ayın sonunda eldeki her ürün için 50¢’lik bir stokta tutma maliyeti söz konusudur.

Bir ayda en fazla 5 adet ürün üretilebilir. Her ayın sonunda stokta en fazla 4 adet ürün olabilir.

Birinci ayın başında elde ürün olmadığı varsayılacaktır. Şirket dört ay boyunca taleplerin zamanında karşılandığı ve üretim ile taşıma maliyetlerinin en küçüklendiği bir üretim çizelgesi belirlemek istemektedir.

Page 8: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri - Örnek

Talepler:

1. ay: 1 birim; 2. ay: 3 birim; 3. ay 2 birim; 4. ay: 4 birim

Üretim hazırlık maliyeti: $3

Üretim değişken maliyeti: $1 / ürün

Stokta tutma maliyeti: $0.50

Üretim kapasitesi: 5 adet

Stok kapasitesi: 4 adet

Aşamalar???

Durumlar???

Her aşamada neye karar verilecek??

Yineleme formülü??

Page 9: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri

1. Zaman dönemlere ayrılmıştır: 1,2,…,T {Aşamalar}

2. Her dönem başında firma elinde bulunan stoğa

{Durum} göre kaç adet üretim yapacağına karar

vermelidir {Karar}

3. Her dönemin talebi üretim veya dönem başında

elde bulunan stok ile karşılanmalıdır.

4. Firmanın sınırlı bir stok kapasitesi vardır.

5. Firmanın amacı 1,2,…,T dönemlerindeki talepleri

en az maliyetle karşılamaktır.

Page 10: Hafta 9-10-11 Dinamik Programlama

Aşamalar: dönemler (ay, hafta, gün) 1,2,…,T

Durumlar: dönem başı stok

Karar: dönemde ne kadar üretilecek

Yineleme formülü

fT(i) = 0

f1(i0) = ?

tttdixx

t dxifxcdxihift

1|min

Page 11: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri - Örnek

4. Ay hesaplamaları

Talep : 4 adet

Page 12: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri

3. Ay hesaplamaları (Talep: 2 adet)

Toplam maliyet: ( ½ ) (i + x – 2) + c(x) + f4(i + x – 2)

22

2

1min

43xifxcxiif

x

Page 13: Hafta 9-10-11 Dinamik Programlama
Page 14: Hafta 9-10-11 Dinamik Programlama
Page 15: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri

2. Ay hesaplamaları (Talep: 3 adet)

Toplam maliyet: ( ½ ) (i + x – 3) + c(x) + f4(i + x – 3)

33

2

1min 32 xifxcxiif

x

Page 16: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri

1. Ay hesaplamaları

Talep 1 adet

Başlangıç stoğu yok

Page 17: Hafta 9-10-11 Dinamik Programlama

Stok Modelleri

En iyi üretim çizelgesinin belirlenmesi

f1(0)=$20 , x1(0)=1 dönem sonu stok: 0

f2(0)=16, x2(0)=5 dönem sonu stok: 2

f3(2)=7, x3(2)=0 dönem sonu stok:0

f4(0)=4, x4(0)=4

Page 18: Hafta 9-10-11 Dinamik Programlama

Kaynak Tahsisi Modelleri

Finco’nun yatırım için ayırdığı $6000 ve bu yatırımı yapabileceği üç yatırım seçeneği vardır. Finco dj doları j yatırımına harcarsa rj(dj) dolar kazanç sağlayacaktır (bin dolar):

r1(d1) = 7d1+ 2 d1>0

r2(d2) = 3d2+ 7 d2>0

r3(d3) = 4d3+ 5 d3>0

r1(0) = r2(0) = r3(0) =0

Her bir yatırıma ayrılan para $1000’ın katları kadar olmalıdır. Finco kazancını enbüyüklemek için $6000’ı nasıl kullanmalıdır?

Page 19: Hafta 9-10-11 Dinamik Programlama

Kaynak Tahsisi Modelleri

Aşamalar???

Durumlar???

Her aşamada neye karar verilecek??

Yineleme formülü??

Page 20: Hafta 9-10-11 Dinamik Programlama

Sırt Çantası Problemi

Ağırlığı sırasıyla 4, 3 ve 5 kg olan eşya 1, 2 ve 3’ün

sağlayacağı yararlar 11, 7 ve 12’dir. 10 kg’lık bir sırt

çantası söz konusu olduğunda toplam faydayı en

büyüklemek için sırt çantası nasıl doldurulmalıdır?

• Aşamalar???

• Durumlar???

• Her aşamada neye karar

verilecek??

• Yineleme formülü??

Eşya Ağırlık Fayda

1 4 11

2 3 7

3 5 12

Page 21: Hafta 9-10-11 Dinamik Programlama

Sırt Çantası Problemi (Çözüm)

ft(d) : d kg ağırlığın t, t+1, ..., 3 eşyalarıyla

doldurulmasından elde edilen en büyük fayda.

Aşama 3 Hesaplamaları

f3(10) = 24

f3(5) = f3(6) = f3(7) = f3(8) = f3(9) = 12

f3(0) = f3(1) = f3(2) = f3(3) = f3(4) = 0

x3(10) = 2

x3(9) = x3(8) = x3(7) = x3(6) = x3(5) = 1

x3(0) = x3(1) = x3(2) = x3(3) = x3(4) = 0

Page 22: Hafta 9-10-11 Dinamik Programlama

Sırt Çantası Problemi (Çözüm)

Aşama 2 hesaplamaları

3

2

1

0

21

14

19

*24

1

4

7

10

37

27

17

07

max10

2

2

2

2

3

3

3

3

2

x

x

x

x

f

f

f

f

f

3

2

1

0

*21

14

19

12

0

3

8

9

37

27

17

07

max9

2

2

2

2

3

3

3

3

2

x

x

x

x

f

f

f

f

f

2

1

0

14

*19

12

2

5

8

27

17

07

max8

2

2

2

3

3

3

2

x

x

x

f

f

f

f

2

1

0

*14

7

12

1

4

7

27

17

07

max7

2

2

2

3

3

3

2

x

x

x

f

f

f

f

2

1

0

*14

7

12

0

3

6

27

17

07

max6

2

2

2

3

3

3

2

x

x

x

f

f

f

f

1

0

7

*12

2

5

17

07max5

2

2

3

3

2x

x

f

ff

1

0

*7

0

1

4

17

07max4

2

2

3

3

2x

x

f

ff

1

0

*7

0

0

3

17

07max3

2

2

3

3

2x

x

f

ff

00207max2232

xff

00107max1232

xff

000070 232 xff

Page 23: Hafta 9-10-11 Dinamik Programlama

Sırt Çantası Problemi (Çözüm)

Aşama 1 Hesaplamaları

Sonuç olarak; en iyi çözüm nedir?

2

1

0

22

*25

24

2

6

10

211

111

011

max10

1

1

1

2

2

2

1

x

x

x

f

f

f

f

Page 24: Hafta 9-10-11 Dinamik Programlama

Sırt Çantası Problemi

Alternatif formülasyon

g(w): w ağırlığından elde edilecek en büyük fayda

𝑔 𝑤 = maks𝑗

𝑏𝑗 + 𝑔(𝑤 − 𝑤𝑗)

j: eşyalar,

bj: j eşyasının faydası

wj: j eşyasının ağırlığı Eşya Ağırlık Fayda

1 4 11

2 3 7

3 5 12

Page 25: Hafta 9-10-11 Dinamik Programlama

Teçhizat Yenileme Modelleri

Bir makinenin veya teçhizatın hizmet verme süresi

arttıkça bakım maliyeti de aynı oranda yüksek olur

ve üretkenliği de aynı oranda azalır.

Bir makine belirli bir yaşa geldiği zaman onu

yenilemek daha ekonomik olabilir.

Burada sorun, makinenin en ekonomik kullanılacağı

yaşın belirlenmesidir.

Söz konusu sorun çoğu zaman dinamik

programlama ile çözülür.

Page 26: Hafta 9-10-11 Dinamik Programlama

Teçhizat Yenileme Modelleri

Bir otomobil tamir atölyesi, bir motor analiz makinasını her zaman hazır bulundurmalıdır. Yeni bir motor analiz makinesini $1000’a mal olmaktadır.

i. yılındaki bir motor analiz makinesini onarma maliyeti şu şekildedir:

m1 = $60, m2 = $80, m3 = $120.

Bir analiz makinası 1, 2 veya 3 yıl kullanılabilir. i yıldır kullanılan makine yenisiyle değiştirildiğinde, si hurda değeri elde edilir. Yıllara göre hurda değerleri

s1=$800, s2=$600, s3=$500.

Şirketin şu an (zaman 0) yeni bir alet alması gerektiği gerçeğini göz önüne alarak gelecek beş yıl için şirketin net maliyetlerini [(onarım maliyetlerii) + (değiştirme maliyetlerii)–(hurda değeri)] enazlayacak bir satın alma politikası belirleyiniz.

Page 27: Hafta 9-10-11 Dinamik Programlama

Teçhizat Yenileme Modelleri

Ağ gösterimi

𝑔 𝑡 = min𝑥

{𝑐𝑡𝑥 + 𝑔 𝑥 }

g(t) : t zamanında yeni bir makine alındığında t. zamandan 5. zamana kadar

karşılaşılan en küçük net maliyet (Bu değerde yeni alınan makinenın ücreti

ile, hurda değeri de dahildir)

Page 28: Hafta 9-10-11 Dinamik Programlama

Teçhizat Yenileme Modelleri

Çözüm

760$

540$

260$

500

600

800

120

80

60

80

60

1000

60

1000

1000

45

35

34

25

24

23

14

13

12

03

02

01

c

c

c

c

c

c

c

c

c

c

c

c

*260$02605445

gcg

*

540$

520$

0

260

540

260

5

4min3

35

34

g

g

c

cg

800$260

780$520

*760$

540

260

5

4

3

min2

25

24

23

g

g

g

c

c

c

g

*

*

1020

1060

1020

260760

520540

760260

4

3

2

min1

14

13

12

g

g

g

c

c

c

g

*

*

1280

1300

1280

520760

760540

1020260

3

2

1

min0

03

02

01

g

g

g

c

c

c

g

Page 29: Hafta 9-10-11 Dinamik Programlama

Ağ Örneği

Ankara İstanbul

Adana

Konya

Eskişehir

15

20

30

99

59

37

20

70

Page 30: Hafta 9-10-11 Dinamik Programlama

Örnek

Winston s.985 – Problem 4

ATK-Emniyet müdürlüğü sorumlu olduğu üç bölgeye elinde bulunan beş ekibi atamak istemektedir.

Aşağıdaki tabloda bölgelere atanacak ekip sayısına göre oluşması muhtemel şuç sayıları verilmiştir. Mahalle muhtarlığı Üç bölgedeki

Toplam şuç sayısını azaltmak için hangi bölgeye kaç ekip atanması gerektiğini dinamik programlama ile belirleyiniz.

Bölgeler

Bölgeye atanan ekip sayısına göre suç sayıları

0 1 2 3 4 5

1 14 10 7 4 1 0

2 25 19 16 14 12 11

3 20 14 11 8 6 5

Page 31: Hafta 9-10-11 Dinamik Programlama

EM302 Yöneylem Araştırması 2

Dinamik Programlama

Dr. Özgür Kabak

Page 32: Hafta 9-10-11 Dinamik Programlama

Örnek

Winston s.985 – Problem 4

ATK-Emniyet müdürlüğü sorumlu olduğu üç bölgeye elinde bulunan beş ekibi atamak istemektedir.

Aşağıdaki tabloda bölgelere atanacak ekip sayısına göre oluşması muhtemel şuç sayıları verilmiştir. Mahalle muhtarlığı Üç bölgedeki

Toplam şuç sayısını azaltmak için hangi bölgeye kaç ekip atanması gerektiğini dinamik programlama ile belirleyiniz.

Bölgeler

Bölgeye atanan ekip sayısına göre suç sayıları

0 1 2 3 4 5

1 14 10 7 4 1 0

2 25 19 16 14 12 11

3 20 14 11 8 6 5

Page 33: Hafta 9-10-11 Dinamik Programlama

Dinamik parti hacmi modeli İlk dönemin başında t döneminin (t = 1, 2, ..., T) dt talebi

bilinmektedir.

t döneminin talebi stoktan veya t dönemi üretiminden karşılanabililir.

x adet ürünü üretme maliyeti: c(x). c(0) = 0

x>0 için c(x) = K + cx

K= bir peryotta ürünü üretmenin sabit maliyet, c= birim başına üretim maliyet

Bir t döneminin sonu stoğu: it

Stok elde tutma maliyeti h*it dir.

i0 birinci dönemden önce elde bulunan stok miktarı

Amaç her bir t dönemindeki talepleri zamanında karşılamak için toplam maliyeti en küçükleyecek xi‘leri (t dönemindeki üretim miktarı) hesaplamak.

t dönemi sonunda oluşan stok üst sınırı ct .

t döneminin üretim üst sınırı rt .

Page 34: Hafta 9-10-11 Dinamik Programlama

Dinamik parti hacmi modeli

Talepler: dt (t=1,2,…,T)

Üretim Maliyeti:

c(0) = 0

x>0 için c(x) = K + cx

Envalter taşıma maliyeti: h*it

Amaç: Üretim miktarını belirle (xt)

Tüm talepleri zamanında karşıla

Toplam maliyeti enküçükle

Page 35: Hafta 9-10-11 Dinamik Programlama

Dinamik parti hacmi modeli

Çözüm Yöntemleri

Wagner-Whitin Algoritması

Silver-Meal Sezgisel Yaklaşımı

Page 36: Hafta 9-10-11 Dinamik Programlama

Wagner-Whitin Algoritması

Aşamalar: dönemler (t=1,2,…,T)

Durum: ?

Karar: hangi dönemler için üretim yapılacak( t ’den t+j ’e)

fT+1 = 0 ; Bul f1

)*...*2()...(

min

211

1,...2,1,0

jtttjttttj

jttjtTj

t

djddhdddcKc

fcf

Page 37: Hafta 9-10-11 Dinamik Programlama

Wagner-Whitin Algoritması

Örnek

K = $30;

h =$1;

c=$5;

d1 = 40; d2 = 60; d3 = 10; d4 = 20;

Page 38: Hafta 9-10-11 Dinamik Programlama

Silver-Meal Sezgisel Yaklaşımı

Dinamik parti hacmi problemi için sezgisel bir yaklaşım

Wagner-Within algoritmasından daha kolay uygulanabilir

ve en iyi çözüme yakın sonuç verir

TC(t)=K+HC(t)

TC(t): t dönem için üretim yapılırsa oluşacak toplam maliyet.

𝐴𝐶 𝑡 =𝑇𝐶(𝑡)

𝑡 Ortalama maliyet

Aşağıdaki koşulu sağlayan t* ‘ı bul:

t<t*, AC(t+1)≤AC(t) and AC(t*+1)≥AC(t*).

Page 39: Hafta 9-10-11 Dinamik Programlama

Silver-Meal Sezgisel Yaklaşımı

Örnek

K = $30;

h =$1;

c=$5;

d1 = 40; d2 = 60; d3 = 10; d4 = 20; d5 = 25