Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

тпр_вар19

.docx
Скачиваний:
0
Добавлен:
14.10.2024
Размер:
168.92 Кб
Скачать

МИНОБРНАУКИ РОССИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)

Кафедра Информационных систем

ПРАКТИЧЕСКАЯ РАБОТА

по дисциплине «Теория принятия решений»

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

Вариант: 19

Студентка гр. 1373

Преподаватель

Мустафин Н.Г.

Санкт-Петербург

2024

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ 4

1. Задача о покрытии 6

1.1. Условие задачи 6

1.2. Формализация задачи 6

1.3. Решение задачи 8

ВВЕДЕНИЕ

Целью практической работы является нахождение оптимального решения задачи линейного программирования. Для выполнения работы использовалась программа GNU Octave.

1. Задача о покрытии

1.1. Условие задачи

В районе города, схема которого изображена на рисунке 1, рассматривается возможность размещения пожарных участков (возможные точки размещения обозначены номерами, линии соответствуют дорогам, а закрашенные эллипсы - природным объектам). Стоимость размещения участка в каждой из точек указана в табл. 1).

Требуется найти такое размещение участков, при котором стоимость была бы минимальна, но (манхеттенское) расстояние от каждого перекрестка до ближайшего участка было не более 3.

Рисунок 1 – Схема города

Таблица 1 – Стоимость размещения участка

Расположение

Стоимость, д.е.

1

15

2

15

3

12

4

20

5

14

1.2. Формализация задачи

Нам дана задача, которая относится к линейному программированию, а если быть точнее, то это «Задача о покрытии».

Функция цели должна стремиться к минимуму, так как необходимо свести затраты к наименьшему значению:

Где - переменные, принимающие значение только либо 0, либо 1, другими словами булевы переменные. Соответственно, если участок размещен, то значение 1, в противном случае 0.

Для того чтобы обозначить ограничения на схеме города пронумеруем перекрестки (см. рисунок 2).

Рисунок 2 – Пронумерованные перекрестки

Теперь рассмотрим все ограничения, всего их будет 12, так как мы имеем 12 перекрёстков:

Рассмотрим, как получились ограничения на примере первого. В данном случае рассматривается первый перекресток, от него мы отсчитываем манхеттенское расстояние до каждого пожарного участка, то есть идем от перекрестка к перекрестку по дороге и считаем их количество, если оно не превышает 3, то перекресток может обслуживаться, соответственно выбираем 1, иначе ставим 0. Видим, что в первом ограничении, расстояние от перекрестка до 1-ого участка 6, ставим 0; до 2-ого участка 1, ставим 1; до 3-его участка 3, ставим 1; до 4-ого участка 4, ставим 0; до 5-ого участка 6, ставим 0. Кроме того, знак неравенства показывает, что перекресток может обслуживаться 1 и более участками.

1.3. Решение задачи

Код выглядит следующим образом (см. рисунок 3):

Рисунок 3 - Код

В данном коде c - коэффициенты функции цели, a - левая часть матрицы ограничений, b - правая часть матрицы ограничений, ctype - указываем знак больше равно в ограничениях, vartype - указываем, что ищем целые значения, далее решаем задачу на минимизацию. В функции glpk [0; 0; 0; 0; 0] – нижние границы x, [1; 1; 1; 1; 1] - верхние границы x.

Результат выглядит следующим образом:

Рисунок 4 - Результат

По нему мы можем сказать, что минимальная стоимость размещения пожарных участков будет равна 26, при условии, что участки будут находиться на 3 и 5 местах.

PAGE 5