
- •Примеры постановки и решения задач в Mathcad и Excel «Решение систем линейных алгебраических уравнений (слау)»
- •Решение систем уравнений в Mathсad:
- •Решение линейных алгебраических систем слау в Excel
- •«Решение задач линейного программирования (лп)»
- •«Решение транспортной задачи (тз) )»
- •«Решение задачи о назначениях (зн»
- •Решение задачи х.1
«Решение транспортной задачи (тз) )»
Транспортная задача – задача о поиске оптимального распределения поставок однородного товара от поставщиков к потребителям при известных затратах Cij на перевозку (тарифах) товара между пунктами отправления и назначения. Она является задачей линейного программирования специального вида. Транспортная задача (исходные данные) может быть записана в виде прямоугольной таблицы. Пример подобной таблицы приведен ниже. Требуется определить оптимальный план поставок по критерию минимальных затрат на перевозки.
Запасы ai |
Поставщики Постi |
Потребители | ||||
Потр1 |
Потр2 |
Потр3 |
Потр4 |
Потр5 | ||
a1=13 |
Пост1 |
7 |
6 |
8 |
9 |
4 |
a2=17 |
Пост2 |
10 |
9 |
5 |
11 |
3 |
a3=10 |
Пост3 |
14 |
9 |
4 |
10 |
9 |
a4=13 |
Пост4 |
3 |
11 |
8 |
8 |
8 |
ai = 53
|
Потребности bi (bi = 53) |
b1=10 |
b2=8 |
b3=12 |
b4=14 |
b5=9 |
Обозначим суммарный запас груза у всех поставщиков символом a, а суммарную потребность в грузе у всех потребителей – символом b.
Тогда
Транспортная задача называется закрытой, если a = b. Если же a b , то транспортная задача называется открытой.
Очевидно, что в случае закрытой задачи от поставщиков будут вывезены все запасы груза, и все заявки потребителей будут удовлетворены.
В случае открытой задачи при a < b весь груз будет вывезен, однако будут недопоставки груза экономически невыгодным потребителям. При a > b, наоборот, будут удовлетворены все потребители, но часть груза останется на складах экономически невыгодных поставщиков.
Пусть
-
(
0)
это количество груза от поставщикаАiк потребителюВj.
МатрицаX с неотрицательными
элементамиxij называетсяпланом перевозок.
Функция z=называетсяцелевой функцией. План
перевозок, реализующий минимум целевой
функции z, называетсяоптимальным.
Если задача является открытой, то необходимопровестипроцедуру закрытия задачи. С этой целью приa <b добавляемфиктивного поставщика A'm+1с запасом грузаa'm +1=b-a. Если жеa >b , то добавляемфиктивного потребителя B'n+1 с заказом грузаb'n +1=a-b. В обоих случаях соответствующие фиктивным объектам тарифы перевозокc'ij полагаемравныминулю. В результате суммарная стоимость перевозокz не изменяется.
6.6. Пример решения транспортной задачи в Excel
На рис. 6.12 показан вид листа Excelпосле решения транспортной задачи.
Рис.6.12 – Исходный лист после решения транспортной задачи
· В ячейках диапазонаB5:F8введены коэффициенты матрицы стоимостей {Cij}, в ячейкахI4:M4– объемы потребленияbj, в ячейкахH5:H8– объемы производстваai.
·Формула вычисления целевой функции задана в ячейкеF3:=СУММПРОИЗВ(B5:F8;I5:M8).
·Ячейки диапазоновN5:N8, I9:M9– это ячейки с формулами, задающими ограничения транспортной задачи (суммы по строкам и столбцам соответственно).
·Выделенная областьI5:M8– это ячейки, отведенные под искомые решения транспортной задачи xij. В исходном листе эта область была не заполненной, данные с решением транспортной задачи появились после запуска пакета «Поиск решения» (см. рис. 6.12).
На рис.6.13 показан вид окна установки данных для расчета с заданными ограничениями и целевой функцией транспортной задачи.
Рис.6.13 – Результат решения транспортной задачи
На рис.6.12 легко убедиться, что в результате решения задачи все ограничения выполнены: столбцы и строки с формулами, задающими ограничения, совпадают с исходными объемами производства и потребления.
Примеры использования пакета Mathcad для решения транспортной задачи
Задача Х1.Имеются n=4 пунктов производства иm=4 пунктов распределения продукции. Стоимость перевозки единицы продукции с і-го пункта производства в j-й центр распределения cijприведена в таблице,где под строкой понимается пункт производства, а под столбцом - пункт распределения. Кроме того, в этой таблице в конце i-й строкие указан объем производства в і-м пункте производства, а внизу j-го столбца указан спрос в j-м центре распределения.
Необходимо составить план перевозок по доставке требуемой продукции в пункты распределения, минимизирующий суммарные транспортные расходы.
Пункт произв. |
Стоимость перевозки ед. продукции |
Объем пр-ва | |||
П1 |
П2 |
П3 |
П4 | ||
Пр1 |
1 |
3 |
4 |
5 |
20 |
Пр2 |
5 |
2 |
10 |
3 |
30 |
Пр3 |
3 |
2 |
1 |
4 |
50 |
Пр4 |
6 |
4 |
2 |
6 |
20 |
Потребность |
30 |
20 |
60 |
10 |
|
Решение задачи средствами MathCAD:
1) Введите исходные данные в матричной форме.
2) Введите линейную целевую функцию.
3) Задайте начальные значения переменных:
4) Введите ограничения задачи в матричной форме.
5) Определите оптимальное решение задачи с помощью встроенной функции Minimize:
Задача Х2.Постановка задачи. Пусть имеется m источников финансирования А1, А2, ..., Аm и n периодов финансирования B1, B2, ..., Вn. Известны затраты, связанные с выделением единицы денежных ресурсов Сij из i-ro источника в j-ом периоде, а также объемы финансирования из каждого i-гo источника в течение всего времени –аi. Известны суммарные объемы финансирования из всех источников в каждый j-й период времени - bj. Требуется определить объемы финансирования Хij из i-ro источника в j-ом периоде, чтобы:
1. Ресурсы всех источников были реализованы.
2. Обеспечить финансирование в полном объеме в каждом периоде.
3. Достигнуть экстремума выбранного критерия оптимизации.
Исходные данные задачи при m=n=3 представлены в следующей таблице.
Объемы ai |
Источники Аi |
Периоды финансирования Вi | ||
В1 |
В2 |
В3 | ||
a1=14 |
А1 |
70 |
38 |
24 |
a2=20 |
А2 |
58 |
18 |
56 |
a3=26 |
А3 |
19 |
10 |
100 |
ai = 60
|
Потребности bi (bi =60) |
b1=30 |
b2=22 |
b3=8 |
Введите в рабочем листе поясняющий текст. Для этого вначале разместите в месте ввода текста курсор (визир - красный крестик). Затем выберите (щелчком мыши или с помощью клавиатуры) пункт Insert (Вставка) главного меню Mathcad. В появившемся падающем меню щелкните по пункту Text Region (Текстовая область) или в месте расположения курсора нажмите клавишу с двойной кавычкой (команда для ввода текста). В обоих случаях появится шаблон, указывающий место и начало ввода, после чего можно приступить к этой операции. Текстовая область будет автоматически увеличиваться по мере ввода текста. По окончании его необходимо вывести курсор (маркер ввода) за рамки области.
Далее введите критерий оптимизации - целевую функцию. Для этого вначале разместите курсор (визир - красный крестик) в месте ввода математического выражения. Затем с помощью соответствующих клавиш начните ввод; в первую очередь - имени критерия оптимизации, с аргументами в скобках через запятые:
Y (X11, Х12, Х13, Х21, Х22, Х23, Х31, Х32, ХЗЗ).
Затем нажмите комбинацию клавиш Shift+: для ввода знака присваивания :=. На месте правой метки поместите всё выражение критерия оптимизации. Начальные приближения вводятся аналогично.
Для решения задачи используем блок функций Given ... Minimize, выполнив следующие операции:
• введите, если необходимо, комментарии, воспользовавшись клавишей с двойной кавычкой;
• введите ключевое слово Given;
• введите систему ограничений, используя при вводе знак равенства, вызванный нажатием комбинации клавиш Ctrl+=;
• введите граничные значения (рис. 1);
• введите вектор-столбец искомых параметров, используя диалоговое окно Insert Matrix (Вставить матрицу). Для этого щелкните по левой верхней кнопке на панели инструментов Matrix (Матрица) или нажмите комбинацию клавиш Ctrl+M. В появившемся диалоговом окне Insert Matrix в поле Rows (Строки) число строк ( элементов вектора-столбца) должно быть равно 9, а в поле Columns (Столбцы) – 1;
• введите знак присваивания, нажав комбинацию клавиш Shift+:(двоеточие);
• используя диалоговое окно Insert Function (Вставить функцию), введите функцию Minimize с искомыми параметрами, нажав для этого комбинацию клавиш Ctrl+E;
• скопируйте и вставьте вектор-столбец искомых параметров и введите знак «равно».
На рис.1 показано подготовка процесса оптимизации распределения однородных ресурсов с помощью Mathcad.
Это математическое описание конкретной транспортной задачи в нотации системы, где. представлены критерий оптимизации, начальные приближения и граничные условия. В описании двух первых пунктов использован знак присваивания := (двоеточие и равно). Он вводится щелчком мыши по второй кнопке в первой строке панели Evaluation (Вычисление), если она была заранее выведена на рабочий лист.
Следует обратить внимание на представление системы ограничений в Mathcad. При ее написании используетсяжирный знак равенства, вызываемый щелчком по кнопке с аналогичным знаком - второй в первом столбце панели инструментовEvaluation(Вычисление).
На рис.2 показано продолжение процесса оптимизации распределения однородных ресурсов с помощью Mathcad. Жирный знак «равно» - его еще называют булевым равенством - можно вывести нажатием комбинации клавишCtrl+= (равно).
Оптимальное распределение однородных ресурсов зафиксировано в векторе (X11 Х12 Х13 ...). Из полученного решения видно, чтоX11 = 4, Х12 = 2, Х13 = 8, Х21= 0, Х22 = 20, Х23 = 0, Х31 = 26, Х32 =0, ХЗЗ = 0. Это означает, что источник 1 должен профинансировать в первом периоде 4 единицы, во втором и в третьем - 8 единиц. Источник 2: в первом периоде 0 единиц, во втором 20 и в третьем - 0 единиц. Источник 3: в первом периоде 26 единиц, во втором и в третьем финансирование отсутствует. Первая цифра в переменнойXопределяет источник, а вторая - период финансирования. Такое распределение денежных средств из источников обеспечит минимальные суммарные затратыY, которые составят 1,402 х 103единиц.
Рис.1. Подготовка процесса оптимизации
Рис.2. Начало и продолжение процесса оптимизации