Рубрики
Без рубрики

CS50 AI Class Experience Part 2 Поиск темы в AI

В предыдущий день я обсуждаю основные компоненты поиска, таких как пространство штатов, агент, действия, государство E … с меткой питона, машинного обучения, информатики, поиска.

В предыдущий день я обсуждаю основные компоненты поиска, таких как пространство штатов, агент, действия, государство и т. Д. Теперь я рассказываю о различном опыте обучения алгоритму поиска из учебника.

Проблема для поиска заключается в использовании пути лабиринта

Глубина первого поиска (DFS) и промаха первого поиска (BFS):

Первый алгоритм, который я вижу, – это DFS или глубина сначала поиск, который я люблю больше всего из -за того, что он углубляется, чтобы найти результаты. Он использует структуру данных стека для хранения всех посещаемых узлов или точки пути/решения, и он проходит глубоко до тех пор, пока не получит мертвый конец после этого, он вернется к предыдущему пункту, где он начался таким образом, он найдет путь от начала до начала до начала до начала до начала. назначение лабиринта.

#####B#
##### #
####  #
#### ##
     ##
A######

Это образец лабиринта и прикладные DFS, мы получили этот путь

Черные – это стена, а зеленая – конечная точка, а красная – агент, желтые блоки – это путь поиска по агенту.

Это простой лабиринт, если я сделаю его более сложным, тогда:

###                 #########
#   ###################   # #
# ####                # # # #
# ################### # # # #
#                     # # # #
##################### # # # #
#   ##                # # # #
# # ## ### ## ######### # # #
# #    #   ##B#         # # #
# # ## ################ # # #
### ##             #### # # #
### ############## ## # # # #
###             ##    # # # #
###### ######## ####### # # #
###### ####             #   #
A      ######################

Теперь появится красные блоки, появляется это исследованный путь, использующий DFS, и он возвращается к предыдущему пункту.

Теперь вот концепция, называемая стоимостью пути, которая немного выше, как 194, но мы можем достичь ее оптимально, если применим BFS или ширина сначала поиск. Где DFS работает над тем, чтобы углубиться в глубокое, пока не получите конец, но BFS обходится широко до ширины, чтобы искать путь.

Вы можете сравнить DFS как упражнение, где BFS вида осьминога, в котором используются его патенциры, чтобы сделать больше областей, которые он может покрывать для MAZE BFS, является оптимальным выбором.

Теперь проблема решается по гораздо низкой стоимости, как 77 от общей стоимости пути, которая гораздо более оптимизирована. Но через некоторое время BFS недостаточно.

Я поместил видео, как работает BFS и DFS.

 Dfs working
Bfs working

Теперь, чтобы оптимизировать больше, мы узнаем о двух типах поиска в поиске в ИИ.

  • Информированный поиск : Где у нас есть некоторая информация о среде, и мы можем использовать ее, чтобы сделать более оптимизированную проблему решения.

Пример: проблема лабиринта, если у нас есть координата точки назначения и координата исходной точки, мы можем сравнить их, чтобы получить расстояние между ними таким образом, мы можем знать, как далеко мы от источника.

  • Неосведомленный поиск : Это просто поиск, где у агента нет информации о среде. Это просто исследует цель, которая иногда полезна, где у нас нет информации. Ранее BFS и DFS Пример неосведомленного поиска.

Жадный лучший первый поиск:

Для информированного поиска у нас есть Жадный лучший первый поиск или GBF, где мы ищем путь в лабиринте, получив расстояние от местоположения агента и пути назначения, определяемой эвристической функцией h (n). Как следует из названия, функция оценивает, насколько близко к цели следующий узел, но его можно принять. Эффективность жадного лучшего алгоритма зависит от того, насколько хороша эвристическая функция. Например, в лабиринте алгоритм может использовать эвристическую функцию, которая опирается на расстояние Манхэттена между возможными узлами и конец лабиринта. Расстояние Манхэттена игнорирует стены и подсчитывает, сколько шагов вверх, вниз или по бокам потребуется, чтобы добраться из одного места в местоположение цели. Это легкая оценка, которая может быть получена на основе координат (x, y) текущего местоположения и местоположения цели.

Это может быть упрощено этим:

f (n) (n)

Теперь в следующем у него есть некоторые комликации/недостатки, как

  • Он может вести себя как неогриченный поиск в глубине в худшем случае.
  • Это может застрять в петле, как DFS.
  • Этот алгоритм не является оптимальным.

Поиск

Таким образом, чтобы решить проблему без управления пути, я изучаю другую, которая использует одинаковую эвристическую функцию с функцией оценки. Это называется* Алгоритм поиска.

Он использует расстояние H (n) от источника до пункта назначения и функции оценки G (n), чтобы получить стоимость взятого пути. Он стоил, который был начислен до текущего местоположения. Объединяя оба этих значения, алгоритм имеет более точный способ определения стоимости решения и оптимизации его выбора на ходу. Алгоритм отслеживает (стоимость пути до настоящего времени + оценочная стоимость цели), и как только он превышает предполагаемую стоимость некоторого предыдущего варианта, алгоритм отказатся от текущего пути и вернется к предыдущему варианту, предотвращая, таким образом, от себя от Пройдя по длинному, неэффективному пути, который h (n) ошибочно отмечен как лучше всего.

Опять же, поскольку этот алгоритм также опирается на эвристику, он так же хорош, как эвристика, которую он использует. Вполне возможно, что в некоторых ситуациях это будет менее эффективным, чем жадный лучший поиск или даже неосведомленные алгоритмы. Чтобы* поиск был оптимальным, эвристическая функция, h (n), должна быть:

Допустимо, или никогда не переоценивая истинную стоимость и согласованность, что означает, что расчетная стоимость пути к цели нового узла в дополнение к стоимости перехода на него из предыдущего узла больше или равна расчетной стоимости пути к Цель предыдущего узла. Чтобы поместить его в форму уравнения, h (n) является согласованным, если для каждого узла n и узла преемника n ‘с пошаговой стоимостью c, h (n) ≤ h (n’) + c.

Визуализация A* Search.

Я поместил эту часть сюда, и следующая часть скоро появится. Продолжайте исследовать, продолжайте учиться.

Ссылка:

Спасибо.

Оригинал: “https://dev.to/darkdebo/cs50-ai-class-experience-part-2-topic-search-in-ai-1bjk”