Как создать собственное глобальное ограничение с помощью решателя CP-SAT инструментов OR?

Я кандидат наук в области интеллектуального анализа данных, и мне нужно создать глобальное ограничение с помощью ORtools для целей интеллектуального анализа данных.

Проблема в том, что в Интернете нет документации по созданию собственного глобального ограничения с помощью CP-Sat, и я не знаю, с чего начать.

Насколько я знаю, невозможно создать свои собственные новые пользовательские ограничения с помощью OR-Tools SAT Solver. Вы можете сделать это с помощью старого Google.OrTools.ConstraintSolver, под этим вопросом есть ответ: stackoverflow.com/questions/48146639/… (который в основном является дубликатом вашего...)

Christopher Hamkins 23.11.2022 12:50
Учебник по веб-скрапингу
Учебник по веб-скрапингу
Привет, ребята... В этот раз мы поговорим о веб-скрейпинге. Целью этого обсуждения будет узнать и понять, что такое веб-скрейпинг, а также узнать, как...
2
1
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Очевидно, что это возможно, но очень утомительно и очень сложно.

Написание нового ограничения подразумевает:

  • расширение прототипа для поддержки ограничения
  • написание проверки ввода
  • написание проверки решения
  • написание кода загрузки (в движок CP-SAT)
  • написание предварительных правил
  • написание кода распространения. Это сложно, поскольку каждый вывод должен быть полностью объяснен.
  • написание кода генерации линеаризации/разреза

Последние 3 элемента крайне подвержены ошибкам, и их очень трудно отлаживать, так как эффект сокращений и пояснений задерживается, а иногда и вовсе не используется.

По этой причине я рекомендую расширить ограничение на более мелкие. На самом деле, большинство ограничений CP расширены (все различия, элементы, таблицы, резервуары, инверсии, автоматы, некоторые продукты, некоторые модули).

Вы также можете отправить запрос функции для нового ограничения. Это может произойти, если это полезно/достаточно общее.

Спасибо

Другие вопросы по теме