
тпр_вар19
.docxМИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра Информационных систем
ПРАКТИЧЕСКАЯ РАБОТА
по дисциплине «Теория принятия решений»
Тема: Применение методов линейного и динамического программирования для решения практических задач (по вариантам)
Вариант: 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