В игровом программировании, как я могу протестировать, последовательна ли используемая эвристика или нет?

Я полагаю, что Вы ищете:

gethostbyaddress

Просто передают его localhost IP.

существует также функция gethostbyname, которая также полезна.

11
задан Roland Ewald 8 October 2009 в 19:46
поделиться

2 ответа

ИЗМЕНИТЬ: В этом ответе смешались допустимость и согласованность. Я исправил это, чтобы указать на допустимость, но исходный вопрос касался согласованности, и этот ответ не дает полного ответа на вопрос.

Вы можете сделать это аналитически, выделив все разные случаи и тем самым доказав что ваша эвристика действительно допустима.

Для информированного поиска, эвристика допустима с задачей поиска (скажем, поиск лучшего хода в игре) тогда и только тогда, когда она недооценивает расстояние 'в подходящее состояние.

ПРИМЕР: Найдите кратчайший путь к целевому городу через сеть автомагистралей между городами. Здесь можно было бы использовать эвкидово расстояние как эвристику: длина прямой линии до цели всегда короче или равно длине, чем наилучший возможный путь.

Допустимость требуется для алгоритмов вроде A * , которые затем помещают вас в карантин для достижения оптимального результата (т.е. они найдут лучший «путь» к состоянию цели, если таковое существует).

Я бы порекомендовал найти тему в учебнике искусственного интеллекта .

0
ответ дан 3 December 2019 в 12:28
поделиться

Heuristics produce some sort of cost value for a given state. Consistency in this context means the estimate for a state plus the cost of moving to the next state is less than or equal to the estimate for that new state. If this wasn't true then it would imply that - if the heuristic was accurate - that transitioning from one state to the next could incur negative cost, which is typically impossible or incorrect.

This is intuitive to prove when it comes to pathfinding, as you expect every step along the path to take some time, therefore the estimate at step 1 must be lower than the estimate at any step 2. It's probably a bit more complex for tic-tac-toe since you probably have to arbitrarily decide what constitutes a 'cost' in your system. If your heuristic can go both up or down as a result of playing a move - eg. because you encode good moves with positive numbers and bad moves with negative numbers - then your heuristic cannot be consistent.

However, lack of a consistent heuristic is not always a problem. You may not be guaranteed of reaching an optimal solution without one, but it may still speed up the search compared to a brute force state search.

1
ответ дан 3 December 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: