Может ли подмножество экономики SimCity (BuildIt) выражаться в Minizinc? - PullRequest
0 голосов
/ 20 декабря 2018

Я хотел бы написать решатель для планирования производства в SimCity buildit.Поскольку я абсолютный новичок в Minizinc (и решаю вообще - blush ), я не уверен, имеет ли смысл то, что я хочу попробовать.

  • В SimCity oneсначала нужно добывать ресурсы (железо, дерево, семена, пластик, ...), а затем использовать их для создания продуктов (молотки, гвозди, доски).
  • Ресурсы и продукты могут комбинироваться для создания других продуктов(например, стул может потребовать дерева, молотка и гвоздей).
  • Ресурсы могут создаваться параллельно (каждая фабрика имеет, например, 5 слотов для производства любых ресурсов, но без очереди).
  • Товары создаются в тематических магазинах (например, мебель, инструменты,и т. д.) последовательно (с - ограниченная длина - производственная очередь).
  • Хранилище для ресурсов и продуктов является общим и ограниченным.

Я хотел бы понять, чтовозможно ли вообще в Minizinc создать планировщик, чтобы выплюнуть максимально быстрое расписание для создаваемого списка элементов, или мне лучше сразу начать явное кодирование?

1 Ответ

0 голосов
/ 21 декабря 2018

Подобные проблемы можно решить с помощью MiniZinc, хотя я не слышал, чтобы кто-то решал эту конкретную проблему.Ваша проблема, похоже, тесно связана с проблемой jobshop .Эта проблема может обеспечить хорошую основу, и существуют различные модели для версий этой проблемы, чтобы начать с.Вы можете найти множество примеров моделей (различного качества) в репозитории тестов MiniZinc: https://github.com/MiniZinc/minizinc-benchmarks

Как отметил Патрик Трентин, вы должны учитывать сложность проблем, которые решаются с помощью MiniZinc.,Часто время их решения может расти в геометрической прогрессии или даже хуже.Чтобы найти решение сложных проблем, были приняты во внимание как способ моделирования проблемы, так и методы, которые решатель использует (и какой решатель должен использовать) для решения проблемы.Если вы только начинаете работать с MiniZinc, я бы посоветовал вам пройти курсы MiniZinc Coursera, которые быстро начнут вас: https://www.coursera.org/learn/basic-modeling

...