Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тл.Лаб.Раб.поТПР3...doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
450.56 Кб
Скачать

1. Цель работы.

1.Изучение методов решения задач поиска кратчайших путей на ориентированном графе.

2.Приобретение навыков построения математических моделей задач поиска кратчайших путей.

3.Усвоение алгоритмов и программной реализации метода поиска кратчайших путей.

2. Порядок выполнения работы.

1. Изучить пример, приведённый в методическом пособии.

2. Построить общую математическую модель задачи о кратчайших путях.

3. Сформулировать частную модель задачи с указанными параметрами согласно выданному заданию.

4. Используя диалоговую программу KrPut, решить сформулированную задачу.

6. Результаты лабораторной работы оформить в виде отчета.

3. Пример выполнения работы

Содержательная постановка задачи. Некоторое оборудование эксплуатируется в течение 5-ти лет (от капитального ремонта до капитального ремонта). В начале каждого года эксплуатации (кроме первого) можно провести профилактический средний ремонт. Эксплуатационные расходы зависят от количества лет t , в течение которых оборудование эксплуатируется без ремонта, и от количества лет , прошедших с начала эксплуатации. Эти расходы заданы в виде таблицы.

Расходы на эксплуатацию оборудования (у.е.)

t 

0

1

2

3

4

1

10

12

11

12

17

2

23

21

20

19

-

3

39

34

33

-

-

4

54

51

-

-

-

5

72

-

-

-

-

Составить план профилактических средних ремонтов (в какие годы их проводить), чтобы получить минимальный суммарный расход по эксплуатации за все пять лет.

П остроение математической модели. Схему проведения капитальных ремонтов можно представить в виде ориентированного графа:

Здесь узлы графа обозначают начало соответствующего года эксплуатации (узел №6 означает начало 6-го года, т.е. окончание эксплуатации). Дуга из узла в узел означает, что оборудование ремонтируется в начале -того года (кроме первого) и в дальнейшем эксплуатируется без ремонта до начала -того года. Определим веса дуг графа, исходя из таблицы расходов на эксплуатацию.

Рассмотрим веса дуг, исходящих из узла №1

- оборудование эксплуатируется без ремонта в течение 1-го года, и до этого не эксплуатировалось. Данной ситуации соответствует клетка таблицы = 1, = 0. Следовательно, вес дуги = 10.

- Оборудование эксплуатируется без ремонта в течение двух лет, и до этого не эксплуатировалось. Данной ситуации соответствует клетка таблицы =2, = 0. Следовательно, вес дуги = 23. Аналогично: = 39, = 54, = 72.

Рассмотрим веса дуг, исходящих из узла №2.

- вес дуги соответствует ситуации, когда оборудование эксплуатируется 1 год без ремонта, а до этого проработало 1 год. Следовательно, обращаемся к клетке таблицы со значениями =1, =1. Следовательно, имеем вес дуги: =12. Руководствуясь подобными рассуждениями, определяем веса всех дуг. Полученные результаты заносим в новую таблицу, отражающую длины дуг, соединяющие соответствующие узлы построенного графа:

i j

1

2

3

4

5

6

1

-

10

23

39

54

72

2

-

-

12

21

34

51

3

-

-

-

11

20

33

4

-

-

-

-

12

19

5

-

-

-

-

-

17

6

-

-

-

-

-

-

Затраты за все 5 лет эксплуатации складываются из затрат за каждый период, когда оборудование не ремонтировалось. Следовательно, задачу минимизации затрат можно рассматривать как задачу поиска кратчайшего пути на построенном графе из узла №1 в узел №6. В терминах поставленной задачи вхождение дуги в кратчайший путь означает, что оборудование ремонтируется в начале -того года и эксплуатируется в дальнейшем без ремонта до начала -того.

Введем обозначение

Тогда длину кратчайшего пути с минимумом суммарных затрат (весов ) можно определить математическим выражением::

, (1)

где множество индексов и вершин графа, соединенных дугами с весами .

Поскольку в путь входит только одна дуга, исходящая из одной вершины в другую,

то условие, определяющее выбор одной дуги из множества дуг,

исходящих из начального узла с номером , определяется соотношением

(2)

где подмножество индексов вершин графа, с которыми соединена вершина с номером .

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

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

(3)

где подмножество индексов вершин графа, которые соединены с промежуточной вершиной . подмножество индексов вершин графа, с которы-

ми соединена промежуточная вершина .

Условие, определяющее выбор одной входящей дуги в конечный узел номером из множества входящих дуг , ,

определяется соотношением

= 1, (4)

где подмножество индексов вершин графа, которые соединены с конечным узлом .

Таким образом, целевая функция (1) определяет длину пути, которая должна быть минимальной. Ограничение (2) требует, чтобы в рассматриваемый путь из начальной вершины r в конечную вершину s входила только одна дуга, исходящая из r. Условие (3) представляет собой условие непрерывности пути, которое означает, что если какая либо дуга пути входит в промежуточный узел (кроме начального и конечного), то из него обязательно должна выйти одна дуга. Или, если путь не заходит в узел, то он и не должен из него выходить. Условие (4) говорит о том, что путь кончается в вершине s, т.е. в рассматриваемый путь из r в s входит только одна дуга, входящая в вершину s.

Опишем задачу принятия решения о выборе кратчайшего пути в конкретно рассматриваемой задаче в математической форме:

(5)

,

,

,

,

,

,

.

Сформулированная задача (5) представляет собой задачу целочисленного линейного программирования. Задача решается методом Гомори (методом «ветвей и границ»), который реализован в программе KrPut. Программа предназначена для определения кратчайшего пути на заданном графе из любой начальной вершины в любую конечную вершину.

Порядок решения задачи (5) с использованием программы KrPut осуществляется следующим образом.

Шаг 1

В проводнике запускается исполняемый файл KrPut.exe. Открывается рабочая область (Рис.1)., в которой необходимо ввести данные задачи: число вершин графа, номера начальной и конечной вершин.

Рис. 1

Шаг 2

Для развертывания матрицы отношений (связей между вершинами графа) нажимается кнопка «Применить». После введения числа вершин, номера начальной вершины и конечной вершины становится доступным заполнение значений длин дуг между парами вершин (Рис. 2). Значения длин дуг студент должен ввести самостоятельно

Рис. 2

Шаг 2

Нажатием на кнопки «Вычислить» запускается алгоритм решения задачи и в таблице (Рис.3) отражаются найденные двойственные переменные:

Рис. 3

и диалоговое окно с результатом решения (Рис. 4):

Рис. 4

В результатах вычислений программы KrPut в рабочей области «Результат вычислений» отображаются следующие результаты:

«Длина кратчайшего пути между узлами 1 и 6: 50».

«Узлы кратчайшего пути между ними: 1, 2, 4, 6», которым соответствуют переменные задачи (5): , определяющие наикратчайший путь (Рис.5) длиной L=50.

Рис.5

В терминах поставленной задачи решение принимается следующим образом: текущие ремонты следует проводить в начале второго и четвертого годов эксплуатации. При этом минимальные общие затраты на эксплуатацию оборудования составят 50 у.е.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]