Newsletter
|
Mar 7, 2023
|
min read

Hva er egentlig optimering?

Erlend Torgnes

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?

Noen raske fakta om (matematisk) optimering

  • 85% av de 500 største selskapene i USA selskaper bruker optimering
  • 85 - 100% av Norges 15 største selskaper bruker optimering
  • I varierende grad, men for de industrielle selskapene Equinor, Coop, Statkraft, Norgesgruppen og Orkla er det en helt grunnleggende del av driften og blir benyttet hver dag
  • Om man ser vekk fra finansforetakene DNB, KLP og Storebrand så er bruken trolig 100% blant de 15 største selskapene
  • Speed-up på optimeringsproblemer fra 2012 til 2022 er ca 2000x
  • Dette betyr altså at det samme optimeringsproblemet som tok en uke å løse i 2012 i dag tar ca 5 minutter å løse - en ganske ekstrem forbedring.
  • Dette gjør at optimering for mange sektorer / problem kan gå fra å være et støtteverktøy for langsiktig planlegging til et operasjonelt verktøy som kan bidra hver dag

To momenter å ta med seg fra dette:

  1. “Alle” bruker optimering
  2. Utviklingen går (veldig) fort

Men, hva er altså matematisk optimering?

Et optimeringsproblem består av tre komponenter

  • Et sett av variabler
  • Èn målfunksjon
  • Et sett av begrensninger

Variabler -  hva du kan styre

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 - hva du vil ha

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.

Begrensninger - hva du må forholde deg til

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.  

Løsningsalgoritmen - søken etter en god plan

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.

Optimering møter virkelighet - søken etter en god (nok) plan

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

  • Detaljgraden kan justeres
  • Man kan kjøre planer i parallell

Detaljgrad - slakt hvilken dag neste uke er viktig, men ikke i 2025…

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.

Kjøringer i parallell - gjør det som er “umulig” å gjøre med manuell planlegging

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

  • Variasjon i nivå på planlagt endring
  • Tilgang til 500g smolt, 700g smolt, 1000g smolt…
  • Kjøp av 500t ekstra MTB, 1000t ekstra MTB, etc.
  • Variasjon i sentrale usikre antakelser
  • Hva hvis veksten er 10% bedre, 15% bedre?
  • Hva om dødeligheten er 5% høyere, 10 % høyere?

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.

Kontinuerlig optimering

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 … :)