Курсовая работа: Исследование задачи оптимизации кооперации разработчиков

- охарактеризовать полученный результат, сопоставив его с условием задачи ;

Актуальность:

Исследование методов решения является одним из быстро развивающихся направлений общей теории сложных систем. Многообразные методы исследования операций в настоящее время находят всё большее применение при проектировании, создании и эксплуатации автоматизированных систем управления, а также при решении сложных задач оптимизации технических и организационных систем. Вследствие этого необходимо изучать различные подходы при анализе и оптимизации операций, происходящих в сложных системах.


1. Математическое моделирование задачи

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

Введем следующие обозначения:

Cij – стоимость производства i-й системы j-й организацией.

Xi,j – переменная по факту назначения, то есть xij=1 только в том случае, когда i-ю систему назначают на производство j-й организации, так как организация может в качестве результата работы по данному проекту представить только одну систему, в остальных случаях переменная xij равна 0,тогда матрицу X можно из определения ее элементов назвать матрицей назначений.

Очевидно, что критерием этой задачи будут являться затраты необходимые для получения всего экспериментального модуля, то есть для совокупной стоимости шести систем.

Тогда можно записать математическую модель данной задачи:

В вышеприведенной системе :

· неравенство (1) – сумма по строкам в матрице назначений - гарантирует тот факт, что не может быть изготовлено более одной системы для модуля всеми предприятиями;

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

· Равенство (3) – сумма по всем элементам в матрице назначений контролирует число общих назначений на производство.

2. Обоснование и выбор метода решения

Основным методом решения задач класса задач о назначениях является венгерский метод. Он состоит из нескольких шагов:

1. Шаг предварительный: приведем матрицу затрат Cij к такому виду чтобы она была неотрицательной и в каждой строке и столбце был хотябы один нулевой элемент. Для этого в первом столбце матрицы найдем минимальный элемент и отнимем его от каждого элемента столбца, таким образом произведя

такие же преобразования над каждым столбцом получим некоторую неотрицательную матрицу С1ij. Анологичные операции совершаем над всеми строками матрицы С1ij. Получили неотрицательную матрицу D, у которой в каждой строке и каждом столбце есть 0.

2. Помечаем (некоторым знаком, например “*”) какой-нибудь нуль в первом столбце матрицы D, затем отмечаем нуль во втором столбце не лежащий в той же строке что первый (если такой нуль найдется) и так далее пока не пройдем все столбцы матрицы D. Если число отмеченных нулей равно числу столбцов в матрице D(пусть будет - n), то процесс поиска оптимального решения закончен – места занимаемые отмеченными нулями соответствуют n переменным xij равным 1.Но если же нулей оказалось меньше, то переходим к пункту 3.

3. Помечаем (например знаком “+” сверху) столбцы, где есть ноль со звездочкой, и считаем эти столбцы занятыми. Элемент матрицы назовем незанятым, если он стоит на пересечении незанятой строки и незанятого столбца, остальные элементы – занятые. Если в матрице нет незанятых нулей, то переходим к пункту 6. В противном случае выбираем первый из них (просматривая поочередно строки слева на право). Отмечаем его например штрихом – если в его строке нет 0*, то переходим к пункту 5. Если в его строке есть ноль со *, тогда переходим к пункту 5.

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

5. Начиная с только что отмеченного нуля со штрихом, строим цепочку из нулей от этого 0’ по столбцу к 0*, от него по строке к 0’ и т.д. пока это возможно. Цепочка оборвется на некотором 0’. Снимаем звездочки у нулей из цепочки и присваиваем их нулям со штрихами – так мы получили матрицу, где набор нуле со звездочкой стал больше предыдущего на 1 и является также правильным. Снимаем все пометки кроме звездочек и возвращаемся к пункту 1.

6. Отыскиваем минимальный элемент среди незанятых элементов матрицы и вычитаем его из всех незанятых строк и прибавляем ко всем занятым столбцам. Никакие пометки при этом не снимаются. Получается эквивалентная матрица и содержащая незанятые нули. Возвращаемся к пункту 2.

Так же задачу оптимального распределения и минимизации затрат можно решить с помощью пакета экономических решений PER.

Таким образом, данную задачу можно решить двумя методами – венгерским методом и с помощью пакета экономических решений PER.


3. Ручное решение задачи (венгерский метод)

Дана матрица стоимостей:

дополним её нулями до вида матрицы N x N. так, поступим по приведенному выше алгоритму:

Приведем ее к такому виду, что она содержала хотя бы по одному нулевому элементу в каждой строке и столбце:

К-во Просмотров: 242
Бесплатно скачать Курсовая работа: Исследование задачи оптимизации кооперации разработчиков