как использовать сетевой поток для решения линейного программирования?

предположим, что нам дано m экзаменов E = {E1, E2, ..., Em} и набор инструментов из I = {I1, I2, ..., In}, и для каждого исследования Ej требуется подмножество Rj из I. каждый экзамен приносит прибыль Pj $, а стоимость каждого инструмента - Cj $. мы хотим выбрать какое-то исследование, чтобы максимизировать его (сумма прибыли - сумма затрат).

Я думаю, мы можем использовать LP так, чтобы у нас было m переменных Xi для каждого исследования и Xi = 0 или 1, а наша целевая функция: для всех i и j Xi (Pi) - (A) Cj, где A - это x или все Xi, которые нуждаются в Ij

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


person user3070752    schedule 20.12.2014    source источник
comment
Попробуйте думать об этом с точки зрения минимальных сокращений   -  person Niklas B.    schedule 20.12.2014


Ответы (1)


Смоделируйте задачу в виде двудольного графа: разместите экзамены в виде вершин слева, а инструменты - справа. Подключайте исследования к своим приборам через грани бесконечной емкости. Теперь введите источник S и приемник T. Подключите S к исследованиям через ребра, которые представляют их прибыль. Подключите инструменты к T через ребра, обозначающие их стоимость.

Максимальная прибыль составляет сумму всех сокращений Pi - min.

Почему? Подумайте о режущих кромках в графе, чтобы отделить T от S. Для каждого исследования нам нужно сократить либо само исследование, «заплатив» за упущенную прибыль, либо все его инструменты.

Оптимальный набор проверок представлен набором вершин проверки, достижимых из S в остаточной потоковой сети.

person Niklas B.    schedule 20.12.2014
comment
я не могу понять, почему максимальная прибыль равна сумме всех сокращений Pi - min. если оптимальным набором экзаменов являются те, которые достижимы из S в остаточной сети потока, почему мы добавляем прибыль от всех экзаменов к окончательной прибыли? - person user3070752; 20.12.2014
comment
@amir Поскольку минимальный разрез работает только с неотрицательными весами, мы моделируем проблему таким образом, что выполнение проверки i стоит 0, а невыполнение этого стоит Pi. На самом деле, у нас есть стоимость -Pi для проведения экзамена и 0 для невыполнения, поэтому нам нужно вычесть Pi из результата минимального сокращения. - person Niklas B.; 20.12.2014