Методы искусственного интеллекта

Проект, посвященный физике, логике и машинному разуму (вики-версия). В теме искусственный интеллект и компьютерные науки теоретические вопросы, программный код на JavaSript и интерактивные примеры, встроенные в html-страницу.

## Структуры данных

JavaScript для ИИ (Введение, Hello world, html - файл, Типы данных, Строки, Функции, Объекты и классы, Канвас, О памяти и указателях, Быстродействие), Рекурсия (Вычисление факториала, Задача про 8 ферзей, Расстановка ферзей, Разделяй и властвуй, Числа Фибоначчи, Динамическое программирование, Упаковка рюкзака, Рекурсия без рекурсии), Метод грубой силы (Задача коммивояжёра, Генерация перестановок, Запускаем перебор, Не рекурсивный способ, Создаём таймер, Воспроизводимые случайные числа, Матрица расстояний, Рисуем на канвасе, Перебор в таймере, Результат), Списки (Cписки как массивы, Класс List, Методы класса List, Вставка элементов, Удаление элементов, Ещё немного функций, Упорядоченная вставка, Нефиктивные указатели, Двухсторонние списки, Тестирование быстродействия, Работа со списками), Бинарные деревья (Поиск данных, Стандартный класс Map
Класс BSTree, Бинарный поиск, Сбалансированность дерева, Быстродействие), Приоритетная очередь (Класс Queue, Добавление элемента в очередь, Выталкивание элемента из очереди), Деревья (Структура, Вывод дерева, Копирование деревьев, Генерация деревья, Деревья как функции, Дерево как файловая система, Функция getANSII, Реализация getGIF, Графическое svg-представление, Справочник), Графы (Представление графов, Немного определений, Генерация больших графов, Класс Graph (Создание и изменение графов, Информация о графе, Алгоритмы на графе, Отображение графа)), Редактор графов, Длительные вычисления

## Поиск

Пространство состояний (Система и её состояние, Описание состояния, Пространство ханойских башен, Пространство пятнашек, Дерево решения), Поиск на деревьях (Введение, Поиск в глубину, Поиск в ширину, Поиск с итеративным углублением, Анимирование поиска, Сравнение быстродействия), Поиск на графах (Поиск пути, Система и искатель, Организация поиска, Поиск в ширину, Направленный поиск, Свойства эвристик, Встречный поиск, A\* алгоритм, IDA\* алгоритм), Пятнашки (Задача, Класс Fifteen), Эвристики в пятнашках (Эвристика, Восьмушки, Примеры эвристик, Сравнение эвристик), ..., Ханойские башни (Задача, Рекурсивное решение, Разделяй и властвуй, Структура данных, Рисуем башни, Таймер, Взаимодействие с мышкой, Нерекурсивное решение, Стековое решение, Финальный результат)

## Линейное программирование

Задача коммивояжёра (Постановка задачи, Евклидова задача коммивояжёра, Методы решения, Немного истории, Полезные ресурсы), Класс Salesman для задачи коммивояжёра (Класс Salesman, Генератор расстояний, Карта городов, Длительные вычисления, Полный перебор, Вставка в html-страницу), Эвристики в задаче коммивояжёра (Введение, Жадный алгоритм, Метод шнурка, Перестановка соседей, Перестановка пар, Частичный перебор), Нижняя граница длины пути (Введение, Геометрические соображения, Линейное программирование, Оценка по матрице, Оценка оставшейся длины пути, Сравнение методов), Поиск с возвратом (Функция backInit, Функция backTimer), Метод ветвей и границ (Дерево перебора, Построение бинарного дерева, Выбор перехода, Узел бинарного дерева Salesway, Получение нижней границы оставшегося пути, Выбор очередного перехода, Сшивка участков пути, Создание нового участка пути, Подготовка к методу ветвей и границ, Таймерная часть метода), Сравнение методов, Площадь полигонов (Постановка задачи
Решения при малых N, Представление полигона, Пересечение отрезков, Равенство наклонов, Площадь полигона, Случайный поиск, Пространство поиска, Организация направленного поиска, Проблемы, Эмпирические наблюдения, Критерий направленности, Начальные состояния максимальной площади
Начальные состояния минимальной площади, Контроль памяти, Обратный поиск, Подбор параметров), Поиск оптимальных полигонов

## Распознавание

Многомерные пространства (Введение, Гиперкуб, Гипотеза компактности, Шар, m-мерные плоскости, Расстояние до
m-плоскости, Гиперплоскость, Симплекс), Расстояние и близость (Введение, Метрическое пространство, Евклидово расстояние и нормализация, Расстояния между рукописными цифрами, Расстояние Махаланобиса, Другие функции расстояния, Взвешенное расстояние Минковского, Близость), Метод главных компонент (Введение, m-мерные плоскости, Центр тяжести, Первый компонент, Второй компонент, Пример 1: ирисы Фишера, Пример 2: рукописные цифры MNIST, Проблемы PCA в задачах классификации), Многомерное шкалирование (Введение, Расстояние, Sammon mapping, Стохастическое вложение соседей (SNE), Выбор параметров вероятностей SNE, Функция ошибки SNE, Градиента SNE, Метод t-SNE, Градиент t-SNE, Параметры обучения), Методы эталонов и ближайших соседей (Введение, Метод эталонов, Эллиптические эталоны, Кластеризация эталонов, Метод дробящихся эталонов, Метод ближайших соседей, Профиль компактности, Метод потенциальных функций, Отбор эталонных соседей, Полезная информация), Разделяющие поверхности (Введение, Линейные решающие правила, Дерево гиперплоскостей, Метод опорных векторов (SVM), Полезная информация), Вероятностные методы (Введение, Априорные и апостериорные вероятности, Плотности распределения вероятностей, Формула Байеса, Разделяющая поверхность, Нормальное распределение, Парадоксы
n-мерного Гаусса, , Численный эксперимент, Произвольное нормальное распределение, Параметрические методы, Непараметрические методы, Цена ошибки, Полезная информация), Решающие деревья, Тестирование и композиция методов (Методы тестирования алгоритмов, Бустинг - композиция алгоритмов, AdaBoost - adaptive boosting, Полезная информация)

## Нейронные сети

Основы (Введение, Объекты и их признаки, Обучение с учителем, Нейрон, Сеть нейронов, Нейрон как гиперплоскость, Уверенность нейрона, Полезность нейрона, Несколько выходов, Когда нужен скрытый слой, Нейроны как логические элементы, Четыре варианта xor, Аппроксимация функции y=f(x), Аппроксимация функции на Phyton, Нечёткая логика), Разделяющие поверхности (Введение, Выпуклые области, Проблема локальных минимумов, Переобученность, Когда необходимы два скрытых слоя, Несвязные области, Иногда достаточно и одного слоя, Бесполезные бывают полезными, Заключение), Обучение (Введение, Нейрон, Однослойная сеть, Усреднение градиента, Контроль уверенности нейрона, Двухслойная сеть, Обратное распространение ошибки, Информация), Нейронная сеть с двумя входами

## Логика

Введение в логику (Введение, Предметы и теории, Предикаты и функции, Логические операции, Булева алгебра, КНФ и ДНФ, Кванторы ∀ и ∃, Вывод для высказываний, Метод резолюции, Сколимизация), Исчисление, ...

## Графика

Draw, Алгоритмы 2D графики (Основы математики, Угол между двумя прямыми, Пересечение отрезков, Расстояние от точки до отрезка, Выпуклость и самопересечение полигона, Точка в полигоне, Библиотека g2d.js (Графические функции, Векторные функции, Базовые алгоритмы, Работа с кластерами, Работа с полигонами, Математические функции)), Упаковка сфер и кластеров в полигон