шатранџ.аи-лого

Теми на наставната програма

Наставната програма на проектот Shatranj.ai може да се пристапи преку лмс.шатранџ.аи

Подолу се дадени кратки резимеа на темите во наставната програма.

Лекција 1 – Опфат и приоритети на курсот

  • Го претставува проектот Shatranj.AI, неговите основи од Еразмус+, партнерските организации и дигиталните платформи.
  • Визија на проектот, контекст на Еразмус КА2
  • Партнерски институции и фокус на културното наследство
  • Преглед на платформи (уредувач, ЛМС, алатки за код)
  • Улоги на наставниците и резултати на учениците
  • Преглед на структурата на наставната програма
  • Вовед во Python/Jupyter

Лекција 2 – Вовед во компјутерство и поставување на Python

  • Студентите учат основни концепти за компјутерство и го поставуваат Python/Jupyter.
  • Основи на CPU, RAM и I/O
  • Бити, бајтови, бинарна репрезентација
  • Инсталација на JupyterLab
  • Прво извршување на Python ноутбук
  • Променливи, едноставни изрази
  • Пристап до папките на диск

Лекција 3 – Типови на податоци во Python

  • Ги опфаќа вградените типови на податоци во Python и основните операции.
  • Цели броеви, реални броеви, низи, булеански типови
  • Конверзија на тип
  • Списоци и индексирање
  • Концепти за променливост
  • Вежби со шаховски фигури како жици

Лекција 4 – Условни изрази, циклуси, контрола на текот

  • Воведува логика, циклуси и интерактивни програми.
  • Логика If/elif/else
  • Буленови операции
  • Циклуси For/while
  • Прекини/продолжи
  • Едноставни програми за внесување

Лекција 5 – Функции, опсег, параметри

  • Подучува модуларен код со функции.
  • Дефинирање функции
  • Параметри и враќања
  • Локален/глобален опсег
  • Ламбди
  • Мал функционален проект (калкулатор на вредноста по парче)

Лекција 6 – Датотеки, Исклучоци, Библиотеки, Тестирање

  • Работа со датотеки и робустен код.
  • Датотека: читање/пишување
  • Обиди/исклучи
  • Увоз на библиотеки
  • Едноставно тестирање
  • Ракување со невалидни влезни податоци

Лекција 7 – Објектно-ориентирано програмирање, класи, Трик-Трак-Тое

  • Прва средба со објектно-ориентирано програмирање.
  • Класи и објекти
  • Атрибути и методи
  • Моделирање на игри
  • Имплементација на Крешги
  • Отстранување грешки во објектно-ориентиран код

Лекции 8 – Претставување на шаховската табла и шатранџ

  • Таблични претстави за шах и шатрандж
  • Системи за координирање и стратегии за индексирање
  • Внатрешни структури на податоци за состојбата на таблата
  • UTF-8 и симболично прикажување на парчињата
  • Интеграција со уредувачи на табли и алатки за визуелизација

Лекции 9 – Движење на фигури, ажурирања на состојбата на играта и терминални услови

  • Правила за движење на фигурите во шахот и шатрандж
  • Генерирање на правни и псевдоправни потези
  • Ажурирање на состојбата на играта по потег
  • Откривање на проверка и нелегална самопроверка
  • Откривање на терминални состојби: мат и заглавување

Лекции 10 – Проблеми со пребарување и пречекување на граф

  • Формулирање на проблемот на пребарување: состојби, дејства, транзиции и цели
  • Графови и дрвја на државен простор
  • Пребарување со длабочина (DFS)
  • Пребарување со ширина-прв (BFS)
  • Пребарување со униформни трошоци (UCS)
  • Вежби за трасирање и визуелизација на графови
  • Едноставни примери со шаховска табла и мрежа

Лекции 11 – Евристичко пребарување и дрва на противнички игри

  • Хеуристички функции и информирано пребарување
  • Прифатливост и доследност
  • Пребарување А*
  • Опозициски пребарувања и дрвја на игри
  • Функции за евалуација на состојби во игра
  • Минимакс пребарување
  • Експектиминимакс за стохастички и неизвесни средини
  • Алфа-бета орезување и подобрувања на перформансите
  • Функции за евалуација на состојби во игра
  • Шаховски базирани противнички примери

Лекција 12 – Турнеја со коњ (Витезова турнеја)

  • Истражува витешкиот тур со рекурзија и хеуристики.
  • Кретање на графикот "Витез"
  • Отворени/затворени тури
  • Враќање назад со DFS
  • Варнсдорфова евристика
  • Поврзување со TSP

Лекција 13 – Загатка со осум кралици

  • Задоволување на ограничувања со бактрекинг.
  • Логика на напад на кралицата
  • Рекурзивно пребарување
  • Техники за оптимизација
  • Референци за историски кралици
  • Имплементации на тетратки

Лекција 14 – Пченица и шаховска табла проблем

  • Математички загатки и експоненцијален раст.
  • Дуплирање на шаховската табла
  • Моќи на 2
  • Преносливи загатки од типот на планината Фуџи што се користат на интервјуа, применети математички загатки
  • Магични квадрати
  • Логички загатки на Смуљанов
  • Проблеми со Knight плочките и други проблеми со плочките на мрежата

Лекција 15 – Минимакс, Алфа-Бета, Шаховска логика

  • Длабоко противничко пребарување и шаховски завршници.
  • Минимакс пресметка
  • Алфа-бета орезување
  • Опозиција, триангулација
  • Историски извори (Ал-Адли, Рети)

Лекција 16 – Дијамантот на Сули (Историска студија на завршница)

  • Историска анализа на шаховски завршни позиции, табеларни бази на завршници, динамичко програмирање, хеширање
  • Биографија на Ал-Сули
  • Реконструкција на завршницата
  • Опозиција и триангулација
  • Теорија на соодветни квадрати
  • Кодно решение со динамичко програмирање на илјадагодишната дилема во C/C++
  • Инспекција на решението на play.shatranj.ai и исто така преку ноутбуци и ASCII табли

Лекција 17 – Прилагодување на Stockfish за играње Шатранџ, Рибка–Дип Блу–Стокфиш приказна

Истражува како модерните шаховски мотори еволуираа и како моторите со отворен код можат да се прилагодат на историски варијанти.

  • Хардверско пребарување со брут-форс на Deep Blue
  • Рибка и подемот на моторите фокусирани на евалуација
  • Stockfish како отворен, заеднички погон
  • Како Stockfish ги претставува фигурите, потезите и правилата
  • Модифицирање на движењето на фигурите (ферз, вазир), евалуација, правила за законитост
  • Изградба на пребарување и евалуација компатибилни со Шатранџ

Лекција 18 – Основи на учење преку засилување: мрежен свет, динамичко програмирање и сложеност

Воведува учење преку засилување (RL) преку решавање на мала мрежна игра точно кога правилата се познати, а потоа покажува зошто овој “сè-знаечки” пристап не функционира за големи игри како шах.

  • Циклус агент–околина; состојби, дејства, награди, епизоди; фактор на дисконтирање γ.
  • Евалуација на политика (“лебдечки робот”) и итерација на вредноста (“лов на богатство”) со Белманови задни резервни копии.
  • Визуелна пропагација на вредноста и изведување оптимална политика од функцијата на вредноста.
  • Проклетството на димензионалноста: комплексност на просторот на состојби наспроти комплексност на дрвото на игри; мотивација преку Шенон-бројот.
  • Историски “џиновски игри” (на пр., шахот на Тимур, Го) како контекст за зошто е потребно учење.

Лекција 19 – Замрзнатиот дама: табеларно Q-учење на FrozenLake

Преминува од планирање кон учење: агентот започнува без мапа и учи политика преку обиди и грешки користејќи табеларно Q-учење.

  • Формулирајте го FrozenLake/Frozen Rook како MDP: S, A, R, P, терминални состојби, γ.
  • Правило за ажурирање на Q-учењето и ε-лакоморно истражување (распоред за истражување→експлуатација).
  • Обучете агент во Gymnasium FrozenLake; споредете детерминистички и лизгави транзиции.
  • Проверете што е научено преку Q-табеларни топлотни мапи / стрели на политика; прилагодете ги α, γ, ε и бројот на епизоди.
  • Лекции за скалирање: ретки награди, одложено признание и зошто поголемите мапи се потешки.

Лекција 20 – Мат со два топа против осамен крал: Практична примена на учење со временска разлика

Применува Q-учење на мал шаховски ендшпил и го прави RL кодниот базен “реален” со разделување на бележникот за експерименти од модулите за учење и обука.

  • Учење со временска разлика (TD): идентификувајте ја TD грешката во ажурирањето на Q-учењето; зошто се прават TD ажурирања за време на играта.
  • Зошто Монте Карло учењето е пребавно за игри слични на шах со одложена награда.
  • Инженерски стек: rl.py (Q-памет + TD ажурирање), trainer.py (циклус на епизоди, распоред за истражување), тетратка како лабораторија.
  • Кодирајте шаховски позиции како машински читлив статус (FEN) и обучете табеларен агент на ограничен простор на состојби во завршницата/загатка.
  • Ограничувања: зошто табеларните методи не успеваат за целосно шахот (проклетство на димензионалноста) и потребата од приближување на функции.

Лекција 21 – Длабоки Q-мрежи: Од Q-табели до невронски мрежи

Воведува приближување на функцијата за RL преку замена на Q-табелата со невронска мрежа (DQN) и ја применува на неколку мали друштвени игри.

  • Зошто Q-табелите не се скалираат: премногу состојби; генерализацијата бара модел што може да “нагаѓа” вредности за непознати позиции.
  • Циклус за обука на Deep Q-Network (DQN): буфер за повторување, целна мрежа, ажурирања во мини-групи, ε-загаснување.
  • Имплементирајте и експериментирајте со DQN на игри како Connect-4 (4Connect), Fox & Hounds и Othello/Reversi.
  • Дијагностика: криви на учење, проблеми со стабилноста (преценување, дивергенција) и практични ублажувања.
  • Споредете пристапи: DQN наспроти NNUE-стилска евалуација и рачно изработена евалуација (HCE) за да се дискутираат компромисите во архитектурата.

Лекција 22 – Монте Карло роулаутс и MCTS на Киркат

Изградува целосна Qirkat околина и потоа напредува од случајни лансирања до целосна Monte Carlo Tree Search (MCTS) со UCT селекција.

  • Применете го основниот скелет на правилата на Киркат (5×5 табла, C3 празен) и правилото за максимално заробување кое наметнува секвенци на заробување.
  • Генерација на движења што ги набројува линиите за фаќање, наметнува задолжително фаќање и филтрира до фаќања со максимална должина.
  • Основни линии на Монте Карло: случајни лансирања и рамна евалуација на движењата во Монте Карло пред додавање на повторна употреба на дрвото.
  • MCTS цевковод: селекција, проширување, воведување/евалуација, реверзна пропагација; UCT/број на посети конечен избор на потег.
  • Репродуцибилни записи од игра и алатки за ревизија за чекор-по-чекор репродукција и отстранување на грешки.

Лекција 23 – АлфаЗиро на Отело/Реверси

Го надградува MCTS во пребарување во стилот на AlphaZero со додавање на невронска мрежа која обезбедува политика-приор и проценка на вредноста, а потоа се тренира преку самоиграње.

  • Поврзете ја интуицијата со мала ‘Connect2’ демонстрација на AlphaZero, а потоа пренесете ги идеите во Отело.
  • Заменете UCT со PUCT: комбинирајте ги статистичките податоци од посетите со научена политика пред водење на истражување.
  • Глави на невронската мрежа: политика (веројатности за движење) и вредност (оценка на позиција) користени наместо случајни извршувања.
  • Циклус на AlphaZero: самоиграње → цели за обука (π, z) → ажурирање на мрежата → повтори; евалуирај преку турнирски натпревари/логови.
  • Кодирање на преместување свесно за патеката за секвенци за фаќање со променлива должина, за да различните патеки за фаќање останат одвоени.

Лекција 24 – AlphaZero на Qirkat: PUCT, мрежи на политика/вредност и самоигра

Го надградува MCTS во пребарување во стилот на AlphaZero со додавање на невронска мрежа која обезбедува политика-приор и проценка на вредноста, а потоа се тренира преку самоиграње.

  • Поврзете ја интуицијата со мала ‘Connect2’ демонстрација на AlphaZero, а потоа пренесете ги идеите во Qirkat.
  • Заменете UCT со PUCT: комбинирајте ги статистичките податоци од посетите со научена политика пред водење на истражување.
  • Глави на невронската мрежа: политика (веројатности за движење) и вредност (оценка на позиција) користени наместо случајни извршувања.
  • Циклус на AlphaZero: самоиграње → цели за обука (π, z) → ажурирање на мрежата → повтори; евалуирај преку турнирски натпревари/логови.
  • Кодирање на преместување свесно за патеката за секвенци за фаќање со променлива должина, за да различните патеки за фаќање останат одвоени.

Лекција 25 – Турски дама:

Алфа-Бета, MCTS водено од PUCT, Алфа Зеро

Имплементира турски дами и ја споредува класичната претрага (алфа–бета) со MCTS, користејќи повторно употреблив match runner и групни логови од симулации.

  • Играен мотор: претставување на табла, легални потези со повеќескочни зафати и кодирање на патеки на потези.
  • Функција за евалуација плус Negamax/Алфа-Бета агент за пребарување; компромиси помеѓу длабочина и сила.
  • MCTS агент за турско дама и директни споредби против алфа–бета.
  • Универзален алат за извршување на тестови (play_game) и групни симулациски алатки за репродуцибилни експерименти.
  • Извезувачки логови (збиени) за преглед и отстранување грешки во училница.