Автор работы: Пользователь скрыл имя, 20 Ноября 2011 в 18:12, контрольная работа
Информация о проекте задана перечнем работ, их продолжительностью и последовательностью.
Математическая постановка задачи:
– целевая функция,
m, n – количество задач и центров обработки соответственно,
; – каждая задача может решаться только в одном центре,
; – каждый центр может обрабатывать не более одной задачи,
–
матрица решения о
– матрица стоимости распределения.
Для
решения задачи составить программу
для заполнения матрицы С случайными
целыми числами, распределенными по равномерному
закону на интервале (26, 34).
Решение.
Текст программы для заполнения матрицы С случайными целыми числами, распределенными по равномерному закону на интервале (26, 34).
procedure
TForm1.Button1Click(Sender: TObject);
var i,j: integer; begin for i:=0 to 6 do for j:=0 to 6 do
StringGrid1.Cells[i,j]:= end; |
Итак,
1.
В каждом столбце матрицы С найдем минимальный
элемент и вычтем его из элементов столбца.
В
каждой строке матрицы найдем минимальный
элемент и вычтем его из элементов
строки.
Просматривая каждый столбец сверху вниз, отметим первый попавшийся ноль звездочкой. При этом должно выполняться условие, что в одной строке не может быть более одного 0* (второе ограничение при постановке задачи оптимизации). Получилась система независимых нулей – начальный (опорный) план.
1 | 1 | 0* | 5 | 5 | 7 | 4 |
0* | 2 | 2 | 4 | 1 | 3 | 0 |
10 | 2 | 6 | 0* | 1 | 6 | 3 |
7 | 0* | 2 | 0 | 0 | 6 | 0 |
8 | 3 | 6 | 1 | 5 | 0* | 6 |
11 | 0 | 2 | 2 | 1 | 1 | 5 |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
2. Проверим, равно ли число независимых нулей размерности задачи. Количество независимых нулей – 5 (размерность задачи – 7). Оптимальный план не найден.
3. Отметим столбцы, содержащие независимые нули плюсиком:
+ | + | + | + | + | ||
1 | 1 | 0* | 5 | 5 | 7 | 4 |
0* | 2 | 2 | 4 | 1 | 3 | 0 |
10 | 2 | 6 | 0* | 1 | 6 | 3 |
7 | 0* | 2 | 0 | 0’ | 6 | 0 |
8 | 3 | 6 | 1 | 5 | 0* | 6 |
11 | 0 | 2 | 2 | 1 | 1 | 5 |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
4. Среди невыделенных элементов найдем минимальный (h=0).
5. Выделим ноль, соответствующий h, штрихом. В одной строке с ним есть 0*. Отметим соответствующую строку плюсиком, а со столбца выделение снимем.
+ | + | + | + | ||||
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0 | |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0* | 2 | 0 | 0’ | 6 | 0 | + |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0 | 2 | 2 | 1 | 1 | 5 | |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
Повторим пункты 4 и 5.
+ | + | + | + | ||||
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0 | |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0* | 2 | 0 | 0’ | 6 | 0 | + |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0’ | 2 | 2 | 1 | 1 | 5 | + |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
0* в одной строке с 0’ нет.
6. Построим цепочку, начиная с последнего 0’, в которой будут чередоваться 0* и 0’. Причем, переход от 0’ к 0* – по столбцу, а от 0* к 0’ – по строке.
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0 | |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0* | 2 | 0 | 0’ | 6 | 0 | |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0’ | 2 | 2 | 1 | 1 | 5 | |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
Проведем замену в цепочке 0’ на 0* и наоборот. Произошло увеличение количества независимых нулей на 1. Выполним проверку оптимальности плана.
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0 | |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0 | 2 | 0 | 0* | 6 | 0 | |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0* | 2 | 2 | 1 | 1 | 5 | |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
7. Проверим, равно ли число независимых нулей размерности задачи. Количество независимых нулей – 6 (размерность задачи – 7). Оптимальный план не найден.
8.
Отметим столбцы, содержащие
+ | + | + | + | + | + | ||
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0 | |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0 | 2 | 0 | 0* | 6 | 0 | |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0* | 2 | 2 | 1 | 1 | 5 | |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
9. Среди невыделенных элементов найдем минимальный (h=0). Выделим ноль, соответствующий h, штрихом (0’). В одной строке с ним есть 0*. Отметим соответствующую строку плюсиком, а со столбца выделение снимем.
+ | + | + | + | + | |||
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0’ | + |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0 | 2 | 0 | 0* | 6 | 0 | |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0* | 2 | 2 | 1 | 1 | 5 | |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
Повторим пункт 9.
+ | + | + | + | ||||
1 | 1 | 0* | 5 | 5 | 7 | 4 | |
0* | 2 | 2 | 4 | 1 | 3 | 0’ | + |
10 | 2 | 6 | 0* | 1 | 6 | 3 | |
7 | 0 | 2 | 0 | 0* | 6 | 0’ | + |
8 | 3 | 6 | 1 | 5 | 0* | 6 | |
11 | 0* | 2 | 2 | 1 | 1 | 5 | |
8 | 6 | 5 | 0 | 5 | 1 | 6 |
Информация о работе Контрольная работа по "Проектирование АСОиУ"