# Огляд курсу "Python та штучний інтелект" --- ## задачі, де потрібні інтелектуальні рішення ---- ## задачі, де потрібні інтелектуальні рішення - логічні задачки - пазли - математичні задачки - стратегії в іграх - симуляція інтелекту --- ## мова, яку розуміє комп'ютер ---- ## мова, яку розуміє комп'ютер З мовами все не так просто ![](https://i.imgur.com/pcILbec.png) --- ## як працює вгадування персонажа ---- #### як працює вгадування персонажа ![](https://i.imgur.com/ILcWEbx.png) ---- #### як працює вгадування персонажа ![](https://i.imgur.com/Z5QJngA.png) ---- #### як працює вгадування персонажа - табличку не обов'язково заповнювати вручну - нехай юзери заповнюють цю табличку - але так, щоб вони самі про це не знали ---- #### як працює вгадування персонажа Секрет! - задаємо 10 питань, які ділять Y/N варіанти пополам - в цей момент ми вже знаємо персонажа - але задаємо ще 10 незв'язаних питань юзеру, щоб заповнити пропуски в табличці --- ## передбачення точки зустрічі ---- #### передбачення точки зустрічі Слідування (крива погоні) ![](https://i.imgur.com/OWRQqE7.png =600x) ---- #### передбачення точки зустрічі Математична модель ![](https://i.imgur.com/GxcR6Bm.png =600x) ---- #### передбачення точки зустрічі Програмний код для розрахунку точки зустрічі та напрямку вильоту ракети ППО ![](https://i.imgur.com/VI1ybW8.png =600x) --- ## еволюційні (генетичні) алгоритми ---- #### еволюційні (генетичні) алгоритми Ідея: робимо симуляції агентів з різними параметрами (так званий ДНК). Спочатку їх ДНК випадкові, вони рухаються по рандому. ![](https://i.imgur.com/J036dWy.png =600x) ---- #### еволюційні (генетичні) алгоритми Ідея: ті агенти, які краще всього рухаються (найближче до цілі), схрещуємо їх ДНК та створюємо новий набір агентів (нова популяція). ![](https://i.imgur.com/Vq3vDNH.png =400x) ---- #### еволюційні (генетичні) алгоритми Ідея: якщо повторити так багато разів, то в результаті залишаться агенти з ДНК, яка допомагає їм "виживати", тобто, виконувати поставлену задачу. ![](https://i.imgur.com/GVDK8pa.png =600x) --- ## перебір ходів ---- #### перебір ходів Будуємо дерево всіх можливих ходів, якщо це можливо. Чим глибше і ширше дерево --- тим більше випадків можна розглянути. ![](https://i.imgur.com/aFLy1MB.png) ---- #### перебір ходів Кожній ігровій позиції присвоюємо ціну. Ціна може складатись з вартості фігур, розміщень фігур та інших параметрів, головне щоб вийшло одне число --- додатнє або від'ємне. ![](https://i.imgur.com/nBp7m0A.png =400x) --- ## алгоритм Мінімакс ---- #### алгоритм Мінімакс - будуємо дерево, враховуючи не тільки свої ходи, а й ходи суперника - проставляємо ціну позицій на всіх листках цього дерева (останньому рівні) ![](https://i.imgur.com/dDg14Ox.png) ---- #### алгоритм Мінімакс - починаючи на листках, заповнюємо всі інші ціни позицій - принцип мінімакс: якщо наш хід, то максимізуємо виграш, якщо хід противника --- то мінімізуємо виграш. Це буде означати "вибираємо найкращий хід з найгірших" ---- ![](https://i.imgur.com/mQqIOUE.png) --- ## симуляція гри ---- #### симуляція гри Нам потрібне якесь середовище, де наш штучний інтелект буде працювати. Це може бути реальний робот (Arduino, RaspberryPi), але їх може бути довго і дорого будувати. ---- #### симуляція гри А ще роботи повільні, і тестувати ваш алгоритм на роботах займе багато часу. Набагато швидше робити програмні симуляції. Щоб всі тести були на комп'ютерів, без фізичних роботів. ---- #### симуляція гри Кожна комп'ютерна гра --- це міні-симуляція маленького світу, з своїми правилами та своїм штучним інтелектом. --- ## комбінаторика ---- #### комбінаторика Правило добутку ![](https://i.imgur.com/ViUy329.png) ![](https://i.imgur.com/H6Jrp1L.png) ---- #### комбінаторика Перестановки ![](https://i.imgur.com/qCOrGXU.png) ---- #### комбінаторика Комбінації ![](https://i.imgur.com/Yt2VgQ1.png) ![](https://i.imgur.com/4Q9tW96.png) --- ## рекурсія ---- #### рекурсія ![](https://i.imgur.com/B28r49Q.png) --- ## пошук шляху в прямокутній сітці ---- #### пошук шляху в прямокутній сітці Кількість можливих шляхів ![](https://i.imgur.com/C0ZIOUN.png) ---- #### пошук шляху в прямокутній сітці Манхеттенська та Евклідова відстані ![](https://i.imgur.com/IonTCl3.png) ---- #### пошук шляху в прямокутній сітці Мінімальна манхеттенська відстань в сітці з перешкодами ![](https://i.imgur.com/il3p1ux.png) ---- #### пошук шляху в прямокутній сітці Пошук шляху на дошці (починаючи з кінця, в порядку зменшення чисел) ![](https://i.imgur.com/A5xcxZ4.png) --- ## графи ---- #### графи ![](https://i.imgur.com/g1YXumR.png) ---- #### графи Graphviz --- мова для малювання графів (якщо немає ручки та листочка). ![](https://i.imgur.com/QqMvb3a.png) ---- #### графи Графи бувають різні ![](https://i.imgur.com/77x9wm2.png) ---- #### графи Представлення графа: список ребер ![](https://i.imgur.com/W8u3STW.png) ---- #### графи Представлення графа: список вершин та їх сусідів ![](https://i.imgur.com/zj0pe0n.png) ---- #### графи Представлення графа: матриця суміжності ![](https://i.imgur.com/FXbo4nz.png) --- ## пошук мінімального шляху в графі ![](https://i.imgur.com/V30dI3b.png) ---
{"metaMigratedAt":"2023-06-17T05:51:52.604Z","metaMigratedFrom":"Content","title":"Огляд курсу \"Python та штучний інтелект\"","breaks":true,"contributors":"[{\"id\":\"e587b3b3-f458-471f-8c10-88f5c3bd80d3\",\"add\":5298,\"del\":28}]"}
    650 views
   owned this note