Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособиедля решения задач КР.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
956.42 Кб
Скачать

3. Безусловная оптимизация.

Безусловную оптимизацию проводим в «прямом» порядке – от 1-го к 3-му.

1) S1=D=5. В 1-е предприятие надо вложить х1*= х1(5)=2 млн.руб., в результате чего для 2-го и 3-го предприятий остается 3 млн. руб.

2). S2=3. Из сводной таблицы №3 условной оптимизации видим, что S2=3 соответствует х2(3) = 1. Значит, х2*= х2(3)=1.

Значит во 2-е предприятие надо вложить 1 млн. руб.

3). На 3-е предприятие останется S3=3-1=2.

Они принесут прибыль W3 (2) = 2,4 тыс. руб.

Следовательно, х3*= х3(2)=2.

Ответ: для получения максимальной прибыли в размере 6,4 млн. руб. необходимо в 1-е и 3-е предприятия вложить по 2 млн. руб., а во 2-е предприятие – 1 млн. руб.

Задача №5 Задача об оптимальном назначении.

Пусть имеются n работ и n кандидатов для выполнения этих работ. Назначение кандидата i на работу j связано с затратами (i, j=1,2,…,n). Требуется найти назначения кандидатов на все работы, дающие минимальные суммарные затраты, при этом каждого кандидата можно назначать только на одну работу и каждая работа может быть занята только одним кандидатом. Исходные данные представлены в таблице:

3

7

3

8

2

4

4

5

4

7

2

8

9

7

3

8

Решение.

Введем переменные (i,j=1,2,…,n), имеющие следующий смысл:

=1, если кандидат распределяется на работу ;

=0 — в противном случае.

Так как каждого кандидата можно назначать только на одну работу и каждая работа может быть занята только одним кандидатом, то введенные переменные должны подчиняться двум условиям (ограничениям):

для всех i =1,2,…,n;

для всех j =1,2,…,n.

Критерием оптимизации (целевой функцией) является суммарное время выполнения всех работ Y:

.

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

Для решения будем использовать венгерский метод. Основной принцип его – оптимальность решения задачи о назначении – не нарушается при уменьшении или увеличении элементов строки (столбца) на одну и ту же величину ( ). Решение считается оптимальным, если все измененные искусственно затраты (i,j=1,2,…,n) и можно подобрать такой набор , при котором

.

На основе исходных данных создадим таблицу 1:

Таблица 1

Аi

Bj

ai

di

B1

B2

B3

B4

A1

3

7

3

8

1

3

A2

2

4

4

5

1

2

A3

4

7

2

8

1

2

A4

9

7

3

8

1

3

bj

1

1

1

1

Алгоритм метода включает следующие основные этапы:

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

Таблица 2

Аi

Bj

ai

B1

B2

B3

B4

A1

0

4

0

5

1

A2

0

2

2

3

1

A3

2

5

0

6

1

A4

6

4

0

5

1

bj

1

1

1

1

dj

0

2

0

3

Аналогичные действия производятся для каждого столбца новой таблицы, и в результате получаем таблицу 3.

Таблица 3

Аi

Bj

ai

B1

B2

B3

B4

A1

0

2

0

2

1

A2

0

0

2

0

1

A3

2

3

0

3

1

A4

6

2

0

2

1

bj

1

1

1

1

1

  1. поиск оптимального решения. Необходимо рассмотреть сначала одну из строк таблицы 3, имеющую наименьшее число нулей. Выделим тот из нулей (тот, которому соответствуют наименьшие затраты времени по таблице 1) этой строки и зачеркнем все остальные нули этой строки и того столбца, в которых находится выделенный нуль. Аналогичные операции последовательно проводят для всех строк. Если назначения, которые получены при всех выделенных нулях, являются полными (то есть число выделенных нулей равно n), то решение оптимальное, в противном случае следует переходить к следующему этапу;

  2. поиск минимального набора строк и столбцов, содержащих нули. Для этого необходимо выделить:

    1. все строки, в которых не имеется ни одного выделенного нуля (строка 4 табл. 3);

    2. все столбцы, содержащие перечеркнутый нуль хотя бы в одной из выделенных строк (столбец 3 табл. 3);

    3. все строки, содержащие выделенные нули хотя бы в одном из выделенных столбцов (строка 3 табл. 3).

Действия пунктов b) и c) повторяются поочередно до тех пор, пока есть что выделять. После этого необходимо зачеркнуть каждую невыделенную строку и выделенный столбец (цель этого этапа – провести минимальное число горизонтальных и вертикальных прямых, пересекающих, по крайней мере, один раз все нули);

      1. перестановка некоторых нулей. Взять наименьшее число из тех клеток, через которые не проведены прямые (это число 2 табл. 3). Вычесть его из каждого числа не вычеркнутых столбцов и прибавить к каждому числу вычеркнутых строк. Получим таблицу 4:

Таблица 4

Аi

Bj

ai

B1

B2

B3

B4

A1

0

2

2

2

1

A2

0

0

4

0

1

A3

0

1

0

1

1

A4

4

0

0

0

1

bj

1

1

1

1

Эта операция не изменяет оптимального решения, после чего весь цикл расчета начинается с этапа два и продолжается до получения оптимального решения. В нашем случае число выделенных нулей оказалось равным 4, значит, назначение является полным, а решение – оптимальным.

Оптимальное решение может быть неединственным. Для нашей задачи минимальное значение целевой функции будет равно:

(используем затраты времени тех клеток, которым в табл. 4 соответствуют выделенные нули).

37