Булево линейное программирование. Решение транспортной задачи с замкнутым маршрутом и возвращением в исходный пункт
Это задача оптимизации, в которой переменные принимают только два значения: "единица - ноль". Пример - задача "коммивояжера".
Цель работы: минимизировать продолжительность замкнутого маршрута при выезде из начального пункта, проезде через все заданные пункты с возвратом в него.
Программное обеспечение: программа линейного математического программирования "LINDO (LINGO".
Условия задачи. Всего 5 пунктов, включая начальный пункт N1. Дана таблица (матрица) времени, затрачиваемого на переезд из каждого пункта (i) в каждый из остальных пунктов (j) - TIj и наоборот (табл.1).
Таблица 1 Таблица времени, затрачиваемого на переезд из одного пункта в другой
Из пункта I |
В пункт J | ||||
1 |
2 |
3 |
4 |
5 | |
|
|
|
|
|
|
Для составления математической модели необходимо ввести булевы переменные следующим образом: Принимаем, что
1, если из пункта I едем в пункт J; 0 - в противном случае (обратно).
Из пункта 1 можно выехать в любой из пунктов 2-5 или остаться в пункте 1. Но при этом можно выехать только в одном направлении. Это условие можно записать так:
11 + 12 + 13 +14 + 15 = 1 или 1j =1.
Если из пункта i выехать в произвольный J- ый пункт, то запишем:
Ij =1, J = 1,...,5.
В результате задачу математически можно записать следующим образом:
XIjij min. - целевая функция.
Ограничения: Ij =1, J = 1,...,5; - выезд из пункта I;
Ij =1, I = 1,...,5; - въезд в пункт J.
Конкретно для представленной таблицы времени целевая функция выглядит так:
F = t1111 + t1212 + t1313 + t1414 + t15 15 + t2121 + t2222 + ... + t5555 min.
Значения t берутся из таблицы, а Ij являются искомыми переменными. Это булевы переменные. Они могут иметь 2 значения: 1 или 0.
Для простоты демонстрации решения задачи воспользуемся только тремя пунктами: 1, 2 и 3 из табл.1, т. е. рассмотрим матрицу 3 В таком случае целевую функцию можно представить следующим образом:
F = 1012 + 2513 + 121 + 1023 + 831 + 9 32 min
Ограничения:
Из пункта 1: 12 + 13 = 1; в пункт 1: 21 + 31 = 1;
Из пункта 2: 21 + 23 = 1; в пункт 2: 12 + 32 = 1;
Из пункта 3: 31 + 32 = 1; в пункт 3: 13 + 23 = 1.
Граничные условия: Ij >0, Ij <0.
Для программы LINDO (LINGO) дополнительно после END можно обозначить эти величины как целые: GIN 12, 13, GIN 32.
Результаты: 12 =1, 13 =0, 21 =0,23 =1, 31 =1, 32 =0.
Значит, наиболее быстрый маршрут: пункты 1 > 2 > 3 > 1.
Минимальное время: 10 +10 +8 = 28 единиц времени.
Далее представлен листинг программы LINDO (LINGO) для решения представленного примера решения задачи.
Листинг программы.
MIN 1012 + 2513 + 121 + 1023 + 831 + 9 32 - целевая функция
SUBJECT TO
- 12 + 13 = 1; - ограничения 21 + 31 = 1; 21 + 23 = 1; 12 + 32 = 1; 31 + 32 = 1; 13 + 23 = 1. 12 >0 - граничные условия 12 13 >0 13 21 >0 21 23 >0 23 31 >0 31 32 >0 32
END
GIN 12 - обозначения целых величин
GIN 13
GIN 21
GIN 23
GIN 31
GIN 32
Задание: в соответствии с представленным примером минимизировать замкнутый маршрут по 5 пунктам, т. е. по данным всей матрицы, представленной в табл.1.
Оптимизация функционирования системы при заданных ресурсных ограничениях
Цель работы: оптимизировать систему с ресурсными ограничениями.
Все, что необходимо для производственного процесса (финансы, рабочая сила, сырье и т. п.) можно объединить понятием "ресурсы", среди которых можно выделить три основные группы: трудовые, материальные и финансовые. Большинство задач, возникающих в производстве можно рассматривать как преобразование ресурсов в результат (получение продукта и его реализацию). Поэтому значительная часть задач, возникающих при управлении производством, относится к классу задач распределения ресурсов.
Программное обеспечение: программа линейного математического программирования "LINDO (LINGO".
В настоящей лабораторной рассматриваются два основных варианта задач.
Первый вариант: Максимизировать полученный результат - R (количество продуктов или прибыль) при заданных ресурсах (Q).
Модель оптимизируемой системы:
Модель целевой функции (F):
F=R= J max (прибыль),
Где: cJ - прибыль, получаемая от единицы j-ой продукции;
XJ - количество продукции j - го вида;
N - количество видов продукции.
Модель ограничений (ресурсов):
Где: аIj - количество i - го ресурса, необходимого для изготовления еди ницы j - го вида продукции;
BI - запас i - го ресурса;
M - количество видов ресурсов.
Граничные условия: xJmin ? xJ? xJmax.
Решение первого варианта задачи:
Все исходные данные приведены в табл. 1.
Таблица 1 Исходные данные
Ресурсы |
Вид продукции |
Располагаемый ресурс | |||
П1 |
П2 |
П3 |
П4 | ||
Трудовые |
1 |
2 |
3 |
4 |
40 |
Материальные |
6 |
5 |
4 |
3 |
110 |
Финансовые (на единицу продукции) |
4 |
6 |
8 |
12 |
100 Сумма 250 |
Граница выпуска: Нижняя Верхняя |
1 12 |
|
|
| |
План выпуска |
X1 |
X2 |
X3 |
X4 | |
Прибыль от единицы продукции |
60 |
70 |
120 |
130 |
Задача: рассчитать такой план выпуска продукции, который обеспечит максимум прибыли при заданных ограничениях (ресурсах).
Листинг программы "LINDO"
MAX 60x1 + 70x2 +120x3 +130x4
SUBJECT TO
X1+2X2+3X3+4X4 <=40
- 6X1+5X2+4X3+3X4 <= 110 4x1+6x2+8x3+12x4 <= 100
X1>=1
X1<=12
X2>=0
X3>=2
X4=3
END
Результаты:*
1350 - максимальная прибыль
X1 = 12
X2 = 0 > оптимальное количество выпускаемой продукции
X3 = 2
X4 = 4
*На остальные цифры не обращать внимания
Далее необходимо подсчитать затраченные ресурсы (Q) как сумму произведений затраты ресурсов на единицу соответствующей продукции на вычисленное количество выпуска этой продукции: 30 + 89 +100 = 219
Коэффициент эффективности системы: 1350/219=6,16.
Второй вариант:
При заданной прибыли, например, R=1350 минимизировать используемые ресурсы Q.
C этой целью в модель вводятся дополнительные переменные: Y1, Y2, Y3.
Каждая из этих переменных является оценкой соответствующего неиспользуемого ресурса, т. е. разностью между располагаемым и потребленным ресурсом. Эта величина должна быть минимизирована. Следовательно, Модель целевой функции имеет следующий вид:
F = Y1+Y2+Y3 > max
В результате Модель ограничений приобретает следующий вид:
Сюда же добавляется еще одно ограничение по прибыли (R):
R=
Граничные условия сохраняются.
Листинг программы:
MAX Y1+Y2+Y3
SUBJECT TO
X1 + 2X2 + 3X3 + 4X4 + Y1 = 40
- 6X1 + 5X2 + 4X3 + 3X4 + Y2 =110 4X1 + 6X2 + 8X3 + 12X4 +Y3 =100 60X1 + 70X2 + 120X3 +130X4 >=1350
X1>=1
X1<=12
X2>=0
X3>=2
X4 = 3
END
Результаты:
69,5 (сумма неиспользованного ресурса, т. е. Y1+Y2+Y3)
Y1 = 4,5
Y2 = 65
Y3 = 0
X1 = 1
X2 = 0
X3 = 7,5
X4 = 3
В итоге:
- 1) прибыль (R) равна 1350 ед. 2) количество используемых ресурсов: Q = 250 - 69,5 = 180,5 3) план выпуска продукции: X1 = 1, X2 = 0, X3 = 7,5, X4 =3 4) коэффициент эффективности k = 1350/180,5 = 7,48.
Таким образом, в результате проведения двухступенчатой оптимизации удалось рассчитать такой план выпуска продукции, который обеспечит получение максимально возможной при заданных ресурсах прибыли при максимально возможной экономии ресурсов.
Задание: в соответствии с представленным примером оптимизировать план выпуска продукции, прибыль от единицы которой составляет 60, 70, 130, 150 для каждого продукта. Остальные параметры системы сохранены без изменений.
Многокритериальная оптимизация. Реализация метода последовательных приближений в задаче с ресурсными ограничениями
Цель работы: решить задачу оптимизации системы с ресурсными ограничениями, имеющую две целевые функции - прибыль от реализации продукции и затраты ресурсов.
Программное обеспечение: программа линейного математического программирования "LINDO (LINGO". Приведен листинг программы.
Исходные условия задачи. Для изготовления двух видов продукции (x1, x2) используются два вида ресурсов (y1, y2). Дано количество ресурсов в условных единицах, затрачиваемых на изготовление единицы продукции:
Таблица 1. Исходные данные для решения задачи оптимизации
Вид ресурса |
Запас ресурса |
Число единиц ресурсов, затраченное на изготовление единицы продукции | |
X1 |
X2 | ||
S1 S2 |
|
|
|
.
Даны также запасы ресурсов в условных единицах: S1 ? 18, S2 ? 16.
Прибыль получается от единицы продукции (x1,x2) соответственно 2 и 3 денежные единицы.
Необходимо рассчитать такой план выпуска продукции (x1, x2), который обеспечит Максимум прибыли (первая целевая функция) и минимум затраченных ресурсов (вторая целевая функция).
Алгоритм решения поставленной задачи:
- 1. Построить модель системы. 2. Последовательное нахождение таких значений величин x1 и x2, которые обеспечат минимизацию затрат ресурсов при различных заданных величинах прибыли, например: 900, 950, 1000, 1050, 1100 денежных. ед., пока будет хватать ресурсов. С этой целью целесообразно использовать программу линейного программирования LINDO (LINGO), листинг которой приведен ниже. На каждом этапе расчетов определяется коэффициент эффективности. 3. Все результаты расчетов, выполненные в предыдущем пункте, сводятся в таблицу, на основе которой осуществляется процедура выбор адекватного варианта решения.
Пример решения поставленной задачи.
Первый этап. Моделирование системы.
На рис.1 приведена блок-схема объекта исследования:
Рис.1. Блок-схема объекта исследования.
Функция прибыли: y1= 2x1 + 3x2 .
Функции потребления ресурсов: y2 = x1 +3x2 18,
(модели ограничений ресурсов) y3 = 2x1 + X2 16.
Второй этап. Последовательное проведение минимизации затраченных ресурсов для следующей последовательности зафиксированных значений прибыли: 10, 15, 17 и т. д. денежных единиц до конца имеющихся ресурсов. C этой целью в модель вводятся дополнительные переменные: z2, z3. Каждая из этих переменных является оценкой соответствующего неиспользуемого ресурса, т. е. разностью между располагаемым и потребленным ресурсом. Эта величина должна быть минимизирована. Следовательно, Модель целевой (минимизируемой) функции имеет следующий вид:
F = z2+ z3 > max.
В результате Модели ограничений ресурсов приобретают следующий вид:
Y2 = x1 +3x2 + z2 = 18,
Y3 = 2x1 + X2 + z3 =16.
Сюда добавляется функция ограничения по прибыли (yОгр) :
Y1= 2x1 + 3x2 ? yОгр
Ниже представлен листингпрограммы LINDO, с помощью которой последовательно проводится минимизация затрат при различных заданных значениях прибыли: 10, 15, 17, 22 и 24 ден. ед. Каждый раз вычисляются затраты ресурсов и коэффициент эффективности (Кэф.), равный отношению прибыли к затратам. Результаты сведены в табл.2.
Листинг программы LINDO (LINGO):
MAX Z2+ Z3
SUBJECT TO
X1 + 3X2 + Z2 = 181
- 2X1 + X2 + Z3 = 16 2X1 + 3X2 >=10 (начальная величина зафиксированной прибыли)
X1>=1 граничные условия
X2>=1
END1
GIN X1 обозначения целых величин
GIN X2
Таблица 2 Результаты экспериментов
Прибыль |
10 |
15 |
17 |
22 |
24 |
Затраты |
14 |
21 |
23 |
33 |
34 |
Кэф |
0,71 |
0,71 |
0,74 |
0,67 |
0,70 |
Выпуск продукции (x1,x2) |
|
|
|
|
|
На основании сравнительного анализа результатов необходимо принять решение о выборе одного из двух вариантов плана выпуска продукции (x1, x2) : при максимальной эффективности производства (третья колонка) или при максимальной прибыли, но не самой высокой эффективности (последняя колонка).
Задание: осуществить оптимизацию представленной системы в соответствии с приведенным примером, но с измененными данными об ограничениях по ресурсам: 20 вместо 18 по одному (y2) и 18 вместо 16 по другому (y3) ресурсу.
Решение транспортной задачи на основе метода линейного программирования
Цель работы: минимизировать суммарные транспортные расходы в соответствии с представленной на рис.1 схемой.
Программное обеспечение: программа линейного программирования LINDO. маршрут ограничение транспортный задача
Необходимо перевезти продукцию от поставщика (склады A1 A2) к потребителю в три точки: B1 B2 B3, как показано на схеме:
Рис.1. Схема доставки груза. Цифрами отмечены транспортные затраты на перевозку единицы груза
Таблица условий
Поставщик |
Потребитель (заказчик) |
Запасы | ||
В1 |
В2 |
В3 | ||
А1 |
7 X11 |
9 X12 |
21 X13 |
100 |
А2 |
20 X21 |
15 X22 |
16 X23 |
200 |
Заявки |
80 |
130 |
90 |
300 |
Примечания: 1) xIj - число единиц груза, которые i - ый поставщик должен отправить j - му потребителю; 2) в углах ячеек представлены транспортные затраты на перевозку единицы груза в соответствующем направлении.
Задача: минимизировать суммарные транспортные расходы.
Модель системы:
Целевая функция (F):
F = 7x11 +9 x 12 +21 x 13 +20 x 21 +15 x 22 +16 x 23 > min.
Ограничения:
X11 + x12 + x13 = 100,
X21 + x22 + x23 = 200,
X11 + x21 = 80,
X12 + x22 = 130,
X13 + x23 = 90.
Граничные условия: xIj ? 0, где i = 1, 2 ; j = 1, ..., 3.
Решение задачи: листинг программы Lindo (Lingo)
MIN 7x11 +9 x 12 +21 x 13 +20 x 21 +15 x 22 +16 x 23 - целевая функция
SUBJECT TO
X11 + x21 = 80 - ограничения
X12 + x22 = 130
X13 + x23 = 90
X11 + x12 + x13 = 100
X21 + x22 + x23 = 200
X11 >=0 x21 >=0 - граничные условия
X12 >=0 x22 >=0
X13 >=0 x23>=0
END
Результаты: минимальные суммарные транспортные расходы (FMin) составляют 3830 денежных единиц. Такой результат может быть достигнут при перевозке груза в следующих пропорциях:
X11 = 80; x21 = 0;
X12 = 20; x22 = 110;
X13 = 0; x23 = 90;
Задание: рассчитать минимальные транспортные расходы и оптимизировать перевозку груза в соответствии со схемой, представленной на рис.2.
Рис.2. Схема доставки груза для выполнения лабораторной работы
Похожие статьи
-
Транспортная задача - Линейное программирование
Одна из наиболее распространенных задач математического программирования -- транспортная задача. В общем виде ее можно представить так: требуется найти...
-
"РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ MICROSOFT EXCEL" Цель работы Приобретение навыков решения задач линейного программирования...
-
Методика решения задач ЛП графическим методом - Линейное программирование
I. В ограничениях задачи (1.2) заменить знаки неравенств знаками точных равенств и построить соответствующие прямые. II. Найти и заштриховать...
-
Решение задач линейного программирования - Основы информатики
Имеются n пунктов производства и m пунктов распределения продукции. Стоимость перевозки единицы продукции с i-го пункта производства в j-ый центр...
-
Аннотация В статье рассматриваются два способа уменьшения времени вычисления дерева решений для задач линейного параметрического программирования с...
-
Геометрический метод, Двойственная задача - Линейное программирование
Применяется для задач с двумя переменными. Метод решения состоит в следующем: На плоскости строятся прямые, которые задают соответствующие ограничения:...
-
Варианты - Решение задач линейного программирования с использованием Microsoft Excel
Используя MS Excel, найти решение для модели ЛП, соответствующей заданному варианту (табл. 1.5). Таблица 1.5 Варианты задач к лабораторной работе № 1 №...
-
Линейное программирование, Имитационное моделирование - Офисные автоматизированные технологии
Задачи нахождения значений параметров, при которых получается экстремум целевой функции с учетом ограничений, наложенных на ее аргументы, называются...
-
Решение транспортной задачи с помощью Mathcad, Список используемых источников - Транспортная задача
Задаем начальное значение х Задаем количество пунктов отправления и пунктов потребления : Неизвестные параметры транспортной задачи обозначим:...
-
Введение - Транспортная задача линейного проектирования
В настоящее время оптимизация находит применение в науке, технике и в любой другой области человеческой деятельности. Оптимизация - целенаправленная...
-
Математический аппарат Для понимания всего дальнейшего полезно знать и представлять себе геометрическую интерпретацию задач линейного программирования,...
-
1. Каковы основные этапы решения задач ЛП в MS Excel? 2. Каков вид и способы задания формул для целевой ячейки и ячеек левых частей ограничений? 3. В чем...
-
Теоретическая основа линейного программирования, Симплекс метод - Линейное программирование
Симплекс метод Симплекс метод - метод линейного программирования, который реализует рациональный перебор базисных допустимых решений, в виде конечного...
-
Формулировка задачи - Линейное программирование
Даны линейная функция Z=С1 х1 +С2 х2 +...+СN xN (1.1) И система линейных ограничений A11 x1 + a22 x2 +... + a1N ХN = b1 A21 x1 + a22 x2 +... + a2N ХN =...
-
Решение транспортной задачи средствами Microsoft Exel - Транспортная задача
Многие задачи экономико-математического моделирования являются оптимизационными, т. е. в них требуется найти максимальное (минимальное или равное...
-
Признак оптимальности плана перевозок T. З. устанавливает теорема. Теорема. Для того, чтобы некоторый допустимый план X = (xij)m-nT. З. был оптимальным,...
-
Транспортная задача (Т. З.) является одной из распространенных задач линейного программирования специального вида. Эта задача такого наиболее...
-
Языки и системы программирования, их эволюция - Автоматизация решения задач пользователя
Язык программирования - это способ записи программ решения различных задач на ЭВМ в понятной для компьютера форме. Процессор компьютера непосредственно...
-
В качестве доступного инструментария были рассмотрены две открытые кроссплатформенные библиотеки для разработки C++ приложений WxWidgets и Boost ,...
-
К задачам параметрической оптимизации, относятся следующие задачи: - Определение оптимальных значений параметров. - Назначение оптимальных допусков на...
-
Пересчет симплекс-таблицы. - Транспортная задача
Формируем следующую часть симплексной таблицы. Вместо переменной x в план 1 войдет переменная x1 . Строка, соответствующая переменной x1 в плане 1,...
-
Описание алгоритма - Решение системы линейных уравнений методом Гаусса
Согласно заданию необходимо разработать программу для решения линейных уравнений методом Гаусса. Поскольку данная программа является приложением Windows,...
-
Программный алгоритм визуальный гаусс В программу включены следующие процедуры: "gauss1", "gaussj", "New1Click", "Button1Click", "Button2Click",...
-
На рисунке 1 представлен фрагмент электронной таблицы, в которой содержаться исходные данные для решения задачи. Рисунок 1 - Фрагмент электронной...
-
Введение - Программные и аналитические решения финансовых и экономических задач
Табличные процессоры - одно из важнейших средств для решения задач широкого назначения. Табличные процессоры в силу своей наполненности включены в пакет...
-
Математическое обеспечение позволяет использовать методы автоматизированного поиска оптимальных вариантов при проектировании системы. Часто при решении...
-
Метод Гаусса. Метод Гаусса решения систем линейных уравнений состоит в последовательном исключении неизвестных и описывается следующей процедурой. С...
-
Язык программирования R - Технологии больших данных: анализ и выбор решения для реализации проекта
Язык программирования R является универсальным и разработан для применения в следующих областях: разведочный анализ данных, классические статистические...
-
Цель работы. В городе имеется четыре АТС со свободной номерной емкостью (1,2,3,4). Известно количество свободных телефонных номеров на каждой станции....
-
Теорема. Чтобы транспортная задача была разрешима, необходимо и достаточно, чтобы выполнялось условие: (1.5) Доказательство: Необходимость. Пусть...
-
Постановка задачи Необходимо разработать программу для поиска автобусных маршрутов. В качестве среды разработки должна использоваться Delphi 7. В...
-
Специфика транспортной задачи позволяет находить новое опорное решение задачи и новый базис по правилу более простому, чем в симплекс-методе. Пусть...
-
Транспортная задача оптимальность Поставим в соответствие поставщикам потенциалы Ui, , а потребителям - Vj, . В оптимальном плане для всех базисных...
-
Постановка задачи: Фирма приобрела технологическую линию за начальную стоимость Sn. Срок службы технологической линии составляет K лет. Остаточная...
-
Для создания наиболее совершенных и экономичных механизмов и машин важно получить оптимальный вариант входящих в них редукторов (МЗП). Показатель, на...
-
Введение - Основные свойства функциональных языков программирования
Созданная в 1998 году спецификация языка Haskell (названного так в честь ученого Хаскелла Карри, одного из основоположников функционального...
-
Введение, Правила и порядок выполнения курсовой работы - Программирование в среде Turbo Pascal
Настоящие методические указания предназначены для выполнения курсовой работы "Расчеты на ЭВМ характеристик выходных сигналов электрических цепей" по...
-
В данном разделе была разработана функциональная схема работы программного комплекса, которая в общем виде описывает состав комплекса, характер и виды...
-
Языки и методы параллельного программирования - Администрирование параллельных процессов
Применение параллельных архитектур повышает производительность при решении задач, явно сводимых к обработке векторов. Автоматическое распараллеливание...
-
В курсовой работе в соответствии с заданием на проектирование решается задача разработки программы вычисления определенных интегралов численными...
Булево линейное программирование. Решение транспортной задачи с замкнутым маршрутом и возвращением в исходный пункт