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 helpen die probeert te optimaliseren hoe hij zijn producten combineert tot zendingen. Je brengt alles wat je hebt geleerd in de praktijk en leert onderweg een aantal nieuwe details.
Taak
Doelstellingen Begrijpen
Analyseer de doelstellingen van het programma en raadpleeg de video voor begeleiding en inspiratie;Vind het Excel-bestand
Identificeer het bestand met gegevens over bakken en industriegraden voor paletten;Importeer de Gegevens
Gebruik een bibliotheek zoals Pandas om het Excel-bestand te laden en gegevens over bakken en industrie grading standards te extraheren;Genereer Bakcombinaties
Maak alle mogelijke combinaties van bakken voor het groeperen in paletten, zoals getoond in het vorige hoofdstuk;Evalueer Elke Combinatie
Voor elke mogelijke bakcombinatie:Analyseer Elke Pallet: bereken gemiddelde eigenschappen (bijv. treksterkte en percentage defecten) voor de bakken in elke pallet;
Gradeer en Prijs Paletten: ken graden toe en bereken prijzen op basis van de gemiddelden en industrie standaarden uit het Excel-bestand;
Vergelijk Verkoopprijzen: houd de beste combinatie bij door de totale verkoopprijs van de huidige combinatie te vergelijken met eerdere resultaten;
Identificeer de Beste Combinatie
Zodra de optimale combinatie is bepaald, haal je de bijbehorende baklabels op met behulp van rij-indices;Exporteer Resultaten
Sla de eindresultaten, inclusief de beste combinatie en bijbehorende details, weer op in een Excel-bestand;Kwaliteitscontrole
Controleer de uitvoer van het programma met de resultaten uit de video om te verzekeren dat de optimale prijs overeenkomt;
Valideer palleteigenschappen aan de hand van industrie standaarden met behulp van spreadsheetberekeningen;
Itereren en Verbeteren
Ontwerp je programma met een modulaire aanpak voor betere organisatie;
Pas je implementatie iteratief aan en test deze om nauwkeurigheid en betrouwbaarheid te waarborgen.
Gegevens Importeren
Bak Eigenschappen: importeren als een matrix met eigenschappen zoals gewicht, treksterkte en percentage defecten;
Baklabels: importeren als een aparte matrix;
Industrie Grade Standaarden: importeren als een matrix met minimale treksterkte, maximaal percentage defecten en prijs per pallet van 3 bakken (7500 lbs);
Industrie Grade Namen: importeren als een cell array;
Combinaties Genereren
Gebruik in plaats van
Generate_Combinations_MMS_M
uit hoofdstuk 3 de functieperms
om direct permutaties te genereren;
Baklabels Identificeren
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 baklabels-matrix;
Zorg ervoor dat de rij-indices correct overeenkomen tussen de baklabels en de oorspronkelijke gegevens;
Omgaan met Dimensies en Indices
2D-matrices: deze worden gebruikt voor het importeren en exporteren van gegevens naar en van Excel. Zorg ervoor dat je naar de juiste rijen en kolommen verwijst;
3D-matrices: de matrix
palette_permutations
bevat alle mogelijke bakcombinaties samengevouwen in een 3D-matrix;Elke rij vertegenwoordigt een specifieke combinatie van bakken in paletten;
Elke kolom vertegenwoordigt de index van een specifieke bak;
De derde dimensie (1, 2, 3) komt overeen met verschillende paletten;
Divide and Conquer-aanpak
Beperk de
for
-lus tot één iteratie (bijv.for 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, palletgraden 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;
Verificatie
Controleer handmatig de gemiddelde eigenschappen van elke pallet om te verzekeren dat deze correct zijn berekend en gegradeerd, evenals de totale prijs van de palletcombinatie;
Als er problemen optreden, gebruik deze verificaties dan om problemen binnen de
for
-lus te diagnosticeren;
Specifieke Permutaties Testen
Als de resultaten correct zijn voor één permutatie maar er geen optimale combinatie wordt gevonden, beperk de
for
-lus dan tot het testen van een specifieke permutatie, zoalsfor 32280:32280
offor 16640:16640
. Hiermee kun je de prestaties bij sterk verschillende combinaties controleren;
Probleemoplossing
Als het probleem blijft bestaan na het verifiëren 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!