Warehousing. Richard Both, Tom Slenders 22 oktober 2009



Vergelijkbare documenten
Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april Inleiding 2. 3 Data 3. 4 Aanpak 3

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 15 juni Inleiding 2. 3 Data 3. 4 Aanpak 4

Orderpicking. A-lympiade-voorronde-opdracht, 29 november De Wiskunde A-lympiade wordt gesponsord door Texas Instruments

Modelleren C Appels. 1 Inleiding. Inhoudsopgave. 2 Probleembeschrijving. Christian Vleugels Sander Verkerk Richard Both.

Introductie. Een magazijn van binnen

Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten

Eindexamen wiskunde A havo I

Geldwisselprobleem van Frobenius

case: toestandsdiagrammen

Mijn project noemt Het Wari-spel. De doelgroep van mijn programma is iedereen die houdt van strategische spelen.

Opdracht Levensbeschouwing Hoe los ik iets op?

Gokautomaten (voor iedereen)

Examen VWO. Wiskunde A1,2 (nieuwe stijl)

Rekenen: Meten groep 4 en hoger. Het leren van simpele weegopdrachten.

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening

1 Binaire plaatjes en Japanse puzzels

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact

Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem

Een eenvoudig algoritme om permutaties te genereren

Mastermind met acht kleuren

3. Structuren in de taal

Tiende college algoritmiek. 26 april Gretige algoritmen

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

De statespace van Small World Networks

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5

Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen

Hoofdstuk 7: Werken met arrays

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Examen VWO wiskunde C. tijdvak 2 woensdag 17 juni uur. Bij dit examen hoort een uitwerkbijlage.

Uitwerkingen oefenopdrachten or

Tiende college algoritmiek. 14 april Gretige algoritmen

Hoofdstuk 26: Modelleren in Excel

Het drie-reservoirs probleem

Informatica: C# WPO 5

Computationele Intelligentie

Problemen herformuleren Leerlingen drukken de probleemstelling uit in eigen woorden.

Durft u het risico aan?

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

APPENDIX 3. Visueel voetmodel ter simulatie van voetkinematica aan de hand van planetaire drukdata (Friso Hagman)

Je kunt de kansen met wiskunde technieken berekenen (bijvoorbeeld boomdiagramman), maar je kunt ook deze door simulaties achterhalen.

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken.

Ieder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3

Potloden, doppen en papier

From Alife Agents to a Kingdom of Queens

Pascal uitgediept Data structuren

ALGORITMIEK: antwoorden werkcollege 5

Het stappenplan om snel en goed iets nieuws in te studeren

Android apps met App Inventor 2 antwoorden

Het leek ons wel een interessante opdracht, een uitdaging en een leuke aanvulling bij het hoofdstuk.

Combinatoriek groep 1 & 2: Recursie

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Wiskunde D assignment problem. Hier stonden ooit namen

Werkblad 3 Bewegen antwoorden- Thema 14 (NIVEAU BETA)

Opdracht bevolkingsgroei

Cover Page. The handle holds various files of this Leiden University dissertation

Uitwerkingen oefeningen hoofdstuk 2

REKENVAARDIGHEID BRUGKLAS

Examen HAVO. Wiskunde A1,2 (nieuwe stijl)

Programmeerstructuren met App Inventor

DRIEHOEKSGETALLEN GETALLENRIJEN AFLEVERING 3. som

Virtuele Markten Trading Agent Competition

1. REGELS VAN DEELBAARHEID.

Benaderingsalgoritmen

Uitwerking vierde serie inleveropgaven

Project 2: LOTTO simulatie Programmeren I

Cover Page. The handle holds various files of this Leiden University dissertation

Computationele Intelligentie

Universiteit Utrecht Departement Informatica

REKENEN OP EEN ABACUS

Tussentoets Analyse 1

Space Invaders op de micro:bit

Introductie. Transportmiddelen. Opdracht 1

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:

Een Meet- en Ontdekpad gemaakt door Maaike Kuijer. Pabo De Eekhorst Assen.

Prestatie-analyse van zone-picking systemen

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Wat is de optimale grootte van een dc?

Examen HAVO. Wiskunde A1,2

Hoe kun je de weerstand van voorwerpen vergelijken en bepalen?

Combinatoriek groep 1

LES 4: Scrollen achtergrond en tegels gebruiken

Praktische toepassing van functies

Tentamen Kansrekening en Statistiek (2WS04), woensdag 30 juni 2010, van uur.

Bepaal eerst de probleemstelling of hoofdvraag

3 Veranderende krachten

Om te kijken of x, y, z samen een driehoek specificeren hoeven we alleen nog maar de driehoeksongelijkheid te controleren: x, y, z moeten voldoen

Sum of Us 2014: Topologische oppervlakken

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast,

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Praktische opdracht: modelleren met Coach

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

1 Inleiding Beelddiagram Wat is een beelddiagram Hoeveel heren en dames deden mee van Tata Steel en KLM?...

{ auteur, toelichting }

Transcriptie:

Warehousing Richard Both, Tom Slenders 22 oktober 2009 1

Inhoudsopgave 1 Inleiding 2 2 Probleemstelling 2 3 Aannames 2 4 Strategieën en hypotheses 3 4.1 Unity picking....................................... 3 4.2 Batch picking....................................... 4 4.3 Zone picking....................................... 4 4.4 Wave picking....................................... 5 4.5 Bucket brigades...................................... 6 5 Loopstrategieën 6 5.1 S-shape.......................................... 7 5.2 Return........................................... 7 5.3 Combined......................................... 8 5.4 Largest gap........................................ 8 6 Model 9 7 Voorlopige resultaten 9 8 Planning 9 9 Bronvermelding 10 10 Appendix A: Simuleren 10 11 Appendix B: Stochastisch model 11 11.1 S-shape model:...................................... 12 1

1 Inleiding Je hebt vast wel eens iets via Bol.com besteld. Heb je je wel eens afgevraagd hoe je order wordt verwerkt? Dagelijks worden er grote aantallen bestellingen doorgegeven via internet. Als bedrijf heb je een idee wat er ongeveer verkocht gaat worden. Alle mogelijke artikelen liggen in een magazijn opgeslagen. Elke order bevat een bepaald aantal artikelen uit dit magazijn, maar hoe kan je deze artikelen nou zo efficiënt mogelijk verzamelen? Dit gaan wij in ons verslag onderzoeken. 2 Probleemstelling We hebben te maken met een magazijn met parallel lopende gangen. In het magazijn loopt een aantal medewerkers rond dat bestellingen verzamelt. De bestellingen bestaan uit één of meerdere artikelen. Alle bestellingen dienen verzamelt te worden op een aantal verzamelpunten. Wij moeten diverse methoden met elkaar vergelijken om zo efficiënt mogelijk de bestellingen te verwerken. Hierbij hebben wij te maken met verschillende (realistische) factoren. Deze factoren zijn: Werknemers moeten op elkaar wachten bij het verzamelen van producten. Werknemers hebben (onderling) een verschillende snelheid bij het verzamelen van producten. Werknemers zijn sneller als ze vaak binnen dezelfde schappen producten moeten verzamelen (hun kennis in bepaalde productgroepen neemt toe, waardoor ze efficiënter werken). 3 Aannames Omdat we ons onderzoek moeten richten op het analyseren van verschillende methodes, moeten we aanvaardbare aannames maken. Om het vergelijken van verschillende methodes te vereenvoudigen zullen we een vast magazijn kiezen. We zijn tot de volgende aannames gekomen: Het magazijn heeft een vaste vorm. Om het probleem overzichtelijk te houden zullen we van een gemiddeld groot magazijn uitgaan. Dit houdt in dat we in totaal over 10 parallel lopende rekken met artikelen beschikken verdeeld over 5 dubbelzijdige gangen. Elk rek heeft een lengte van 10 verschillende artikelen. In totaal bestaat ons magazijn dus uit 10 * 10 = 100 verschillende, uniform verdeelde plaatsen waar artikelen opgeslagen kunnen worden. Figuur 1: Een schematisch overzicht van ons magazijn. In ons magazijn werkt een vast aantal medewerkers. Voor ons magazijn gaan wij er vanuit dat er 4 medewerkers in dienst zijn. Voor alle 100 verschillende plaatsen waar artikelen opgeslagen kunnen worden, geldt dat de vraag voor elke plaats uniform verdeeld is. 2

Het aantal producten per order zal uniform verdeeld zijn. Het minimale aantal producten per order is 1 en wij gaan uit van gemiddeld 5 producten (dus een maximum van 9 producten per order). We gaan binnen ons magazijn uit van één punt waar orders worden verzameld en bestellingen worden afgehaald. Ook hebben we enkele aannames gemaakt met betrekking tot de afstanden in het magazijn. Dit zijn de volgende aannames. De afstand tussen twee opeenvolgende plaatsen is 1. De afstand tussen twee aangrenzende gangen is 3. De afstand vanuit een horizontale gang tot de eerste opslagplaats is 1. Dit zijn aannames die specifiek op ons magazijn van toepassing zijn. Later zullen wij nog aannames maken die alleen betrekking zullen hebben op een specifieke methode. 4 Strategieën en hypotheses Voordat we gaan onderzoeken welke methodes het beste zijn, zijn we begonnen met een literatuuronderzoek. Er bestaat reeds een groot aantal strategieën om orders te verwerken die al veelvuldig worden gebruikt. Omdat wij ons niet tot elke mogelijke strategie kunnen richten, hebben wij gekozen om ons te richten op de minst geautomatiseerde strategieën. Dat wil zeggen dat wij alleen strategieën onderzoeken voor magazijnen waar alle orders worden afgehandeld door mensen zonder extra communicatiemiddelen of geautomatiseerde systemen. We hebben vijf strategieën uitgekozen die we nu elk kort zullen toelichten. Bij elke strategie zullen we kort toelichten wat volgens ons de verwachte voor- en nadelen zijn. 4.1 Unity picking Unity picking is de eenvoudigste methode om orders af te handelen. Deze methode is gebaseerd op het afhandelen van één order door precies één medewerker. Deze medewerker haalt alle producten van een order op en zodra deze order klaar is wordt begonnen aan de volgende order. Figuur 2: Unity picking: 1 medewerker voor 1 order met 3 artikelen. Wij vermoeden dat unity picking de volgende voor- en nadelen heeft: Voordelen: Orders hoeven achteraf niet gesorteerd te worden, omdat er maar één order tegelijk wordt afgehandeld. 3

Alle orders kunnen met precies één medewerker afgehandeld worden. Nadelen: Men is bijzonder veel tijd kwijt aan lopen. Bij een groter magazijn zullen medewerkers elkaar veel in de weg lopen. 4.2 Batch picking Bij batch picking worden meerdere orders tegelijk afgehandeld door één medewerker. Hij verzamelt deze orders tegelijkertijd en aan het eind van zijn ronde door het magazijn worden alle verzamelde producten op order gesorteerd. Figuur 3: Batch picking: 1 medewerker voor 2 order met elk 3 artikelen. Wij vermoeden dat batch picking de volgende voor- en nadelen heeft. Voordelen: De afstand die een medewerker loopt ligt lager ten opzichte van unity picking. Alle orders kunnen met precies één medewerker afgehandeld worden. Nadelen: Er gaat tijd verloren bij het sorteren. Bij een groter magazijn zullen medewerkers elkaar veel in de weg lopen, maar waarschijnlijk minder dan bij unity picking. 4.3 Zone picking Net als bij batch picking worden bij zone picking meerdere orders tegelijk afgehandeld. Hierbij wordt het magazijn verdeeld in meerdere zones. In elke zone staat een medewerker die alleen maar in zijn eigen zone producten verzamelt. Een verzameling orders wordt doorgegeven naar de eerste zone. Daar verzamelt de medewerker de benodigde producten en geeft vervolgens de verzameling orders door naar de tweede zone. Zo wordt de verzameling orders een voor een door de zones geleid. Aan het eind worden de orders gesorteerd. 4

Figuur 4: Zone picking: 2 medewerker die 2 orders met elk 3 artikelen afhandelen binnen hun eigen zone. Een 3e medewerker is aan het sorteren. Voordelen: Medewerkers lopen elkaar niet in de weg, omdat iedere medewerker zijn eigen zone heeft. De afstand die een medewerker loopt ligt veel lager. Mogelijk kan een medewerker sneller werken zodra deze zijn eigen zone kent. Nadelen: Er gaat tijd verloren bij het sorteren. De snelheid hangt heel erg af van de snelheid van de medewerkers. De langzaamste medewerker kan voor een opstopping zorgen. Als de benodigde producten voor een verzameling orders niet regelmatig verdeeld is over de zones, kan er een opstopping ontstaan. Er zijn meerdere medewerkers nodig om het proces af te handelen. 4.4 Wave picking Net als bij zone picking wordt er bij wave picking gebruikt gemaakt van zones en worden meerdere orders tegelijk afgehandeld. Het verschil is echter dat alle benodigde artikelen tegelijk door alle medewerkers worden opgehaald. Vervolgens verzamelt elke medewerker alle artikelen in zijn zone en brengt ze naar het verzamelpunt. Hier worden alle artikelen vervolgens gesorteerd op order. Figuur 5: Zone picking: 3 medewerker die 2 orders met elk 3 artikelen afhandelen binnen hun eigen zone. Een 4e medewerker is aan het sorteren. Voordelen: 5

Medewerkers lopen elkaar niet in de weg, omdat iedere medewerkers zijn eigen zone heeft. De afstand die een medewerkers aflegt ligt relatief laag, omdat de medewerker binnen zijn zone blijft. Mogelijk kan een medewerker sneller werken zodra deze zijn eigen zone kent. Orders zijn sneller afgehandeld dan bij zone picking, omdat deze niet alle zones hoeft te doorlopen. Nadelen: Er gaat tijd verloren bij het sorteren. De langzaamste medewerker kan het tempo bepalen. Er zijn meerdere medewerkers nodig om het proces af te handelen. 4.5 Bucket brigades Bucket brigades gaat uit van een lange sliert met medewerkers die verspreidt door het magazijn aan het werk zijn. De eerste medewerker haalt een order op uit het depot en geeft deze order door aan de volgende medewerker zodra hij er een tegen komt. Dit proces gaat door tot de laatste medewerker is bereikt. Als de order compleet is brengt de laatste medewerker de order naar het depot en loopt hij weer terug naar de vorige medewerker om de volgende order af te halen. Wij denken dat bucket brigades de volgende voor- en nadelen hebben. Voordelen: Medewerkers lopen elkaar niet in de weg, omdat iedere medewerkers zijn eigen zone heeft. De afstand die een medewerkers aflegt ligt relatief laag, omdat de medewerker binnen zijn zone blijft. Mogelijk kan een medewerker sneller werken zodra deze zijn eigen zone kent. Orders zijn sneller afgehandeld dan bij zone picking, omdat deze niet alle zones hoeft te doorlopen. Nadelen: Er gaat tijd verloren bij het sorteren. De langzaamste medewerker kan het tempo bepalen. Er zijn meerdere medewerkers nodig om het proces af te handelen. Om de verschillende methoden met elkaar te vergelijken gaan we eerst elke methode apart analyseren. Om vervolgens alle methodes te vergelijken gebruiken we de verwachte totale loopafstand als maat. Echter, hoe bepalen we de totale loopafstand? Dit is sterk afhankelijk van hoe je door het magazijn loopt om alle artikelen te verzamelen. Hierop zijn zogenaamde loopstrategiën van toepassing. 5 Loopstrategieën Voor elk van de beschreven strategieën zijn verschillende loopstrategieën van toepassing. Door onze aannames kunnen we onze loopstrategiën echter beperken. Hierbij proberen we de berekeningen in eerste instantie zo algemeen mogelijk te houden en vervolgens verder toe te spitsen op ons magazijn. We zullen de volgende vier soorten loopstrategieën kort gaan toelichten: S-shape, Return, Combined & Largest gap. 6

5.1 S-shape S-shape is een eenvoudige loopvorm. Je begint bij het depot en kijkt in welke gangen artikelen liggen. Op het moment dat een gang minstens één artikel bevat loop je door de gang heen tot het einde. Vervolgens loop je naar de volgende gang die artikelen bevat en loop je weer door deze gang tot het einde. Op het moment dat je alle artikelen hebt verzamelt loop je weer terug naar het depot. De meest vervelende situatie is als alle artikelen in een oneven aantal gangen verspreidt liggen. In dit geval loop je de laatste gang door tot je het laatste artikel hebt verzamelt en ga je vervolgens weer terug richting het depot. Figuur 6: S-shape: Loop door alle gangen die artikelen bevatten en loop daarna weer naar het depot terug. 5.2 Return Bij de return strategie loop je net als bij S-shape alleen de gangen in waar artikelen liggen. Op het moment dat je alle artikelen in een gang hebt verzamelt loop je in dit geval weer terug naar het begin van de gang. Je loopt verder naar de volgende gang met artikelen tot je alle artikelen hebt gehad. Hierna loop je weer terug naar het depot. Figuur 7: Return: Loop door elke gang met artikelen tot elk artikel is verzameld. Loop vervolgens weer terug en ga naar de volgende gang met artikelen. Loop als je alle artikelen hebt verzameld weer naar het depot. 7

5.3 Combined Combined combineert de voordelen van s-shape en return. Zodra alle artikelen in een gang zijn verzamelt kijk je wat de kortste weg is naar het volgende artikel: Is dit de weg vervolgen (in S-shape vorm) óf is dit omkeren en teruglopen in dezelfde richting als waar je vandaan komt (zoals bij return). Eveneens loop je hierbij nadat je het laatste artikel hebt verzamelt rechtstreeks weer terug naar het depot. Figuur 8: Combined: Loop door elke gang met artikelen tot elk artikel is verzameld. Kijk vervolgens wat de kortste route is naar het volgende artikel. Loop als je alle artikelen hebt verzameld weer terug naar het depot. 5.4 Largest gap Largest gap gaat uit van een magazijn met minstens twee gangen waar artikelen liggen (bij één gang zal dit op hetzelfde neerkomen als return). De eerste en de laatste gang met artikelen worden volledig doorlopen. Bij de tussengelegen gangen ga je kijken waar het grootste deel van de gang zit zonder artikelen, de gap. Dit grootste gat zal je in elke overslaan en niet doorheen lopen. Omdat je nu zowel boven als onder de gangen langs loopt kan je de artikelen aan twee kanten verzamelen. Dit doe je dan ook: van bovenaf als het artikel boven de gap van deze gang ligt en van onderaf als het artikel onder de gap ligt. Zo ga je door tot je alle artikelen hebt gehad. Daarna loop je weer terug naar het depot. Figuur 9: Largest gap: Kijk in elke gang met artikelen waar het grootste gat zit zonder artikelen. Verzamel alle artikelen zodat je nooit in dit gat terecht komt. Loop als je alle artikelen hebt verzameld weer terug naar het depot. 8

6 Model We hebben ons tot nu toe vooral gericht op de verschillende loopstrategiën. Hoe efficiënt zijn deze eigenlijk? Om dit te onderzoeken zijn we op twee manieren gaan modelleren. We zullen ze beide onderzoeken kort toelichten: Simulatie: Programmeren (in Pascal) Ons eerste model gaat uit van het simuleren van de verschillende loopstrategiën. Om dit te kunnen simuleren genereren we een groot aantal orders met artikelen willekeurig door het magazijn verspreid. Vervolgens passen we de loopstrategiën toe en kijken we wat de gemiddelde loopafstand is. De resultaten zijn gebaseerd op tests met 1 miljoen testgevallen. De programmering van de loopstrategiën is toegelicht in Appendix A. Berekenen: Stochastisch modelleren Ons tweede model gaat uit van het berekenen wat de gemiddelde loopafstand is. Hiertoe hebben wij tot nu toe slechts een stochastisch model voor de s-shape strategie uitgewerkt. De berekening hiervan is toegelicht in Appendix B. 7 Voorlopige resultaten Met ons programma zijn wij tot de volgende resultaten gekomen voor ons magazijn. Omdat de horizontaal afgelegde afstand bij elke loopstrategie hebben wij deze apart berekend. Zie de onderstaande tabel voor onze resultaten. Aantal artikelen in een order 1 5 10 50 100 Uniform verdeeld 1-9 Horizontale richting 12,0 21,5 23,3 24,0 24,0 20,1 S-shape 11,0 37,9 50,7 62,9 63,7 34,6 Return 11,0 41,8 62,8 94,3 98,5 39,1 Combined 11,0 31,9 45,6 62,6 63,7 30,1 Largest Gap 11,0 31,7 44,3 70,0 76,5 30,1 We kunnen hieruit een aantal dingen uit concluderen. Return is in alle gevallen de slechtste strategie. Combined en Largest Gap lijken bij kleine aantallen artikelen heel erg sterk op elkaar, maar Largest Gap presteert bij kleine aantallen beter. Echter bij grote aantallen wordt Largest Gap steeds slechter. Combined blijft echter goed werken en begint bij grote aantallen zelfs op S- Shape te lijken. S-Shape werkt dus erg goed bij grote aantallen, maar minder bij kleine aantallen. In het algemeen is Combined dus de beste strategie. Alleen met kleine aantallen kan Largest Gap van hem winnen, al is het verschil maar klein. 8 Planning Voor het volgende kwartiel willen wij beginnen met een laatste optimale loopstrategie uitwerken. Deze strategie is bedacht door Ratliff en Rosenthal. Wij willen dit graag implementeren in ons programma en eveneens een stochastisch model van de loopstrategiën vergelijken met de resultaten van ons programma. Vervolgens willen wij verder gaan met het uitwerken van de verzamelstrategieën voor orders (zoals genoemd onder het kopje Strategieën en hypotheses. Eveneens valt hieronder het bedenken van sorteerstrategieën om meerdere orders achteraf weer zo snel mogelijk te sorteren. Als wij vervolgens nog voldoende tijd overhebben willen wij variaties gaan aanbrengen in ons magazijn en bijvoorbeeld een middengang toevoegen. 9

9 Bronvermelding We hebben gebruik gemaakt van de volgende bronnen: Mulder, J.W.J.; Optimization of the order picking process; 2004 Gong, Yeming; Stochastic Modelling and Analysis of Warehouse Operations; 2009 10 Appendix A: Simuleren De verschillende loopstrategieën zijn uitgewerkt in een programma, dat de totale loopafstand voor 1 random gegenereerde order uitrekent. Vervolgens wordt heel vaak een nieuw order gegenereerd en daarvoor de afstand berekend. Zo kan een gemiddelde afstand berekend worden. We behandelen hieronder 4 loopstrategieën. Voor de X-richting van alle vier de strategieën kan hetzelfde stuk code gebruikt worden. Alle strategieën gaan naar rechts tot de benodigde gang en vervolgens weer terug. Het uitrekenen hiervan is dan ook heel makkelijk. X-richting 1 X := 2*(EenOrder.Laatstegang - 1) De verticale richting van S-Shape is iets lastiger, maar ook redelijk eenvoudig uit te rekenen. S-Shape 1 if ( EenOrder.aantalgangen mod 2 ) = 0 then begin 2 Y := EenOrder.aantalgangen*(dozen + 1) 3 else 4 Y := (EenOrder.aantalgangen - 1)*(dozen + 1) + 2*EenOrder.laatsteproduct(EenOrder.laatstegang) Hierin berekent de functie äantalgangenöver hoeveel gangen de producten van een order verspreid liggen. Dozen is het aantal dozen in een rij. Om een complete rij door te lopen moet men alle dozen aflopen plus de twee stukjes om in en uit een gang te bewegen. Deze tellen allebei voor een halve doos. De functie laatsteproduct( gangnummer ) berekent waar het verst gelegen product in een gang ligt. In dit stukje code wordt eerst onderscheidt gemaakt tussen het aantal gangen dat moet worden doorkruist. Als dat even is, worden gewoon alle gangen een keer doorgelopen. Echter als een oneven aantal gangen doorkruist moet worden, zal in de laatste gang op en neer gelopen worden tot aan het laatste product in die gang. De verticale richting van Return gebruikt een kleine loop. Return 1 Y := 0 2 for J := 1 to gangen do 3 if EenOrder.ganggebruikt(J) then 4 Y := Y + 2*EenOrder.laatsteproduct(J) Hierin is gangen het aantal gangen dat het magazijn bevat. ganggebruikt( gangnummer geeft aan of er tenminste / e/ en product in gang ligt. Deze simpele for-loop bekijkt per gang of er een product in ligt. Zo ja dan wordt er tot het laatste product in de gang gelopen en weer terug. Combined is ingewikkelder dan Return en S-Shape. Dit komt omdat er telkens een keuze mogelijkheid is tijdens het lopen en het is dus (te) moeilijk om een directe formule te vinden. Daarom wordt er aan het eind van een gang telkens gekeken wat nou het slimste pad is dat bewandeld moet worden. 10

Combined 1 K := EenOrder.laatsteproduct(1) 2 Y := K 3 for J := 2 to gangen do 4 if EenOrder.ganggebruikt(J) then 5 if ( K + EenOrder.eersteproduct(J) ) < ( ( dozen + 1 - K ) + 6 ( dozen + 1 - EenOrder.laatsteproduct(J) ) ) then 7 Y := Y + ( K + EenOrder.laatsteproduct(J) ) 8 K := EenOrder.laatsteproduct(J) 9 else 10 Y := Y + ( ( dozen + 1 - K ) + ( dozen + 1 - EenOrder.eersteproduct(J) ) ) 11 K := EenOrder.eersteproduct(J) 12 Y := Y + K In dit stukje code zie je een loop die alle gang-overgangen doorloopt. Dus van gang 1 naar 2, van 2 naar 3, enzovoorts. K houdt hierin bij op welk product ge/ëindigd is is in de voorgaande gang. In regel 1 en 2 wordt de eerste gang tot het laatste product afgelopen. Daarna wordt in de for-loop telkens gekeken wat de best keus is vanaf K. Het kortste pad wordt gekozen en vervolgens wordt Y en K beiden bijgewerkt. Na de for-loop moet nog de laatste gang teruggelopen worden naar beneden, dat gebeurd in regel 12. Largest Gap is het moeilijkste van de vier strategie/ën. Daarom wordt het hier wat eenvoudiger uitgelegd dan het in werkelijkheid is geprogrammeerd. Maar het principe is hetzelfde. Largest Gap 1 if EenOrder.aantalgangen 2 then 2 Y := 2* ( EenOrder.aantalgangen - 1 ) * ( dozen + 1) 3 EenOrder.sorteer 4 for J := 0 to Length(EenOrder.orderarray) - 1 do 5 if nieuwegangbereikt then 6 Y := Y - 2*K 7 if nieuwgat > oudgat then 8 K := nieuwgat 9 else 10 Y := 2*EenOrder.laatsteproduct(EenOrder.laatstegang) Eerst wordt gekeken of we de strategie wel gaan toepassen. Als alle producten namelijk in één gang liggen, gaan we aan het eind van de gang gewoon terug naar het depot. Als dit niet het geval is wordt Y eerst gelijk genomen aan de loopafstand als er geen gaten zouden zijn. Naderhand halen we de gaten er dan weer vanaf. Om snel lineair door een order te zoeken, wordt de order eerst gesorteerd. Dan kan lineair door de order heen worden gescand en kan er per gang bij worden gehouden wat het grootste gat is per gang. Hierbij worden de eerste en laatste gang overgeslagen, want deze gangen doorlopen we geheel, maar slechts / e/ en keer. Zodra in de lineaire scan een nieuwe gang wordt bereikt, is het grootste gat gevonden en wordt het grootste gat 2 keer van Y afgetrokken om zo het gat te corrigeren. 11 Appendix B: Stochastisch model We zullen eerst een overzicht geven van de variabelen die wij in ons stochastisch model gebruiken met daarbij de waarde die we in ons magazijn hebben gekozen: T = 5 (Het totale aantal gangen binnen het magazijn) 11

K = 10 (het aantal opbergplaatsen per gang) N = DiscreetU nif orm(1, 9) (het totale aantal artikelen binnen een bestelling) Ook zullen we de eerder gemaakte aannames gebruiken met betrekking tot de afstanden. Deze zullen we als volgt noemen: d g = 3 (De afstand tussen twee aangrenzende gangen) d i = 1 (De afstand vanuit een horizontale gang tot de eerste opslagplaats) d d = 1 (De afstand tussen twee opeenvolgende plaatsen) l g = 2 d i + (K 1) d d (De lengte van een gang) Om de totale loopafstand te berekenen onderscheiden we de verwachte horizontale loopafstand en de verwachte verticale loopafstand. De verwachte horizontale loopafstand zal bij alle methodes hetzelfde blijken en hebben we als volgt berekend: Zij H de horizontale afstand die moet worden afgelegd. Nummer de gangen 1 t/m T waarbij gang 1 recht boven ons verzamelpunt ligt. Definieer Y als de verste gang in het magazijn met artikelen uit de order. Dan is E(H) = 2 d g (E(Y ) 1). De kans op P [Y = y] is de kans dat de verste gang precies y is. Dit is de kans dat alle artikelen in de eerste y gangen liggen min de kans dat alle artikelen in de eerste y 1 gangen liggen. Hieruit volgt: P [Y = y] = ( y T )N ( y 1 T )N. Door de sommatie hierover te nemen volgt E[Y ] = T y=1 y [( y T )N ( y 1 T )N ]. Als horizontale afstand kunnen we bij elke methode daarom gebruiken dat E(H) = 2 d g (( T y=1 y [( y T )N ( y 1 T )N ]) 1). Nu zullen we voor elke methode de verwachte verticale afstand gaan bepalen. 11.1 S-shape model: De totale verticale afstand V bij een S-shape model zullen we moeten onderscheiden in twee gevallen. Het eenvoudigste geval is waarbij de artikelen over een even aantal gangen verspreid liggen. Een oneven aantal gangen vergt enkele extra berekeningen. Om te bepalen over hoeveel gangen de artikelen verspreid liggen introduceren we weer een nieuwe grootheid. Zij P [G = g] de kans dat alle artikelen over precies g gangen verspreid liggen. Dan moeten we het aantal mogelijke permutaties bepalen waarbij alle g gangen minstens één van de N artikelen bevatten. Het totaal aantal mogelijke permutaties is makkelijk te bepalen. Elke artikel kan in een van de T verschillende gangen voorkomen, dus zijn er in totaal T N permutaties mogelijk. Het aantal permutaties waarbij exact g gangen bezet zijn is iets moeilijker te bepalen. Eerst kijken we op hoeveel manieren we g gangen kunnen kiezen uit T, dit zijn er ( T G) mogelijkheden. We willen nu dat alle N artikelen binnen deze g gangen voorkomen, dit kan op g N manieren. Echter, nu hebben we ook de mogelijkheden meegenomen dat er minder dan g gangen bezet zijn. De kans ( dat alle N artikelen binnen g 1 gangen vallen trekken we er daarom weer vanaf, dit zijn g g 1) (g 1) N mogelijkheden. Echter hebben we de kansen dat er minder dan g 1 gangen nodig zijn nu vaker vanaf getrokken. We passen hier verder het inclusie-exclusie principe toe om tot de juiste dichtheid te komen. De kans dat alle N artikelen over precies G gangen verspreid liggen binnen een magazijn met T gangen wordt dan: ( T g) (g N g i=1 P [G = g] = ( 1)i 1( g g i) (g i) N ) T N Voor alle even aantal gangen zijn we nu klaar. De verwachte verticale loopafstand bij een even aantal gangen is V 2 g = g l g met l g de lengte van een gang. Voor een oneven aantal gangen lopen 12

we de laatste gang in totdat we alle artikelen hebben verzameld. Vanaf dit punt lopen we weer terug. We krijgen dan V 2 (g+1) = (g 1) l g + 2 E(X). Hierbij is E(X) de verwachte afstand die wij in de laatste gang moeten afleggen. We hebben nu de volgende formule voor de verwachting van de totale verticale afstand: E(V ) = min(t,n) g=1 P [G = g] ([l g g] 1{g is even} + [l g (g 1) + 2 E(X)] 1{g is oneven}) We gaan nu E(X) bepalen. Om E(X) te bepalen moeten we eerst het aantal artikelen weten wat we in de laatste gang moeten verzamelen. Omdat elke van de g gangen tenminste één artikel ligt zijn er nog N g artikelen over die uniform verdeeld zijn over g gangen. Zij L het aantal artikelen in de laatste gang op het ene artikel na wat er sowieso in ligt. Dan volgt: { ( N g ) P [L = l] = l ( 1 g )l ( g 1 g )N g l l N g ( 1 g )N g l = N g De verwachte plek van het verste artikel L kan op dezelfde manier berekend worden als de verste gang bij de horizontale afstand. We noemen de verste opbergplaats J en we sommeren over J zodat we krijgen: E(X) = N g l=0 P [L = l] (d i + d d ( 1 + K j=1 j (( j K )l+1 ( j 1 K )l+1 )) We hebben nu E(V ) en E(H) volledig bepaald. We kunnen nu de verwachte totale afstand voor ons magazijn bepalen met de formule: V erwachte totale afstand = 9 P [N = N] (E(V ) + E(H)) N=1 13