Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game?

Сообщение Anonymous »

Я работаю над AI Hex Game, который использует алгоритм обрезки альфа-бета, и в рамках оценки состояния доски мне нужно рассчитать расстояние между двумя ячейками ( и v ) на доске. Более подробную информацию об этом расчете расстояния можно найти в статье (см. Страницы 14–17). Алгоритм-но реализуется рекурсивно. Компоненты для расчета расстояния:
< /p>
-example of n (u), которые были затенены-< /p>

u (обозначенный n (u) ):
Это не классический район, который вы найдете в Википедии. Вместо этого это зависит от текущего состояния доски и динамически изменяется. Соседство состоит из:
  • Непосредственные соседи u .
  • Если u связан с оккупированными ячейками на доске, также включите их соседи. />
сама функция расстояния , которую я изо всех сил пытаюсь реализовать. />-функция расстояния-
Функция c_k (u, v) Возвращает количество ячеек в окрестностях u , чье расстояние до v меньше k :

Вот мой код из функции расстояния:

def distancemetric(u, v, player, board, visited=None, memo=None):

if visited is None:
visited = set()
if memo is None:
memo = {}

if u == v:
distance = 0
return distance

neighbors = neighborhood(u, player, board)

if v in neighbors:
distance = 1
return distance

else:
visited.add(u)
min_distance = float('inf')

for k in range (2, 1000):
for w in neighbors:
# print(w)
if w not in visited:
# print("not ", w)
d = distancemetric(w, v, player, board, visited, memo)
print(w, v, d)
if d is not None:
min_distance = min(min_distance, d + 1)

if min_distance != float('inf'):
if min_distance < k:
return min_distance
else:
return None # v not reachable from u
< /code>
Любая справка, интерпретирующая определение или руководство этой функции по реализации этой функции рекурсивного расстояния, будет очень оценена. Спасибо < /p>
Я пробовал каждую технику, которую я знаю, но они привели к превышению глубины рекурсии. Я также попробовал итеративный подход и ожидал исправленной версии функции, но я попал в тупик. И это мой новый код с все еще неправильным расстоянием

Подробнее здесь: https://stackoverflow.com/questions/796 ... evaluation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать функцию рекурсивного расстояния для оценки AI Game Game Game?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»