ого грою називається математична модель взаємодії декількох сторін (гравців), в процесі якого вони не можуть формувати коаліції і координувати свої дії. Некооперативна гра в нормальній формі передбачає наступний порядок розігрування.
1. Гравці одночасно і незалежно один від одного вибирають з множин свої стратегії. Вектор стратегій усіх гравців являє собою ситуацію в грі.
. Кожен гравець отримує виграш, який визначається значенням функції, на цьому взаємодія між ними припиняється.
Нормальна форма гри описує статичну взаємодію гравців, що не передбачаючи можливості послідовних ходів, накопичення інформації про дії суперника і повторюваного взаємодії. Для моделювання цих аспектів використовується розгорнута форма гри. Некооперативна гра в розгорнутій формі з безліччю гравців представляється з використанням орієнтованого lt; # justify gt ;? початкова, яка надається коренем дерева (вершиною, яка не має вхідних ребер);
? проміжні, що мають вхідні і виходять ребра;
? термінальні, що мають тільки вхідні ребра.
Початкова й проміжні позиції утворюють безліч нетермінальних позицій. Для кожної вершини дерева, відповідної нетермінальному позиції, визначений гравець, що здійснює в ній хід і безліч ходів цього гравця. Кожному ходу s відповідає ребро, що виходить з вершини. Для обліку недосконалості інформації, наявної у гравців, нетермінальні вершини можуть об'єднуватися в інформаційні безлічі lt; # 22 src= doc_zip36.jpg / gt ;, відповідної термінальної позиції, визначені функції виграшу всіх гравців.
Гра передбачає наступний порядок розігрування:
. Гра починається з початкової позиції.
. У будь-якій нетермінальному позиції гравець, що має в ній право ходу, вибирає хід s, в результаті чого гра потрапляє в наступну позицію, в яку входить ребро, відповідне ходу S. Якщо ця позиція є нетермінальному, то повторюється п. 2.
. Якщо гра потрапляє в термінальну позицію?, То всі гравці отримують виграші, і гра завершується.
Принципи оптимальності Основним принципом оптимальності стратегій для некооперативної ігор в нормальній формі є рівновага Неша lt; # justify gt; Менш універсальними, використовуваними в окремих класах некооперативної ігор, є наступні принципи:
? е-рівновагу lt; # justify gt; Для некооперативної ігор у розгорнутій формі також використовуються принципи оптимальності, засновані на рівновазі Неша, але враховують специфіку динамічної взаємодії гравців. До основних з них відносяться:
? рівновагу, вчинене за під-іграм lt; # justify gt; 2. Реалізація логічної гри
2.1 Обгрунтування програмних засобів реалізації
При вирішенні поставленого завдання оптимально використовувати для подання інформаційних матеріалів мова Сі, яка є мовою високого рівня і дозволяє швидко і ефективно створювати додатки. Для реалізації програми була обрана середу Borland C ++, так як вона надає найбільш оптимальні можливості для програмування нескладної логічної гри. С ++ - це універсальна мова програмування, задуманий так, щоб зробити програмування приємнішим для серйозного програміста. За винятком другорядних деталей С ++ є надбезліччю мови програмування С. Крім можливостей, які дає С, С ++ надає гнучкі та ефективні засоби визначення нових типів. Використовуючи визначення нових типів, точно відповідають концепціям додатки, програміст може розділяти розроблювану програму на легко піддаються контролю частини. Такий метод побудови програм часто називають абстракцією даних. Інформація про типи міститься в деяких об'єктах типів, визначених користувачем. Такі об'єкти прості і надійні у використанні в тих ситуаціях, коли їх тип не можна встановити на стадії компіляції. Програмування з застосуванням таких об'єктів часто називають об'єктно-орієнтованим. При правильному використанні цей метод дає більш короткі, простіше розуміються і легше контрольовані програми. С ++ забезпечує повний набір операторів структурного програмування. Він також пропонує незвично великий набір операцій. Багато операцій С ++ відповідають машинним командам, і тому допускають пряму трансляцію в машинний код. Різноманітність операцій дозволяє вибирати їх різні набори для мінімізації результуючого поля.
С ++ підтримує покажчики, а не змінні і функції. Покажчик на об'єкт програми відповідає машинному адресою цього об'єкта. Допомогою розумного використання покажчиків можна створювати ефективно-виконувані програми, так як покажчики дозволяють посилатися на об'єкти тим же самим шляхом, як це робить машина. Сі ++ підтримує арифметику покажчиків, і тим самим дозволяє здійснювати безпосередній доступ і маніпуляції з адресами пам'яті.
У своєму складі С ++ містить препроцесор, який обробляє текстові файли перед компіляцією. Серед йог...