"Primal heuristics" är en viktig bidragande orsak till den förbättrade prestandan hos exakta gren-och-bundna lösare för kombinatorisk optimering och heltal programmering. Den kanske mest avgörande frågan om primal heuristics är vilken noder de ska köra, som det typiska svaret är via hårdkodade regler eller fasta lösare parametrar avstämda, offline, genom rättegång-och-terror. Alternativt, en heurist bör köras när det är mest sannolikt att lyckas, baserat på problem instansens egenskaper, läget för sökningen, etc. I detta arbete studerar vi problemet med att bestämma vid vilken nod en heurist bör köras, så att den övergripande (primala) prestandan hos lösaren är optimerad. Såvitt vi vet är detta det första försöket att formalisera och systematiskt ta itu med detta problem. Centralt för vårt tillvägagångssätt är användningen av maskininlärning (ML) för att förutsäga om en heuristisk kommer att lyckas på en given nod. Vi ger en teoretisk ram för att analysera denna beslutsprocess i en förenklad miljö, föreslår en ML metod för att modellera heuristiska framgångsannolikhet, och utforma praktiska regler som utnyttjar ML-modeller för att dynamiskt besluta om att köra en heuristiska vid varje nod i sökträdet. Experimentellt förbättrar vår strategi den primära prestandan hos en toppmodern Blandade Integer Programmerings lösare med upp till 6 % på en uppsättning referensfall, och med upp till 60 % på en familj av hård Independent Set-fall.
Khalil m.fl. REF utvecklar också en maskininlärningsmodell för att avgöra om den primära heuristiken ska köras för en given gren-och-bunden nod.
Learning to Run Heuristics in Tree Search
{'venue': 'IJCAI', 'journal': None, 'mag_field_of_study': ['Computer Science']}