Ik heb een applicatie geschreven waarin ik de units die beschikbaar zijn in het spel tribalwars (tribalwars.nl) in een lijst heb, en waar ik dan simpele queries op kan uitvoeren.
Elke unit heeft 4 kosten, en 4 baten:
Kosten: Hout, Leem, Ijzer en Villagers
Baten: Aanval, Verdediging, Cavalerie-verdediging, en Boogschutter verdediging.
Er zijn 12 verschillende units in het spel
Simpele queries als "Meeste aanval per villager" kan ik al uitvoeren, maar ik wil eigenlijk nog flinke stap ingewikkelder:
Ik heb een aantal grondstoffen (kosten), en ik wil zo hoog mogelijke baten, waarbij ik zelf kan aangeven welke baten ik belangrijker vindt dan anderen (bijv. geen aanval, 3 verdediging, 3 cavalerie-verdediging, 2 boogschutter-verdediging), en ik wil weten welke units ik het beste kan bouwen.
Ik heb al geprobeerd om alle mogelijkheden recursief door te lopen, maar dit is simpelweg te veel. Als je meer dan 20 units kan bouwen, zijn er al 20*19*18*...*2 mogelijkheden
Verder heb ik geprobeerd om een evolutionair algoritme te implementeren, maar hier komen zelden echt optimale waarden uit
Ik heb het idee dat het wat weg heeft van linear programmeren, maar ik heb moeite om te bedenken hoe dit dan precies moet...
Heeft iemand enig idee hoe ik dit probleem het beste kan oplossen?
Elke unit heeft 4 kosten, en 4 baten:
Kosten: Hout, Leem, Ijzer en Villagers
Baten: Aanval, Verdediging, Cavalerie-verdediging, en Boogschutter verdediging.
Er zijn 12 verschillende units in het spel
Simpele queries als "Meeste aanval per villager" kan ik al uitvoeren, maar ik wil eigenlijk nog flinke stap ingewikkelder:
Ik heb een aantal grondstoffen (kosten), en ik wil zo hoog mogelijke baten, waarbij ik zelf kan aangeven welke baten ik belangrijker vindt dan anderen (bijv. geen aanval, 3 verdediging, 3 cavalerie-verdediging, 2 boogschutter-verdediging), en ik wil weten welke units ik het beste kan bouwen.
Ik heb al geprobeerd om alle mogelijkheden recursief door te lopen, maar dit is simpelweg te veel. Als je meer dan 20 units kan bouwen, zijn er al 20*19*18*...*2 mogelijkheden
Verder heb ik geprobeerd om een evolutionair algoritme te implementeren, maar hier komen zelden echt optimale waarden uit
Ik heb het idee dat het wat weg heeft van linear programmeren, maar ik heb moeite om te bedenken hoe dit dan precies moet...
Heeft iemand enig idee hoe ik dit probleem het beste kan oplossen?
[ Voor 5% gewijzigd door TheBlasphemer op 22-10-2007 00:30 ]
[img=http://www.web2messenger.com/smallstatus/w2m/theblasp.png]