Скачиваний:
2
Добавлен:
02.11.2025
Размер:
20.1 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА"

Факультет инфокоммуникационных сетей и систем

Кафедра сетей связи и передачи данных

ПРАКТИЧЕСКАЯ РАБОТА №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);