Kursinnhold
Matlab-Grunnleggende
Matlab-Grunnleggende
Applikasjon: Logistikkproblem
Ved å bygge videre på det du lærte i forrige kapittel, vil du her lære hvordan du kan bistå en distributør som forsøker å optimalisere hvordan de kombinerer sine produkter i forsendelser. Du vil anvende alt du har lært i praksis, og samtidig tilegne deg flere nye detaljer underveis.
Oppgave
Analyser programmets mål og bruk videoen som veiledning og inspirasjon.
Identifiser filen som inneholder data om beholdere og bransjestandarder for paller.
Bruk et bibliotek som Pandas for å laste inn Excel-filen, og hent ut data om beholdere og bransjestandarder for gradering.
Lag alle mulige kombinasjoner av beholdere for å gruppere dem i paller, slik det ble vist i forrige kapittel.
For hver mulig beholderkombinasjon:
- Analyser hver palle: beregn gjennomsnittlige egenskaper (f.eks. strekkfasthet og prosent feil) for beholderne i hver palle;
- Grader og pris paller: tildel grader og beregn priser basert på gjennomsnittene og bransjestandardene fra Excel-filen;
- Sammenlign salgspriser: følg med på den beste kombinasjonen ved å sammenligne total salgspris for den nåværende kombinasjonen med tidligere resultater.
Når optimal kombinasjon er funnet, hent ut de tilhørende beholder-IDene ved hjelp av radindekser.
Lagre sluttresultatene, inkludert den beste kombinasjonen og tilhørende detaljer, tilbake i en Excel-fil.
- Kryssjekk programmets utdata med resultatene vist i videoen, og sørg for at optimal pris stemmer;
- Valider palleegenskaper mot bransjestandarder ved hjelp av regnearkberegninger.
- Utform programmet med en modulær tilnærming for bedre organisering;
- Juster og test implementeringen iterativt for å sikre nøyaktighet og pålitelighet.
- Beholderegenskaper: importer som en matrise som inneholder egenskaper som vekt, strekkfasthet og prosent defekter;
- Beholderetiketter: importer som en egen matrise;
- Industrielle kvalitetsstandarder: importer som en matrise som inneholder minimal strekkfasthet, maksimal prosent defekter og pris per pall med 3 beholdere (7500 lbs);
- Industrielle kvalitetsnavn: importer som en cellematrise.
I stedet for å bruke Generate_Combinations_MMS_M
fra kapittel 3, bruk funksjonen perms
for å generere permutasjoner direkte.
- Beholderetiketter registreres som indekser som angir radposisjoner i de opprinnelige dataene. Konverter disse indeksene til beholderetiketter ved å bruke radindeksene fra beholderetikettmatrisen;
- Sørg for at radindeksene er korrekt matchet mellom beholderetikettene og de opprinnelige dataene.
- 2D-matriser: disse brukes til å importere og eksportere data til og fra Excel. Sørg for å referere til riktige rader og kolonner;
- 3D-matriser: matrisen
palette_permutations
inneholder alle mulige beholderkombinasjoner samlet i en 3D-matrise; - Hver rad representerer en spesifikk kombinasjon av beholdere i paller;
- Hver kolonne representerer indeksen til en spesifikk beholder;
- Den tredje dimensjonen (1, 2, 3) tilsvarer ulike paller.
- Begrens
for
-løkka til én iterasjon (f.eks.for 1:1
) for å fullføre resten av programmet og skrive ut innledende resultater; - Fokuser på å få programmet til å skrive ut beholderetiketter, pallekvaliteter og optimal pris til Excel én om gangen. Du kan kommentere ut deler av koden for å fokusere på spesifikke aspekter.
- Kontroller manuelt gjennomsnittsegenskapene til hver pall for å sikre at de er korrekt beregnet og vurdert, samt totalprisen for pallekombinasjonen;
- Hvis det oppstår problemer, bruk disse kontrollene for å diagnostisere feil i
for
-løkka.
Hvis resultatene er riktige for én permutasjon, men en optimal kombinasjon ikke blir funnet, begrens for
-løkka til å teste en spesifikk permutasjon, for eksempel for 32280:32280
eller for 16640:16640
. Dette lar deg sjekke ytelsen på drastisk forskjellige kombinasjoner.
Hvis problemet vedvarer etter å ha verifisert ulike permutasjoner, kan det være et problem med logikken som velger den beste permutasjonen fra de evaluerte iterasjonene. Sjekk videoen for å sammenligne resultatene dine og sikre nøyaktighet.
Takk for tilbakemeldingene dine!