Re[2]: Задача рационального распределения ресурсов.
От: Mikola Россия нет
Дата: 30.03.04 09:56
Оценка:
M>А в чем проблема? Полагаете Xi, Xj, ..., Xk равными 1, Xm,..., Xf равными 0, получаете задачу с меньшим количеством переменных:

M>d1Y1 + d2X2 + ... + dmYm <= Sum' (= Sum — ciXi — ... ckXk)

M>a1Y1 + a2Y2 + ... + amYm -> Max
M>Yi из {0,1}

M>Т.е. просто уменьшится размерность задачи, решать станет легче.


M>>6. И условия группирования альтернатив — скажем объединяем альтернативы Xm, Xs, ... , Xf в группу и говорим, что только одна из альтернатив этой группы должна быть профинансирована.


M>Добавляем еще условие


M>Xm + Xs + ... + Xf <= 1 (или =1, если ровно одна альтернатива должна быть профинансирована обязательно)


Только подскажите пожалуйста — каким методом эту задачу лучше решать. Я сначала думал комбинаторикой или полным перебором (Я так понял, что это задача о рюкзаке, с некоторыми наворотами), но при каждом увеличении альтернатив время работы алгоритма при этом возрастает в разы.
Потом еще прочитал, что такую задачу решают методами динамического программирования — при этом количество альтернатив может быть достаточно большим. Не подскажите, какие материалы (книги) стоит почитать для решения такой задачи. Вот собираюсь идти в библиотеку. А можт есть уже готовые компоненты или библиотеки для решения подобных задач. Если что, то я пишу эту прогу на Object Pascal (Delphi6)
+
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.