Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по СА и ИО1.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
6.8 Mб
Скачать

49. Дп: задача о кратчайшем пути и с мультипликативным критерием. Задача о кратчайшем пути

Д ан сетевой график, в котором каждой дуге поставлена в соответствие ее длина Lij. Порядок нумерации вершин не имеет значения, но в приведенной нумерации задача состоит в определении кратчайшего пути из вершины 1 в вершину 7. Модель задачи включает критерий - длину искомого пути

, где - путь от вершины 1 к вершине 7, и граф сети (или описывающую его матрицу). Применение метода ДП правомерно, так как задача представима как многошаговая: искомый путь есть допустимая графом последовательность дуг, а выбор дуги рассматриваем как один шаг задачи. Состояние полностью определяется номером вершины, а число шагов от конкретной вершины до 7-й неоднозначно. Учитывая эти особенности, вводим последовательность функций {fi}, i=1,7 так, что каждая функция есть минимальная длина пути от i-й вершины в 7-ю: , где - мн-во всех допустимых путей из i-й вершины в 7-ю.

Для составления функционального уравнения возьмем произвольную вершину i (i¹7) и будем определять путь из нее в вершину 7. Из этого пути выделим один шаг - выбор вершины, следующей за i-й. Множество дуг, выходящих из вершины i, обозначим . Взяв произвольную дугу из множества , окажемся в смежной вершине j, длина пути до которой равна Lij. Длина пути от i-й вершины до 7-й будет равна Lij + fj. Так как она зависит только от j, то выбором j можно ее минимизировать. Рекуррентное соотношение: . Начинать условную оптимизацию следует с определения f7. Так как f7 - минимальная длина пути из вершины 7 в саму себя, то f7=0. Вычислять можно те функции fi, для которых уже известны все fj, ijÎ . Поэтому следующей можно находить только функцию f6: f6 = min (L67 + f7)=1+0=1.

В приведенных формулах подчеркнуты индексы, на которых достигается минимум. Из расчета видно, что длина кратчайшего пути из вершины 1 в вершину 7 равна 11. Найдем оптимальный путь: из f1: первая часть пути лежит на дуге 1-2, значит, новое состояние - это вершина 2; из f2 находим следующую часть пути - дугу 2-5 и очередное состояние - вершину 5; поэтому далее обращаемся к f5 и достраиваем оптимальный путь дугой 5-6 и, наконец, заканчиваем дугой 6-7. Весь путь: 1®2®5®6®7. На этапе безусловной оптимизации просматривались не все функции fi, что отличает данную задачу. Имея результаты условной оптимизации, можно легко найти кратчайшие пути из любой вершины сети в вершину 7.

Задача с мультипликативным критерием

Возьмем задачу с неаддитивной целевой. В качестве примера рассмотрим задачу о надежности некоторого устройства, состоящего из N последовательно соединенных блоков. Повышение надежности устройства обеспечивается включением дублирующих элементов в отдельные блоки. В общем случае ограничивающими факторами могут выступать затраты на дублирование, вес и/или объем устройства, надежность переключательных схем и др. Пусть основным ограничением являются затраты на дублирование Q и, кроме того, известны Сj - стоимость одного дублирующего элемента для блока j и jj(mj) - вероятность безотказной работы j-го блока с mj дублирующими элементами. Задача состоит в определении оптимальной стратегии дублирования в пределах выделенных средств. В качестве критерия следует взять вероятность безотказной работы всего устройства P, которая при последовательном соединении блоков равна произведению вероятностей этих блоков. Поэтому модель задачи будет иметь вид

, . В этой модели целевая функция - мультипликативная, не мешает применению метода ДП. Задача представима как многошаговая, а шаг - определение числа дублирующих элементов для одного блока. В последовательности шагов расположение блоков может не соответствовать реальной схеме их соединения в устройстве. Пронумеруем шаги справа налево. Параметр состояния - допустимый уровень затрат на дублирование q, который на любом шаге может принимать любые значения из диапазона [0,Q]. Теперь можно ввести последовательность функций {fk(q)}, k=1,N. Каждая функция имеет смысл максимальной вероятности безотказной работы k оставшихся блоков при допустимом уровне затрат на дублирование q: .

Для получения функционального уравнения рассмотрим k блоков, на дублирование которых можно затратить q средств. Если в k-й блок включить mk дублирующих элементов, а оставшиеся после этого средства (q-Сkmk) использовать оптимально на дублирование k-1 блоков, вероятность безотказной работы k блоков будет равна

[jk(mk)fk-1(q-Сkmk)]. Максимизируя это выражение по mk, приходим к искомому рекуррентному соотношению

где [q/Сk] означает целую часть от q/Сk. Условная оптимизация начинается с вычисления первой функции последовательности . Безусловная оптимизация проводится в обратном порядке, то есть от fN к f1, с исходного состояния qN=Q и последующим пересчетом по уравнению состояния qk-1 = qk - Сkmk .

Таким образом, мультипликативность целевой функции не изменяет процедуру ДП. Отличие от ранее рассмотренных задач лишь в том, что выражение в правой части рекуррентного соотношения не аддитивное, а мультипликативное. Мультипликативность ограничения или одновременно ограничения и целевой функции также не вызовет осложнений.