Лабораторные работы. Владимиров / Оптимизация_Практика_8_Отчет
.pdfФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ |
УЧРЕЖДЕНИЕ |
ВЫСШЕГО |
ОБРАЗОВАНИЯ |
"САНКТ-ПЕТЕРБУРГСКИЙ |
|
ГОСУДАРСТВЕННЫЙ |
|
УНИВЕРСИТЕТ |
ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА" Факультет инфокоммуникационных сетей и систем
Кафедра сетей связи и передачи данных
ПРАКТИЧЕСКАЯ РАБОТА №8
«Решение технологической задачи» по дисциплине
«Оптимизация и математические методы принятия решений»
Вариант 8
Выполн ил: студент 2-го курса группы ИКПИ-32 Андреев А.А. Жилкин Д.А. Яковлев М.А.
Преподавате ль:
Владимиров С. А.
Санкт-Петербург
2025
Цель работы
Выполнить постановку и найти оптимальное решение детерминированной технологической задачи для контрольной проверки знаний и навыков решения задач методом линейного программирования.
Постановка задачи
Для рытья котлована под фундамент зернохранилища объемом м3 строители получили 3 экскаватора. Мощный — с производительностью 22.5 м3/час, с расходом топлива 10 л/час; средний — с характеристиками 10 м3/час и л/час; малый — с характеристиками 5 м3/час и 2 л/час. Экскаваторы могут работать вместе, не мешая друг другу. Запас топлива л. Для 8
варианта: = 2160, = 11/3, = 888.
Ход работы
1. Решение задания 1 (каким образом следует задействовать экскаваторы, чтобы выполнить работу как можно скорее).
Задача минимизации времени.
Пусть 1, 2, 3 — время работы трех экскаваторов (в часах), 12 — время работы первого и второго экскаватора при одновременной работе, 13 — время работы первого и третьего экскаватора при одновременной работе, 23 — время работы второго и третьего экскаватора при одновременной работе, 123 — время работы первого, второго и третьего экскаватора при одновременной работе. Причем: 1, 2, 3, 12, 13,
23, 123 ≥ 0.
min ( ) = + + + + + +
22.5 + 10 + 5 + 32.5 + 27.5 + 15 + 37.5 = 2160
10 + 11/3 + 2 + 41/3 + 12 + 17/3 + 47/3 ≤ 888
Найденный минимум: (0,0,0,0,0,24,48), ( ) = 72.
2. Решение задания 2 (каким образом следует задействовать экскаваторы, чтобы максимально сэкономить топливо и выполнить работу полностью).
Задача минимизации расхода топлива
min ( ) = 10 + 11/3 + 2 + 41/3 + 12 + 17/3 + 47/3
Найденный максимум: (0,0,216,0,0,0,0) ( ) = 792.
3. Подведение итогов.
Минимальное общее время работы достигается, если второй и третий экскаваторы проработают 15 часов вместе, а потом (или до этого) все три проработают 48 часов вместе. В итоге получиться 72 часов работы.
Минимальный расход топлива достигается при работе одного второго экскаватора. Экономия топлива составит: 888 – 792 = 96 литров.
GNU Octave
clc;
close all; clear all;
% Целевая функция
c1 = [1; 1; 1; 1; 1; 1; 1];
c2 = [10.0; 11/3; 2.0; 41/3; 12.0; 17/3; 47/3];
% Верхние границы переменных
u = [10000; 100000; 100000; 100000; 100000; 100000; 100000];
%Правая часть ограничений b = [2160; 888];
%Матрица ограничений
A = [22.5, 10.0, 5.0, 32.5, 27.5, 15.0, 37.5; 10.0, 11/3, 2.0, 41/3, 12.0, 17/3, 47/3];
%Отображение результатов минимизации времени disp('Минимизация времени');
[Xopt1, Fval1] = glpk(c1, A, b, [], u, 'SU', 'CCCCCCC', 1); disp(Xopt1);
disp(Fval1);
%Отображение результатов минимизации расхода топлива disp('Минимизация расхода топлива');
[Xopt2, Fval2] = glpk(c2, A, b, [], u, 'SU', 'CCCCCCC', 1); disp(Xopt2);
disp(Fval2);
