2015-08-25 4 views
-1

Предположим, у меня есть магазин & продавать товары только в двух группах.Как решить (или назвать) этот ранцеподобный алгоритм

  1. Если я продам карандаш и ластик, я зарабатываю $ 3
  2. Если я продаю КАРАНДАШ и мрамор, я зарабатываю $ 2
  3. Если я продам линейку и ластик, я зарабатываю $ 2

Каждый покупатель желает купить до 1 позиции каждого & Я хочу получать максимальную прибыль. Поэтому продажа № 1 и № 2 является незаконной, потому что это будет 2 карандаша. № 1 И № 3 также является незаконным из-за ластиков. Итак, юридические шаги: только # 1, только # 2, только # 3, или # 2 И # 3. Поскольку последний вариант имеет прибыль в 5 долларов, я должен это сделать.

Как бы решить эту проблему за полиномиальное время? Если это np-hard, то какой эвристический подход может приблизиться ко мне? Если ничего другого, имеет ли эта проблема имя?

+0

Что вы пробовали? Мы готовы помочь с вашей домашней работой, но вам нужно показать усилие :) – Parker

+0

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

+1

Каковы ограничения? Похоже, он должен всегда продавать 2 и 3 каждому клиенту, я не могу полностью понять этот вопрос. – Parker

ответ

1

Соответствующие в общем (не двудольные) графы, разрешенные в полиномиальное время Blossom algorithm.

+0

Мне нравится эта идея, и простите меня, если я ошибаюсь, но по своей природе не является ли цветной алго максимально подходящим? Например, если карандаш И ластик заработал 100 долларов, это было бы неправильно, не так ли? –

+0

@MattK Это взвешенный вариант. См. Конец статьи в Википедии. –

Смежные вопросы