2 votes

Pouvez-vous alimenter le solveur OR-tools en données externes entre les différentes solutions qu'il trouve ?

J'essaie de résoudre une variante complexe d'un problème min-SAT. Jusqu'à présent, j'ai deux sous-problèmes, tous deux donnant des valeurs de solution qui doivent être prises en compte dans la fonction objectif. Cependant, je ne peux résoudre qu'un seul des deux problèmes avec le module cp_model de OR-tools. L'autre est résolu par un algorithme externe. Dans l'idéal, je devrais faire ce qui suit :

  1. cp-solver trouve une solution au premier sous-problème,
  2. mettre en pause le solveur,
  3. résoudre le second sous-problème avec un algorithme externe, en prenant comme argument la solution trouvée par le cp-solver,
  4. renvoie le résultat de l'algorithme externe au cp-solver,
  5. cp-solver considère maintenant comme valeur objective la somme de la solution qu'il a lui-même trouvée au premier sous-problème et de la solution qui a été trouvée par l'algorithme externe,
  6. le cp-solver passe à l'itération suivante et répète les étapes 1-6 pour une nouvelle affectation

Ma question est donc la suivante : existe-t-il une fonctionnalité pour Google OR-tools qui me permette de faire quelque chose comme les étapes 1-6 où le solveur fonctionne en coopération avec des algorithmes externes et reçoit des valeurs en conséquence ? Je suis novice dans l'utilisation de ce module et je ne sais pas quels termes je pourrais rechercher sur Google pour trouver ce dont j'ai besoin. Merci beaucoup mes amis. Meilleures salutations, 30centimètre.

1voto

Laurent Perron Points 1119

Dans le solveur cp-sat, solve() est sans état et une boîte noire. La seule chose que vous pouvez faire est de modifier le modèle et de résoudre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X