Код PROLOG, чтобы найти самую дешевую комбинацию из всех возможных комбинаций - PullRequest
0 голосов
/ 31 мая 2018

Полный новичок в PROLOG здесь.Мне предоставлен список частей для реализации гипотетической вычислительной системы:

%partName(name, type, number, required_types, size, price)
part(a-1, a, 1, 2*b, 0.5, 60 )
part(a-2, a, 2, 3*b, 1.0, 25 )
part(b-1, b, 1, 2*c, 0.5, 25 )
part(b-2, b, 2, -, 1, 45 )
part(c-1, c, 1, -, 0.5, 5 )
part(c-2, c, 2, -, 0.5, 10 )
part(d-1, d, 1, 1*b && 2*c, 0.5, 45 )
part(d-2, d, 2, 1*c-1, 0.5, 25 )

Например: части a-1, типа a и number 1, нужны две (2) части типа b для функционирования(или два b-1 или два b-2 по одному из каждого), а затем b-1 требует еще две (2) части типа c для функционирования и т. д. Детали также имеют размер (половинный размер равен 0,5, полный размер1) и цена.

(ПРИМЕЧАНИЕ: детали с "-", если необходимо, типа работают самостоятельно, для части d-1 требуется один тип b и два типа c, а для d-2 - один тип c-1, в частности, а не тип ac.)

Входные данные должны быть настройкой типов деталей, таких как {a, b}, {c, d}, {a, b, d} и т. Д.Выход должен быть самой дешевой возможной конфигурацией / комбинацией их с точки зрения места и денег.Помните: например, в {a, b} «a» может быть или a-1 или a-2 (то же самое с b), и каждая часть нуждается в частях, перечисленных выше, чтобы функционировать и так далее, поэтому я предполагаю, чтовсе работает в древовидной, несколько «рекурсивной» манере.

Полагаю, мне сначала нужно найти все возможные комбинации / конфигурации, а затем как-нибудь найти самую дешевую / самую компактную.

Может ли кто-нибудь предоставить рабочее решение или основную информацию о том, как решить проблему??Пожалуйста, будьте спасителем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...