Denne uken tar vi for oss teknologien matematisk optimering (kjerneteknologien i Bioplan).
Hvorfor?
Optimering, som de fleste andre “maskiner/algoritmer” som kan gi anbefalinger om hva vi skal gjøre, har noen styrker og noen svakheter. Men med bedre forståelse av disse og teknologien bak, står du bedre rustet til å bruke den.
Men hvorfor i hele tatt vurdere å ta i bruk optimering?
To momenter å ta med seg fra dette:
Men, hva er altså matematisk optimering?
Et optimeringsproblem består av tre komponenter
Variabler er hva du kan styre / kontrollere. I Bioplan så er det akkurat nå slakt (tidspunkt, mengde og merd) og utsett (tidspunkt, mengde og merd). Forholdet mellom variablene kobles sammen gjennom målfunksjonen og begrensningene.
Målfunksjonen er det du har lyst å maksimere (evt. minimere). I Bioplan så prøver vi å maksimere (inntekter - kostnader). Inntekter er fra salg av fisk, og kostnader er fòrkostnad og andre kostnader som er knyttet til produksjonen.
Begrensningene setter grenser for hva variablene i optimeringsproblemet kan være og kobler de sammen. Eksempelvis har vi i Bioplan en begrensning som sier at summen av biomasse i alle merdene på en lokalitet ikke kan være mer enn lokalitets MTB. En annen er at slakt ikke kan overskride slakterikapasitet.
Setter du disse delene sammen har du et optimeringsproblem. For en plan 1 år frem i tid for en middels stor oppdretter med slaktevolum på 20 000 tonn så vil den typisk ha 300 000 begrensninger og 200 000 variabler.
Hele poenget med å formulere dette optimeringsproblemet er at man ønsker å finne en god (optimal) løsning - en løsning som er så god som mulig samtidig som den respekterer alle begrensningene. I vårt tilfelle med Bioplan så vil det altså si en plan som maksimerer resultatet og ligger innenfor alle krav til planen/produksjonen.
For å søke etter gode løsninger (beslutninger om slakt og utsett) benytter vi en såkalt optimeringssolver. Denne kan ta inn optimeringsproblemer formulert på en standardisert måte og ekstremt effektivt lete etter gode løsninger.
Selv om optimeringssolvere er ekstremt effektive så er “produksjonsplanleggingsproblemet” for havbruk for komplisert til at vi kan formulere det så detaljert som vi ønsker for alle formål og få gode svar innen rimelig tid. Vi har derfor i Bioplan tilrettelagt for at
Skal du produsere budsjettall for 2025 så betyr det lite om man i 2025 har 300t i slaktevolum en torsdag i august og 500t dagen etter eller om det er omvendt. Er dette neste uke så betyr det imidlertid veldig mye, og om dette ikke kommuniseres tidlig nok til slakteriet er det sannsynligvis ikke mulig å gjennomføre. For å kunne gi gode resultater for både korte og lange planer kan man i Bioplan eksempelvis velge mellom dag, kombinasjon dag/uke og uke oppløsning/detaljgrad.
For å håndtere operasjonell, taktisk og strategisk planlegging kan det være fornuftige å lage helt separate modeller. Siden januar har vi jobbet med å få på plass en enda mer detaljert algoritme for å levere på vår ambisjon om at man får en plan tilbake som er så god at man ikke i ser hvordan man kan forbedre den (ikke at det er umulig, men ihvertfall veldig vanskelig/eller under spesielle situasjoner). Detaljgraden vi har introdusert for å håndtere detaljer rundt vekst riktig gjør at dette 60 dagers optimeringsproblemet er like stort som det “vanlige” optimeringsproblemet for 1 år.
Mange av utviklingsaktivitetene våre i år har gått på ting som er “under the hood” i Bioplan. Et av disse er at vi jobber med å tilrettelegge for at man kan kjøre mange optimeringskjøringer samtidig/parallell. Hva er poenget med det? Jo, det muliggjør to typer scenarioanalyser spesielt aktuelt for langsiktig planlegging
I første omgang så vil man kunne kjøre 4 - 5 slike parallelle scenario, men vi jobber også med at man kan ha 20 - 30 slike kjøringer i parallell (da mer for kjøring over natten for å gjøre dette kostnadseffektivt). Det høres kanskje slitsomt ut å sette opp 20 - 30 scenario tenker du? Formålet med sistnevnte er ikke nødvendigvis at du skal sette opp dette manuelt men at Bioplan (på egenhånd) bedre kan forstå/se konsekvens av hvordan utvikling i viktige (men usikre) faktorer påvirker planen og slik komme med støtte til svakheter i en plan.
Dette var en kort introduksjon til optimering og hvordan vi jobber med det å håndtere kompleksiteten som er i optimering for havbruk. Det som er veldig spennende med dette feltet er at utviklingen i raskere hardware og raskere løsningsalgoritmer går veldig fort og jobber for oss. Fortsetter utviklingen i reduksjon i løsningstid så skal man ikke se vekk i fra at vi kan nærme oss “live beslutningsstøtte”, det vil si at optimeringsalgoritmen kontinuerlig kjøres på oppdaterte data og gir anbefalinger slik at man alltid (om man vil) kan ha en oppdatert plan.
Et annet veldig spennende kommende område er kombinasjonen av maskinlæring og matematisk optimering. Disse to teknologien passer for å bruke et slitt uttrykk “som hånd i hanske”. Mer om det i et senere nyhetsbrev … :)