- •Содержание
- •Введение
- •Теоретическая часть
- •Математическая модель злп
- •1.2 Канонический вид злп
- •Матричная форма
- •Графический метод решения злп
- •Симплекс-метод решения злп
- •Двойственная задача
- •Двойственный симплекс-метод
- •Постановка задачи
- •Решение задачи аналитическим методом
- •Заключение
- •Список использованных источников
Постановка задачи
F(x)=2x1-x2-8x3-4x4 ->min - целевая функция
-2x1+3x2-x3-8x4<=18 - условия
3x1-2x2+2x3-3x4<=24
-x1-3x2+4x3-2x4<=36
xj>=0,j:1,2,3,4
Решение задачи аналитическим методом
Исходные данные:
F(x)=2x1-x2-8x3-4x4 ->min - целевая функция
-2x1+3x2-x3-8x4<=18 - условия
3x1-2x2+2x3-3x4<=24
-x1-3x2+4x3-2x4<=36
xj>=0,j:1,2,3,4
Приведем систему ограничений к каноническому виду, для этого необходимо неравенства преобразовать в равенства, с добавлением дополнительных переменных. Если в преобразуемом неравенстве стоит знак ≥, то при переходе к равенству знаки всех его коэффициентов и свободных членов меняются на противоположные. Тогда система запишется в виде:
2x1-3x2+1x3+8x4+x5=-18
-3x1+2x2-2x3+3x4+x6=-24
1x1+3x2-4x3+2x4+x7=-36
Переходим к формированию симплекс таблицы. В строку F Таблицы заносятся коэффициенты целевой функции.
Из данных задачи составляем исходную симплекс таблицу (таблица 3).
Таблица 3 – Исходная симплекс таблица
|
X1 |
X2 |
X3 |
X4 |
Свободные члены |
F |
2 |
-1 |
-3 |
-4 |
0 |
X5 |
2 |
-3 |
1 |
8 |
-18 |
X6 |
-3 |
2 |
-2 |
3 |
-24 |
X7 |
1 |
3 |
-4 |
2 |
-36 |
В составленной нами таблице имеются отрицательные элементы в столбце свободных членов, находим среди них максимальный по модулю - это элемент: -36, он задает ведущую строку - X7. В этой строке так же находим максимальный по модулю отрицательный элемент: -4 он находится в столбце X3, который будет ведущим столбцом. Переменная в ведущей строке исключается из базиса, а переменная соответствующая ведущему столбцу включается в базис. Пересчитаем симплекс-таблицу (таблица 4):
Таблица 4 – Пересчитанная таблица
|
X1 |
X2 |
X7 |
X4 |
Свободные члены |
F |
1.25 |
-3.25 |
-0.75 |
-5.5 |
27 |
X5 |
2.25 |
-2.25 |
0.25 |
8.5 |
-27 |
X6 |
-3.5 |
0.5 |
-0.5 |
2 |
-6 |
X3 |
-0.25 |
-0.75 |
-0.25 |
-0.5 |
9 |
В составленной нами таблице имеются отрицательные элементы в столбце свободных членов, находим среди них максимальный по модулю - это элемент: -27, он задает ведущую строку - X5. В этой строке так же находим максимальный по модулю отрицательный элемент: -2.25 он находится в столбце X2, который будет ведущим столбцом. Переменная в ведущей строке исключается из базиса, а переменная соответствующая ведущему столбцу включается в базис. Пересчитаем симплекс-таблицу (таблица 5):
Таблица 5 – Пересчитанная таблица
|
X1 |
X5 |
X7 |
X4 |
Свободные члены |
F |
-2 |
-1.444 |
-1.111 |
-17.778 |
66 |
X2 |
-1 |
-0.444 |
-0.111 |
-3.778 |
12 |
X6 |
-3 |
0.222 |
-0.444 |
3.889 |
-12 |
X3 |
-1 |
-0.333 |
-0.333 |
-3.333 |
18 |
В составленной нами таблице имеются отрицательные элементы в столбце свободных членов, находим среди них максимальный по модулю - это элемент: -12, он задает ведущую строку - X6. В этой строке так же находим максимальный по модулю отрицательный элемент: -3 он находится в столбце X1, который будет ведущим столбцом. Переменная в ведущей строке исключается из базиса, а переменная соответствующая ведущему столбцу включается в базис. Пересчитаем симплекс-таблицу (таблица 6):
Таблица 6 – Пересчитанная таблица
|
X6 |
X5 |
X7 |
X4 |
Свободные члены |
F |
-0.667 |
-1.592 |
-0.815 |
-20.371 |
74 |
X2 |
-0.333 |
-0.518 |
0.037 |
-5.074 |
16 |
X1 |
-0.333 |
-0.074 |
0.148 |
-1.296 |
4 |
X3 |
-0.333 |
-0.407 |
-0.185 |
-4.629 |
22 |
Так как в столбце свободных членов нет отрицательных элементов, то найдено допустимое решение. В строке F имеются отрицательные элементы, это означает что полученное решение не оптимально. Определим ведущий столбец. Для этого найдем в строке F максимальный по модулю отрицательный элемент - это -20.371 Ведущей строкой будет та, для которой отношение свободного члена к соответствующему элементу ведущего столбца минимально.
Так как полученный нами ведущий элемент отрицателен, целевая функция не ограничена снизу, в области допустимых решений задачи.
Создание приложения для решения задачи
4.1 Описание алгоритма
Ниже приведен алгоритм (рисунок 1) работы программы в упрощенном виде, для лучшего восприятия хода работы программы.
Рисунок 1 - Алгоритм работы программы
4.2 Разработка программы
Для программной реализации задачи коммивояжера был использован язык программирования Delphi 7. Для оформления формы были использованы такие компоненты как: button (кнопка расчета симплекс таблицы), StringGrid (содержит симплекс таблицу).
4.3 Тестирование программы
Введем исходные данные в таблицу StringGrid (рисунок 2):
Рисунок 1 - Ввод исходных данных
Нажимаем кнопку «Пересчитать симплексную таблицу» пока не вылезет подобное окошечко - результат (рисунок 4):
Рисунок 1 - Результат работы
4.4 Руководство пользователя
Запустив приложение Project.exe, перед Вами откроется окно, предоставляющее возможность решать задачи симплекс-метода, где количество переменных всегда -4, а количество ограничений всегда -3.
Для Слежения за выполнением пересчета симплекс-таблицы, программа высчитывает по 1 итерации за 1 нажатие кнопки.
В случаи неверно введенных данных, программа выдаст ошибку.
Дробные числа нужно вводить через «.», иначе программа выдаст ошибку.
При нажатии кнопки «Ок» в выплывающем сообщении программа закроется.
Закрывается программа при помощи красного крестика в правом верхнем углу программы.
Программа является «разовой», т. е. для расчета следующей задачи нужно закрыть и открыть программу званого.
