Fast, Right, or Best? Algorithms for Practical Optimization Problems Willem Feijen Goede algoritmes hebben drie belangrijke eigenschappen: snelheid, nauwkeurigheid en optimale doelwaarde. We onderzoeken de interactie tussen deze criteria aan de hand van optimalisatieproblemen met praktische toepassingen, terwijl we een theoretisch perspectief behouden. Ons onderzoek richt zich op het ontwikkelen van algoritmes die niet alleen goed presteren, maar ook bewijsbare eigenschappen bezitten, waarbij we machine learning combineren met combinatorische optimalisatie voor verbeterde prestaties. We beginnen met het "single-source many-targets shortest path problem" (SSMTSP), waarbij het doel is de kortste weg van een bronknoop naar meerdere doelknopen te vinden in een gerichte, gewogen graaf. We stellen een aangepaste versie van het Dijkstra-algoritme voor, versterkt door een machine learning voorspelling die de kortste pad afstand schat, waardoor de zoekruimte efficiƫnt kan worden verkleind en de operationele overhead wordt verminderd. In latere hoofdstukken behandelen we het casting-probleem, een variant van het generalized assignment problem, waarbij items aan knapzakken moeten worden toegewezen met als doel de benuttingsratio's te maximaliseren. We bewijzen dat het vinden van een toegestane oplossing NP-compleet is en introduceren bicriteria-benaderingsalgoritmes. Daarbij presenteren we empirische resultaten die de effectiviteit van onze algoritmes aantonen. We onderzoeken ook Large Neighborhood Search (LNS), een veelzijdige methode voor optimalisatie. We integreren machine learning op twee manieren: de Learning-Enhanced Neighborhood Selection (LENS)-methode, die slim routes kiest voor vernietiging, en een Neighborhood Creation-benadering, waarbij routes iteratief worden geselecteerd met behulp van reinforcement learning. Beide implementaties zijn gericht op praktische toepassingen, met name in Vehicle Routing Problems.