(S-1,S)-voorraadmodel voor verouderende vliegtuigmodellen Ivo Landzaat 348875 August 25, 2014
Abstract In deze scriptie wordt het voorraadbeheer bij vliegtuigmodellen geanalyseerd, waarvan er steeds meer vliegtuigen uit de roulatie gaan. Wanneer er steeds minder wordt gevlogen met een bepaald vliegtuigmodel, zal een leverancier op een gegeven moment moeten stoppen met het produceren van reserve onderdelen voor dit model. Centraal in deze scriptie staat het bepalen van wanneer en hoeveel extra reserve onderdelen een vlietuigmaatschappij moet inslaan, alvorens de leverancier sluit. Dit wordt gedaan door middel van een gesimuleerd (S-1,S)-voorraadmodel, waarin er sprake is van een non-stationaire vraag. Een onderdeel in dit model is de optimale voorraadpositie bepalen voor de leverancier aan het einde van elk jaar. Aan dit onderdeel zal extra aandacht worden besteed, alvorens het uiteindelijke model beschreven zal worden.
1
Contents 1 Introductie
3
2 Relevante onderwerpen 2.1 (S-1,S)-voorraadmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Vraag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 5 5 6
3 Opzet modellen 3.1 Stationair model . . . . . . . . . 3.1.1 Kenmerken model . . . . 3.1.2 Parameters en variabelen 3.1.3 Simulatie . . . . . . . . . 3.2 Model met obscolescence kosten . 3.3 Non-stationair model . . . . . . . 3.3.1 Kenmerken model . . . . 3.3.2 Parameters en variabelen 3.3.3 Simulatie . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
7 7 7 8 10 12 13 13 13 14
4 Resultaten 4.1 Stationaire modellen . . . . . . . . . . . . 4.1.1 Model zonder obsolescence kosten 4.1.2 Vergelijking met analytisch model 4.1.3 Model met obsolescence kosten . . 4.2 Non-stationair model . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
17 17 17 19 20 22
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
5 Conclusie en uitbreidingen
24
6 Referenties
25
2
1
Introductie
Deze scriptie analyseert het voorraadbeheer van een vliegtuigmodel dat op leeftijd komt. Vliegtuigen bestaan uit ongeveer dertigduizend onderdelen, waarvan de meeste benodigd zijn om een vliegtuig veilig te laten opereren. Regelmatig zijn sommige onderdelen toe aan vervanging, in welk geval reserve onderdelen moeten worden besteld bij een leverancier. In deze scriptie concentreren we ons op ´e´en enkele original equipment manufacturer (OEM) als fabrikant en leverancier van deze reserve onderdelen voor dit vliegtuigmodel. Dit OEM heeft voor elk onderdeel van het vliegtuig onderdelen op voorraad, zodat wanneer een bestelling van een vliegtuigmaatschappij binnenkomt, deze zo snel mogelijk kan worden volbracht. Een verschijnsel bij vliegtuigmodellen die op leeftijd komen, is dat de vraag naar reserve onderdelen steeds verder afneemt, omdat het aantal operationele vliegtuigen steeds verder afneemt. Dit is een probleem voor het OEM om de simpele reden dat als de vraag te laag wordt, het niet meer rendabel blijft om reserve onderdelen voor dit model te produceren. Dit gegeven brengt op zijn beurt weer problemen mee voor vliegtuigmaatschappijen die met dit model vliegen. Vaak sluit een OEM namelijk op een tijdstip waarop er nog steeds vliegtuigen voor dit model operationeel zijn. In zo’n geval kunnen de nog operationele vliegtuigen geen nieuwe reserve onderdelen meer bestellen. Wanneer er daarna een nieuw mankement optreedt bij een vliegtuig, kan dit dus niet meer worden gerepareerd, en kan dit vliegtuig in principe niet meer verder gebruikt worden. Het is dus van groot belang voor een vliegtuigmaatschappij die vliegt met dit model om extra reserve onderdelen in te slaan voordat het OEM sluit. Hierbij staat de maatschappij voor twee belangrijke vragen. De eerste vraag is wanneer het OEM zal sluiten, en de maatschappij dus extra onderdelen moet inslaan. De tweede vraag is hoeveel onderdelen er moeten worden ingekocht wanneer dit moment is aangebroken. Het is belangrijk dat de maatschappij een zo goed mogelijke schatting maakt van hoeveel onderdelen er nodig zullen zijn tot het punt dat de laatste vliegtuig stopt met vliegen. Wanneer er namelijk te weinig reserve onderdelen worden ingekocht, kunnen vliegtuigen op een gegeven moment vanzelfsprekend niet meer gerepareerd worden. De maatschappij moet dan noodgedwongen stoppen met het vliegen van deze vliegtuigen. Wanneer er aan de andere kant te veel reserve onderdelen worden ingekocht, brengt dit weer onnodig extra kosten met zich mee. Ten eerste zijn de opslagkosten dan hoger dan nodig is. Ten tweede moeten onderdelen die overblijven nadat de laatste vliegtuig uit de roulatie is gegaan worden gesloopt. Dit slopen brengt ook weer kosten met zich mee. We zullen ons in deze scriptie voor een deel op het Fokker 100 model richten. Het ligt in de lijn der verwachting dat dit model in de nabije toekomst zal stoppen met vliegen, en daarom is dit een geschikt model voor ons onderzoek. De Fokker 100’s waren in productie van 1988 tot en met 1996 (Flyfokker, n.d.). Op dit moment zijn er enkele onderleveranciers actief welke onderdelen leveren voor Fokker 100 vliegtuigen. Zoals eerder vermeld is zullen we ons concentreren op ´e´en enkele leverancier, en zullen we deze leverancier ’het OEM’ noemen. De data voor de Fokker 100 is voor ons echter beperkt, dus zullen er in deze scriptie enkele versimpelingen en aannames worden gemaakt. Het doel van de modellen zal hier echter niet al te veel onder lijden. We zullen ons onderzoek ´ en vliegtuigonderdeel met een relatief hoge vraag en ´e´en met richten op twee typen onderdelen. E´ een relatief lage vraag.
3
Het model dat bepaalt wanneer het OEM zal sluiten en hoeveel reserve onderdelen er moeten worden ingekocht door de vliegtuigmaatschappij, staat centraal in deze scriptie. In dit model is er sprake van een dalende, non-stationaire vraag naar vliegtuigonderdelen. In dit model zit een ander ’sub-model’ inbegrepen, welke per jaar de optimale voorraadpositie voor het OEM bepaalt. In dit model is er sprake van een constante, stationaire vraag. We zullen twee versies van dit model bestuderen, ´e´en versie waarin er geen rekening wordt gehouden met obsolescence kosten, en ´e´en model waarin hier wel mee rekening wordt gehouden. We zullen eerst deze twee modellen analyseren, voordat we dit met het uiteindelijke model doen. We doen dit om twee redenen. Ten eerste is het makkelijker om een model stapsgewijs op te bouwen tijdens het programmeren ervan. Ten tweede kunnen we een stationair model gemakkelijker vergelijken met een analytisch model, om te checken of het model correct is geprogrammeerd. De scriptie is als volgt gestructureerd. In Sectie 2 zal aanvullende informatie worden verstrekt over onderwerpen die in de scriptie aan bod komen. In Sectie 3 worden de modellen beschreven die gebruikt zullen worden om het probleem te analyseren. Vervolgens worden in Sectie 4 de resultaten van experimenten gegeven die met de stationaire modellen en het non-stationaire model zijn gedaan. Ook zullen de stationaire modellen met een analytisch model worden vergeleken. Tot slot zal in Sectie 5 de conclusie worden gegeven evenals tips voor eventuele uitbreidingen op dit onderzoek.
4
2
Relevante onderwerpen
In Sectie 1 is het probleem ge¨ıntroduceerd waar in deze scriptie aandacht aan zal worden besteed. Alvorens in Sectie 3 de opzet van de modellen wordt beschreven, wordt in deze Sectie verschillende onderwerpen besproken die relevant zijn voor het begrijpen van deze modellen.
2.1
(S-1,S)-voorraadmodel
Ten eerste beschrijven we het type model wat gebruikt zal worden voor het beschrijven van het voorraadbeheer. We hebben dus te maken met een vraag naar reserve onderdelen van een bepaald vliegtuigmodel. Vliegtuigonderdelen worden doorgaans gekenmerkt door hoge kosten en een relatief lage vraag-rate. In andere woorden; Vliegtuigonderdelen zijn ’slow-moving’ goederen. Een logisch model voor zo’n goed is het (S-1,S)-voorraadmodel. De reden hiervoor is dat het (S-1,S)voorraadmodel geen fixed order kosten in het model opneemt, en deze in onze situatie ook niet van belang zijn. Dit komt doordat bij een goed met zo’n hoge waarde, de holding- en backorder kosten veel hoger zijn dan de fixed order kosten. De fixed order kosten zijn dus eigenlijk te verwaarlozen (Dekker and Farenhorst-Yuan, 2013: 10). Wat deze kosten precies inhouden wordt beschreven in Sectie 2.2. Bovendien gebruiken we het (S-1,S)-model in plaats van bijvoorbeeld het (S,s)-model, omdat door de lage vraag-rate de situatie bijna niet voorkomt waarin er meer dan ´e´en onderdeel per keer wordt besteld. Er hoeft dus praktisch steeds maar ´e´en onderdeel bijbesteld te worden door het OEM om terug tot het oorspronkelijke voorraadniveau te komen, en dit is wat er in een (S-1,S)-model gebeurt.
2.2
Kosten
In Sectie 2.1 zijn verschillende kosten aan bod gekomen. In deze Sectie worden deze in meer detail beschreven. We onderscheiden vier verschillende kosten die in deze scriptie voor komen: • Fixed order kosten • Backorder kosten • Holding kosten • Obsolescence kosten (’overtolligheidskosten’) Fixed order kosten zijn vaste kosten die gemaakt worden als een maatschappij een bestelling voor een onderdeel bij het OEM plaats. Denk hierbij aan kosten die verbonden zijn aan de administratie en de transportatie van het onderdeel. In de modellen in deze scriptie zijn de fixed order kosten niet van belang. Backorder kosten zijn kosten die gemaakt worden als een bestelling binnenkomt bij het OEM, maar deze niet meteen kan worden verwerkt omdat er op dat moment geen voorraad aanwezig is. In dat geval moet er een backorder (nabestelling) worden geplaatst, en hier zijn kosten aan verbonden. Het gaat hierbij vooral om de praktische kosten om dit onderdeel te laten nabestellen, maar er kan bijvoorbeeld ook worden gedacht aan de slechte klantenservice, welke in ruime zin ook verklaard 5
kunnen worden als backorder kosten. In deze scriptie worden de backorder kosten gedefinieerd per onderdeel per unit tijd. Holding kosten zijn kosten die gemaakt worden bij de opslag van de onderdelen door het OEM. Hieronder vallen ook opportunity kosten, wat kosten zijn die het niet kunnen opslaan van andere goederen of onderdelen inhouden. In deze scriptie worden holding kosten gedefinieerd per onderdeel op voorraad per unit tijd. Obsolescence kosten zijn kosten die worden gemaakt als er reserve onderdelen over zijn bij een vliegtuigmodel waarvan er geen vliegtuigen operationeel meer zijn. Dit soort onderdelen noemen we dead stock. Ze kunnen niet meer verkocht worden, en moeten dus worden gesloopt. Aan dit slopen zijn kosten verbonden welke we obsolescence kosten noemen. Obsolescence kosten worden in deze scriptie gedefinieerd als eenmalige kosten per overtollig onderdeel.
2.3
Vraag
Een belangrijk aspect van een voorraadmodel is de manier waarop de vraag naar goederen wordt gemodelleerd. Deze vraag kan bijvoorbeeld deterministisch of stoschastisch zijn, evenals constant of variabel over tijd. Voor het binnenkomen van bestellingen bij het OEM gebruiken we een Poisson aankomst process. Dit is een gebruikelijk proces bij het modelleren van aankomsten bij een bepaalde instelling. Het binnenkomen van de bestellingen is hierbij Poisson verdeeld met parameter λ en is dus stochastisch. De tijd tussen twee opeenvolgende bestellingen heeft dan een exponenti¨ele verdeling met parameter 1/λ. In Sectie 1 is besproken dat deze scriptie drie modellen zal bestuderen, twee modellen met een constante vraag, en ´e´en model met een dalende vraag. In de eerste twee versimpelde modellen blijft de vraag dus constant over tijd, oftewel stationair. In het derde model blijft de vraag niet gelijk over tijd, en is dus niet-stationair. In dit geval verandert λ dus over tijd. Dit model gaan we uiteindelijk gebruiken voor verschillende experimenten. Deze non-stationariteit is lastig voor zowel de vliegtuigmaatschappij als het OEM, want het is een stuk lastiger om de vraag te voorspellen wanneer deze niet stationair is.
6
3
Opzet modellen
In deze Sectie zullen de modellen in meer detail worden besproken. Er worden dus drie modellen gebruikt in deze scriptie. Het eerste model bevat een stationaire vraag naar onderdelen en een OEM die altijd openblijft. Het tweede model bevat ook een stationaire vraag, maar in dit model worden de kosten op een effici¨entere manier berekend door middel van een methode dat de obsolescence kosten beter kan schatten. Deze twee modellen zullen met elkaar worden vergeleken en bovendien zal worden gekeken of de resultaten overeenkomen met een analytisch model, waarin de waardes met de hand zijn berekend. De relatie tussen deze modellen en het derde, uiteindelijke, model is het volgende. De eerste twee modellen worden gebruikt om elk jaar de optimale voorraadpositie van onderdelen bij het OEM te bepalen. Deze voorraadpositie wordt vervolgens in het derde model elk jaar als input gebruikt. In dit derde model wordt de uiteindelijke sluitingstijd van het OEM bepaald evenals de hoeveelheid reserve onderdelen dat de vliegtuigmaatschappij dient in te slaan.
3.1
Stationair model
Nu zal het eerste stationaire model worden besproken. Eerst worden de kenmerken en opzet van het model gegeven. Daarna worden de in- en uitvoerwaardes van de simulatie besproken, en tot slot zal worden uitgelegd hoe de simulatie globaal verloopt. 3.1.1
Kenmerken model
In dit model is de vraag van de vliegtuigmaatschappij naar onderdelen stationair. Dit betekent dat het OEM de gehele tijdspan van de simulatie openblijft, omdat de vraag naar onderdelen voldoende blijft. Omdat het OEM niet zal sluiten betekent het ook dat er geen onderdelen overblijven na de sluiting van het OEM, en er dus geen sprake van dead stock is. Obsolescence kosten spelen dus geen rol in dit model. Verder wordt er in dit model ook nog geen rekening gehouden met het feit dat van vliegtuigen die uit de roulatie gaan verschillende onderdelen kunnen worden hergebruikt. Deze zouden namelijk verkocht kunnen worden, en op deze manier wordt er zo geconcurreerd met het OEM voor het leveren van reserve onderdelen. Het type voorraadmodel wat wordt gebruikt is het (S-1,S)-voorraadmodel. Bij dit model houdt het OEM een voorraadpositie van S onderdelen aan. In Sectie 2.1 is besproken dat bestellingen bij het OEM alleen plaatsvinden in hoeveelheden van ´e´en onderdeel. Wanneer er dus zo’n bestelling geplaatst wordt, moet het OEM zijn voorraad met ´e´en onderdeel hervullen. De tijd dat het duurt om de voorraad te hervullen wordt de lead time genoemd. De simulatie bestaat grofweg uit twee periodes. De eerste periode is de opstartperiode welke loopt van tijdstip t = 0 tot en met tijdstip t = T0, en de tweede periode is de simulatieperiode welke loopt van tijdstip t = T0 tot en met tijdstip t = T0 + T1. T0 en T1 zijn parameters waar aan het begin van de simulatie waardes aan worden toegekend. Deze waardes bepalen dus de lengte van de opstart- en simulatieperiode. De opstart- en de simulatieperiode verschillen hiernaast nog op ´e´en punt: In de opstartperiode worden de uitvoervariabelen als de kosten en het aantal bestellingen niet geregistreerd, terwijl dit tijdens de simulatieperiode w´el gebeurt. De uitvoervariabelen worden dus alleen berekend over de simulatieperiode. De reden dat de simulatie is opgesplitst in deze twee periodes is het volgende. De opstartperiode zorgt ervoor dat het systeem zich aan het begin van de simulatieperiode in een representatievere staat bevindt. Wanneer er geen opstartperiode zou zijn, zou bijvoorbeeld het 7
voorraadniveau aan het begin van elke simulatie altijd maximaal zijn, wat niet overeenkomt met de werkelijkheid. Nu begint de simulatieperiode met een variabele hoeveelheid voorraad, omdat er meestal bestellingen tijdens de opstartperiode hebben plaatsgevonden. Dit model beschrijft de situatie vanuit het oogpunt van het OEM. De hoofdvraag voor het OEM is hoeveel onderdelen er op voorraad moeten worden gehouden, op zo’n manier dat de kosten geminimaliseerd worden. Dit zal in feite neerkomen op een trade-off tussen de holding- en de backorder kosten. Als er te veel onderdelen op voorraad wordt gehouden zullen de holding kosten relatief hoog zijn, maar als er te weinig onderdelen op voorraad wordt gehouden zullen de backorder kosten relatief hoog zijn.
3.1.2
Parameters en variabelen
In deze Sectie worden de invoerwaardes voor de simulatie van het eerste model gegeven evenals de variabelen die de simulatie als output geeft. Tijdens de simulatie worden nog enkele andere variabelen gebruikt, maar deze zijn niet van dusdanig belang dat ze hier weergegeven worden. Hieronder volgen de lijsten met invoer parameters en uitvoer variabelen. Later zal worden besproken welke waarden er tijdens de simulaties aan de invoer parameters worden toegekend. Invoer parameters: • planes: Beginaantal operationele vliegtuigen. • lambda: vraag-rate naar onderdelen per vliegtuig (per jaar) • T0: Lengte van de opstartperiode • T1: Lengte van de simulatieperiode • S: Voorraadpositie • p: Prijs van een reserve onderdeel • h: Holding cost rate • b: Backorder kosten (per unit per jaar) • L: Lead time (in jaren) • sim: Aantal simulatie runs
Uitvoer variabelen: • HAve: Gemiddelde holding kosten (per jaar) Deze worden als volgt berekend: HAve = p * h * IlevelAve • BAve: Gemiddelde backorder kosten (per jaar) Deze worden als volgt berekend: BAve = b * BacklevelAve 8
• CAve: Gemiddelde totale kosten (per jaar) Deze worden als volgt berekend: CAve = HAve + BAve • NAve: Gemiddelde totale nummer aan bestellingen (tijdens T1) • BNAve: Gemiddelde totale nummer aan nabestellingen (tijdens T1) • PoutAve: Gemiddelde stock-out frequentie (tijdens T1) • IlevelAve: Gemiddelde voorraadniveau (tijdens T1) • BacklevelAve: Gemiddelde backorderniveau (tijdens T1) • V: Vector dat de tijden van de bestellingen van klanten opslaat plus de tijden waarop ze hun onderdelen ontvangen (voor een random simulatie)
9
3.1.3
Simulatie
In vorige Secties is beschreven wat de belangrijkste kenmerken van het model zijn en wat de simulatie als in- en uitvoer heeft. In deze Sectie zal worden beschreven hoe de simulatie is opgebouwd. Omdat de modellen een groot deel van de inhoud van de scriptie representeren, zal hier in redelijk detail aandacht aan worden besteed. In Figuur 1 zien we een flowchart dat de structuur van de simulatie weergeeft. Aan de hand van deze flowchart zal worden uitgelegd hoe de simulatie is opgebouwd. De simulatie is uitgevoerd in het programma Matlab. De rechthoeken in de flowchart geven functies weer of een script in het geval van Main. De ovale vormen bevatten een while loop of een for loop. In deze loops blijft de simulatie zich herhalen totdat er aan een bepaalde eigenschap wordt voldaan. Deze eigenschap staat in het groen aangegeven in de flowchart. Wanneer nog niet aan de eigenschap voldaan is dient de zwarte uitgaande pijl gevolgd te worden. Als wel aan de eigenschap voldaan is dient de groene uitgaande pijl gevolgd te worden.
Figure 1: Flowchart stationair model
10
We zullen nu de structuur van de simulatie volgen via de flowchart. De simulatie begint met het script Main. Dit is het bestand wat gerunt moet worden om de simulatie uit te voeren. Main bestaat uit drie onderdelen. Ten eerste roept het de invoerparameters op, daarna voert het de daadwerkelijke simulatie uit, en tot slot print het de uitkomsten. Voor het invoeren van de parameters wordt de functie Inputdata aangeroepen. Deze functie geeft de gebruiker een venster waarin de verschillende invoerwaardes moeten worden ingevuld. Vervolgens roep Main de functie Simulation aan. Zoals de naam doet vermoeden wordt in deze functie de feitelijke simulatie uitgevoerd. De simulatie wordt een groot aantal keer uitgevoerd om betrouwbaardere waarden te krijgen voor de uitvoer variabelen. Dit wordt gedaan door middel van een for loop. Deze for loop voert de simulatie zoveel keer uit als werd ingevoerd bij de functie Inputdata. V´o´or de for loop begint, worden echter nog enkele variabelen gedefinieerd. Dit zijn voornamelijk variabelen die de gesommeerde waarde van de uitvoer variabelen opslaan, zodat later een gemiddelde over alle simulaties kan worden berekend. We zullen nu de stappen doorlopen die nodig zijn om ´e´en simulatie run te voltooien. Ten eerste roept Simulatie de functie Initialization aan. Deze functie initialiseert de variabelen die per simulatie run opnieuw gereset dienen te worden. Een onderdeel van de functie Initialization is het aanroepen van de functie New Customer Arrival. Deze functie geeft het eerste tijdstip waarop een bestelling van de vliegtuigmaatschappij bij het OEM binnenkomt. Vervolgens komt de simulatie bij een while loop. Deze while loop zorgt ervoor dat de simulatie voor een bepaalde tijd wordt uitgevoerd. In deze while loop bevindt de kern van de simulatie zich. Aan het begin van de while loop wordt elke keer de functie Next event aangeroepen. Deze functie checkt welke gebeurtenis als eerste volgt en wanneer deze is. Gebeurtenissen die kunnen volgen zijn een bestelling van de vliegtuigmaatschappij, of een hervulling van de voorraad van het OEM. Vervolgens wordt gechekt wat de tijd in de simulatie is net als een dummy variabele die als indicator geldt. Op basis van deze twee variabelen wordt bepaald welk pad er volgt. Er zijn drie mogelijkheden. De eerste optie wordt aangedaan als de tijd variabele een lagere waarde heeft dan het eindpunt van de opstartperiode. Daarna wordt ´of de functie Customer arrival ´of de functie Order delivery aangeroepen. De functie Customer arrival representeert de situatie waarbij een vliegtuigmaatschappij een vraag naar een reserve onderdeel heeft en bij het OEM aankomt. De functie Order delivery representeert de situatie waarbij de voorraad van het OEM met ´e´en onderdeel wordt hervuld. Bij deze eerste optie worden de uitvoer variabelen nog niet geupdate, maar de interne variabelen wel. Wanneer ´e´en van deze twee functies eenmaal zijn uitgevoerd, wordt vervolgens de eventtime tE gelijk aan de huidige tijd gesteld. Deze eventtime is belangrijk bij het berekenen van bepaalde uitvoer variabelen. Vervolgens begint dit proces binnen de while loop weer opnieuw, en wordt de functie Next event weer aangeroepen. Wanneer op een gegeven moment de tijd variabele een grotere waarde heeft bereikt dan de eindtijd van de start periode, wordt de tweede optie aangeroepen. Deze optie heeft als voorwaarde dat de huidige tijd lager dan het eindpunt van de simulatie periode moet zijn plus dat de indicator variabele nul moet zijn. Deze tweede optie wordt eenmalig uitgevoerd. De reden dat hij wordt uitgevoerd is om de eventtijd gelijk te stellen aan het begin van de simulatie periode, zodat de uitvoer variabelen ook daadwerkelijk berekend worden vanaf het begin van de simulatieperiode. Bovendien wordt nu de dummy variabele op ´e´en gezet, zodat de tweede optie niet meer wordt uitgevoerd. Hierna worden net als bij de eerste optie ´of Customer arrival ´of Order delivery aangeroepen afhankelijk van welke van de twee eerder in tijd is. In dit geval worden wel al
11
echter de uitvoer variabelen aangepast omdat de simulatieperiode is begonnen. Hierna zal de derde optie steeds worden aangeroepen, welke als voorwaarde heeft dat de huidige tijd lager is dan het eindpunt van de simulatie periode plus dat de dummy variabele de waarde ´e´en heeft. Vervolgens gebeurt hetzelfde als bij de tweede optie, en worden de uitvoer variabelen aangepast. Waneer de tijd variabele op een gegeven een grotere waarde aanneemt dan de eindtijd van de simulatieperiode stopt de while loop. De kern van ´e´en simulatie run is dan uitgevoerd. Na de while loop worden de waarden van de uitvoer variabelen opgeteld bij de waarden van de rest van de simulatie runs in zogenoemde somvariabelen. De simulatie komt nu weer terecht bij de for loop. Als de for loop een bepaald aantal keer is uitgevoerd, worden de gemiddeldes van de uitvoer variabelen berekend. Dit gebeurt door de waardes van de som variabelen te delen over het aantal simulatie runs. Vervolgens keert de simulatie weer terug naar Main. Tot slot print Main de uitvoer variabelen uit die in Sectie 3.1.1 zijn vermeld, en is de simulatie ten einde gekomen.
3.2
Model met obscolescence kosten
In Sectie 3.1 is het eerste stationaire model beschreven. We hebben in werkelijkheid echter niet te maken met een stationaire situatie, maar een non-stationaire. Deze non-stationairiteit kan voor obsolescence kosten zorgen. Deze kosten zijn niet opgenomen in het vorige model. In deze Sectie presenteren we een model waarin er w´el rekening wordt gehouden met de obscolescence kosten, en zo een realistischere schatting van het kostenplaatje voor het OEM kan worden gemaakt. De simulatie wordt nog steeds met hetzelfde stationaire model uitgevoerd, maar daarnaast wordt er gebruik gemaakt van een parameter die toch ervoor zorgt dat we de obsolescence kosten kunnen schatten. In Sectie 2.2 is besproken wat obsolescence kosten zijn en hoe ze veroorzaakt worden. Nu is de vraag hoe deze obsolescence kosten geschat kunnen worden. Een belangrijk aspect hierbij is het zogenoemde obsolescence risico, afgekort met de Griekse letter ψ. Dit houdt de mate in waarin de vliegtuigonderdelen verouderen. In Van Jaarsveld en Dekker (2011) is een geschikte methode ontwikkeld om dit risico te schatten. Deze methode is erg handig in ons geval, aangezien er verder geen voorkennis over het obsolesence risico vereist is. We zullen nu in het kort uitleggen hoe deze methode globaal in zijn werking gaat. De methode maakt gebruik van een Markov keten met twee staten. De eerste staat x1 representeert een situatie waarin de vraag nog voldoende of ’levend’ is, en de tweede staat x0 representeert een staat waarin er geen vraag meer is, oftewel de vraag is ’dood’. Er zijn drie parameters bij dit proces betrokken. De vraagrate λ, de distributie D en de overgangsparameter ψ. Deze ψ is erg belangrijk aangezien deze de overgangsrate weergeeft van de levende naar de dode staat. De dode staat in de Markov keten is absorberend. Wanneer de keten dus in deze staat terecht komt, blijft deze daar en zal er verder geen vraag naar onderdelen meer binnenkomen bij het OEM. Er zal niet in deze scriptie niet worden uitegelgd hoe deze methode precies te werk gaat om de parameter ψ te schatten, zie daarvoor Van Jaarsveld en Dekker (2011). In plaats daarvan zal de waarde voor ψ gegeven zijn in deze scriptie gebaseerd op deze methode. Vervolgens wordt met behulp van deze ψ de obsolescence kosten berekend. Hoe dit precies in zijn werking gaat wordt uitgelegd in Sectie 4.1.3.
12
3.3
Non-stationair model
In deze Sectie gaan we de opzet van het non-stationaire model bespreken. Dit is het model wat uiteindelijk zal gebruikt worden om de vliegtuigmaatschappijen advies te geven over hoeveel reserve onderdelen ingeslaan moet worden voor het OEM stopt en wanneer dit zal moeten gebeuren.
3.3.1
Kenmerken model
In dit model is de vraag van de vliegtuigmaatschappij naar onderdelen non-stationair. Omdat er steeds minder vliegtuigen operationeel zijn, zal de vraag steeds verder dalen naarmate de tijd vordert. Dit betekent dat het OEM genoodzaakt is om op een gegeven moment te sluiten bij een gebrek aan vraag. Ook dit model is een (S-1,S)-voorraad model zoals beschreven in Sectie 2.1. Er wordt in dit model gebruikt gemaakt van de twee voorgaande modellen. Deze modellen zullen aan het eind van elk jaar gebruikt worden om de optimale voorraadpositie voor het OEM te bepalen. Dit werd gedaan door de totale kosten te minimaliseren. Wat in dit non-stationaire model is meegenomen is het feit dat wanneer een vliegtuig gesloopt wordt, sommige onderdelen kunnen worden hergeberuikt. Deze onderdelen kunnen verkocht worden en zo concurreren met het OEM. Dit zorgt ervoor dat het OEM minder bestellingen zal binnenkrijgen, en nog eerder zal sluiten. Dit model bekijkt de situatie vanuit het oogpunt van de vliegtuigmaatschappij. Het probeert het punt te schatten waarop het OEM besluit te stoppen. Dit gebeurt op een punt in de tijd wanneer de vraag vanuit de vliegtuigmaatschappij te laag is geworden. Op het moment dat het OEM sluit, wordt bepaald hoeveel extra reserve onderdelen nog ingekocht moeten worden, en hoeveel dit zal kosten.
3.3.2
Parameters en variabelen
Nu zullen de invoerparameters voor de simulatie van het non-stationaire model gegeven worden evenals de variabelen die de simulatie als output geeft. Tijdens de simulatie worden nog enkele andere variabelen gebruikt, maar deze zijn niet dusdanig van belang dat ze hier weergegeven worden. Hieronder volgen de lijsten met invoer parameters en uitvoer variabelen. Later zal worden besproken welke waarden er tijdens de simulaties aan de invoer parameters werden gegeven. Invoer parameters: • planes: Beginaantal operationele vliegtuigen • lambda: vraag rate per vliegtuig (per jaar) • T0: Lengte van de opstart periode • T1: Lengte van de simulatie periode • S: Voorraad positie • p: Prijs van een reserve onderdeel • h: Holding cost rate 13
• L: Lead time (in jaren) • pSrap: Kans dat een onderdeel hergebruikt kan worden nadat een vliegtuig wordt gesloopt • sim: Aantal simulatie runs Uitvoer variabelen: • HAve: Gemiddelde jaarlijkse holding kosten van de maatschappij nadat het OEM is gesloten • OAve: Gemiddelde jaarlijkse obsolescence kosten van de maatschappij • CAve: Gemiddelde jaarlijkse totale kosten van de maatschappij • tHoldSumSumAve: Gemiddelde tijd dat de maatschappij een onderdeel in opslag heeft nadat het OEM is gesloten • tEndAve: Gemiddelde tijd voordat het OEM sluit • NEndAve: Gemiddeld aantal bestellingen nadat het OEM sluit at de tijden van de bestellingen van klanten nadat het OEM sluit opslaat alsmede de tijden waarop ze hun onderdelen ontvangen voor een random simulatie Er waren nog meer output variabelen, maar bovenstaande variabelen zijn de belangrijkste.
3.3.3
Simulatie
In deze Sectie zal besproken worden hoe de simulatie van het non-stationaire model is opgebouwd. Dit zal niet in evenveel detail worden gedaan als bij de uitleg van het stationaire model in Sectie 3.1.3, omdat de modellen veel gelijkenissen vertonen. In plaats daarvan worden voornamelijk de veranderingen ten opzichte van het stationaire model besproken. In Figuur 2 zien we de flowchart van het non-stationaire model. Veranderingen bij het invoeren van de parameters is dat er nu een parameter toegevoegd is dat aangeeft wat de kans is dat een vliegtuigonderdeel wordt hergebruikt wanneer een vliegtuig wordt gesloopt. Tot en met de while loop is verder het belangrijke verschil dat de variabele tEnd op oneindig wordt gezet. Deze variabele geeft het punt in de tijd weer wanneer het OEM stopt. Tijdens de simulatie in de while loop zal een waarde aan tEnd worden gegeven. Wanneer dit is gebeurd en de tijdvariabele heeft een hogere waarde dan het eindpunt van de simulatieperiode heeft bereikt, zal de tijdvariabele op oneindig worden gezet en stopt de while loop vervolgens. Binnen de while loop zijn verder nog enkele verschillen ten opzichte van het stationaire model. Er zijn in dit geval steeds vier mogelijke functies die kunnen worden aangeroepen: Customer Arrival, Order delivery, Planescrap en EndYear. Bij de functie Customer Arrival komt een nieuwe vraag naar een onderdeel binnen bij het OEM, bij de functie Order delivery wordt de voorraad van het OEM met ´e´en onderdeel hervuld, bij de functie Planescrap wordt er een vliegtuig gesloopt en bij de functie EndYear wordt een jaarlijkse evaluatie gehouden. De functies Planescrap en EndYear zijn er dus bijgekomen sinds vorig model. Planescrap zorgt ervoor dat er sprake is van een dalend aantal operationele vliegtuigen en dus een dalende vraag naar onderdelen. In de functie EndYear wordt 14
Figure 2: Flowchart non-stationaire model bepaald of het OEM zijn voorraadpositie S zal verlagen of niet. Dit wordt gedaan met behulp van het stationaire model, welke is beschreven in Sectie 3.1. Ook wordt er elk jaar geschat of het OEM open zal blijven. Dit wordt gedaan op basis van de voorraadpositie. Wanneer de voorraadpositie bij het OEM op een gegeven moment te laag wordt, gokt de vliegtuigmaatschappij dat het OEM zal sluiten. Op dat punt zullen er dus extra reserve onderdelen moeten ingekocht worden. In dit model zijn er maar twee paden die genomen kunnen worden binnen de while loop. De eerste optie wordt genomen wanneer de tijdvariabele een lagere waarde heeft dan het eindpunt van de opstartperiode. Aan de uitvoervariabelen worden in dit geval nog geen waardes toegekend. De tweede optie wordt genomen wanneer de tijd het eindpunt van de opstartperiode gepasseerd heeft, tot en met het eindpunt van de simulatieperiode. De simulatieperiode is in dit model weer opgedeeld in twee periodes. Een periode v´ o´ ordat het OEM sluit, en een periode nadat het OEM sluit. Op het moment dat de fuctie EndYear bepaalt dat het OEM zal sluiten, worden de 6 belangrijkste uitvoer variabelen berekend voor het advies aan de vliegtuigmaatschappij. Dit zijn de sluitingstijd
15
van het OEM, het gemiddelde aantal bestellingen bij het OEM nadat deze gesloten is, hoe lang de maatschappij een onderdeel gemiddeld nog op voorraad heeft na de sluiting, en de gemiddelde holding, obsolescence en totale kosten die de maatschappij per jaar heeft nadat het OEM gesloten is. De overige uitvoer variabelen zijn meer een hulpmiddel bij het controleren van de simulatie. Vervolgens bewandelt de simulatie hetzelfde pad als bij het stationaire model: De sommatie variabelen worden berekend, de for loop runt een bepaald aantal keer, de gemiddelde waardes worden berekend en tot slot worden deze als uitvoer gegeven.
16
4
Resultaten
In deze Sectie zullen de resultaten worden gegeven van de simulaties voor de drie modellen. Eerst wordt dit gedaan voor het stationaire model zonder obsolescence kosten. Dit model zal worden vergeleken met een analytisch model om te kijken of de uitvoerwaardes overeenkomen. Vervolgens worden de resultaten voor het model m´et obsolescence kosten gegeven. De voorraadpositie die de laagste totale kosten geeft in dit model zal als invoerwaarde worden gebruikt voor het nonstationaire model. Tot slot worden de resultaten voor dit non-stationaire model gegeven, en kan de vliegtuigmaatschappij worden geadviseerd hoeveel extra reserve onderdelen ze zullen moeten inslaan en wanneer.
4.1 4.1.1
Stationaire modellen Model zonder obsolescence kosten
Deze Sectie bestaat uit drie onderdelen. Eerst zal de keuze van de invoerwaardes besproken worden. Vervolgens zal de optimale voorraadpositie S bepaald worden. Dit is de voorraadpositie die de minste totale kosten oplevert. Tot slot worden met deze optimale voorraadpositie als input verschillende statistische eigenschappen van de uitvoer variabelen berekend. Eerst zullen we dus de keuze van de invoerwaardes uitleggen. Een deel van de invoerwaardes is gebaseerd op de situatie van de Fokker 100. Dit is niet bij alle invoerwaardes het geval, omdat die informatie niet beschikbaar is voor ons. Verder is het niet van dusdanig belang voor het model dat er waardes uit de praktijk worden gebruikt, zolang deze maar enigzins realistisch zijn. De waardes die w´el beterkking hebben tot de Fokker 100 zijn de volgende. Voor de startwaarde van het aantal operationele vliegtuigen ’planes’ nemen we de waarde 169 aan. Dit is het aantal Fokker 100’s dat op dit moment operationeel zijn bij verschillende vliegtuigmaatschappijen (Ch-Aviation, 2014). De opstartperiode T0 en de simulatieperiode T1 worden als volgt bepaalt. Vliegtuigmodellen zijn doorgaans ongeveer tien jaar in productie, en elk vliegtuig heeft ongeveer een levensduur van dertig jaar. De productie van de Fokker 100 modellen is gestopt in 1996. We versimpelen de situatie door te stellen dat het aantal operationele vliegtuigen in dertig jaar middels een uniforme verdeling zal dalen van 169 tot 0. Aan het einde van 2026 zal er dus zeker geen vliegtuig meer operationeel zijn in dit geval. Dit betekent dat er nog 12 jaren te gaan zijn tot de laatste Fokker 100 zal stoppen met vliegen. Met het oog hierop zetten we de lengte van de opstartperiode T0 op 2 jaar, en de lengte van de simulatieperiode T1 op 10 jaar. De periode wat dus door de daadwerkelijke simulatie bestrijkt wordt loopt van 2016 tot en met 2026. Het aantal operationele vliegtuigen zal bij de ingang van deze simulatieperiode hoogstwaarschijnlijk al een lager aantal hebben bereikt dan 169. ´ en experiment met een relatief We zulen twee verschillende experimenten doen met dit model. E´ lage λ, en ´e´en experiment met een relatief hoge λ. We analyseren dus een sitiuatie waarin de vliegtuigonderdelen relatief ’slow-moving’ zijn en een situatie waarin de onderdelen relatief ’fast-moving’ zijn. Voor het experiment met de slow-moving onderdelen zullen we een λ van 1 per jaar aannemen, en voor het experiment met de fast-moving onderdelen zullen we een λ van 7 per jaar aannemen. De experimenten worden beiden 10.000 keer uitgevoerd, om meer betrouwbare waardes voor de uitvoer variabelen te krijgen. De overige invoerwaardes zijn hypothetisch gekozen, en hebben geen betrekking op de Fokker 100. Voor deze waardes zullen we dezelfde waardes aannemen zoals deze 17
gekozen zijn in Van Jaarsveld en Dekker (2011). Deze nemen een leadtime L van 1 jaar aan, een prijs voor een onderdeel p van 4000, een holding cost rate van 0,25 en de backorder kosten van 200 * 365 = 73000 per jaar. Dit model wordt twee keer uitgevoerd. De eerste keer wordt er gevarieerd over de waarde van de voorraadpositie S om te bepalen welke S de minste totale kosten oplevert. Wanneer deze optimale voorraadpositie gevonden is, wordt het model een tweede keer uitgevoerd met alleen de optimale waarde als input voor S. De tweede keer berekenen we verschillende statistische eigenschappen van de uitvoer variabelen, om een goed beeld te krijgen van de uitvoerwaardes. Dit doen we door middel van de batch means methode. Bij deze methode delen we de simulatieperiode op in 10 ’batches’ die elk 1 jaar duren. De gemiddeldes van deze batches afzonderlijk worden gebruikt om het totale gemiddelde, de variantie en vervolgens 95% betrouwbaarheidsintervallen voor de variabelente berekenen. In Figuur 3 worden voor beide experimenten de resultaten van de eerste run van dit model weergegeven. Bij deze run is het dus het doel om de S te vinden waarvoor de totale kosten het laagst zijn. In de meest linker kolom staan de waardes van S waarover werd gevarieerd. In de overige kolommen staan de waardes voor respectievelijk het gemiddelde voorraadniveau (E[OH]), backorder niveau (E[OB]), stock-out frequentie (Pout), backorder kosten (B), holding kosten (H) en totale kosten (C). Bij de linker tabel heeft λ de waarde 1, en bij de rechter tabel heeft λ de waarde 7. In de tabellen staan de waardes dikgedrukt voor welke S de simulatie de minste totale kosten oplevert. We zien dat de S met de laagste totale kosten is 4 in het geval van λ = 1, en is 13 in het geval van λ = 7. Deze waardes voor S zullen we vervolgens als invoer gebruiken wanneer we het model voor de tweede keer runnen.
Figure 3: Berekening optimale S bij stationair model zonder obsolescence kosten voor λ=1 en λ=7 Vervolgens runnen we het model dus voor een tweede keer met de optimale waardes voor S. Het doel nu is om de statistische eigenschappen van de uitvoer variabelen te bepalen. We kijken hierbij naar het gemiddelde (µ Sim.), de standaard deviatie (σ) en de lower- (L.B.) en upper bound (U.B.) van een 95% betrouwbaarheidsinterval van de variabelen. De variabelen waarbij dit getest is, zijn dezelfde variabelen als in de eerste run van dit model. In Figuur 4 op bladzijde 20 zijn de resultaten van deze simulatie weergegeven. In de volgende Sectie zullen de resultaten van dit model vergeleken worden met een analytisch model.
18
4.1.2
Vergelijking met analytisch model
We zullen nu de resultaten van het stationaire model zonder obsolescence kosten vergelijken met een analytisch model, waarin de waarden theoretisch zijn berekend. Dit kan gemakklijk gedaan worden met het programma Excel. We zullen dit doen voor de gemiddelde stock-out frequentie, aantal backorders, voorraadniveau, holding kosten, backorder kosten en totale kosten. Bij de berekeningen wordt gebruikt gemaakt van het voorraadniveau, deze wordt afgekort met OH. De variabelen worden als volgt berekend: • Pout = Stock-out freqeuentie
P out = P (OH < 0) = lim T → ∞
1 T
Z
T
I[OH(t) ≤ 0](t)dt
(1)
0
• E[OB] = Gemiddeld aantal backorders per jaar. E[OB] =λ∗P out
(2)
• E[OH] = Gemiddeld voorraadniveau per jaar.
E[OH] = lim T → ∞
1 T
Z
T
[OH(t)]dt
(3)
0
• H = Holding kosten per jaar H = p ∗ h ∗ (S−λ∗L + E[OB])
(4)
• B = Backorder kosten per jaar B = b ∗ E[OB]
(5)
• C = Totale kosten per jaar C =H +B
(6)
Deze variabelen zijn berekend voor dezelfde waarde voor S als bij het stationaire gesimuleerde model. Dus voor S=4 bij het eerste experiment, en voor S=13 bij het tweede experiment. In Figuur 4 staan deze analytisch berekende waardes (µ An.). De eerste reactie bij het vergelijken van de resultaten van de simulatie met de resultaten van het analytische model is dat de waardes sterk overeenkomen. We zien wel dat bij enkele variabelen de analytisch berekende waardes net buiten het betrouwbaarheidsinterval van 95% van het gesimuleerde model vallen. Dit verschil is echter zeer klein. Redenen hiervoor kunnen zijn dat het betrouwbaarheidsinterval wellicht moet worden uitgebreid naar bijvoorbeeld 99%, of het stochastische karakter bij het gesimuleerde model. We trekken hieruit de conclusie dat dit model correct is gesimuleerd, en we het verder kunnen uitbouwen. 19
Figure 4: Statistische eigenschappen van de output variabelen bij model zonder obsolescence kosten voor λ=1 en λ=7 4.1.3
Model met obsolescence kosten
Nu zullen we de resultaten bekijken voor het model waarin de obsolescence kosten w´el zijn meegenomen. We hebben dezelfde methode gebruikt als bij het stationaire model zonder obsolescence kosten in Sectie 4.1.1. Eerst runnen we het model een keer om de optimale S te vinden, en daarna runnen we het model nog een keer om de statistische eigenschappen van de variabelen te berekenen met deze S als input. Ook nu voeren we weer een experiment uit met slow-moving onderdelen waarbij λ = 1, en een experiment met fast-moving onderdelen waarbij λ = 7. Dit model lijkt erg op het vorige model, dus we zullen alleen de verschillen ten opzichte van het vorige model bespreken. Het belangrijkste verschil is dat er in dit model ook obsolescence kosten worden meegenomen. Deze worden als volgt berekend. In Van Jaarsveld en Dekker (2011) is een methode ontwikkeld om het obsolescence risico ψ te schatten. Dit is een waarde tussen 0 en 1, wat aangeeft hoe groot de kans per jaar is dat vraag naar het betreffende onderdeel ophoudt. In Van Jaarsveld en Dekker (2011) wordt beredeneerd dat de kans groter is dat de vraag dood zal vallen bij slow-moving onderdelen dan bij fast-moving onderdelen. De waarde van het obsolescence risico verschilt dan ook met de grootte van de vraag in voorgaande periodes. Zoals besproken is in Sectie 3.2 zullen we verder niet in diepte ingaan op de methode waarop ψ precies geschat wordt. In plaats daarvan zullen we de waardes voor ψ overnemen uit Tabel 2 in Van Jaarsveld en Dekker (2011: 429). Met deze ψ kunnen we de verwachte levensduur van het onderdeel berekenen, welke 1/ψ is. Vervolgens vermenigvuldigen we het gemiddelde voorraadniveau E[OH] met de obsolescence kosten per onderdeel p obs. Dit geeft ons de totale obsolescence kosten. Daarna delen we dit door de verachte levensduur om tot de jaarlijkse obsolescence kosten te komen. Deze berekening is weergegeven in Equation (7). O = E[OH] ∗ p obs∗ψ
(7)
Een ander verschil met het model zonder obsolescence kosten is dat we de holding cost rate verlagen van 25% naar 20%. Dit heeft er mee te maken dat in het vorige model de holding cost rate expres extra hoog is ingesteld om te compenseren voor het niet meenemen van de obsolescence kosten. Nu nemen we de waardes voor ψ over welke ψ = 0.17 per jaar is bij het experiment met λ = 1, en ψ = 0 per jaar is bij het experiment met λ = 7. De reden waarom bij het tweede experiment ψ nul is, is omdat bij een dergelijk hoge vraagrate van 7 onderdelen per jaar, de kans dat de vraag naar onderdelen stopt in de komende periode nagenoeg nul is. Omdat deze kans nul is, hoeft er dus ook geen rekening worden gehouden met obsolescence kosten in dit geval. 20
In Figuur 5 zijn de resultaten weergegeven van de eerste run van dit model m´et obsolescence kosten (O), waarbij gezocht wordt naar de optimale S. Er is af te lezen dat de laagste totale kosten bij het experiment met λ = 1 wordt bereikt bij S = 3, en bij het experiment met λ = 7 is dit S = 14. Deze waarden zullen we dus als input gebruiken voor de tweede run. Het is interessant om tegelijkertijd de uitkomsten van de deze optimale S’en te vergelijken met die van vorig model. In het eerste model was de optimale S bij λ = 1 gelijk aan 4, terwijl de optimale S in dit model 3 is. Dit komt doordat de obsolescence kosten bij dit slow-moving onderdeel hoger zullen uitpakken wanneer er ´e´en extra onderdeel op voorraad wordt gehouden, omdat er gemiddeld meer onderdelen op voorraad zijn wanneer de vraag stopt. Aan de andere kant zien we dat de optimale S bij λ = 7 wordt bereikt bij 14, terwijl dit in het eerste model bij een S van 13 is. Dit zal zijn omdat er in dit geval nagenoeg geen rekening met obsolescence kosten gehouden hoeft te worden, maar de holding cost rate in dit model wel 5% lager is ten opzichte van het eerste model. Vervolgens zullen we het model voor een tweede keer runnen om de statistische eigenschappen van de variabelen te verkrijgen bij de optimale S’en. De resultaten hiervan zijn weergegeven in Figuur 6. Hierin is O de afkorting voor de obsolescence kosten. We zullen deze resultaten niet nog eens met een analytisch model vergelijken. We hebben dit namelijk al met vorig gesimuleerd gedaan, en gezien dat dit model klopte. Bovendien is de obsolescence kosten de enige variabele die aan dit model is toegevoegd en deze is al analytisch berekend op basis van de andere variabelen, zie Equation (7). Aangezien dit model een realistischere weergave van de situatie geeft dan vorig model, zullen we de optimale S uit dit model gebruiken als input bij het non-stationaire model in Sectie 4.2.
Figure 5: Berekening optimale S bij stationair model met obsolescence kosten voor λ=1 en λ=7
Figure 6: Statistische eigenschappen van de output variabelen bij stationair model met obsolescence kosten voor λ=1 en λ=7
21
4.2
Non-stationair model
Deze Sectie bevat de resultaten voor het non-stationaire model. Dit is het meest uitgebreide model, en op basis hiervan geven we ons advies aan maatschappijen die met Fokker 100 vliegtuigen vliegen. Eerst wordt de keuze voor de gekozen invoerwaardes besproken en daarna worden de resultaten met het bijbehorende advies gegeven. Allereerst zullen we de invoerwaardes bespreken die gebruikt zijn voor dit model. Een aantal invoerwaardes zijn hetzelfde als bij het stationarie model m´et obsolescence kosten. Zo is de opstartperiode 2 jaar, de simulatieperiode 10 jaar, het beginaantal vliegtuigen 169, de prijs van een onderdeel 4000, de holding cost rate 0,20, de backorder kosten 73000, de lead time 1 jaar en het aantal simulatie runs 10.000. Hiernaast stellen we de kans dat een vliegtuigonderdeel kan worden hergebruikt nadat een vliegtuig is gesloopt (pScrap) in op 0,25. De kans is dus 25% dat er bij de sloop van een vliegtuig het betreffende onderdeel hergebruikt kan worden, we nemen aan dat bij de volgende vraag naar zo’n onderdeel altijd dit hergebruikte onderdeel zal worden gekocht in plaats van een nieuwe bij het OEM. We hebben in dit model te maken met een dalende vraag. Om het voor onszelf gemakkelijk te maken, hebben we de start en de stop van de simulatie strategisch gekozen. Bij de start van de simulatie hebben we namelijk een λ van 7, waarvoor we in Sectie 4.1.3 al de optimale S hebben berekend. We zullen deze S dan ook als input voor deze simulatie gebruiken. Omdat we te maken hebben met 169 vliegtuigen, stellen we de inputwaarde voor de λ per vliegtuig in op 7/169 ≈ 0,041420118. De stop van de simulatie hebben we als volgt ingesteld. Als aan het einde van het jaar is gebleken dat de vraag naar onderdelen in het afgelopen jaar 1 of minder was, sluit het OEM. In dit geval versimpelen we de situatie door te stellen dat in dit laatste jaar λ gelijk was aan 1. Door dit te doen kunnen we namelijk gebruik maken van het obsolescence risico ψ welke in Tabel 2 van Van Jaarsveld en Dekker (2011: 429) is gegeven. Deze is 0,17 voor λ = 1. Op basis hiervan kunnen de obsolescence kosten voor het OEM berekend worden. Deze obsolescence kosten worden gemaakt als de maatschappij nog reserve onderdelen op voorraad heeft op tijdstip t = T0 + T1, aangezien we hebben aangenomen dat er op dit tijdstip zeker geen vliegtuigen meer operationeel zullen zijn. We zijn bij de simulatie voornamlijk ge¨ınteresseerd naar de resultaten van zes variabelen. De eerste variabele is de gemiddelde tijdsduur vanaf tijdstip t=0 tot het tijdspunt dat het OEM sluit (tEnd). Dit is een belangrijke waarde, omdat de rest van de relevante output variabelen van dit tijdstip afhangen. De tweede variabele is het gemiddeld aantal bestellingen die de vliegtuigmaatschappij nog zal moeten maken nadat het OEM sluit (Nend). Dit geeft dus het aantal vliegtuigonderdelen weer wat de maatschappij zal moeten inslaan op het moment dat het OEM dreigt te sluiten. De derde variabele is de gemiddelde opslagduur van een onderdeel wat besteld is op het moment dat het OEM ging sluiten (tHold). Deze opslagduur wordt berekend vanaf het tijdstip dat het OEM sluit, tot het tijdstip waarop dit onderdeel gebruikt wordt om een vliegtuig te repareren. De overige variabelen zijn de verschillende kosten voor de vliegtuigmaatschappij. De vierde variabele is de gemiddelde holding kosten voor de vliegtuigmaatschappij per jaar nadat het OEM gesloten is (H), en de vijfde variabele is de gemiddelde obsolescence kosten voor de vliegtuigmaatschappij (O). De zesde output variabele tot slot is de jaarlijkse totale kosten voor de vliegtuigmaatschappij nadat het OEM is gesloten (C). We voeren voor dit model dus ´e´en experiment uit, zoals deze hierboven is beschreven. Op basis van 22
dit experiment geven we ons advies aan een vliegtuigmaatschappij die met de Fokker 100 vliegt. Het is belangrijk te vermelden dat dit advies deels gebaseerd is op waardes die we zelf hypothetisch hebben aangenomen en op versimpelingen. Voor echte accurate adviezen is meer informatie over de zaken omtrent de Fokker 100 nodig. Desondanks geeft dit model een aardige richtlijn. De resultaten van het experiment zijn hieronder weergegeven: • tEnd: gemiddelde sluitingstijd van OEM: 437,7880 weken. Dit betekent dat het OEM gemiddeld ≈8,5 jaar na tijdstip t = 0 sluit. • NEnd: gemiddeld aantal bestellingen nadat het OEM sluit: 6,4650. We zullen de vliegtuigmaatschappij hierom adviseren om 7 extra reserve onderdelen in te slaan. Omdat dit iets meer is dan het gemiddeld aantal bestellingen, kan de situatie voorkomen dat er nog een onderdeel overblijft op tijdstip t = T0 + T1 als er geen vliegtuigen meer vliegen. Dit is een reden dat de vliegtuigmaatschappij te maken kan krijgen met obsolescence kosten. • tHold: gemiddelde opslagduur van een onderdeel nadat het OEM is gesloten: 70,3354 weken Dit betekent dat de vliegtuigmaatschappij een reserve onderdeel gemiddeld ≈1,35 jaar in opslag heeft, voordat deze nodig is voor een reparatie. We gebruiken dit gemiddelde bij de berekening voor de holding kosten. • H: gemiddelde holding kosten nadat het OEM is gesloten per jaar: 1082,08 • O: gemiddelde obsolescence kosten nadat het OEM is gesloten per jaar: 454,75 Deze zijn berekend door middel van Equation (7). De input hiervoor was ψ = 0,17, p obs = 5000. Voor E[OH] nemen we hier een andere waarde aan, namelijk het verschil tussen de ons aangerade hoeveelheid reserve onderdelen (7) en de gemiddelde hoeveelheid benodigde onderdelen (6,4650). Dit is de gemiddelde hoeveelheid onderdelen die op tijdstip t = T0 + T1 overtollig zullen zijn. • C: gemiddelde totale kosten nadat het OEM is gesloten per jaar: 1536,83
Ons advies aan een vliegtuigmaatschappij zou op basis van dit experiment dus het volgende zijn: ”Koop over 8,5 jaar 7 extra reserve onderdelen in bij het OEM. Vanaf dat punt zijn de gemiddelde jaarlijkse kosten voor de opslag van deze onderdelen 1536,83 tot het moment dat er gestopt wordt met het vliegen van het Fokker 100 model.”
23
5
Conclusie en uitbreidingen
In deze scriptie zijn twee type modellen besproken. Het eerste type waren stationaire modellen, welke voornamelijk bedoeld om de correctheid van de simulatie te checken en de optimale voorraadpositie te bepalen voor het non-stationaire model. Het tweede type was een non-stationair model, welke als doel had de vliegtuigmaatschappij te adviseren hoeveel extra reserve onderdelen het moet inkopen en wanneer. Dit advies was het volgende: ”Koop over 8,5 jaar 7 extra reserve onderdelen in bij het OEM. Dit zal vanaf dat punt een jaarlijkse kosten van 1536,83 met zich meebrengen.” Natuurlijk zijn er verschillende uitrbeidingen die gedaan kunnen worden op dit onderzoek. Er zullen nu enkele worden genoemd. Ten eerste hebben we in deze scriptie voornamelijk met data gewerkt die niet uit de praktijk komt. Een analyse van dit model op werkelijke data zou interresant kunnen zijn. Ook is het bepalen van het moment waarop het OEM stopt sterk versimpeld. In werkelijkheid zijn er veel meer indicaties voor een vliegtuigmaatschappij dat het OEM gaat stoppen. In Liu et al (2014) kunnen meer indicaties worden gevonden hiervoor.
24
6
Referenties
Ch-Aviation. (2014) Aircraft Quick Search, [Online], Available: http://www.ch-aviation.com/portal/ aircraft/quick?ac manufacturer=FOK&ac aircraft=F100 [15 Aug 2014] Dekker, R. (2013) FEB23004-14 Slides Nov 6: Stock calculations Mar2013.xls, p. 4., Rotterdam: Erasmus University Rotterdam. Dekker, R. and Farenhorst-Yuan, T. (2013) FEM21009-14 Lecture 05 service measures, pp. 5 - 27, Rotterdam: Erasmus University Rotterdam. Flyfokker. (n.d.) Fokker 100 Regional Jet, [Online], Available: http://www.flyfokker.com/Fokker100 [15 Aug 2014] Liu et al. (2014) Assessing End-of-Supply Risk of Spare Parts Using the Proportional Hazard Model, (unpublished manuscript), Rotterdam: Erasmus University of Rotterdam. Van Jaarsveld, W., Dekker, R. (2011) ’Estimating obsolescence risk from demand data to enhance inventory control - A case study’, International Journal of Production Economics, vol. 133, September, pp 423-431.
25