Cursusinhoud
Matlab Basis
Matlab Basis
Toepassing: Logistiek Probleem
Voortbouwend op wat je in het vorige hoofdstuk hebt geleerd, leer je hier hoe je een distributeur kunt ondersteunen die probeert te optimaliseren hoe zij hun producten combineren tot zendingen. Je past alles wat je hebt geleerd praktisch toe en doet onderweg een aantal nieuwe inzichten op.
Taak
Analyseer de doelstellingen van het programma en raadpleeg de video voor begeleiding en inspiratie.
Identificeer het bestand dat gegevens bevat over bakken en industriegraden voor pallets.
Gebruik een bibliotheek zoals Pandas om het Excel-bestand te laden en gegevens over bakken en industriegradering te extraheren.
Genereer alle mogelijke combinaties van bakken voor het groeperen in pallets, zoals gedemonstreerd in het vorige hoofdstuk.
Voor elke mogelijke bakcombinatie:
- Analyseer elke pallet: bereken gemiddelde eigenschappen (bijv. treksterkte en percentage defecten) voor de bakken in elke pallet;
- Gradeer en prijs pallets: wijs graden toe en bereken prijzen op basis van de gemiddelden en industriestandaarden uit het Excel-bestand;
- Vergelijk verkoopprijzen: houd de beste combinatie bij door de totale verkoopprijs van de huidige combinatie te vergelijken met eerdere resultaten.
Zodra de optimale combinatie is bepaald, extraheer je de bijbehorende baklabels met behulp van rij-indices.
Sla de eindresultaten, inclusief de beste combinatie en bijbehorende details, op in een Excel-bestand.
- Controleer de uitvoer van het programma met de resultaten uit de video en zorg ervoor dat de optimale prijs overeenkomt;
- Valideer pallet-eigenschappen aan de hand van industriestandaarden met behulp van spreadsheetberekeningen.
- Ontwerp je programma met een modulaire aanpak voor betere organisatie;
- Pas je implementatie iteratief aan en test deze om nauwkeurigheid en betrouwbaarheid te waarborgen.
- Eigenschappen van bakken: importeren als een matrix met eigenschappen zoals gewicht, treksterkte en percentage defecten;
- Baklabels: importeren als een aparte matrix;
- Industriële normeringen: importeren als een matrix met minimale treksterkte, maximaal percentage defecten en prijs per pallet van 3 bakken (7500 lbs);
- Industriële graadnamen: importeren als een cell array.
Gebruik in plaats van Generate_Combinations_MMS_M
uit hoofdstuk 3 de functie perms
om direct permutaties te genereren.
- Baklabels worden vastgelegd als indices die de rijposities in de oorspronkelijke gegevens aangeven. Zet deze indices om in baklabels met behulp van de rij-indices uit de baklabelmatrix;
- Zorg ervoor dat de rij-indices correct overeenkomen tussen de baklabels en de oorspronkelijke gegevens.
- 2D-matrices: deze worden gebruikt voor het importeren en exporteren van gegevens naar en van Excel. Zorg ervoor dat de juiste rijen en kolommen worden geraadpleegd;
- 3D-matrices: de matrix
palette_permutations
bevat alle mogelijke bakcombinaties samengevoegd in een 3D-matrix; - Elke rij vertegenwoordigt een specifieke combinatie van bakken in pallets;
- Elke kolom vertegenwoordigt de index van een specifieke bak;
- De derde dimensie (1, 2, 3) komt overeen met verschillende pallets.
- Beperk de
for
-lus tot één iteratie (bijvoorbeeldfor 1:1
) om de rest van het programma af te ronden en initiële resultaten uit te voeren; - Richt je op het laten uitvoeren van het programma om baklabels, palletkwaliteiten en de optimale prijs één voor één naar Excel te exporteren. Je kunt delen van de code uitcommentariëren om je op specifieke aspecten te richten.
- Controleer handmatig de gemiddelde eigenschappen van elke pallet om te verzekeren dat deze correct zijn berekend en beoordeeld, evenals de totale prijs van de palletcombinatie;
- Gebruik deze controles om problemen binnen de
for
-lus te diagnosticeren als er zich problemen voordoen.
Als de resultaten correct zijn voor één permutatie maar er geen optimale combinatie wordt gevonden, beperk dan de for
-lus om een specifieke permutatie te testen, zoals for 32280:32280
of for 16640:16640
. Hiermee kun je de prestaties bij sterk verschillende combinaties controleren.
Als het probleem blijft bestaan na het controleren van verschillende permutaties, kan er een probleem zijn met de logica die de beste permutatie selecteert uit de geëvalueerde iteraties. Controleer de video om je resultaten te vergelijken en de nauwkeurigheid te waarborgen.
Bedankt voor je feedback!