J'ai ce problème contenant des inéquations et des exigences pour minimiser une valeur. Après avoir fait quelques recherches sur Internet, je suis arrivé à la conclusion que l'utilisation de Prolog pourrait être le moyen le plus simple de le résoudre. Cependant, je n'ai jamais utilisé Prolog auparavant, et je détesterais perdre mon temps à l'apprendre juste pour découvrir que ce n'est pas le bon outil pour ce travail. S'il vous plaît, si vous connaissez Prolog, jetez un oeil à ce problème et dites-moi si Prolog est le bon. Ou, si vous connaissez un autre langage qui est vraiment adapté pour cela.Est-ce que Prolog est le meilleur langage pour résoudre ce genre de problème?
a + b + c >= 100
d + e + f >= 50
g + h >= 30
if (8b + 2e + 7h > 620) then y = 0.8 else y = 1.0
if (d > 35) then x = 0.9 else x = 1.0
5xa + 8yb + 5c + 3xd + 2ye + 2f + 6xg + 7yh = w.
I besoin de trouver les valeurs pour a, b, c, d, e, f, g et h qui minimise w.
Veuillez noter que ce qui précède n'est qu'un exemple. En vrai programme, j'utiliserais jusqu'à 10000 variables et jusqu'à 20 si..then clauses. Ceci exclut la programmation linéaire comme technique alternative car il faudrait une quantité de RAM et un temps prohibitifs pour tester tous les problèmes de LP.
Je ne demande pas vraiment de code, bien que je vous serais reconnaissant de me donner quelques indices sur la façon de résoudre ce problème si Prolog est vraiment bon pour cela. Merci.
En fait, je suis à la recherche dans la programmation logique Constraint qui est intégré dans presque toutes les implémentations Prolog. –
OTOH, il semble que les méthodes CLP (et LP) ne sont en réalité que des extensions de prolog, et peuvent être utilisées avec d'autres langages de la même manière, donc je suppose que votre réponse est la meilleure possible. Donc, je vais juste l'accepter. Merci. –