HARVARD CS50 - "Поиск" - Лекция 0: Искусственный Интеллект с Python на русском (2020) HD
Аве, Кодер! Это легендарный Гарвардский курс CS50 на русском языке: основы искусственного интеллекта с Python. Этот курс познакомит нас с концепциями и алгоритмами, лежащими в основе современного искусственного интеллекта, мы погрузимся в идеи, которые лежат в основе таких технологий как игровые движки, распознавание рукописного ввода и машинный перевод. В первой лекции посвященной задачам поиска, мы ознакомимся с такими алгоритмами как: Поиск в ширину, Поиск в глубину, Жадный алгоритм поиска по первому лучшему, Минимакс, A * (A star) и посмотрим на их практическое применение к решению задач нахождения выхода из лабиринта или игр с нулевой суммой, таких например, как крестики-нолики и все это на примере популярного языка программирования - Python. Тайм-коды: 0:24 в уроке идеи, техники и алгоритмы, которые лежат в основе Искусственного Интеллекта (Artificial Intelligence) 0:30 Небольшое описание курса 3:13 алгоритм поиска. Что компьютеру делать в определенной ситуации. Проблемы различных типов и форматов 3:34 примеры: пятнашки, лабиринт, гугл карты 4:41 что из себя представляет задача поиска. Из чего состоит её алгоритм обучения 4:49 Терминология: агент (agent), состояние (state), начальное состояние (initial state), 6:16 действия (actions), 7:28 модель перехода состояний (transition model), 9:34 пространство состояний (state space), 10:04 представление в виде Графа 10:56 проверка цели (goal test), 11:51 стоимость пути (path cost), 13:41 задача поиска (search problems), 14:18 цель-решение (solution), 14:28 оптимальное решение (optimal solution), 14:46 представление набора данных, связанных с задачей: 15:07 структура данных Узел (node), 16:34 Подход, с которого надо начать решать задачу. фронтир (frontier). Все варианты решения 18:21 проверка цели 18:37 развёртывание узла - оценка всех его соседей 19:29 применение в задаче поиска 22:06 возможные проблемы. Зацикливание 24:01 улучшенный способ решить задачу поиска 25:58 Структура данных Стэк (Stack) для добавления и удаления элементов last-in first-out 26:22 применение стэка к задаче 27:51 Алгоритм поиска Depth-First Search Поиск в глубину 28:37 Алгоритм поиска Breadth-First Search Поиск в ширину 29:04 Структура данных Очередь (Queue) first-in first-out 29:12 применение очереди к задаче 30:36 эти 2 алгоритма поиска на практике. Лабиринт 36:22 код 44:00 работа кода 44:37 пример 2 maze2 48:31 пример 3 maze3 51:58 выбор при нескольких возможных вариантах 53:13 2 типа поисковых алгоритмов. Это были неинформированные поиски 53:54 информированный поиск (informed search): 54:29 Алгоритм Greedy Best-First Search Жадный поиск по первому лучшему совпадению 56:36 с помощью эвристической функции Манхэттанское расстояние 57:40 на практике 1:01:39 хорошая эвристика 1:03:43 оценка пути (расстояния) до цели 1:04:31 улучшение 1:05:23 Алгоритм A* Search Астар. Учитывает 2 вида информации 1:09:30 находит оптимальный путь, при 2 у