Optimering ved hjælp af metaheuristikker
Overordnede kursusmål
At give en grundig introduktion i brugen af meta-heuristikker som værktøjer til løsning af praktiske optimeringsproblemer, hvor der foretages en afvejning af tid og løsnings kvalitet
See course description in English
Læringsmål
- Løse komplekse og/eller store optimeringsproblemer med meta-heuristikker.
- Identificere hvilke meta-heuristiker, der er velegnede til et konkret optimeringsproblem.
- Repræsentere et konkret problem på en sådan måde, at det kan løses med en meta-heuristik.
- Specialisere en meta-heuristik så denne kan anvendes til et konkret optimeringsproblem.
- Implementere en meta-heuristik, så denne kan anvendes til et konkret optimeringsproblem.
- Afprøve en meta-heuristik, så dennes effektivitet kan evalueres pålideligt.
- Beskrive skriftlige anvendelse af en meta-heuristik på en specifikt problem stilling.
- Forstår forskel mellem diversificering og intensivering strategier brugte af de forskelige meta-heuristikker.
Kursusindhold
Mange vigtige optimeringsproblemer kan ikke løses vha. standard løsere fordi problemerne er for store eller for komplekse.
En pragmatisk tilgangsvinkel er så at benytte specialdesignede algoritmer til at undersøge et stort antal løsninger for at finde en god brugbar løsning. Denne type af algoritmer kaldes heuristikker. Disse garanterer ikke, at den optimale løsning identificeres, men beregner en god løsning. Der eksisterer et antal generelle heuristik-skabeloner, som kan anvendes til en stor mængde af forskellige optimeringsproblmer. Disse kaldes meta-heuristikker. I dette kursus vil et antal af disse blive præsenteret og gennemgået for de studerende:
– Simuleret nedkøling
– Genetiske algoritmer/evolutionære algoritmer
– TABU søgning
– GRASP
– ALNS
– ILS
Siden dette felt af algoritmer er under konstant udvikling, udvikler indholdet sig løbende. Øvelserne i faget vil bruge computersproget Julia, så kendskab til Julia før kurset, vil være en fordel.
Anbefalede forudsætninger
42101, Introduktion til Operations Analyse og programmerings erfaring. Der kan forventes en høj programmeringsbyrde.
Undervisningsform
Forelæsninger, øvelser og projektarbejde.