Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчеты по лабораторным работам / Лабораторная работа №2

.pdf
Скачиваний:
450
Добавлен:
06.07.2020
Размер:
220.68 Кб
Скачать

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

Факультет инфокоммуникационных сетей и систем Кафедра сетей связи и передачи данных

ЛАБОРАТОРНАЯ РАБОТА №2

«Нахождение целевой функции и оптимального решения Симплексметодом с использованием пакета Octave. Решение двойственной задачи» по дисциплине

«Оптимизация и математические методы принятия решений» Вариант 10

Выполнил:

студент 2-го курса дневного отделения группы ИКПИ-81 Коваленко Л. А.

Преподаватель:

Владимиров С. А.

Санкт-Петербург

2020

Цель работы

Научиться применять симплекс метод для решения задач нахождения оптимального плана. Сформировать целевую функцию, поставить прямую и двойственную задачи. Найти решениепрямой и двойственной задачи с использованием современных методов программирования пакета Octave.

Постановка задачи

Предприятие после выполнения основной производственной программы

располагает запасами сэкономленного сырья в трех видах ,

 

,

 

. Из этого сырья

может быть изготовлено 2 вида изделий

 

и

 

единиц сырья, идущего на

 

 

. Количество 1

2

 

3

 

 

изготовление единицы вида изделия,

и доход, получаемый от реализации одной

1

 

2

 

 

 

 

 

 

единицы каждого вида изделия, приведены в таблице 1.

 

 

 

 

 

 

Вид сырья

Запас сырья

 

 

 

Расход сырья на изделие

 

 

 

 

 

3

 

 

 

1

 

 

 

 

21

 

 

 

 

 

 

 

 

 

30

 

 

 

2

 

 

 

2

 

 

 

 

16

 

 

 

0

 

 

 

3

 

 

Прибыль

 

 

 

 

 

3

 

 

 

2

 

 

от единицы изделия

 

 

 

 

 

 

 

Таблица 1

Требуется сформулировать задачу линейного программирования математически, руководствуясь целью получить максимальный доход при реализации дополнительной продукции предприятия. Решить прямую и двойственную задачи.

Ограничения:

 

 

Формальная постановка задачи

 

 

 

 

 

 

 

3 1

+ 2 2

 

 

 

 

 

 

 

 

 

 

Целевая функция:

 

3 1

+ 1 2

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 1

+ 2 2

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 1

+ 3 2

16

 

 

 

 

 

 

 

 

 

 

Требуется:

 

=

,

1, 2 > 0

 

 

 

 

0 ≤ ≤

 

 

 

 

 

 

 

= ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

1

 

 

 

30

 

3

1

1

0

0

 

21

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

2

 

 

 

3

 

 

 

30

 

= 2

2

0

1

0 , = 30 ,

=

0

, =

, =

21

 

 

 

4

 

 

 

0

3

0

0

1

 

16

 

 

 

0

 

 

задачи (целевые30функции) и

1. Выполнить постановку прямой и двойственной

 

 

5

 

 

 

16

 

записать условия ограничения

переменных

0неравенствами.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Привести задачу к уравнениям и решить её с использованием системы Octave.

2

 

 

 

 

 

 

 

 

 

Ход работы

 

 

 

 

 

 

 

 

 

 

 

1.

Постановка прямой и двойственной задачи.

 

 

 

 

 

 

 

 

 

 

 

 

Первая задача

 

 

 

Определения

 

Вторая задача

 

 

 

Прямая или исходная

 

Задача

 

Двойственная

 

 

 

Максимизировать

 

 

Целевая функция

Минимизировать

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

Ограничения

 

 

 

 

 

=1

 

 

 

 

 

 

(

= 1 … )

 

 

 

 

 

 

 

 

(

= 1 … )

 

=1– строки,

 

 

 

 

 

 

 

 

 

 

– столбцы

 

Вариант

№10

– строки,

 

– столбцы

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прямая или исходная

 

Задача

 

Двойственная

 

 

 

Максимизировать

 

 

 

Целевая функция

Минимизировать

 

 

 

 

1

 

2

 

 

 

 

 

 

1

 

 

2

 

 

3

 

 

 

1

 

2

 

 

 

 

Ограничения

 

1

 

 

2

 

 

3

 

 

 

 

1

1 2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

Целевая функция

 

 

1

 

2

 

3

 

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

2.

Задача в виде уравнений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №10

 

 

 

 

 

 

 

 

 

 

 

 

Прямая или исходная

 

Задача

 

Двойственная

 

 

1

 

2

13

2

 

 

Целевая функция

1

 

 

2

1

 

3

 

2 4

3

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

5

 

 

 

 

 

1

 

2

 

 

3

 

5

 

 

1

 

2

 

4

 

 

 

Ограничения

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

 

 

 

 

 

 

1

2

 

3

 

4

5

 

 

 

3. Решение задачи Симплекс-методом с использованием системы Octave.

Программный код

clc; close all; clear all; c=[ 3; 2; 0; 0; 0]

u=[16, 30, 21, 30, 16] b=[21; 30; 16]

A=[3, 1, 1, 0, 0; 2, 2, 0, 1, 0; 0, 3, 0, 0, 1] fprintf('Решение задачи и значение целевой функции\n') [Xopt,Fval] = glpk(c,A,b,[],u,'SSS','CCCCC',-1) fprintf('Решение задачи целочисленного программирования\n')

[Xopt,Fval] = glpk(c,[A;eye(5)],[b;u'],[],[],'SSSUUUUU','IIIII',-1) fprintf('Решение двойственной задачи\n')

[Yopt,Zval,extra,redcosts] = glpk([b;u'],[A',eye(5)],c,[- Inf(1,3),zeros(1,5)],[],'LLLLL','CCCCCCCC')

fprintf('Решение целочисленной двойственной задачи\n')

3

[Yopt,Zval,extra,redcosts] = glpk([b;u'],[A',eye(5)],c,[-

Inf(1,3),zeros(1,5)],[],'LLLLL','IIICCCCC')

Решение прямой задачи

Решение прямой задачи

целочисленного программирования

 

5 33333

 

 

= 26.333

=

5

 

,

= 25

= 0.00000 ,

1

 

 

8.88889

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

Решение двойственной задачи

Решение двойственной задачи

целочисленного1

программирования

 

0.00000

 

 

 

 

 

00000

 

,

= 26.333

 

 

0

 

 

= 37

= 0.33333

= 1 ,

 

 

0.00000

 

 

 

 

 

0

 

 

 

 

0.00000

 

 

 

 

0

 

 

Примечание.

Максимизация выпуска продукции в стоимостном выражении.

1

— количество единиц продукции .

 

 

 

 

— количество единиц продукции

1.

 

 

 

 

2

(добавленная) — остаток сырья

 

. 2

 

 

 

 

5

(добавленная) — остаток сырья

3

 

 

 

 

3

1.

 

 

 

 

4

(добавленная) — остаток сырья

2.

1 и 2).

 

 

1

— стоимость единицы сырья

1

(продукции

 

 

Минимизация общей стоимости продажи сырья.

2).

 

 

2 — стоимость единицы сырья

2

(продукции

1 и

 

 

3

— стоимость единицы сырья

3

(продукции

и

).

 

 

(добавленная) —

 

 

 

1

2

).

4

 

дополнительные затраты (продукция

(добавленная) — дополнительные затраты (продукция

1).

Можно было сделать раздельно:

 

 

 

 

 

2

 

5

— стоимость единицы сырья

1

(продукция

).

 

 

1

— стоимость единицы сырья

(продукция

1).

 

 

 

2

— стоимость единицы сырья

2

(продукция

1).

 

 

 

3

— стоимость единицы сырья

3

(продукция

1).

 

 

 

6

(добавленная) —

 

3

(продукция

2

 

 

 

4

— стоимость единицы сырья

1

2).

 

 

 

5

— стоимость единицы сырья

2

(продукция

2).

 

2

 

8

 

дополнительные затраты (продукция

).

7

(добавленная) — дополнительные затраты (продукция

1).

Ответы на вопросы:

1.Общая задача линейного программирования — это задача, в которой требуется найти максимум или минимум (оптимум) функции, называемой функцией цели, при ограничениях, заданных системой линейных неравенств или уравнений.

4

Типовые задачи линейного программирования:

Требуется выяснить, сколько и какой продукции необходимо произвести, чтобы при заданных стоимостях единицы продукции и размерах имеющихся ресурсов максимизировать выпуск продукции в стоимостном выражении.

Требуется выяснить, какова должна быть цена единицы каждого из ресурсов,чтобыпризаданном количестве ресурсови величине стоимости единицы продукции минимизировать общую стоимость продажи ресурсов (сырья), но получить при этом не меньшую прибыль, как если бы из проданных ресурсов была изготовлена продукция.

2.План — множество чисел, удовлетворяющих системе ограничений. Невырожденный опорный план — план, в котором ни одна переменная не равна нулю.

Вырожденный опорный план — план, в котором некоторые переменные равны нулю.

Оптимальный план — план, при котором функция цели обращается в максимум или минимум (в оптимум), в зависимости от условия задачи.

3.Решение прямой задачи определяет максимальную прибыль.

Решение двойственной задачи определяет минимизацию затрат на приобретение ресурсов.

4.Двойственность в линейном программировании.

Впрямойзадачеищетсямаксимумфункциицели,авдвойственнойзадаче

— минимум.

Коэффициенты при переменных в функции цели прямой задачи являются свободными членами системы ограничений двойственной задачи, и наоборот, свободные члены системы ограничений прямой задачи - коэффициентами при переменных в функции цели двойственной задачи.

В каждой задаче система ограничений задаётся в виде неравенств: при нахождении максимума функции цели (прямая задача) неравенства записываются со знаком «меньше или равно», а при нахождении минимума (двойственная задача) — со знаком «больше или равно».

Коэффициенты при переменных в системах ограничений описываются матрицами, которые являются транспонированными относительно друг друга. Матрица — матрица коэффициентов переменных системы ограничений прямой задачи, матрица — матрица коэффициентов переменных системы ограничений двойственной задачи.

Число неравенств в системе ограничений прямой задачи совпадает с числом переменных двойственной задачи.

Условия неотрицательности переменных сохраняются как впрямой,так и в двойственной задаче.

5