Всі лабораторні роботи виконуються в системі NetLogo. (https://ccl.northwestern.edu/netlogo/). Допоміжний код і пояснення шукайте у лекціях http://rpubs.com/ignat/ За необхідності можете писати мені на пошту o.ignatenko@gmail.com з поміткою - номер групи, прізвище. Виконання лабораторних робіт оформлюється у док-файл (або пдф, tex …) в якому має бути описаний код з коментарями та скріншоти виконання в системі NetLogo + сама програма (файл .nlogo).
Буду перевіряти роботи на плагіат, тому робіть самостійно.
Лекції:
http://rpubs.com/ignat/308251 http://rpubs.com/ignat/308252 http://rpubs.com/ignat/308253
Розгляньте модель дорожного руху (Traffic Basic Adaptive). Створіть три полоси руху, в кожної машини є свій рівень швидкості, який є для неї комфортним (є швидкі і повільні машини). Якщо швидка машина змушена їхати за повільною, вона сигналить. У кожної машини є рівень “щастя”, яке залежить від комфортності швидкості і чи їй сигналять. Якщо машина нещаслива, то вона намагається з’їхати в іншу полосу.
Пожежа (forest fire). Додати довільний напрямок руху (може бути будь-який у градусах 0 - 360) і дві породи дерев. Одна порода дерев горить довше, інша краще розповсюджує вогонь навколо. Показати як вітер і відсоток дерев різних порід впливає на пожежу.
Модель сегрегації Шелінга (Segregation Simple). Додати вулиці і квартали (будинки) та побудувати взаємодію декількох етнічних груп з різним порогом толерантності один до одної.
Rumor Mill. Розглянути модель розповсюдження чуток. Додати тип людей з критичиним мисленням, які довіряють чуткам лише тоді, коли частина їх сусідів (більша за поріг) починає розповсюджувати чутки. Додати тип людей, які перевіряють чутки і починають переконувати оточуючих, що це неправда (в певному околі).
Лекції http://rpubs.com/ignat/311557 http://rpubs.com/ignat/313326
Потрібно розширити алгоритм обчислення функції ціни, який є у лекціях. В усіх варіантах потрібно додати ймовірності для виконання “основної дії” та “інших дій” з можливістю змінити їх через інтерфейс. Ви можете використовувати систему команд “вгору”, “ліворуч”, “праворуч”, “вниз” або “вперед”, “поворот праворуч”, “поворот ліворуч” на власний вибір.
Вихід з лабіринта в якому крім пустих клітинок, та стінок є ще вогняні ями (при потраплянні у них гра закінчується) і зелені клітинки “відпочинку” які дають невеликий бонус (менше ніж винагорода за вихід). Імплементувати розрахунок функції корисності та виходу з такого лабіринту.
Вихід з лабіринта в якому крім пустих клітинок, та стінок є телепорти, які з’єднані у пари - вхід в одну точку спричиняє вихід агента у іншій точці - плата за використання телепорта має задаватись користувачем. Імплементувати розрахунок функції корисності та виходу з такого лабіринту.
Вихід з лабіринта в якому крім пустих клітинок, та стінок є ще льодові катки для яких всі ймовірності виконання дій рівні (тобто виконуючи діє вгору ви з ймовірністю 0.25 можете потрапити вгору).
Виштовхування ящика. Створити “лабіринт” з зовнішніми стінками та одним виходом. В лабіринти випадково створюються агенти - черепашка та ящик. Потрібно виштовхати ящик у клітинку виходу (станом для функції корисності буде набір: координати черепашки + напрямок черепашки + координати ящика).
Лекції
Імплементувати свій варіант алгоритму генерації лабіринтів.
Aldous-Broder Algorithm
Wilson’s Algorithm
The Hunt-and-Kill Algorithm
The Recursive Backtracker Algorithm
джерело для інформації про алгоритми (наприклад): Jamis Buck Mazes for Programmers. Також є статті на хабрі, шукайте за назвою алгоритму.
Лекції
http://rpubs.com/ignat/434313 http://rpubs.com/ignat/436470
Застосування двох методів для розв’язання проблеми N ферзів.
Завдання: розв’язати проблему розташування N ферзів на довільній шаховій дошці методами DFS, Filtering, ABT, DB
DFS i ABT.
DFS i DB.
Filtering i ABT.
Filtering i DB.