Исследование задачи оптимизации кооперации разработчиков (85652)

Посмотреть архив целиком

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ

УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА»

Филиал в г. Тольятти

Кафедра радиоэлектроники и системотехники





Курсовая работа по дисциплине

«Теория принятия решений»


По теме:

«Исследование задачи оптимизации кооперации разработчиков»


Реферат


Математическое моделирование задачи; задача линейного программирования; венгерский метод; пакет математических расчётов; ПЭР;

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

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

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

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


Содержание


Формулировка задачи

Введение

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

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

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

4. Решение задачи с использованием компьютерных средств

5. Формулировка полученного решения

Заключение

Литература


Формулировка задачи


Для новой конструкции самолета требуется разработать 6 приборных систем. Имеется 11 организаций, каждая из которых может выполнить разработку одной (любой) приборной системы. Поскольку затраты на разработку Сi (где i -номер типа системы) при этом неодинаковы, то они задаются табл. Требуется так распределить заказы, чтобы общие затраты на разработку всех приборных систем были минимальными.


Таблица 1 – условие задачи


1-я система

2-я система

3-я система

4-я система

5-я система

6-я система

Орг 1

5

6

3

5

4

4

Орг 2

3

1

7

5

1

6

Орг 3

7

2

7

8

4

2

Орг 4

8

9

2

2

3

9

Орг 5

6

5

7

1

7

7

Орг 6

8

1

6

8

4

2

Орг 7

6

7

4

5

10

7

Орг 8

4

5

7

9

4

7

Орг 9

3

7

9

3

7

6

Орг 10

3

6

7

3

5

4

Орг 11

7

8

7

6

4

6



Введение


Цель курсового проекта:

Проанализировать задачу и решить её самым оптимальным способом, то есть так распределить заказы, чтобы общие затраты на разработку всех приборных систем были минимальными.

Задачи:

  • исследовать особенности задачи распределения, минимизации затрат на разработку систем;

  • провести математическое моделирование данной задачи;

  • рассмотреть всевозможные методы решения;

  • выбрать метод решения;

  • протестировать решение задачи;

  • решить эту же задачу с помощью компьютерных средств;

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

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

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


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


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

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

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

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

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



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

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

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

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

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


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


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

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



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

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

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

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

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

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


Случайные файлы

Файл
72454-1.rtf
126315.rtf
46345.rtf
69250.rtf
ФЕР-44.doc




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.