break;
}
}
FreeMem();
return 0;
}
//-----------------------------------------------------------------------------------------
Результат работы программы
Работу программы мы можем проанализировать по результату . Здесь мы видим первоначальную матрицу, которая представлена в виде симплекс таблицы и результат преобразования таблицы. Результат преобразования таблицы представлен в виде симплекс таблицы, подобной первоначальной.
Проанализировав данные полученные с помощью программы и сравнив их с результатами вычислений можно сделать вывод, что полученные результаты равны между собою, а это значит что программа работает верно.
3.4. Анализ результата решения поставленной задачи
По заданной задачи мы видим, что:
Для производства трёх видов продукции используется три вида сырья. Нормы затрат каждого из видов сырья на единицу продукции данного вида, запасы сырья, а также прибыль с единицы продукции.
Вид сырья | Нормы затрат сырья (кг) на единицу продукции | ||
А | В | С | |
IIIIII | 401 | 212 | 010 |
Цена единицы продукции (руб.) | 3 | 7 | 2 |
1. Первое, что я сделал, это определил план выпуска продукции для получения максимальной прибыли, с учетом того что бы сырьё IIвида было израсходовано полностью.
Z-0 = 3X1 + 7X2 + 2X3
4 | X1 | + | 2 | X2 | + | 0 | X3 | + | X4 | ≤ | 19 |
0 | X1 | + | 1 | X2 | + | 1 | X3 | + | X5 | = | 8 |
1 | X1 | + | 2 | X2 | + | 0 | X3 | + | X6 | ≤ | 24 |
X1, X2, X3 ≥ 0.
4X1+2X2+X4 ≤ 19
X2 + X3 +X5 = 8
X1+ 2X2+X6 ≤24
2. Второе, оценил каждый из видов сырья, используемых для производства продукции.
Z-0 = 3X1 + 7X2 + 2X3 → max
Ввел дополнительные переменные X4, X5, X6.
Z-0= | 3 | X1 | + | 7 | X2 | + | 2 | X3 | -(max) |
Ограничения:
4 | X1 | + | 2 | X2 | + | 0 | X3 | + | X4 | = | 19 |
0 | X1 | + | 1 | X2 | + | 1 | X3 | + | X5 | = | 8 |
1 | X1 | + | 2 | X2 | + | 0 | X3 | + | X6 | = | 24 |
3. Построил математическую модель задачи;
4X1+2X2+X4 = 19
X2 + X3 +X5 = 8
X1+2X2 +X6 =24
4. Выбрал метод решения задачи и привел задачу к каноническому виду;
Xi≥0 ; 0-Z= -3X1- -7X2- -2X3
5. Решил задачу путём сведения к задаче линейного программирования;
Базисныепеременные | X1 | X2 | X3 | X4 | X5 | X6 | Свободныечлены |
X4 | 4 | 2 | 0 | 1 | 0 | 0 | 19 |
X5 | 0 | 1 | 1 | 0 | 1 | 0 | 8 |
X6 | 1 | 2 | 0 | 0 | 0 | 1 | 24 |
0-Z | -3 | -7 | -2 | 0 | 0 | 0 | 0 |
Пересчитал таблицу:
Базисные переменные | X1 | X2 | X3 | X4 | X5 | X6 | Свободные члены |
X4 | 4 | -2 | -2 | 1 | 0 | 0 | 3 |
X2 | 0 | 1 | 1 | 0 | 1 | 0 | 8 |
X6 | 1 | -2 | -2 | 0 | 0 | 1 | 8 |
0-Z | -3 | 7 | 5 | 0 | 0 | 0 | 56 |
Пересчитал таблицу:
Базисные переменные | X4 | X5 | X3 | Свободные члены |
X1 | 1/4 | -1/2 | -1/2 | 3/4 |
X2 | 0 | 1 | 1 | 8 |
X6 | -1/4 | -3/2 | -3/2 | 29/4 |
0-Z | 3/4 | 11/2 | 7/2 | 233/4 |
Нашел оптимальное базисное решение
6. Затем построил блок схему к задачи с написанием программы и выводом на печать программного кода.
7. Анализом моего результата решения состоит из правил оптимального решения задачи из поставленного условия.
Порядок работы с симплекс таблицей
Первая симплекс-таблица подвергается преобразованию, суть которого заключается в переходе к новому опорному решению.
Алгоритм перехода к следующей таблице такой:
Просматривается последняя строка (индексная) таблицы и среди коэффициентов этой строки (исключая столбец свободных членов ) выбирается наименьшее отрицательное число при отыскании max, либо наибольшее положительное при задачи на min. Если такового нет, то исходное базисное решение является оптимальным и данная таблица является последней; просматривается столбец таблицы, отвечающий выбранному отрицательному (положительному) коэффициенту в последней строке - ключевой столбец, и в этом столбце выбираются положительные коэффициенты.
Если таковых нет, то целевая функция неограниченна на области допустимых значений переменных и задача решений не имеет; среди выбранных коэффициентов столбца выбирается тот, для которого абсолютная величина отношения соответствующего свободного члена (находящегося в столбце свободных членов) к этому элементу минимальна.
Этот коэффициент называется разрешающим, а строка в которой он находится ключевой; в дальнейшем базисная переменная, отвечающая строке разрешающего элемента, должна быть переведена в разряд свободных, а свободная переменная, отвечающая столбцу разрешающего элемента, вводится в число базисных. Строится новая таблица, содержащая новые названия базисных переменных: разделяем каждый элемент ключевой строки (исключая столбец свободных членов) на разрешающий элемент и полученные значения записываем в строку с измененной базисной переменной новой симплекс таблицы.. Строка разрешающего элемента делится на этот элемент и полученная строка записывается в новую таблицу на то же место в новой таблице все элементы ключевого столбца = 0, кроме разрезающего, он всегда равен 1. Столбец, у которого в ключевой строке имеется 0,в новой таблице будет таким же строка, у которой в ключевом столбце имеется 0, в новой таблице будет такой же в остальные клетки новой таблицы записывается результат преобразования элементов старой таблицы: В результате получаем новую симплекс-таблицу, отвечающую новому базисному решению. Теперь следует просмотреть строку целевой функции (индексную), если в ней нет отрицательных значений (в задачи на нахождение максимального значения), либо положительных (в задачи на нахождение минимального значения) кроме стоящего на месте (свободного столбца), то значит, что оптимальное решение получено. В противном случае, переходим к новой симплекс таблице по выше описанному алгоритму.