Учебная работа. Контрольная работа: Исследование операций

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Контрольные рефераты

Учебная работа. Контрольная работа: Исследование операций

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

Нормоконтроллёр:

Плотникова Н. В. _______

«____» ___________ 2005 г.

Управляющий:

Плотникова Н. В. _______

«____» ___________ 2005 г.

Создатель:

Студент группы ПС-346

Нечаев Л. В. ___________

«____» ___________ 2005 г.

Работа защищена

с оценкой______________

«____» ___________ 2005 г.


Оглавление

задачка 1…………………………………………………………………………………………………………………………… 3

Условие……………………………………………………………………………………………………………………….. 3

Решение……………………………………………………………………………………………………………………… 3

Ответ: ………………………………………………………………………………………………………………………….. 5

Задачка 2…………………………………………………………………………………………………………………………… 6

Условие……………………………………………………………………………………………………………………….. 6

Решение……………………………………………………………………………………………………………………… 6

Ответ:…………………………………………………………………………………………………………………………… 8

Примечание:……………………………………………………………………………………………………………….. 8

задачка 3…………………………………………………………………………………………………………………………. 10

Условие……………………………………………………………………………………………………………………… 10

Решение……………………………………………………………………………………………………………………. 10

Ответ:…………………………………………………………………………………………………………………………. 14

Задачка 4…………………………………………………………………………………………………………………………. 15

Условие……………………………………………………………………………………………………………………… 15

Решение……………………………………………………………………………………………………………………. 15

Ответ:…………………………………………………………………………………………………………………………. 19

приложение 1……………………………………………………………………………………………………………….. 20

Перечень использованной литературы………………………………………………………………………….. 22

Задачка 1


Условие

Оператор связи оказывает 2 вида услуг:

1. Предоставление одной полосы телефонной сети общего использования (ТСОП) и трёх линий цифровой связи (ЦС);

2. Предоставление одной полосы ЦС и 2-ух линий ТСОП.

Стоимость услуг указана в табл. 1:

Таблица 1

ТСОП


ЦС


Стоимость



услуга 1


1


3


750



Услуга 2


2


1


600




Сети связи и эксплуатируемое оборудование накладывает последующие ограничения на количество применяемых линий связи:

ТСОП ≤ 300

ЦС ≤ 120

ТСОП+2*ЦС ≤ 380

Найти среднее соотношение услуг 1 и 2, которые оператор должен предоставлять для получения наибольшей выручки.


Решение

1. Обозначим за x1 количество оказанных услуг с номером `1′, а x2 – количество оказанных услуг с номером `2′.

2. Учтём ограничения задачки: .

3. Составим мотивированную функцию, которую необходимо максимизировать:

4. задачка сведена к последующей задачке линейного программирования: «Отыскать значения аргументов x1 и x2, при которых функция воспринимает наибольшее . Очевидно, x1≥0, x2≥0.

5. Решим выше представленную задачку графическим способом, потому что в задачке находятся лишь 2 переменные x1 и x2. Для этого:

Изобразим многоугольник решений в плоскости x2Ox1:


График представлен на рис. 1.

Сначала максимизации наибольшее задаёт направление возрастания мотивированной функции.

Среднее решение находится в точке (0; 95), находящейся на

пересечении прямых . Как следует, наибольшее , достигается при x1 = 0, x2 = 95.

Итак, для получения большей прибыли (57000 ед.) оператор связи должен не предоставлять услуг 1, а услуг 2 предоставить в количестве 95 штук.


Ответ:

– Не предоставлять yслуг #1

– Yслуг #2 предоставить в количестве 95 штук.



задачка 2
Условие

Решение задачки линейного программирования.

При помощи симплекс–таблиц отыскать решение задачки линейного программирования: найти экстремальное

где CT = [ c1 c2 . . . c6 ]T , ВT = [ b1 b2 . . . b6 ]T , XT = [ x1 x2 . . . x6]T , А= [aij] (i=1,6; j=1,3).

Таблица 2

c1


c2


c3


c4


c5


c6


b1


b2


b3


Знаки ограничений



1


2


3



4


-1


12


2


-1


0


2


13


16


=


=


=




a11


a12


a13


a14


a15


a16


a21


a22


a23


a24


a25


a26


a31


a32


a33


a34


a35


a36


Ext



-1


1


1


0


0


0


4


3


2


1


1


0


3


2


0


0


1


0


max





Решение

Составляем систему:

Мотивированная функция имеет вид

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

Пусть х1, х2 – вольные переменные, х3, х4, х5 – базовые.

Приведем систему и мотивированную функцию к обычному виду, для построения симплекс-таблицы:

Составляем симплекс-таблицу.

Это решение является допустимым, но не опорным, т.к. находится отрицательный вольный член во 2-ой строке. Ликвидируем его путём подмены базовых переменных на главные. В строке x4 находится отрицательный элемент a42=-2, как следует, столбец x2 – разрешающий. Меньшее отношение меж вольным членом и эл-том разрешающего столбца (см. поле «оценка») будет в первой строке и элемент a32 – разрешающий. Вышла таблица 3 (верхние числа).

Таблица 3

Базис


Вольный член


Переменные


Оценка



x1


x2



x3


2

2


-1

-1


1

1


2



x4


-7

4


3

-2


-2

2




x5


16

-4


3

2


2

-2


8



F


6

18


13

-9


-9

9





сейчас преобразуем таблицу по последующему методу:

1. Выделим разрешающий элемент aij;

2. Найдём оборотную ему величину λ=1/aij и запишем её в правом нижнем углу данной нам же ячейки;

3. Все элементы разрешающей строчки, не считая разрешающего элемента, умножим на λ и запишем понизу соответственной ячейки;

4. Все элементы разрешающего столбца , не считая разрешающего элемента, умножим на -λ и запишем понизу соответственной ячейки;

5. Выделим все верхние числа в разрешающей строке, и все нижние — в разрешающем столбце;

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

7. Перепишем таблицу, заменив переменные: элементы разрешающих строчки и столбца – значениями, стоящими в нижних частях этих ячеек; оставшиеся элементы – суммой чисел, стоящих в верхних и нижних частях ячеек.

Применительно к текущему шагу, разрешающий элемент a32, λ = 1 / a32 = 1. Опосля обозначенных выше преобразований, получим новейшую таблицу (табл. 4):

Таблица 4

Базис


Вольный член


Переменные



x1


x3



x2


2


-1


1



x4


-3


1


2



x5


12


5


-2



F


24


4


9




Решение опять не быть может опорным, т.к. находится отрицательный вольный член во 2-ой строке. Попытаемся устранить его путём подмены базовых переменных на главные. Но в строке x4 больше нет отрицательных частей, как следует, нереально избрать разрешающий столбец. Заметим, что в строке мотивированной функции нет отрицательных частей, означает среднее решение, в случае отмены ограничений на переменные, достигнуто. Ограничивающая система уравнений не имеет решений при неотрицательных значениях всех переменных.


Ответ:

Система уравнений несовместима в области положительных значений переменных.


Примечание:

Тот же итог получен и при решении данной задачки в пакете Mathematica:

Задачка 3


Условие

Решение транспортной задачки:

1. Записать условия задачки в матричной форме.

2. Найти опорный план задачки.

3. Найти лучший план задачки.

4. Проверить решение задачки способом потенциалов.

Таблица 5

B1


B2


B3


ai



A1


10


20


32


700



A2


12


50


25


600



A3


21


18


50


200



A4


25


15


23


200



A5


21


30


40


100



bj


300


700


1000





Решение

Заметим, что общее количество припасов (700+600+200+200+100=1800) меньше количества заявок (300+700+1000=2000), как следует имеем открытую транспортную задачку с излишком заявок. Добавим строчку с фиктивными припасами для дополнения задачки до задачки закрытого типа. Опосля корректировки получаем транспортную задачку с правильным балансом (табл. 6):


Таблица 6

B1


B2


B3


ai



A1


10


20


32


700



A2


12


50


25


600



A3


21


18


50


200



A4


25


15


23


200



A5


21


30


40


100



A6


0


0


0


200



bj


300


700


1000


2000




Найдём опорное решение способом меньших издержек (табл. 7):

Таблица 7

B1


B2


B3


ai



A1


10

300


20

400


32


700


-10 (2)



A2


12


50


25

600


600


-7 (7)



A3


21


18

200


50


200


-8 (4)



A4


25


15

100


23

100


200


-5 (5)



A5


21


30


40

100


100


-22 (8)



A6


0


0


0

200


200


18 (9)



Bj


300


700


1000


2000



0 (1)


-10 (3)


-18 (6)




Избранный план перевозок является допустимым, т.к. при нём все заявки удовлетворены и все припасы израсходованы, сумма перевозок по строке равна припасу соответственного пт отправления, а сумма перевозок по столбцу – заявке соответственного пт предназначения. Сумма припасов равна сумме заявок, и выражается числом 2000, стоящим в правом нижнем углу таблицы. Данное распределение является базовым (заполнено m+n-1=8 ячеек таблицы), как следует, задачка готова к решению.

Сначало Издержки на перевозку составят:

Составим матрицу оценок способом потенциалов:

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

Изменённые коэффициенты выписываются в виде матрицы оценок:

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

Продолжим оптимизацию (табл. 8). Составим цикл пересчёта для клеточки (5;2) и дадим поставку неё:

Таблица 8

B1


B2


B3


ai



A1


10

300


20

400


32


700



A2


12


50


25

600


600



A3


21


18

200


50


200



A4


25


15 —

100


23 +

100


200



A5


21


30 +


40 —

100


100



A6


0


0


0

200


200



Bj


300


700


1000


2000




В верхнем правом углу знаком «+» отмечаются те клеточки, поставки в которые увеличатся, а знаком «-» — те, в которые уменьшатся. Большая вероятная поставка, исходя из текущего цикла пересчёта равна min {100, 100, 100} = 100. Передвигаем её по циклу (табл. 9):

Таблица 9

B1


B2


B3


ai



A1


10

300


20

400


32


700


-10 (2)



A2


12


50


25

600


600


-7 (8)



A3


21


18

200


50


200


-8 (4)



A4


25


15

0


23

200


200


-5 (5)



A5


21


30

100


40


100


-20 (6)



A6


0


0


0

200


200


18 (9)



Bj


300


700


1000


2000



0 (1)


-10 (3)


-18 (7)




Опосля передвижения освободились сходу 2 клеточки, решение закончило быть базовым. Для того, чтоб оно осталось базовым, дадим фиктивную поставку в клеточку (4;2).

опять составляем матрицу оценок по вышеприведённому методу:

На текущем шаге клеток с отрицательной оценкой нет, как следует, аспект оптимальности выполнен.

Проверим решение при помощи способа потенциалов (табл. 10). Примем a1 = 0, тогда bj = cij – ai (для заполненных клеток). Если отысканное решение справедливо, то во всех пустых клеточках таблицы Δij = cij – (ai + bj ) ≥ 0, и Δij = 0 в заполненных клеточках. Получим последующую таблицу (в скобках показаны оценки клеток):


Таблица 9

B1


B2


B3


ai



A1


10 (0)

300


20 (0)

400


32 (4)


700


-10 (2)



A2


12 (5)


50 (33)


25 (0)

600


600


-7 (8)



A3


21 (13)


18 (0)

200


50 (24)


200


-8 (4)



A4


25 (20)


15 (0)

0


23 (0)

200


200


-5 (5)



A5


21 (1)


30 (0)

100


40 (2)


100


-20 (6)



Bj


300


700


1000



0 (1)


-10 (3)


-18 (7)




Условие Δij ≥ 0 производится, как следует, решение верное.


Ответ:

Таблица 10

B1


B2


B3


ai



A1


10

300


20

400


32


700



A2


12


50


25

600


600



A3


21


18

200


50


200



A4


25


15


23

200


200



A5


21


30

100


40


100



Bj


300


700


1000


1800/2000




Суммарные Издержки на перевозку составляют:


задачка 4
Условие

Решение задачки нелинейного программирования

Найти экстремум мотивированной функции вида

F = c11x12+c22x22+c12x1x2+b1x1+b2x2

при критериях

a11x1+a12x2<=>p1

a21x1+a22x2<=>p2 .

Данные размещаются в табл. 11.

1. Отыскать стационарную точку мотивированной функции и изучить ее (функцию) на неровность (вогнутость) в округах стационарной точки.

2. Составить функцию Лагранжа.

3. Получить систему неравенств в согласовании с аксиомой Куна-Таккера.

4. Используя способ искусственных переменных составить симплекс-таблицу и отыскать решение приобретенной задачки линейного программирования.

5. Отдать ответ с учетом критерий дополняющей нежёсткости.


Таблица 11

b1


b2


c11


c12


c22


extr


a11


a12


a21


a22


p1


p2


Знаки огр.



1


2



1


8


-1


0.5


-1


max


1


1


0


1


7


5







Решение

Мотивированная функция имеет вид:

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

,

1. Определим относительный максимум функции. Для этого нужны координаты стационарной точки .

,

Получили стационарную точку (1.6;4.4).

2. Исследуем стационарную точку на максимум, для чего же и определим вогнутость функции f.

,

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

3. Составим функцию Лагранжа:

Составим систему неравенств в согласовании с аксиомой Куна-Таккера.

А)Б)

Перепишем систему А:

A1).Вводим доп переменные v1, v2, w1, w2, превращающие неравенства системы А1 в равенства:

A2)

перепишем систему Б:

Б2)— условия дополняющей нежёсткости

Решим систему А2 при помощи способа искусственных переменных. в 1-ое и 2-ое уравнение системы А2.

Вводим псевдоцелевую функцию

базовые переменные: y1, y2, w1, w2

вольные переменные: x1, x2, v1, v2, u1, u2

Решаем эту задачку симплекс-методом при помощи таблиц и маленький программки на языке Си, текст которой приведён в Приложении 1.

Таблица 12

bi


x1


x2


u1


u2


v1


v2



y1


1

0.5


2

0.5


-0.5

-0.25


1

0.5


0

0


-1

-0.5


0

0



y2


8

0.25


-0.5

0.25


2

-0.125


1

0.25


1

0


0

-0.25


-1

0



w1


7

-0.5


1

-0.5


1

0.25


0

-0.5


0

0


0

0.5


0

0



w2


5

0


0

0


1

0


0

0


0

0


0

0


0

0



Y’


9M

0.75M


-1.5M

0.75M


-1.5M

-0.375M


-2M

0.75M


-1M

0M


1M

-0.75M


1M

0M





Таблица 13

bi


y1


x2


u1


u2


v1


v2



x1


0.5

1.1


0.5

0.03333


-0.25

0.1333


0.5

0.1667


0

0.1333


-0.5

-0.03333


0

-0.1333



y2


8.25

4.4


0.25

0.1333


1.875

0.5333


1.25

0.6667


1

0.5333


-0.25

-0.1333


-1

-0.5333



w1


6.5

-5.5


-0.5

-0.1667


1.25

-0.6667


-0.5

-0.8333


0

-0.6667


0.5

0.1667


0

0.6667



w2


5

-4.4


0

-0.1333


1

-0.5333


0

-0.6667


0

-0.5333


0

0.1333


0

0.5333



Y’


9.75M

8.25M


0.75M

0.25M


-1.875M

1M


-1.25M

1.25M


-1M

1M


0.25M

-0.25M


1M

-1M




Таблица 14

bi


y1


y2


u1


u2


v1


v2



x1


1.6


0.5333


0.1333


0.6667


0.1333


-0.5333


-0.1333



x2


4.4


0.1333


0.5333


0.6667


0.5333


-0.1333


-0.5333



w1


1


-0.6667


-0.6667


-1.333


-0.6667


0.6667


0.6667



w2


0.6


-0.1333


-0.5333


-0.6667


-0.5333


0.1333


0.5333



Y’


18M


1M


1M


0M


0M


0M


0M




Среднее решение:

y1=y2=u1=u2=v1=v2=0

x1=1.6

x2=4.4

w1=1

w2=0.6

Проверим условие дополняющей нежёсткости:

xi*vi=0

ui*wi=0

Условия производятся, как следует, x1=1.6, x2=4.4 являются решением начальной задачки kвадратичного программирования. Координаты стационарной точки совпадают с координатами, приобретенных в качестве ответа. Стационарная точка удовлетворяет условиям ограничений.


Ответ:

x1=1.6

x2=4.4

f(x1;x2) = 0


приложение 1

Для решения задачки #4 применена последующая программка на языке Си, скомпилированная gcc (GCC) 4.0.0 20050519 (Red Hat 4.0.0-8). Её текст приведён ниже:

#include <stdio.h>

#define x 7

#define y 5

double mc[x*y] =

{

1, 2, -0.5, 1, 0, -1, 0,

8, -0.5, 2, 1, 1, 0, -1,

7, 1, 1, 0, 0, 0, 0,

5, 0, 1, 0, 0, 0, 0,

9, -1.5, -1.5, -2, -1, 1, 1

};

double mt[x*y];

void mprint (double* m, int xs, int ys)

{

int i, j;

printf («n»);

for (j = 0; j < ys; j++)

{

for (i = 0; i < xs; i++)

{

printf («%10.4lg «, m[j*xs+i]);

}

printf («n»);

}

}

int main (void)

{

int i, j, i1, j1, it, jt;

double msx, msx1;

// Избираем разрешающий эл-т

nextmtx:

printf («nИсходная матрица коэффициентов:»); mprint (mc, x, y);

getch ();

msx = 10000.;

for (i = 0; i < x; i++)

{

if (mc[(y-1)*x+i] < 0)

{

// Может быть, найден разрешающий столбец

for (j = 0; j < y; j++)

{

// Отыскиваем меньшее отношение своб. члена к эл-ту разр. столбца

if (mc[j*x+i] < 1e-32)

continue; // Нулевой либо отрицательный

msx1 = mc[j*x] / mc[j*x+i];

if (msx > msx1) // Личное св.ч / р.эл

{

msx = msx1; // меньшее отыскиваем

it = i; jt = j; // координаты р.эл.

}

}

if (msx > 9999.) continue; // Нет положительных эл-тов

else // найден р.эл., mx != 0

{

i = it; j = jt; // его координаты

}

printf («n Разрешающий элемент: a(%d;%d) = %lg», j+1, i+1, mc[j*x+i]);

if (mc[j*x+i] > 0)

{

// Это и есть разрешающий элемент (s_el), находим оборотную величину

mt[j*x+i] = 1. / mc[j*x+i];

for (i1 = 0; i1 < x; i1++)

{

// Разрешающая строчка ( 1/s_el)

if (i1 == i) continue; // Пропустить сам s_el

mt[j*x+i1] = mt[j*x+i] * mc[j*x+i1];

}

for (j1 = 0; j1 < y; j1++)

{

// Разрешающий столбец (-1/s_el)

if (j1 == j) continue; // Пропустить сам s_el

mt[j1*x+i] = — mt[j*x+i] * mc[j1*x+i];

}

// удачно составлены разр. строчка и столбец.

// сейчас составляем другие коэфф-ты

for (j1 = 0; j1 < y; j1++)

{

if (j1 == j) continue; // Пропустить всю разреш. строчку

for (i1 = 0; i1 < x; i1++)

{

if (i1 == i) continue; // И столбец тоже

// Произведение нижней части столбца

// на высшую часть строчки

mt[j1*x+i1] = mt[j1*x+i] * mc[j*x+i1];

}

}

/*

* Всё. Готова матрица нижних значений, сейчас необходимо

* поместить всё на свои места в mc

*/

printf («nМатрица нижних значений:»); mprint (mt, x, y);

getch ();

for (j1 = 0; j1 < y; j1++)

{

for (i1 = 0; i1 < x; i1++)

{

if ((j1 == j) || (i1 == i))

{

/*

* Разрешающая строчка либо столбец

* просто ложим элементы в mc

*/

mc[j1*x+i1] = mt[j1*x+i1];

}

else

// по другому — сумму

mc[j1*x+i1] += mt[j1*x+i1];

}

}

// Всё готово к следующему шагу.

goto nextmtx; // след. матрица

}

// Этот эл-т не подступает, т.к. он отрицательный

}

// Если так и не было пригодного эл-та, то проверяем след. столбец

}

// отрицательны коэфф-тов при мотивированной ф-ции не найдено, как следует, решение нормально

printf («nОптимизировано. Ответ:»); mprint (mc, x, y);

return 0;

}

программка компилировалась командной строчкой:

gcc simplex.c -o simplex

, запускалась:

./simplex

и выдавала на консоль пошаговое решение задачки, которое было занесено в симплекс-таблицы (см. табл. 12-14) четвёртой задачки данной курсовой работы.


Перечень использованной литературы

1. Кремер Н. Ш., Путко Б. А., Трощин И. М. «Исследование операций в экономике» — М.: ЮНИТИ, 2004. — 407 с.

2. Плотникова Н. В. Курс лекций (ПС)

]]>