Vad är optimering?

Optimering eller SBO (Simulation Based Optimization) är en teknik som används för att “leta upp” en optimal lösning bland “oändligt” många lösningar.

EXEMPEL OPTIMERINGSPROBLEM

Anta att en lagerlokal bestående av 1099 lagerplatser ska lagerhålla 100 olika artikelnummer och att varje plats måste låsas till en utav de 100 artikelnumren. Alla artikelnummer måste ha minst 1 plats. Produkterna flödar dynamiskt in och ut ur lagret beroende på ett antal olika parametrar.  Det skall nu beräknas hur många lagerplatser som ska låsas till respektive artikelnummer för att lagret ska utnyttjas maximalt.

“OÄNDLIGT” ANTAL LÖSNINGAR

Givet att inga andra restriktioner till uppgiften finns, kan alla artikelnummer få mellan 1 och 1000 (1099 – 99) platser. Antal möjliga kombinationer (lösningar) blir därmed 1000^100 = 1 * 10^300 (alltså ett tal med en etta följt av 300 nollor). Det är naturligtvis inte fråga om ett oändligt antal möjliga lösningar men det blir ändå tal om astronomiskt många lösningar på en ändå relativt begränsad beräkning.

OPTIMERINGSALGORITM

En optimeringsalgoritm har till uppgift att leta upp den optimala (eller nära optimala) lösningen för ett optimeringsproblem. Det finns olika typer av optimeringsalgoritmer som fungerar olika bra vid olika typer av problem. I exemplet ovan finns det bara ett mål, att maximera utnyttjandegraden. I de flesta fall är det fler än ett mål som ska optimeras och de är ofta motstridiga till varandra. T.ex. Maximera produktionstakten men minimera produkter i arbete.

flermålsoptimering

När flera mål behöver uppnås, är en vanlig optimeringsteknik att omvandla värdena från varje resultatparameter till en universell parameter, till exempel kostnad. Detta tillvägagångssätt möjliggör optimering som om det bara finns ett enda mål. Men denna metod är inte alltid lämplig. I sådana fall kan det vara fördelaktigt att använda Flermålsoptimering eller MOO (Multi-Objective Optimization), en optimeringsteknik som specifikt är utformad för att optimera mot flera mål samtidigt.

NSGA (Non dominated Sorting Genetic Algorithm)

NSGA-II är ett exempel på en välkänd flermålsoptimeringsalgoritm. Algoritmen använder sig av en inledningsvis slumpad population. De bästa lösningarna I populationen får leva vidare och skapa nästa generations population. På så vis lyckas algoritmen (oftast) hitta den optimala (eller nära optimala) lösningen bland ett “oändligt” antal lösningar.

OPTIMERINGSTID

Optimeringstiden är nästan alltid en faktor, även om optimeringsalgoritmen hjälper till att hitta den optimala lösningen så behöver den vid stora optimeringsproblem ofta många generationer på sig att “leta upp” den bästa lösningen. För varje individ I varje generation måste flödessimuleringsmodellen köras för att ge ett unikt resultat för respektive individ. Detta är den största anledningen till att det ofta är viktigt att det går snabbt att köra en flödessimuleringsmodell och en av anledningarna till att det är viktigt att göra förenklar I simuleringsmodeller.