Використання теорії ігор для вирішення змагальних завдань в умовах невизначеності

Класифікація економіко-математичних моделей. Математична модель оптимізаційної задачі. Локальний критерій оптимальності. Поняття теорії ігор. Матричні ігри двох осіб. Гра зі змішаними стратегіями. Зведення матричної гри до задачі лінійного програмування.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 22.10.2012
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

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

Рис. 2.6 Типи обмежень

Рис. 2.7 Вимоги до локального критерію оптимальності

Критерію оптимальності можуть бути прийняті як тільки ті показники, які піддаються обчисленню для кожного можливого варіанту з помилкою не більш 2-3%, інакше порівняння варіантів стають ненадійним.

Складність економічних процесів і явищ і інші відмічені вище особливості економічних систем утрудняють не тільки побудову математичних моделей, але і перевірку їх адекватності, істинності одержуваних результатів.

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

Якщо виробничі потужності підприємства достатні для повного задоволення потреб в продукції, що випускається, то при оптимізації вибирається як-

найкращий варіант організації виробництва і можливий локальний критерій оптимальності в цьому випадку - одержуваний прибуток.

Якщо об'єм виробництва заданий і не підлягає варіації, то при оптимізації критерієм можуть служити витрати (у вартісному виразі) або мінімум витрати якого-небудь дефіцитного ресурсу.

У природних науках достатньою умовою істинності результатів моделювання і будь-яких інших форм пізнання є збіг результатів моделювання із спостережуваними фактами. Категорія "практика" співпадає тут з категорією «дійсність». У економіці і інших суспільних науках що розуміються таким чином принцип "практика - критерій істини'4 більшою мірою застосовний до простих дескриптивних моделей, використовуваних для пасивного опису і пояснення дійсності (аналізу минулого розвитку короткострокового прогнозування некерованих економічних процесів і т.п.)

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

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

Ситуація ще більш ускладнюється коли ставиться питання про верифікацію моделей довгострокового прогнозування і Адже планування (як дескриптивних, так і нормативних) не можна ж 10-15 років і більш пасивно чекати настання подій, щоб перевірити правильність передумов моделі.

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

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

Внутрішня несуперечність передумов моделі перевіряється також шляхом порівняння один з одним одержуваних з її допомогою слідств, а також із слідствами "конкуруючих" моделей.

2.4 Етапи економіко-математичного моделювання

Розглянемо послідовність і зміст етапів одного циклу економіко-математичного моделювання.

1. Постановка економічної проблеми та її якісний аналіз.

Головна задача цього етапу - чітко сформулювати суть проблеми, допущення, що приймаються, і ті питання, на які вимагається одержати відповіді. Етап включає виділення найважливіших рис і властивостей модельованого об'єкту і абстрагування від другорядних; вивчення структури об'єкту, основних залежностей, що зв'язують його елементи; формування гіпотез (хоча б попередніх), що пояснюють поведінку і розвиток об'єкту.

2. Побудова математичної моделі.

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

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

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

В процесі побудови моделі здійснюється співставлення двох систем наукових знань - економічних і математичних. Природно прагнути до того, щоб одержати модель, що належить добре вивченому класу математичних задач. Часто це вдається зробити шляхом деякого спрощення початкових передумов моделі, які не спотворюють істотних рис модельованого об'єкту. Проте можлива і така ситуація, коли формалізація економічної проблеми приводить до невідомої раніше математичної структури. Потреби економічної науки і практики у середині XX в. сприяли розвитку математичного програмування, теорії ігор, функціонального аналізу, обчислювальної математики. Цілком ймовірно, що в майбутньому розвиток економічної науки стане важливим стимулом для створення нових розділів математики.

3. Математичний аналіз моделі.

Метою цього етапу є з'ясування загальних властивостей моделі, для чого застосовуються математичні прийоми дослідження. Найважливіший момент - доказ існування рішень в сформульованій моделі (теорема існування). Якщо вдасться довести, що математична задача не має рішення, то необхідність в подальшій роботі по первинному варіанту моделі відпадає; слід скоректувати або постановку економічної задачі, або способи її математичної формалізації. При аналітичному дослідженні моделі з'ясовуються такі питання, як. наприклад, чи єдине рішення, які змінні (невідомі) можуть входити в рішення, які співвідношення між ними, в яких межах і залежно від яких початкових умов вони змінюються, які тенденції їх зміни і т.д. Аналітичне дослідження моделі в порівнянні з емпіричним (чисельним) має ту перевагу7, що одержувані висновки зберігають свою силу7 при різних конкретних значеннях зовнішніх і внутрішніх параметрів моделі.

4. Підготовка початкової інформації.

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

5. Чисельне рішення.

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

Звичайно розрахунки по економіко-математичній моделі носять багатоваріантний характер. Завдяки високій швидкодії сучасних комп'ютерів вдається проводити Численні "модельні" експерименти, вивчаючи "поведінку" моделі при різних змінах деяких умов. Дослідження, що проводиться чисельними методами, може істотно доповнити результати аналітичного дослідження, а для багатьох моделей воно є єдино здійсненним. Клас економічних задач, які можна вирішувати чисельними методами, значно ширше, ніж клас задач, доступних аналітичному дослідженню.

6. Перевірка моделі па достовірність.

Після побудови моделі її слід перевірити на достовірність. Один з аспектів перевірки полягає у визначенні ступеня відповідності моделі реальному світу. Фахівець з науки управління повинен встановити - чи всі істотні компоненти реальної ситуації вбудовані в модель. Перевірка багатьох моделей управління показала, що вони не досконалі, оскільки не охоплюють всіх релевантних змінних. Природно, чим краще модель відображає реальний мир. тим вище її потенціал як засіб надання допомоги керівнику в ухваленні хорошого рішення, якщо припустити, що модель не дуже складна у використовуванні. Другий аспект перевірки моделі пов'язаний зі встановленням ступеня, в якій інформація, одержувана з її допомогою дійсно, допомагає керівництву співволодіти з проблемою.

7. Аналіз чисельних результатів та їх застосування.

На цьому завершальному етапі циклу встає питання про правильність і повноту результатів моделювання, про ступінь практичної застосовності останніх.

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

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

3. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ВИКОРИСТАННЯ ТЕОРІЇ ІГОР ДЛЯ ВИРІШЕННЯ ЗМАГАЛЬНИХ ЗАВДАНЬ

Теорія ігор вперше була систематично викладена Нейманом і Моргенштерном та оприлюднена лише 1944 року в монографії «Теорія ігор і економічної поведінки», хоча окремі результати були опубліковані ще в 20-х роках. Нейман і Моргенштерн написали оригінальну книгу, яка містила переважно економічні приклади, оскільки економічні задачі простіше за інші описати за допомогою чисел. Під час другої світової війни і одразу після неї теорією ігор серйозно зацікавились військові, які одразу побачили в ній математичний апарат для дослідження стратегічних проблем і підготовки рішень. Потім головна увага знову була звернута до економічних проблем. Нині сфера застосування теорії ігор значно розширилась. Так, у соціальних науках апарат теорії ігор застосовується у психології для аналізу торгових угод та переговорів, а також для вивчення принципів формування коаліцій тощо.

3.1 Основні поняття теорії ігор

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

За умов ринкової економіки все частіше мають місце конфліктні ситуації, коли два або більше колективів (індивідуумів) мають протилежні цілі та інтереси, причому результат дії кожної із сторін залежить і від дії супротивника. Класичним прикладом конфліктної ситуації в економіці є відношення продавець -- покупець (монополія -- монопсонія). Складніші ситуації виникають, коли в суперечці інтересів беруть участь об'єднання чи коаліції.

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

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

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

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

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

Існує дуже багато різних ігор. Прикладом «гри» в буквальному розумінні цього слова, передусім, є спортивна, карточна гра, шахи тощо. Від реальної конфліктної ситуації гра відрізняється не лише спрощеною формою, а також наявністю певних правил, за якими мають діяти її учасники. Дослідження таких формалізованих ігор звичайно не може дати чітких рекомендацій для реальних умов, проте є найзручнішим об'єктом для вивчення конфліктних ситуацій і оцінки можливих рішень з різних поглядів. Розраховані на основі ігрових моделей оптимальні плани не визначають єдино правильне рішення за складних реальних умов, проте слугують математично обґрунтованою підставою для прийняття таких рішень.

3.2 Класифікація ігор

математичний модель теорія гра

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

Якщо в грі беруть участь два гравці, то така гра називається парною (грою двох осіб). Часто у грі беруть участь багато сторін, тоді гра є множинною.

Залежно від кількості стратегій розрізняють скінченні та нескінченні ігри. Якщо кожен гравець має скінченну кількість стратегій, то гра -- скінченна, в іншому разі -- нескінченна.

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

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

3.3 Матричні ігри двох осіб

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

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

стратегії гравця В --

Результати (плата) за всіма можливими варіантами гри задаються спеціальними функціями, які залежать від стратегій гравців, як правило, у вигляді платіжної матриці.

Нехай

(3.1)

-- виграш гравця А;

(3.2)

-- виграш гравця В.

Оскільки гра з нульовою сумою, то

(3.3)

Тоді в разі, якщо то

Отже, мета гравця А -- максимізувати величину, а гравця В -- мінімізувати її. Нехай тобто маємо матрицю А:

(3.4)

де рядки відповідають стратегіям Аі, а стовпці -- стратегіям Bj.

Матриця А називається платіжною, а також матрицею гри. Елемент цієї матриці aij -- це виграш гравця А, якщо він вибрав стратегію Ai, а гравець В -- стратегію Bj.

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

Нехай гравець А вибрав стратегію Ai, тоді у найгіршому разі він отримає виграш, що дорівнює min aij, тобто навіть тоді, якщо гравець В і знав би стратегію гравця А. Передбачаючи таку можливість, гравець А має вибрати таку стратегію, щоб максимізувати свій мінімальний виграш, тобто

(3.5)

Така стратегія гравця А позначається і має назву максимінної, а величина гарантованого виграшу цього гравця називається нижньою ціною гри.

Гравець В, який програє суми у розмірі елементів платіжної матриці, навпаки має вибрати стратегію, що мінімізує його максимально можливий програш за всіма варіантами дій гравця А. Стратегія гравця В позначається через і називається мінімаксною, а величина його програшу -- верхньою ціною гри, тобто

(3.6)

Оптимальний розв'язок цієї задачі досягається тоді, коли жодній стороні невигідно змінювати вибрану стратегію, оскільки її супротивник може у відповідь вибрати іншу стратегію, яка забезпечить йому кращий результат.

Якщо

, (3.7)

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

Як правило, задачі теорії ігор, що моделюють реальні ситуації, мають значну розмірність. Тому важливим моментом дослідження платіжної матриці є способи її скорочення. Скоротити матрицю можна, якщо вилучити стратегії, про які наперед відомо, що вони є невигідними або повторюють одна одну.

Стратегії, яким відповідають однакові значення платіжної матриці (тобто матриця містить однакові рядки(стовпці)), називаються дублюючими. Якщо всі елементи і-го рядка (стовпця) платіжної матриці перевищують значення елементів j-го рядка (стовпця), то кажуть, що і-та стратегія гравця А (гравця В) є домінуючою над j-ою.

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

Вибір оптимальної стратегії для кожного з гравців ґрунтується на припущенні, що він буде діяти за найгірших для нього умов. Зрозуміло, що в даному разі вибір такої стратегії може не влаштовувати учасників гри. Нехай гравець А вибрав другу (максимінну) стратегію і притримується її. Допустимо, що гравцеві В став відомим вибір стратегії противника, тоді йому доцільно обрати третю стратегію, за якої виграш становитиме 7 одиниць. У свою чергу гравець А також знає про зміну стратегії гравця В на третю і вибирає першу стратегію, що дає йому змогу отримати виграш у сумі 8 одиниць і т. д. Можливість такого розвитку подій виникає тому, що мінімаксна та максимінна стратегії в даному разі не є стійкими. Тобто обставини, за яких обидва гравці використовують мінімаксну та максимінну стратегії, невигідні гравцям у тому разі, коли один з них змінює свою оптимальну стратегію.

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

Отже, в загальному випадку не можна стверджувати, що гра з сідловою точкою визначає стійкі оптимальні стратегії.

3.4 Гра зі змішаними стратегіями

Скінченні ігри, як правило, не мають сідлової точки. Якщо гра не має сідлової точки, тобто і то максимінно-мінімаксні стратегії не є оптимальними, тобто кожна із сторін може покращити свій результат, вибираючи інший підхід. Оптимальний розв'язок такої гри знаходять шляхом застосування змішаних стратегій, які є певними комбінаціями початкових «чистих» стратегій. Тобто змішана стратегія передбачає використання кількох «чистих» стратегій з різною частотою.

Ймовірності (або частоти) вибору кожної стратегії задаються відповідними векторами:

для гравця А -- вектор

де (3.8)

для гравця В -- вектор

де (3.9)

Очевидно, що

(3.10)

Виявляється, що коли використовуються змішані стратегії, то для кожної скінченної гри можна знайти пару стійких оптимальних стратегій. Існування такого розв'язку визначає теорема, яку наведемо без доведення.

Теорема (основна теорема теорії ігор). Кожна скінченна гра має, принаймні, один розв'язок, можливий в області змішаних стратегій.

Нехай маємо скінченну матричну гру з платіжною матрицею

(3.11)

Оптимальні змішані стратегії гравців А і В за теоремою визначають вектори і , що дають змогу отримати виграш:

(3.12)

Використання оптимальної змішаної стратегії гравцем А має забезпечувати виграш на рівні, не меншому, ніж ціна гри за умови вибору гравцем В будь-яких стратегій. Математично ця умова записується так:

(3.13)

З другого боку, використання оптимальної змішаної стратегії гравцем В має забезпечувати за будь-яких стратегій гравця А програш, що не перевищує ціну гри , тобто:

(3.14)

Ці співвідношення використовуються для знаходження розв'язку гри.

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

3.5 Зведення матричної гри до задачі лінійного програмування

Якщо гра 2 n або m 2 може бути розв'язана геометрично, то у випадку гри 3 n (m 3) геометрична інтерпретація переходить у простір, що ускладнює як її побудову, так і сприйняття. У випадку ж, коли n > 3, m > 3, геометрична інтерпретація взагалі неможлива. Для розв'язування гри m Ч n використовують прийом зведення її до задачі лінійного програмування.

Нехай розглядається парна гра зі стратегіями для гравця А та стратегіями для гравця В і платіжною матрицею . Необхідно знайти оптимальні змішані стратегії та , де , .

Знайдемо спочатку оптимальну стратегію гравця А. За основною теоремою теорії ігор така стратегія має забезпечити гравцеві виграш, не менший за ціну гри (поки що невідому величину) , за будь-якої поведінки гравця В.

Допустимо, що гравець А застосовує свою оптимальну стратегію, а гравець В -- свою «чисту» j-ту стратегію Bj, тоді середній виграш гравця А дорівнюватиме:

(3.15)

За цих обставин виграш має бути не меншим, ніж ціна гри. Отже, для будь-якого значення j величина має бути не меншою, ніж :

(3.16)

Розділивши всі обмеження на , отримаємо:

(3.17)

Позначивши маємо:

(3.18)

.

Враховуючи умову, що , отримуємо .

Необхідно зробити виграш максимальним. Цього можна досягти, коли вираз набуватиме мінімального значення. Отже, врешті маємо звичайну задачу лінійного програмування.

Цільова функція:

(3.19)

за умов:

(3.20)

.

Розв'язуючи цю задачу симплексним методом, знаходимо значення а також величину і значення , що є оптимальним розв'язком початкової задачі. Отже, визначено змішану оптимальну стратегію для гравця А.

За аналогією можна записати задачу лінійного програмування для визначення оптимальної стратегії гравця В. З цією метою позначимо:

(3.21)

Маємо таку лінійну модель задачі:

(3.22)

за умов:

(3.23)

Очевидно, що задача лінійного програмування для гравця В є двоїстою до задачі гравця А, а тому оптимальний розв'язок однієї з них визначає також оптимальний розв'язок спряженої.

4. ПРОГРАМНА РЕАЛІЗАЦІЯ ТА ЕКСПЕРИМЕНТАЛЬНЕ ДОСЛІДЖЕННЯ МЕТОДІВ ВИРІШЕННЯ КОНФЛІКТНИХ СИТУАЦІЙ

4.1 Предметна область і задачі, покладені на проектовану систему

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

Розроблене програмне забезпечення може бути застосоване в ході вивчення дисципліни «Математичне програмування і дослідження операцій».

При створенні програми приймалися до уваги наступні вимоги.

1. Оптимальний склад технічних засобів, при яких працює програма:

· ПК типу IBM PC або сумісний з ним, продуктивністю не менше 600 МГц;

· Оперативна пам'ять не менше 128 МГбайт;

· Монітор із SVGA адаптером;

· НЖМД не менше 4,3 Гбайт;

· Компакт-дисковий носій (CD);

· Клавіатура, маніпулятор типу "миша".

2. Програма не повинна мати прив'язки до апаратної частини для можливого переносу її на нову платформу через моральне старіння комп'ютерної техніки;

3. Програмна оболонка повинна мати інтуїтивно зрозумілий інтерфейс.

4.2 Математичний апарат

Основна ідея теорії ігор, полягає в наступному: будь-яка кінцева гра має, по крайній мірі, одне рішення, можливо у області змішаних стратегій. Застосування оптимальної стратегії дозволяє одержати виграш, що дорівнює ціні гри:, - ціна гри.

Застосування гравцем А оптимальної стратегії повинно забезпечувати йому виграш при будь-яких діях гравця В, не менше ціни C. Виконується співвідношення:

- вірогідність використання стратегії гравця А.

Аналогічно, для гравця В оптимальна стратегія повинна забезпечити при будь-яких стратегіях гравця А програш, не більше :

, - вірогідність використання стратегії гравця В.

Завдання має рішення, якщо її матриці не містять седлової точки ().

Одним з методів вирішення конфліктної ситуації двох гравців є метод Гурвіця.

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

Для ілюстрації практичного застосування даного методу скористаємося наступним завданням. Хай перший гравець - фірма А - розробила три види продукту. Конкуренти фірми - гравець В - з метою недопущення виходу на ринок даного продукту, використовують чотири стратегії боротьби.

Заповнимо платіжну матрицю вірогідністю того, що продукт фірми А витримає конкуренцію фірми В на ринку.

А1 ... Аn - стратегії гравця А;

В1 ... Вm - стратегії гравця В.

Таблиця 4.1

Платіжна матриця двох гравців

B

A

B1

B2

B3

B4

A1

0,8

0,9

0,6

0,7

A2

0,9

0,75

0,7

0,8

A3

0,4

0,7

0,5

0,6

На першому етапі вибираємо по рядках найменший виграш і заповнюємо колонку „а”:

Вибираємо по рядках найбільший виграші і заповнюємо колонку „А”:

Отримуємо наступну таблицю:

Таблиця 4.2

Мінімальні та максимальні виграші гравця А

B

A

B1

B2

B3

B4

Найменший виграш

a

Найбільший виграш

A

A1

0,8

0,9

0,6

0,7

0,6

0,9

A2

0,9

0,75

0,7

0,8

0,7

0,9

A3

0,4

0,7

0,5

0,6

0,4

0,7

Подальшим кроком є вибір коефіцієнта оптимізму, який змінюється в діапазоні і вибирається гравцем суб'єктивно. При спостерігається випадок крайнього песимізму, відповідний максимальному ризику, при - крайній оптимізм, тобто людина, що ухвалює рішення, думає, що її супроводитимуть украй сприятливі умови.

Нехай вибрані коефіцієнти оптимізму дорівнюють:

Знайдемо розрахункові виграші гравця А по формулі:

(4.1)

Розрахунки зведемо до таблиці.

Таблиця 4.3

Розрахункова таблиця гравця А

B

A

B1

B2

B3

B4

Найменший виграш

a

Найбільший виграш

A

Коефіцієнти оптимізму

б=0,3

б=0,5

б=0,7

A1

0,8

0,9

0,6

0,7

0,6

0,9

0,81

0,75

0,69

A2

0,9

0,75

0,7

0,8

0,7

0,9

0,84

0,80

0,76

A3

0,4

0,7

0,5

0,6

0,4

0,7

0,61

0,55

0,49

Серед знайдених умовних розрахункових виграшів знайдемо максимальний. Він дорівнює 0,84. Це означає, що оптимальною стратегією гравця А буде друга.

Для визначення оптимальної стратегії гравця В транспонуємо платіжну матрицю, знайдемо найбільший і найменший програш гравця В.

Також знайдемо розрахунковий програш гравця В по формулі:

(4.2)

Таблиця 4.4

Розрахункова таблиця гравця В

А

В

A1

A2

A3

Найменший програш

b

Найбільший програш

B

Коефіцієнти оптимізму

б=0,3

б=0,5

б=0,7

B1

0,8

0,9

0,4

0,4

0,9

0,75

0,65

0,55

B2

0,9

0,75

0,7

0,7

0,9

0,84

0,80

0,76

B3

0,6

0,7

0,5

0,5

0,7

0,61

0,55

0,49

B4

0,7

0,8

0,6

0,6

0,8

0,74

0,70

0,66

Серед знайдених умовних розрахункових програшів знайдемо мінімальний. Він дорівнює 0,49. Це означає, що оптимальною стратегією гравця В буде третя.

З 2-х оптимальних стратегій, знаходимо найбільший виграш:

(4.3)

а саме 0,84>(1-0,49=0,51). Отже гравець А вирішить конфліктну ситуацію з максимальним виграшем рівним 0,84, оптимальна стратегія якого друга.

4.4 Опис алгоритмів основних процедур та програмної реалізації

В загальному вигляді логіко-функціональну роботи системи можна представити наступним чином.

Рис. 4.1 Логіко-функціональна схема роботи програми

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

procedure TForm1.BitBtn1Click(Sender: TObject);

var i:integer;

begin

// робимо доступним прапорець „За замовченням”

cxCheckBox1.Enabled:=true;

Panel1.Width:=1; // ширина панелі, яка містить таблицю

Timer1.Enabled:=true; a:=0;

// визначення кількості строк та стовпців

StringGrid1.ColCount:=cxSpinEdit2.Value+1;

StringGrid1.RowCount:= cxSpinEdit1.Value+1;

// визначення ширини стовпців в пікселях

for i:=1 to cxSpinEdit2.Value do

StringGrid1.ColWidths[i]:=40;

// визначення висоти строк в пікселях

for i:=1 to cxSpinEdit1.Value do

StringGrid1.RowHeights[i]:=40;

// формування заголовків строк та стовпців

for i:=1 to cxSpinEdit2.Value do

StringGrid1.Cells[i,0]:='B'+inttostr(i);

for i:=1 to cxSpinEdit1.Value do

StringGrid1.Cells[0,i]:='A'+inttostr(i);

end;

Розроблена програма дозволяє формувати платіжну матрицю в двох режимах. Якщо обраний прапорець „За замовченням”, платіжна матриця формується на основі масиву констант.

procedure TForm1.cxCheckBox1Click(Sender: TObject);

var i,j:integer;

const //опис масиву констант

a: array [1..3,1..4] of extended =

((0.8,0.9,0.6,0.7),

(0.9,0.75,0.7,0.8),

(0.4,0.7,0.4,0.6));

begin

//якщо розмір платіжної матриці не за замовченням

if (cxSpinEdit1.Value<>3) or (cxSpinEdit2.Value<>4) then

begin

cxCheckBox1.Checked:=false;

exit //вихід з процедури

end;

if cxCheckBox1.Checked then //якщо прапорець „За замовченням” встановлений заносимо до таблиці елементи масиву констант

for i:=1 to cxSpinEdit2.Value do

for j:=1 to cxSpinEdit1.Value do

StringGrid1.Cells[i,j]:=floattostr(a[j,i])

else //якщо прапорець не встановлений - очищуємо таблицю

for i:=1 to cxSpinEdit2.Value do

for j:=1 to cxSpinEdit1.Value do

StringGrid1.Cells[i,j]:='';

end;

Далі наведений алгоритм та опис процедури, що відбувається при натисненні кнопки «Розрахунок».

Рис. 4.2 Алгоритм процедури формування платіжної матриці

procedure TForm1.BitBtn2Click(Sender: TObject);

var i,j:integer;

begin

//задаємо розміри панелі, що з'явиться при натисненні на кнопку

Panel2.Height:=221;

form1.Height:=537;

vmin:=0; vmax:=0;

ni:=0; nib:=0;

//визначення коефіцієнтів оптимізму

alfa1:=cxSpinEdit3.Value;

alfa2:=cxSpinEdit4.Value;

alfa3:=cxSpinEdit5.Value;

//формування платіжної матриці на основі таблиці

for i:=1 to cxSpinEdit2.Value do

for j:=1 to cxSpinEdit1.Value do

try

plat[j,i]:=strtofloat(StringGrid1.Cells[i,j]);

except

ShowMessage('Платежная матрица не сформирована!');

exit;

end;

Panel2.Visible:=true;

//викликаємо процедуру розрахунку виграшів гравця А

cxRadioButton3Click(sender);

cxRadioButton3.Checked:=true;

end;

Наведемо фрагменти алгоритмів процедури розрахунку виграшів гравця А.

Рис. 4.3 Алгоритм пошуку мінімальних та максимальних значень в строках платіжної матриці

Рис. 4.4 Алгоритм пошуку максимальних значень розрахункових виграшей

Загальний код процедури розрахунку виграшів гравця А наступний.

procedure TForm1.cxRadioButton3Click(Sender: TObject);

var i,j:integer;

max,min,v1,v2,v3:array[1..25] of real;

vmax1,vmax2,vmax3:real;

n1,n2,n3,nj:integer;

begin

Panel7.Visible:=false;

Panel8.Visible:=false;

//пошук мінімальних та максимальних значень в строках платіжної матриці

for i:=1 to cxSpinEdit1.Value do

for j:=1 to cxSpinEdit2.Value do

begin

if (j=1) or (max[i]<plat[i,j]) then max[i]:=plat[i,j];

if (j=1) or (min[i]>plat[i,j]) then min[i]:=plat[i,j];

end;

// формування масивів розрахункових виграшей для кожного зі значень коефіцієнтів оптимізму

for i:=1 to cxSpinEdit1.Value do

v1[i]:=alfa1*min[i]+(1-alfa1)*max[i];

for i:=1 to cxSpinEdit1.Value do

v2[i]:=alfa2*min[i]+(1-alfa2)*max[i];

for i:=1 to cxSpinEdit1.Value do

v3[i]:=alfa3*min[i]+(1-alfa3)*max[i];

//заповнюємо платіжну матрицю для гравця А

for i:=1 to cxSpinEdit2.Value do

for j:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[i,j]:=floattostr(plat[j,i]);

// вивід мінімальних значень по строкам

for i:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[cxSpinEdit2.Value+1,i]:=floattostr(min[i]);

// вивід максимальних значень по строкам

for i:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[cxSpinEdit2.Value+2,i]:=floattostr(max[i]);

// заповнюємо розрахункову таблицю гравця А

//для першого коефіцієнта оптимізму

for i:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[cxSpinEdit2.Value+3,i]:=floattostrf(v1[i],fffixed,5,2);

//для другого коефіцієнта оптимізму

for i:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[cxSpinEdit2.Value+4,i]:=floattostrf(v2[i],fffixed,5,2);

//для третього коефіцієнта оптимізму

for i:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[cxSpinEdit2.Value+5,i]:=floattostrf(v3[i],fffixed,5,2);

// пошук максимальних значень розрахункових виграшей

//для першого коефіцієнта оптимізму

for i:=1 to cxSpinEdit1.Value do

if (i=1) or (v1[i]>vmax1) then

begin

vmax1:=v1[i]; n1:=i;

end;

//для другого коефіцієнта оптимізму

for i:=1 to cxSpinEdit1.Value do

if (i=1) or (v2[i]>vmax2) then

begin

vmax2:=v2[i]; n2:=i;

end;

//для третього коефіцієнта оптимізму

for i:=1 to cxSpinEdit1.Value do

if (v3[i]>vmax3) or (i=1) then

begin

vmax3:=v3[i]; n3:=i;

end;

// визначення найбільшого значення розрахункового виграшу

if (vmax1>vmax2) and (vmax1>vmax3) then

begin

nj:=1; ni:=n1;vmax:=vmax1 end else if (vmax2>vmax1) and (vmax2>vmax3)

then begin nj:=2; ni:=n2;vmax:=vmax2 end else begin nj:=3; ni:=n3;vmax:=vmax3 end;

// вивід заголовку та таблиці на екран на спеціально призначеній панелі

cxLabel4.Caption:='Расчетная таблица игрока А';

cxLabel4.Style.Font.Color:=clred;

Timer2.Enabled:=true;

Panel4.Width:=1;

a:=0;

Panel4.Visible:=true;

StringGrid2.Visible:=false;

stringGrid2.ColWidths[0]:=30;

StringGrid2.RowHeights[0]:=30;

//визначенні кількості строк та стовпців таблиці

StringGrid2.ColCount:=cxSpinEdit2.Value+6;

StringGrid2.RowCount:= cxSpinEdit1.Value+1;

// завдання розмірів строк та стовпців

for i:=1 to cxSpinEdit2.Value do

StringGrid2.ColWidths[i]:=24;

for i:=1 to cxSpinEdit1.Value do

StringGrid2.RowHeights[i]:=26;

for i:=cxSpinEdit2.Value+1 to cxSpinEdit2.Value+3 do

StringGrid2.ColWidths[i]:=45;

for i:=cxSpinEdit2.Value+3 to cxSpinEdit2.Value+5 do

StringGrid2.ColWidths[i]:=50;

// формування заголовків стовпців та строк

for i:=1 to cxSpinEdit2.Value do

StringGrid2.Cells[i,0]:='B'+inttostr(i);

for i:=1 to cxSpinEdit1.Value do

StringGrid2.Cells[0,i]:='A'+inttostr(i);

StringGrid2.Cells[cxSpinEdit2.Value+1,0]:='min(a[i])';

StringGrid2.Cells[cxSpinEdit2.Value+2,0]:='max(a[i])';

StringGrid2.Cells[cxSpinEdit2.Value+3,0]:='alfa1='+floattostr(alfa1);

StringGrid2.Cells[cxSpinEdit2.Value+4,0]:='alfa2='+floattostr(alfa2);

StringGrid2.Cells[cxSpinEdit2.Value+5,0]:='alfa3='+floattostr(alfa3);

// вивід результатів - максимального виграшу та номеру оптимальної стратегії

panel6.Visible:=true;

cxLabel8.Caption:=floattostr(vmax);

cxLabel10.Caption:=inttostr(ni);

end;

Схожим чином проводиться розрахунок для гравця В.

procedure TForm1.cxRadioButton4Click(Sender: TObject);

var i,j:integer;

max,min,v1,v2,v3:array[1..25] of real;

vmin1,vmin2,vmin3:real;

n1,n2,n3,nj:integer;

pl:array[1..25,1..25] of real;

begin

Panel4.Visible:=false;

// вивід заголовку та таблиці на екран на спеціально призначеній панелі

cxLabel11.Caption:='Расчетная таблица игрока B';

cxLabel11.Style.Font.Color:=clblue;

Timer3.Enabled:=true;

Panel7.Width:=1;

a:=0;

Panel7.Visible:=true;

StringGrid3.Visible:=false;

//заповнюємо розрахункову матрицю

for i:=1 to cxSpinEdit1.Value do

for j:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[i,j]:=floattostr(plat[i,j]);

// визначення кількості строк та стовбців

StringGrid3.ColCount:=cxSpinEdit1.Value+6;

StringGrid3.RowCount:= cxSpinEdit2.Value+1;

// розміри строк та стовпців заголовків

stringGrid3.ColWidths[0]:=30;

StringGrid3.RowHeights[0]:=30;

//визначення розмірі строк та стовпців таблиці

for i:=1 to cxSpinEdit1.Value do

StringGrid3.ColWidths[i]:=24;

for i:=1 to cxSpinEdit2.Value do

StringGrid3.RowHeights[i]:=26;

for i:=1 to cxSpinEdit1.Value do

StringGrid3.Cells[i,0]:='A'+inttostr(i);

for i:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[0,i]:='B'+inttostr(i);

for i:=cxSpinEdit1.Value+1 to cxSpinEdit1.Value+3 do

StringGrid3.ColWidths[i]:=45;

for i:=cxSpinEdit1.Value+3 to cxSpinEdit1.Value+5 do

StringGrid3.ColWidths[i]:=50;

// формування заголовків таблиці

StringGrid3.Cells[cxSpinEdit1.Value+1,0]:='min(b[i])';

StringGrid3.Cells[cxSpinEdit1.Value+2,0]:='max(b[i])';

StringGrid3.Cells[cxSpinEdit1.Value+3,0]:='alfa1='+floattostr(alfa1);

StringGrid3.Cells[cxSpinEdit1.Value+4,0]:='alfa2='+floattostr(alfa2);

StringGrid3.Cells[cxSpinEdit1.Value+5,0]:='alfa3='+floattostr(alfa3);

// транспонуємо вихідну матрицю платежів

for i:=1 to cxSpinEdit1.Value do

for j:=1 to cxSpinEdit2.Value do

pl[j,i]:=plat[i,j];

// пошук максимального та мінімального програшу гравця В

for i:=1 to cxSpinEdit2.Value do

for j:=1 to cxSpinEdit1.Value do

begin

if (j=1) or (max[i]<pl[i,j]) then max[i]:=pl[i,j];

if (j=1) or (min[i]>pl[i,j]) then min[i]:=pl[i,j];

end;

// вивід значень максимального та мінімального програшів гравця В

for i:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[cxSpinEdit1.Value+1,i]:=floattostr(min[i]);

for i:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[cxSpinEdit1.Value+2,i]:=floattostr(max[i]);

// формування матриці розрахункових програшей гравця В

//для першого коефіцієнта оптимізму

for i:=1 to cxSpinEdit2.Value do

v1[i]:=alfa1*min[i]+(1-alfa1)*max[i];

//для другого коефіцієнта оптимізму

for i:=1 to cxSpinEdit2.Value do

v2[i]:=alfa2*min[i]+(1-alfa2)*max[i];

//для третього коефіцієнта оптимізму

for i:=1 to cxSpinEdit2.Value do

v3[i]:=alfa3*min[i]+(1-alfa3)*max[i];

// вивід розрахункової таблиці програшів

for i:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[cxSpinEdit1.Value+3,i]:=floattostrf(v1[i],fffixed,5,2);

for i:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[cxSpinEdit1.Value+4,i]:=floattostrf(v2[i],fffixed,5,2);

for i:=1 to cxSpinEdit2.Value do

StringGrid3.Cells[cxSpinEdit1.Value+5,i]:=floattostrf(v3[i],fffixed,5,2);

// пошук мінімального розрахункового програшу

for i:=1 to cxSpinEdit2.Value do

if (i=1) or (v1[i]<vmin1) then

begin

vmin1:=v1[i]; n1:=i;

end;

for i:=1 to cxSpinEdit2.Value do

if (i=1) or (v2[i]<vmin2) then

begin

vmin2:=v2[i]; n2:=i;

end;

for i:=1 to cxSpinEdit2.Value do

if (v3[i]<vmin3) or (i=1) then

begin

vmin3:=v3[i]; n3:=i;

end;

if (vmin1<vmin2) and (vmin1<vmin3) then

begin

nj:=1; nib:=n1;vmin:=vmin1 end else if (vmin2<vmin1) and (vmin2<vmin3)

then begin nj:=2; nib:=n2;vmin:=vmin2 end else begin nj:=3; nib:=n3;vmin:=vmin3 end;

// вивід результатів гравця В - мінімального програшу та номеру оптимальної стратегії

panel6.Visible:=false;

panel8.Visible:=true;

cxLabel14.Caption:=floattostr(vmin);

cxLabel16.Caption:=inttostr(nib);

cxLabel17.Visible:=true;

// визначення гравця, який вирішить конфліктну ситуацію

if vmax>(1-vmin) then

begin

cxLabel18.Caption:='Игрок А';

cxLabel18.Style.Font.Color:=clred

end

else

begin

cxLabel18.Caption:='Игрок B';

cxLabel18.Style.Font.Color:=clblue

end ;

cxLabel18.Visible:=true;

if vmax=(1-vmin) then

begin

cxLabel18.Visible:=false;

cxLabel17.Caption:='Игра не имеет решения';

end;

end;

4.5 Опис інтерфейсу користувача системи

Робоче вікно програми після її запуску має наступний вигляд:

Рис. 4.5 Робоче вікно програми після запуску

По-перше необхідно визначити кількість стратегій гравця А і гравця В. Після цього ми натискаємо на кнопку «Сформувати». При цьому стає доступним прапорець «За умовчанням». Цей режим передбачений демонстрації роботи програми. При цьому платіжна матриця формується на основі масиву констант.

Рис. 4.6 Вигляд сформованої платіжної матриці

Далі визначаємо коефіцієнти оптимізму, які можуть змінюватися в діапазоні від 0 до 1. Після натиснення кнопки «Розрахунок» на екрані з'являється додаткова область.

Рис. 4.7 Вид розрахункової таблиці гравця А

Як ми бачимо, тут відображені результати розрахунків, а також максимальний виграш і оптимальна стратегія гравця А. При виборі варіанту «Гравець В» вид екрану зміниться.

Рис. 4.8 Вид розрахункової таблиці гравця В

Тут ми побачимо мінімальний програш гравця В і його оптимальну стратегію. Також ми побачимо, який з гравців вирішить конфліктну ситуацію. Кнопка «Скидання» призначена для зміни вхідних параметрів і виконання повторних розрахунків.

5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

Метою даної дипломної роботи є розгляд особливостей використання теорії ігор для вирішення змагальних завдань в умовах невизначеності. Тема диплома є науковою та дослідницькою.

Розроблена в результаті експериментального дослідження програма може бути застосована в ході вивчення дисципліни «Математичне програмування і дослідження операцій».

В ході розробки програмного продукту було використане програмне забезпечення Turbo Delphi 2006 Explorer, яке є безкоштовним.

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

Оскільки середа розробки є безкоштовною, витрати на створення програмного продукту складаються з витрат по оплаті праці розробника програми і витрат по оплаті машинного часу при відладці програми:

Зспп=Ззпспп +Змвспп

де

Зспп - витрати на створення програмного продукту;

Ззпспп - витрати на оплату праці розробника програми;

Змвспп - витрати на оплату машинного часу.

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

Ззпспп=t*Tчас

Розрахунок трудомісткості створення програмного продукту.

Трудомісткість розробки програмного продукту можна визначити таким чином:

t= to+ tа+ tб+ tп+ tд+ tот,

де

to - витрати праці на підготовку опису завдання;

tа - витрати праці на розробку алгоритму рішення задачі;

tб - витрати праці на розробку блок-схеми алгоритму рішення задачі;

tп - витрати праці на складання програми по готовій блок-схемі;

tд - витрати праці на підготовку документації завдання;

tот - витрати праці на відладку програми на ЕОМ при комплексній відладці завдання.

Складові витрат можна виразити через умовне число операторів Q. У нашому випадку число операторів у відлагодженій програмі Q=950.

Розрахунок витрат праці на підготовку опису завдань.

Оцінити витрати праці на підготовку опису завдання не можливо, оскільки це пов'язано з творчим характером роботи, натомість оцінимо витрати праці на вивчення опису завдання з урахуванням уточнення опису і кваліфікації програміста:

to= Q*B/(75…85*K),

де:

B - коефіцієнт збільшення витрат праці унаслідок недостатнього опису завдання, уточнень і деякої недоробки, B=1,2…5;

K - коефіцієнт кваліфікації розробника, для тих, що працюють до 2 років K=0,8;

Коефіцієнт В приймаємо рівним 3.

Таким чином отримаємо:

to= 950*3/(78*0,8) = 45,67 (люд-год).

Розрахунок витрат праці на розробку алгоритму.

Витрати праці на розробку алгоритму рішення задачі:

tа = Q/(60…75*K)

tа = 950/(70*0,8)=16,96 (люд-год).

Розрахунок витрат праці на розробку блок-схеми.

Витрати праці на розробку блок-схеми алгоритму рішення задачі обчислимо таким чином:

tб= Q/(60…75*K)

tб = 950/(71*0,8)=16,73 (люд-год).

Розрахунок витрат праці на складання програми.

Витрати праці на складання програми по готовій блок-схемі обчислимо таким чином:

tп= Q/(60…75*K)

tп = 950/(72*0,8)=16,49 (люд-год).

Розрахунок витрат праці на відладку програми.

Витрати праці на відладку програми на ЕОМ при комплексній відладці завдання:

tот=1.5* tAот,

де tAот - витрати праці на відладку програми на ЕОМ при автономній відладці одного завдання;

tAот= Q/(40…50*K)

tAот = 950/(48*0,8)=24,74 (люд-год)

Звідси tот=1,5*24,74=37,11 (люд-год).

Розрахунок витрат праці на підготовку документації.

Витрати праці на підготовку документації по завданню визначаються:

tд= tдр+ tдо,

де

tдр - витрати праці на підготовку матеріалів в рукопису;

tдо - витрати на редагування, друк і оформлення документації;

tдр= Q/(150…200*K)

tдр = 950/(180*0.8) = 6,59 (люд-год)

tдо=0.75*tдр

tдо =0.75*6,59=4,95 (люд-год)

Звідси

tд=6,59+4,95=11,54(люд-год).

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

t= to+ tа+ tб+ tп+ tд+ tот,

t = 45,67+16,96+16,73+16,49+11,54+37,11 = 144,5 (люд-год).

Розрахунок середньої зарплати програміста.

Середня зарплата програміста в сучасних ринкових умовах може варіюватися в широкому діапазоні. Для розрахунку візьмемо середню годинну оплату праці програміста, яка складає Тчас.=10 грн/година. Це означає, що вартість розробки буде становитиму 1445 грн .

Витрати на оплату праці програміста складаються із зарплати програміста і нарахувань на соціальні потреби.

Єдиний внесок на соціальне нарахування становить 37,2%.

Тобто 1445грн*37,2%=537,54 грн

Звідси витрати на оплату праці програміста складають:

Ззпспп= 1445+537,54= 1982,54 грн.

Витрати на оплату машинного часу.

Витрати на оплату машинного часу при відладці програми визначаються шляхом множення фактичного часу відладки програми на ціну машино-години орендного часу:

Змвспп =Счас*tЕОМ,

де

Счас - ціна машино-години, грн/год;

tЕОМ - фактичний час відладки програми на ЕОМ;

Розрахунок фактичного часу відладки.

Фактичний час відладки обчислимо за формулою:

tеом = tп + tдо + tот ;

tеом =16,49 +4,95 +37,11 = 58,55 години

Розрахунок ціни машино-години.

Ціну машино-години знайдемо по формулі:

Сгод = Зеом/Теом,

де

Зеом - повні витрати на експлуатацію ЕОМ на протязі року;

Теом - дійсний річний фонд часу ЕОМ, год/рік.

Розрахунок річного фонду часу роботи ПЕОМ.

Загальна кількість днів в році - 365. Число святкових і вихідних днів - 114(10 святкових і 52*2- вихідні).

Час простою в профілактичних роботах визначається як щотижнева профілактика по 3 години.

Разом річний фонд робочого часу ПЕОМ складає:

Теом = 8*(365-114)-52*3=1852 год.

Розрахунок повних витрат на експлуатацію ЕОМ.

Повні витрати на експлуатацію можна визначити по формулі:

Зеом = (Ззп+ Зам+ ЗЕЛ+ Здм+ Зпр+ Зін),

де,

Ззп - річні витрати на заробітну плату обслуговуючого персоналу, грн/рік;

Зам - річні витрати на амортизацію, грн/рік;

ЗЕЛ - річні витрати на електроенергію, споживану ЕОМ, грн/рік;

Здм - річні витрати на допоміжні матеріали, грн/рік;

Зпр - витрати на поточний ремонт комп'ютера, грн/рік;

Зін - річні витрати на інші і накладні витрати, грн/рік.

Амортизаційні відрахування.

Річні амортизаційні відрахування визначаються по формулі:

Зам=Сбал*Нам,

де Сбал - балансова вартість комп'ютера, грн/шт.;

Нам - норма амортизації, %;

Нам =25%.

Балансова вартість ПЕОМ включає відпускну ціну, витрати на транспортування, монтаж устаткування і його відладку:

Сбал = Срин +Зуст ;

де

Срин - ринкова вартість комп'ютеру, грн/шт.,

Зуст - витрати на доставку і установку комп'ютера, грн/шт;

Комп'ютер, на якому велася робота, був придбаний за ціною Срин =5000 грн, витрати на установку і наладку склали приблизно 10% від вартості комп'ютера.

Зуст = 10%* Срин

Зуст =0.1*5000=500 грн.

Звідси, Сбал = 5000 +500 =5500 грн./шт.;

а Зам=5500*0,25= 1375 грн/год.

Розрахунок витрат на електроенергію.

Вартість електроенергії, споживаної за рік, визначається по формулі:

Зел = Реом * Теом * Сел * А,

де

Реом - сумарна потужність ЕОМ,

Теом - дійсний річний фонд часу ЕОМ, год/рік;


Подобные документы

  • Постановка задачі багатокритеріальної оптимізації та її та математична модель. Проблеми і класифікація методів вирішення таких задач, способи їх зведення до однокритеріальних. Метод послідовних поступок. Приклад розв'язування багатокритеріальної задачі.

    курсовая работа [207,3 K], добавлен 22.12.2013

  • Теоретичні основи та приклади економічних задач лінійного програмування. Розробка математичної моделі задачі (запис цільової функції і системи обмежень) і програмного забезпечення її вирішення за допомогою "Пошуку рішень" в Excel симплекс-методом.

    курсовая работа [993,9 K], добавлен 10.12.2010

  • Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.

    курсовая работа [437,9 K], добавлен 24.01.2011

  • Відомості з теорії графів, методи отримання точних розв'язків задачі їх розфарбування. Алгоритм розфарбування графу методом неявного перебору. Комп'ютерна реалізація розв’язку задачі розфарбування графів. Типові задачі та існуючі програмні продукти.

    курсовая работа [335,6 K], добавлен 15.06.2015

  • Використання графічного методу і симплекс-методу при вирішенні задач лінейного програмування. Сутність двоякого симплекс-методу і М-методу, приклади використання. Аналіз методу динамичного програмування. Специфіка вирішення матричної, антагоністичної гри.

    контрольная работа [1,1 M], добавлен 02.07.2011

  • Приклади застосування цілочисельних задач лінійного програмування у плануванні та управлінні виробництвом, геометрична інтерпретація їх розв’язків на площині. Завдання складання розкладу занять на математичному факультеті. Математична модель розкладу.

    дипломная работа [933,1 K], добавлен 23.09.2012

  • Задача лінійного програмування. Розв’язання задачі геометричним методом. Приведення системи рівнянь до канонічного вигляду. Розв’язання симплекс-методом. Розв’язок двоїстої задачі. Задача цілочислового програмування і дробово-лінійного програм.

    контрольная работа [385,2 K], добавлен 04.06.2009

  • Лінійне програмування як один з найбільш популярних апаратів математичної теорії оптимального управління рішень. Опис існуючих методів розв’язку задач лінійного програмування. Завдання, основні принципи, алгоритми і головна мета лінійного програмування.

    курсовая работа [363,8 K], добавлен 03.12.2009

  • Поняття експертної системи, приклади сфер її використання. Класифікація та задачі експертних систем. Означення продукційної експертної системи, приклад її дії та опис програми. Побудова бази знань із чіткою логікою, що вирішує завдання класифікації.

    лабораторная работа [712,5 K], добавлен 19.03.2011

  • Характеристика середовища програмування Microsoft Visual C++ та бібліотеки класів MFC. Знаходження коефіцієнтів при невідомих за допомогою методу найменших квадратів. Створення програми для вирішення задачі обраним методом, її алгоритм та інтерфейс.

    курсовая работа [434,8 K], добавлен 20.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.