ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Цей віртуальний противник
         

     

    Інформатика, програмування

    Цей віртуальний противник

    Дмитро Сахань

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

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

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

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

    Постараюсь пояснити створення скелета тільки необхідних у грі психічних функцій розуму. Пояснення буду будувати на базі покрокової стратегії. У принципі, схожий скелет також підійде як для стратегій в реальному часі, так і для багатьох ігор жанру 3D-Action.

    Психічні функції

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

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

    Аферентні синтез

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

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

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

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

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

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

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

    Як видно з малюнка, місту не загрожує ніяка небезпека, а от персонажу "C" загрожує небезпека переважаючих сил противника. Персонаж "A" здатний взяти максимум золота. Крім того, персонажі "A" і "B" за один хід можуть прийти один одному на допомогу. Також існує спільна загроза віртуального супротивника, оскільки на карті існує на 1 солдатів більше ворожих сил. Думаю, не складно зробити висновок, що персонаж "A" потрібно відправити зібрати максимум золота для покупки/будівництва нового солдата. Персонаж "B" можна відправити слідом за персонажем "A", щоб на нього не хотів напасти близько що стоїть ворожий солдат. А ось персонажу "C" потрібно наказати виходити із зони небезпеки, тому що його сил не вистачить для битви.

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

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

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

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

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

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

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

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

    Прийняття рішень

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

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

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

    Моделювання дії і його виконання

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

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.sciteclibrary.ru

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status