Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.

Liknende presentasjoner


Presentasjon om: "Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt."— Utskrift av presentasjonen:

1 Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt i dm. Lag et program som viser hvordan komponentene kan kappes. I praksis er alle mål i mm, men vi forenkler her ved å bruke dm. Det gjør det enklere å teste programmet og å visualisere resultatet.

2 Kai A. Olsen, BIBSYS, Mål med oppgaven Tidligere brukte fabrikken standardprogram for kapping – laget ut fra produksjon av store serier Nå vil bedriften tillate kundespesifiserte produkter, f.eks. Ved at kunden selv bestemmer lengden på skrivebordet Da kan en ikke bruke standardprogrammer. Løsningen blir da at datamaskinen lager ”bruk og kast” programmer – akkurat for det behovet som foreligger nå.

3 Kai A. Olsen, BIBSYS, Data Vi har en tabell med komponenter. Hver komponent er identifisert med et identifikator. Første tegn i denne er mellom 0-9, a-å, A-Å (er det færre en 68 komponenter vil denne være unik). For hver komponent har vi lenge og bredde i mm. Vi skal vise hvordan komponentene kan legges ut (kappes ut fra) plater på 12 x 24 dm.

4 Kai A. Olsen, BIBSYS, Representasjon av platen Vi må representere platen. Velger å definere denne som en matrise på 12 x 24. Hvert element inneholder id for komponenten (ofte bare ett tegn). Hvert element platen initialiseres til ”-” – for å fortelle at elementet er ledig.

5 Kai A. Olsen, BIBSYS, Metode Ta første komponent og legg denne ut på første plate. Om det ikke er plass forsøk komponenten på høykant (roter 90 grader). Om det fortsatt ikke er plass, se om vi får plass på neste plate. Om det fortsatt ikke er plass, legg ut på en ny plate.

6 Kai A. Olsen, BIBSYS, Visualisering Vi kan visualisere hvordan vi kapper hver plate ved å skrive første tegn i id’en. ”-” blir blir brukt for å markere uutnyttet plate. Ideelt sett burde vi tegne omrisset av hver plate, men vi forenkler altså her. aaaabbbbcccccc ddddddddcccccc dddddddd------

7 Kai A. Olsen, BIBSYS, Komponenter Vi kan taste inn data om komponenter. Men isteden skal vi lage disse automatisk. Vi bruker da RND funksjonen som gir oss et tilfeldig tall mellom 0 og 1 som utgangspunkt for å velge lengde og bredde tilfeldig mellom en minimum og en maksimumsverdi. Formelen: CInt(Rnd() * (maksLengde - minLengde) + minLengde) gir oss da et tall mellom minLengde og maksLengde.

8 Kai A. Olsen, BIBSYS, Sortering Vi går ut fra at det er best å legge ut de største platene først og så ta de mindre etterpå. Beregner derfor areal for hver plate og sorterer på dette (DESC – decending”). For å se på forskjellen gir vi også mulighet til å sortere i stigende rekkefølge, dvs. ta de minste først.

9 Kai A. Olsen, BIBSYS, Optimalisering Dette blir som å legge ut et puslespill. Noen rekkefølger og utlegg vil være bedre enn andre. En mulighet å undersøke dette på er å legge ut komponentene i alle mulige rekkefølger og huske den løsningen som utnytter platene best. Problemet her er at det kan bli mange kombinasjoner. Med N komponenter får vi N! (N-fakultet) mulige kombinasjoner: N * (N-1)*(N-2)…*1. Men vi kan forenkle, f.eks. ved å først legge ut store komponenter i forskjellige kombinasjoner, velge beste løsning her og så legge ut middels store komponenter, osv. Vi er ikke garantert en optimal løsning, men dette kan gjøres langt mer effektiv enn N!-løsningen.

10 Kai A. Olsen, BIBSYS, Pass på Ingen komponent større enn 12 x 24.


Laste ned ppt "Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt."

Liknende presentasjoner


Annonser fra Google