Розробка програмного забезпечення автоматизованого дослідження операції про оптимальну закупівлю обчислюваних засобів інформаційно-об

Автор: Пользователь скрыл имя, 01 Ноября 2012 в 01:45, курсовая работа

Описание работы

У теперішній час математичне програмування належить до числа найбільш інтенсивно використовуваних дисциплін прикладної математики. Так звані задачі математичного програмування (які полягають у знаходженні в заданій області точок найбільшого чи найменшого значення деякої функції, залежної від великого числа змінних) виникають у найбільш різноманітних сферах людської діяльності. Вони є найбільш актуальні в економічних дослідженнях, у плануванні та організації виробництва.

Содержание

Вступ………………………………………………………………………...……9
1. Теоретичні основи розробки програмного забезпечення автоматизованого дослідження операцій………………………………11
1.1 Завдання на розробку програмного забезпечення………………….…….11
1.2 Теоретичні основи методу…………..……………………..………………12
1.2.1 Загальні положення…………………….………………………………...12
1.2.2 Ознака оптимальності………………………………………………....…13
1.2.3 Метод послідовного поліпшення плану (І алгоритм)……..……….…..16
1.2.4 Загальні положення М-методу…………………………………………..19
1.2.5 Перший алгоритм М-методу………………………………………….....21
2. Розробка алгоритмічного та програмного забезпечення автоматизованого дослідження операцій…………………………….….……24
2.1 Алгоритмічне забезпечення автоматизованого дослідження операцій…………………………………………………………………...…….24
2.1.1Структура класів математичної моделі……………………………….…24
2.2 Програмне забезпечення автоматизованого дослідження операцій………………………………………………………..………………..27
2.2.1 Розробка головного меню…………………………………….……....…28
2.2.2 Опис екранних форм програмного продукту…….…………....…….…29
2.2.3 Опис використаних програмних засобів………………………..……....37
2.2.4 Відлагодження програмного забезпечення. Класифікація помилок…………………………………………………………………...….…40
2.2.5 Способи знаходження та усунення помилок…………………….…..…41
3 Використання розробленого програмного забезпечення для розв’язання задачі про оптимальну закупівлю обчислювальних засобів ІОЦ…………………………………………….…………………..….…..….….42
3.1 Постановка задачі дослідження операцій………..………………....…..42
3.1.1 Якісна постановка задачі дослідження…………………….………….43
3.1.2 Кількісна постановка задачі дослідження………………………….…44
3.1.3 Економічна інтерпретація задачі……………………………………...44
3.2 Формування вхідної інформації…………………………………………47
3.3 Описання процесу автоматизованого дослідження операції з використанням комп’ютеру…………………………………………….……48
3.4 Результати розрахунків з використанням ПО………………………...…49 3.4.1 Інтерпретація результатів розрахунків……………………………..….49
3.5 Дослідження області стійкості…………………………………..……….51
Висновок…………………………………………………………………….…53
Список джерел інформації…………………………………………...…….…55
Додаток А Алгоритм рішення ЗЛП М-методом(1 алгоритм)…………...…56
Додаток Б Діаграма класів……………………………………………….…..57
Додаток В Діаграма варіантів використання…………………………….…58
Додаток Г Структурно-функціональна схема операції…………………….59

Работа содержит 1 файл

записка укр.docx

— 3.20 Мб (Скачать)

Інтерфейс повинен бути простим  та зрозумілим користувачу. Необхідно  створити довідкову систему, яка  б надавала інформацію за кардою формою.

Програмне забезпечення повинно  бути загальнодоступним та не потребувати великої кількості ресурсів, а також швидко вирішувати поставлену задачу.

Мінімальні системні потреби:

- CPU Pentium 450Mhz;

- 96Mb оперативної пам'яті;

- 64Mb відеокарта;

- 100Mb вільного місця на жорсткому диску;

Рекомендовані системні потреби:

- CPU Pentium 600Mhz;

- 128Mb оперативної пам'яті;

- 96Mb відеокарта;

- 200Mb вільного місця на жорсткому диску.

 

    1. Теоретичні основи метода
      1. Загальні положення

Методи вирішення задач  лінійного програмування поділяються  на кінцеві та ітераційні. Кожен  з кінцевих методів дозволяє провести повне дослідження задачі за кінцеве число однотипних кроків (ітерацій). Ітеративні методи лінійного програмування являють собою нескінченні збіжні процеси обчислення оптимального плану задачі. Кожен крок ітеративного методу, як правило, значно простіше окремої ітерації кінцевого методу. Однак ітераційні методи дозволяють отримати рішення задачі з будь-якою раніше заданою точністю.

Метод послідовного поліпшення плану – це кінцевий метод, який зустрічається у практиці лінійного  програмування частіше за всіх. Основи методу були сформульовані Данцигом у 1947 році. У іноземній літературі з лінійного програмування метод  Данцига відомий як симплексний  метод. Така назва виникла з геометричного  тлумачення перших задач, до яких він  був застосований, та не відповідає сутності метода.

Ідея методу містить три  суттєвих моменти. По-перше, вказується спосіб обчислення опорного плану. По-друге, з’ясовується ознака, яка дозволяє з’ясувати, чи є обраний опорний  план оптимальним. По-третє, приводиться  спосіб, який дозволить за вибраним опорним планом збудувати інший  опорний план, більш близький  до оптимального. Доводиться, що таким  шляхом можна через кінцеве число  кроків отримати оптимальне план-рішення  задач лінійного програмування. Таким чином, метод полягає у  послідовному поліпшенні плану.

Необхідно відмітити, що алгоритми  методу дозволяють також у процесі  обчислення з’ясувати, чи можна розв’язати задачу лінійного програмування. Це означає, що у ході розрахунків можна  визначити, чи не є умови задачі суперечливими  та чи забезпечують вони обмеженість  її лінійної форми.       

      1. Ознака оптимальності 
        Приведемо ознаку оптимальності опорного плану – це необхідна та достатня умова того, що досліджений план є рішенням задачі лінійного програмування. У методі послідовного поліпшення плану доводиться оперувати не з довільними планами, а тільки з опорними.

Запишемо задачу лінійного програмування у канонічній формі. Необхідно обчислити максимум лінійної форми

за умов

Тут A=(A1,A2,…,An) – матриця умов, Aj та - відповідно вектори умов та вектор обмежень даної задачі, С = (с12,...,сп) – заданий вектор коефіцієнтів лінійної функції. Будемо вважати, що ранг матриці А дорівнює m. Надамо визначення опорного плану та його базису. 
План =(x1, ..., xn) задачі лінійного програмування, яка записана у канонічній формі, називається опорним, якщо система векторів умов Aj, відповідно до його додатних компонент (xj > 0), лінійно незалежна.

Базисом опорного плану ми назвали систему m лінійно незалежних векторів умов, яка включає до себе усі вектори Aj, що відповідають складовим опорного плану.

Компоненти опорного плану  відповідають векторам його базису, будемо називати базисними, а інші її складові – позабазісними.

Припустимо, що нам відомий  певний опорний план з базисом

Fs =(Asl,AS2,...,ASj,...,ASm). Подальше буде зручно характеризувати вектор базіка, окрім його номера Si, позицією i, яку він займає в розглядаємому базисі. Зафіксуємо довільний вектор умов Aj, та випишемо його розкладення за векторами базису ASl,AS2,...,ASi,...,ASm

Тут xij – це складова розкладення векторів Aj за векторами базису при векторі Asi, що розташований в i-й позиції базісу.

Введемо множину індексів Ix вектора базису опорного плану Х (Ix – множина номерів базисних змінних). Очевидно,

 

(поза базисні змінні  дорівнюють нулю).

Розкладання вектору обмежень за векторами базису можна також записати у вигляді:

Xi0=Xsi – базисна змінна, яка відповідає вектору As розташованому в i-й позиції базису. Позначивши вектор обмежень через А0 отримаємо загальну формулу

яка визначає складові розкладання  усіх векторів умов та вектора обмежень за векторами базису.

Складемо набори параметрів Zj та ∆j  j= за наступними формулами:

 

Параметри Zj та ∆j  визначаються опорним планом , який відповідає базису

Fs =(Asl,AS2,...,ASj,...,ASm). Щоб підкреслити це доречно було б позначити ці параметри відповідно через Zj(x) та j(x). Однак, не бажаючи ускладнювати записи будемо, де це можливо опускати індекс X при  Zj та ∆j.

У метод послідовного поліпшення плану параметри ∆j грають дуже важливу роль. Знаки параметрів дозволяють визначити чи є вибраний опорний план оптимальним.

Таким чином перша форма  ознаки оптимальності опорного плану  формулюється наступним чином. Опорний  план * є рішенням задачі, якщо

для усіх

      1. Метод послідовного поліпшення плану(1 алгоритм)

При застосуванні даного методу задачу ЛП необхідно представити у канонічній формі запису:

 

де =(х1,…,х2) – план задачі, =(b1,…,b2) – вектор обмежень, А=(1,…,n) – матриця умов, = (с12,...,сп) – вектор коефіцієнтів лінійної форми L. Окрім того необхідно вказати опорний план 0=(х10,…,хn0)задачі з базисом Fs ={Asl,AS2,...,ASm}. Послідовне просування за базисами опорних планів задачі до отримання оптимального базису – це і є ідея методу послідовного поліпшення плану. 

Перший алгоритм починається  з заповнення таблиці 1.1 для вихідного  базису Fs.

У перший стовпець таблиці  заносять номера позицій базису, у  другий стовпець – базисні компоненти CSi вектора , i=.

Таблиця 1.1 – Початкова  таблиця симплекс метода.

 

Стовпець Fs містить інформацію про номери S векторів умов  ASi , які належать Fs. Стовпчики A0, A1,…,An заповняють елементами матриці Х, яка визначається по формулі:

де  - розширена матриця умов, xi0 – базисні компоненти опорного плану 0, хij (i=, j=)- коефіцієнти розкладення векторів умов j за базисом Fs. Остання m+1 строчка заповнюється на основі інформації попередніх строчок

 Параметри  Xm+10=Z0=L(0) визначає значення функції цілі (,o) на опорному плані o. Рух до оптимальної вершини (перехід від вихідної таблиці до наступної) починається з встановлення наявності ситуації 1, для якої виконується умова:

Якщо серед ∆j нема негативних чисел, то опорний план, що було досліджено є оптимальним та процес розв’язання задачі припиняється. Якщо серед ∆j є від’ємні числа, то встановлюється ситуація 2 

для кожного від’ємного параметру ∆j. Якщо існує ∆j<0, Ωj=Ø, то задачу не можна розв’язати через необмеженість лінійної форми зверху на множені планів DM.

Якщо ситуація 2 не має  місця бути, тоді переходимо до ситуації 3, при якій можна перейти у  нову вершину DM , яка більш близька до оптимальної. Цей перехід починається з визначення k – номеру направляючого стовпчика таблиці, який задає номер вектора умов, що повинен увійти до базису. При визначення k можна реалізувати два методи.

Точний метод. У якості направляючого стовпця обирають той, на якому досягається найбільше прирощення ∆Lk цільової функції.

Приблизний метод. У якості направляючого стовпчика обирають той, на якому досягається найменше від’ємне значення ∆k.

Для знаходження r – номера направляючої строчки, який визначає номер Sr вектора умов Sr , виводимо з базису Fs пре переході у нову вершину, обчислюють Θ0

 та відшукують позиції базису, на яких досягається Θ0. Якщо Θ0 досягається на тільки на одному рядку таблиці, то він є направляючим рядком. Якщо Θ0 досягається на кількох рядках, то у якості направляючого рядка обирають той, якому у стовпчику Fs відповідає вектор умов з найменшим порядковим номером. Після знаходження номерів k та r формують базис F’S нового опорного плану ’0 заміною в Fs вектора умов Sr на k, та формують новий стовпчик S заміною CSr на Сk . Інші елементи стовпців  Fs та Cs таблиці лишаються колишніми.

Елементи нової матриці, яка відповідає новому опорному плану  ’0 з базисом F’S перераховуються по формулам:

де i=1,2,3,…, m+1, та j=0,1,2,…, n.

Знову отриманий опорний  план  ’0 беруть у якості початкової вершини, якій відповідає симплекс таблиця з елементами x’ij.

 

      1. Загальні положення М-методу

Для розв’язання задачі ЛП М-методом необхідно виконати наступні кроки:

   а) записати початкову задачу у канонічному вигляді;

   б) забезпечити невід’ємність вектора обмежень шляхом множення лівої та     правої частин і-ї умови задачі, для якої bi<0, на мінус одиницю;

   в) побудувати  допоміжну задачу (М-задачу)

де Im – одинична матриця розміром m×n,  m =(xn+1,…, xn+m) – невід’ємний вектор штучних змінних xn+i, i=, М-додатне число, яке перевищую за величиною будь-яке інше число порівняне з ним.

   г) розв’язати задачу методом послідовного поліпшення плану (1, 2 алгоритм), взявши у якості вихідного одиничний базис Fs*={n+1,…,n+m} опорного плану 0 =(0,). При розв’язанні задачі необхідно мати на увазі, що величина М не фіксована та ∆j є функціями параметра М. У зв’язку з цим необхідно:

    1. Вектор коефіцієнтів лінійної форми представити у вигляді лінійної     залежності від М.

де 

    2.При обчисленні та аналізі використовувати їх лінійну незалежність

   3.Знаки параметрів ∆j визначають на основі знаків параметрів αj  βj залежності

Якщо у процесі розв’язання  задачі виникла ситуація 2, то задачу не можна розв’язати через необмеженості L зверху. У протилежному випадку знаходять оптимальний план ** та оптимальний базис Fs** задачі.

  д) здійснити аналіз рішення М-задачі, встановивши, який з трьох можливих випадків присутній.

Випадок 1. Усі xn+i**   = 0, i=, FS0∩FS**=Ø. У цьому випадку **=(x1**,…,xn**) є рішенням задачі з оптимальним базисом Fs*=Fs**. Значення задачі буде β0=(,*).

Випадок 2. Усі xn+i**   = 0, FS0∩FS**≠Ø. У цьому випадку * є вироджений опорний план задачі з кінцевим числом оптимальних базисів F. У якості Fs* беруть будь-який з них, якій задовольняє умові FS0∩FS**=Ø.

Випадок  3. Серед xn+i** є строго додатні числа. У цьому випадку задачу не можна розв’язати через несумісність умов.

      1. Перший алгоритм М-методу

При вивченні першого алгоритму  М-методу слід мати на увазі, що він  являє собою перший алгоритм метода послідовного полібшення плану, модифікований  з урахуванням особливостей М-задачі.  Для розв’язання задачі першим алгоритмом М-методу необхідно виконати наступні етапи:

   а) записати вихідну  задачу у канонічній формі  та забезпечити невідємність  вектора обмежень;

   б) побудувати М-задачу  з матрицею умов (A, Im), вектором обмежень , вектором коефіцієнтів лінійної форми ,  які мають n+m компонент;

   в) заповнити   таблицю М-задачі для одиничного базису FS={An+1,…,An+m};

Таблиця 1.2 – Вихідна тоблиця  М-метода.

При заповненні таблиці слід мати на увазі, що матриця Х  коефіцієнтів розкладань співпадає з матрицею (b,A,Im), s(M)=Ms+s ,∆j визначається у відповідності з α0=s, β0=s.

   г) перевірити наявність ситуації 1, для якої ∆М ≥ 0, j=. Якщо ситуація 1 має місце, то оптимальний план задачі лінійного програмування знайден, інакше переходять до етапу «д»;

   д) перевірити наявність  ситуації 2, для якої існує ∆j(M) < 0 та Ωj = Ø. Якщо ситуація 2 має місце, то процес розв’язання М-задачі припиняється та робиться висновок про те, що вихідна інформація не може бути розв’язана через необмеженість L зверху. У протилежному випадку переходять до пункту «е».

   е) застосовуючи  точний чи приблизний метод  знаходять k – номер направляючого стовпчика;

Информация о работе Розробка програмного забезпечення автоматизованого дослідження операції про оптимальну закупівлю обчислюваних засобів інформаційно-об