• No results found

CiDi)2. Kies een punt P = (P1, P2) op de afwegingskromme met P1 ≤ T B(Q) en P2≤ T I(Q). Laat λ = P2

P∗

1 en neem Q z´odanig dat Qi = q

2λ∗Di

Ci , i = 1, 2, . . . , n. We zullen nu laten zien dat T B(Q) = P

1 en T I(Q) = P 2. Er geldt: T B(Q) =Pn i=1rDi 2λ∗Di Ci =Pn i=1 q CiDi 2λ∗ =q1 ·Pn i=1 √ CiDi en T I(Q) =Pn i=112CiqDi Ci =Pn i=1 q λ∗CiDi 2 = q λ∗ 2 ·Pn i=1 √ CiDi. Hieruit volgt: T B(Q)× T I(Q) = 12(Pn i=1 √ CiDi)2 = c,

dus (T B(Q), T I(Q)) ligt op de afwegingskromme, evenals (P 1, P 2). Verder geldt: T B(Q) =q1 ·Pn i=1 √ CiDi=q1 ·2c =qP1 2P∗ 2 ·p2P 1P 2 = P 1 en T I(Q) = q λ∗ 2 ·2c =qP2 2P∗ 1 ·p2P 1P 2 = P2.

6.3 Periodieke deterministische modellen

In deze paragraaf wordt een productieproces beschouwd over een eindig aantal, zeg N , perioden. In dit model zijn de vraag en en kosten in principe verschillend per periode. Er zijn productie- en voorraadkosten; deze kosten kunnen willekeurige functies zijn, dus niet per se lineair. We zullen allereerst het model bespreken waarin geen tekorten zijn toegestaan, d.w.z. dat aan de vraag in periode n moet worden voldaan door productie in de perioden 1 tot en met n, n = 1, 2, . . . , N . Het doel is om een planning te maken voor de productie in iedere periode die de totale kosten minimaliseert. De beslissingsvariabelen zijn in dit model dan ook:

xn = het aantal eenheden dat in periode n wordt geproduceerd, n = 1, 2, . . . , N . Laat voor n = 1, 2, . . . , N :

dn = de vraag in periode n;

cn(x) = de productiekosten om x eenheden te produceren in periode n;

hn(y) = de voorraadkosten om y eenheden gedurende periode n in voorraad te hebben In = de voorraad aan het begin van periode n, dus In= In−1+ xn−1− dn−1

We nemen I1 = IN +1 = 0. Omdat in iedere periode aan de vraag moet worden voldaan, moet gelden:

In+ xn≥ dn, n = 1, 2, . . . , N .

Anderzijds hoeft er niet meer te zijn dan voor de reterende perioden nodig is: In+ xn≤ dn+ dn+1+· · · + dN, n = 1, 2, . . . , N .

Een optimale strategie kan worden gevonden met dynamische programmering, in dit geval achter-waartse recursie. Laat voor n = N, N − 1, . . . , 1:

fn(In) = de kosten van een optimale strategie voor de perioden n, n + 1, . . . , N , gegeven dat In de voorraad is aan het begin van periode n.

Dan geldt: fn(In) =        hn(In) + cn(dn− In), n = N

mindn−In≤xn≤dn+dn+1+···+dN−In{hn(In) + cn(xn) + fn+1(In+ xn− dn)},

n = N− 1, N − 2, . . . , 1 Dit betekent dat we als volgt de getallen fn(In) kunnen berekenen:

- eerst fN(IN) voor IN = 0, 1, . . . , dN;

- vervolgens fn(In) voor In= 0, 1, . . . , dn+ dn+1+· · · dN, n = N− 1, N − 2, . . . , 2; - tenslotte bepalen we f1(0).

Voor iedere n en In houden we bij welke xn de minimale kosten oplevert. De optimale strategie wordt nu als volgt gevonden:

- x1 is de optimale productie bij f1(0) en laat I2 = x1− d1;

- voor n = 2, 3, . . . , N : neem xn de optimale beslissing bij fn(In) en laat In+1= In+ xn− dn. Voorbeeld 6.3 N = 5; d1 = 1; d2= 4; d3 = 5; d4 = 3; d5= 1; cn(x) = ( 0 als x = 0, 1≤ n ≤ 5 7 als x≥ 1, 1 ≤ n ≤ 5 hn(y) = y, y ≥ 0, 1 ≤ n ≤ 5.

De berekeningen zijn als volgt:

n = 5 : f5(0) = 7 voor x5 = 1; f5(1) = 1 voor x5= 0.

n = 4 : f4(0) = 8 voor x4 = 4; f4(1) = 9 voor x4= 3; f4(2) = 10 voor x4 = 2; f4(3) = 10 voor x4 = 0; f4(4) = 5 voor x4= 0.

n = 3 : f3(0) = 12 voor x3 = 9; f3(1) = 13 voor x3= 8; f3(2) = 14 voor x3 = 7; f3(3) = 15 voor x3 = 6; f3(4) = 16 voor x3= 5; f3(5) = 13 voor x3 = 0; f3(6) = 15 voor x3 = 0; f3(7) = 17 voor x3= 0; f3(8) = 18 voor x3 = 0; f3(9) = 14 voor x3 = 0.

n = 2 : f2(0) = 19 voor x2 = 4; f2(1) = 20 voor x2= 3; f2(2) = 21 voor x2 = 2; f2(3) = 22 voor x2 = 1; f2(4) = 16 voor x2= 0; f2(5) = 18 voor x2 = 0; f2(6) = 20 voor x2 = 0; f2(7) = 22 voor x2= 0; f2(8) = 24 voor x2 = 0; f2(9) = 22 voor x2 = 0; f2(10) = 25 voor x2= 0; f2(11) = 28 voor x2 = 0; f2(12) = 30 voor x2 = 0; f2(13) = 27 voor x2= 0.

n = 1 : f1(0) = 23 voor x1 = 5.

Door via de optimale x-waarden voorwaarts te lopen krijgen we de optimale strategie: x1= 5→ I2 = 4→ x2 = 0→ I3 = 0→ x3 = 9→ I4= 4→ x4 = 0→ I5 = 1→ x5 = 0.

Een functie f (k), waarbij het argument k discrete waarden aanneemt, heet concaaf als de differen-tie ∆f (k) := f (k + 1)− f(k) een dalende functie is, d.w.z. ∆f(k + 1) ≤ ∆f(k), ofwel ∆2f (k)≤ 0 voor alle relevante waarden van k. Kostenfuncties hebben vaak de eigenschap dat het stijgende

functies zijn, maar dat de toename van de stijging afneemt; dit houdt in dat deze functies concaaf zijn. Veronderstel dat de kostenfuncties hn en cn voor alle n concaaf zijn, dan geldt het volgende resultaat.

Stelling 6.2 Als de de kostenfuncties hn en cn voor alle n concaaf zijn, dan zijn er optimale producties xn en bijbehorende voorraden In z´odanig dat In· xn= 0 voor n = 1, 2, . . . , N .

Bewijs

Beschouw een optimaal productieplan. Als er meer zijn, kies dan een optimaal productieplan waarvoor PN

n=1(xn+ In) minimaal is.

Veronderstel dat de bewering niet waar is, d.w.z. er is een n met In> 0 en xn> 0. Omdat er aan het begin van periode n voorraad is, komt deze van een eerdere productie en laat m < n de periode zijn, waarin voor het laatst is geproduceerd, dus xm> 0 en xm+1= xm+2 =· · · = xn−1 = 0. Beschouw nu twee andere productieplannen, die dus niet goedkoper zijn dan het optimale. Laat x0m= xm+1, x0n= xn−1 (de andere producties onveranderd), zodat I0

k= Ik+1, m < k≤ n, en geldt:

cm(xm) + cn(xn) +Pn

k=m+1hk(Ik)≤ cm(xm+ 1) + cn(xn− 1) +Pn

k=m+1hk(Ik+ 1). Neem daarnaast x00m = xm− 1, x00n= xn+ 1 (de andere producties onveranderd), zodat I00

k = Ik− 1, m < k ≤ n. Dit geeft de ongelijkheid: cm(xm) + cn(xn) +Pn

m+1hk(Ik)≤ cm(xm− 1) + cn(xn+ 1) +Pn

k=m+1hk(Ik− 1). Tel beide ongelijkheden bij elkaar op en herschik de termen:

0≤ ∆2cm(xm− 1) + ∆2cn(xn− 1) +Pn

k=m+12hk(Ik− 1).

De concaviteit houdt in dat ∆2ck(k) ≤ 0 en ∆2hk(k) ≤ 0 voor alle k, zodat bovenstaande drie ongelijkheden alle gelijkheidheden zijn en alle drie productieplannen optimaal. Echter, voor het tweede productieplan geldt dat PN

n=1(x00n+ In00) =PN

n=1(xn+ In)− (n − m) < PN

n=1(xn+ In), wat een tegenspraak oplevert.

Stelling 6.2 houdt in dat in periode n alleen de productie van de hoeveelheden 0, dn, dn + dn+1, . . . , dn+dn+1+· · ·+dN optimaal kan zijn. Dit reduceert het aantal berekeningen aanzienlijk. Voorbeeld 6.3 (vervolg)

De kostenfuncties zijn inderdaad concaaf. Dit betekent dat de berekeningen als volgt kunnen worden gereduceerd:

n = 5 : f5(0) = 7 voor x5 = 1; f5(1) = 0 voor x5= 0.

n = 4 : f4(0) = 8 voor x4 = 4; f4(3) = 10 voor x4= 0; f4(4) = 5 voor x4 = 0. n = 3 : f3(0) = 12 voor x3 = 9; f3(5) = 13 voor x3= 0; f3(8) = 18 voor x3 = 0;

f3(9) = 14 voor x3 = 0.

n = 2 : f2(0) = 19 voor x2 = 4; f2(4) = 16 voor x2= 0; f2(9) = 22 voor x2 = 0; f2(12) = 30 voor x2 = 0; f2(13) = 27 voor x2= 0.

n = 1 : f1(0) = 23 voor x1 = 5.

Vervolgens zullen we het model beschouwen waarin tekorten wel zijn toegestaan. In het geval er tekorten zijn, dan zijn hier boetekosten aan verbonden. In dit model kan de voorraad In negatief zijn (d.w.z. dat er−Intekort is) en we veronderstellen dat als In< 0 de boetekosten pn(In) zijn in periode n, n = 1, 2, . . . , N . Voor iedere 1 ≤ n ≤ N is de voorraadfunctie hn(In) = 0 voor In< 0 en de boetefunctie pn(In) = 0 voor In> 0.

In dit model wordt de recursieformule:

fn(In) =        hn(In) + cn(dn− In) + pn(In), n = N min0≤xn≤dn+dn+1+···+dN−In{hn(In) + pn(In) + cn(xn) + fn+1(In+ xn− dn)}, n = N − 1, N − 2, . . . , 1 Omdat IN ook negatieve waarden kan aannemen, en wel tot−(d1+d2+· · ·+dN −1), starten we met de bepaling van fN(IN) voor−(d1+ d2+· · · + dN −1)≤ IN ≤ dN. Vervolgens berekenen we voor n = N−1, N −2, . . . , 2 de waarden fn(In) voor−(d1+d2+· · ·+dn−1)≤ In≤ (dn+dn+1+· · · dN). Tenslotte wordt f1(0) berekend en wordt het optimale productieschema weer bepaald zoals in het vorige model.

Voorbeeld 6.3 (vervolg)

Neem aan dat ook tekorten zijn toegestaan tegen boetekosten pn(z) =−2z voor alle 1 ≤ n ≤ N en z < 0. De berekeningen zijn als volgt:

n = 5 : f5(−13) = 33 voor x5 = 14; f5(−12) = 31 voor x5 = 13; f5(−11) = 29 voor x5 = 12; f5(−10) = 27 voor x5 = 11; f5(−9) = 25 voor x5 = 10; f5(−8) = 23 voor x5= 9; f5(−7) = 21 voor x5= 8; f5(−6) = 19 voor x5 = 7; f5(−5) = 17 voor x5= 6; f5(−4) = 15 voor x5= 5; f5(−3) = 13 voor x5 = 4; f5(−2) = 11 voor x5= 3; f5(−1) = 9 voor x5 = 2; f5(0) = 7 voor x5 = 1; f5(1) = 1 voor x5= 0. n = 4 : f4(−10) = 28 voor x4 = 14; f4(−9) = 26 voor x4 = 13; f4(−8) = 24 voor x4= 12;

f4(−7) = 22 voor x4= 11; f4(−6) = 20 voor x4 = 10; f4(−5) = 18 voor x4= 9; f4(−4) = 16 voor x4= 8; f4(−3) = 12 voor x4 = 7; f4(−2) = 12 voor x4= 6; f4(−1) = 10 voor x4= 5; f4(0) = 8 voor x4 = 4; f4(1) = 9 voor x4= 3; f4(2) = 10 voor x4 = 2; f4(3) = 10 voor x4 = 0; f4(4) = 5 voor x4= 0. n = 3 : f3(−5) = 22 voor x3= 14; f3(−4) = 20 voor x3 = 13; f3(−3) = 18 voor x3= 12;

f3(−2) = 16 voor x3= 11; f3(−1) = 14 voor x3 = 10; f3(0) = 12 voor x3 = 9; f3(1) = 13 voor x3 = 8; f3(2) = 14 voor x3 = 7; f3(3) = 15 voor x3 = 6; f3(4) = 14 voor x3 = 0; f3(5) = 13 voor x3 = 0; f3(6) = 15 voor x3 = 0; f3(7) = 17 voor x3 = 0; f3(8) = 18 voor x3 = 0; f3(9) = 14 voor x3 = 0. n = 2 : f2(−1) = 21 voor x2= 5; f2(0) = 19 voor x2 = 4; f2(1) = 19 voor x2 = 0; f2(2) = 18 voor x2 = 0; f2(3) = 17 voor x2 = 0; f2(4) = 16 voor x2 = 0; f2(5) = 18 voor x2 = 0; f2(6) = 20 voor x2 = 0; f2(7) = 22 voor x2 = 0; f2(8) = 22 voor x2 = 0; f2(9) = 22 voor x2 = 0; f2(10) = 25 voor x2 = 0; f2(11) = 28 voor x2 = 0; f2(12) = 30 voor x2= 0; f2(13) = 27 voor x2 = 0. n = 1 : f1(0) = 21 voor x1 = 0.

Voor de optimale strategie geldt:

Een heuristische aanpak

Als de vraag per periode niet te veel fluctueert, dan kan een optimale strategie vaak goed benaderd worden met de wortelformule voor het continue model uit de vorige paragraaf. Laat de gemiddelde vraag D = N1 PN

n=1dn, de variantie V = N1 PN n=1d2

n−D2 en de variabiliteitsco¨effici¨ent V C = DV2. Experimenteel onderzoek van Petersen en Silver heeft aangetoond dat als V C ≤ 0.20 het continue model met D = N1 PN

n=1dn in de regel een goede benadering geeft.

Als V C > 0.20, dan is de volgende heuristiek, de Silver-Meal heuristiek genaamd, vaak een goed alternatief voor problemen met vaste bestelkosten A en lineaire voorraadkosten h per eenheid per periode (deze hebben concave kostenfuncties). De heuristiek is gebaseerd op de volgende idee¨en: - elke productiehoeveelheid moet precies genoeg zijn voor de vraag in een aantal opeenvolgende perioden;

- beschouw eerst de productie voor ´e´en periode, en neem daar een volgende periode bij als de gemiddelde kosten (vaste kosten plus voorraadkosten) daardoor lager worden, etc.

- stop als een extra periode leidt tot gemiddeld hogere kosten.

De gemiddelde kosten K(T ) over de eerste T periode zijn: K(T ) = T1{A + hPT

n=1(n− 1)dn}. De Silver-Meal heuristiek produceert voor T perioden, waarbij T de eerste waarde van T is waarvoor K(T + 1) > K(T ). Daarna worden de perioden T+ 1, T + 2, . . . hernummerd als periode 1, 2, . . . en passen we opnieuw bovenstaande procedure toe.

Voorbeeld 6.3 (vervolg) A = 7 en h = 1.

K(1) = 7; K(2) = 12(7 + 4) = 5.5; K(3) = 13(7 + 4 + 2× 5) = 7, dus x1 = 5 (productie voor de perioden 1 en 2).

K(1) = 7; K(2) = 12(7 + 3) = 5; K(3) = 13(7 + 3 + 2× 1) = 4, dus x3 = 9 (productie voor de perioden 3, 4 en 5).