Принимая во внимание описание сетки NxM (начальная ячейка, ячейка назначения, недоступные ячейки, ячейки с монетами), используйте алгоритм поиска пути A * для прохождения сетки от начальной ячейки до ячейки назначения, пока сбор максимально возможного количества монет с учетом следующих ограничений:
1- Use only horizontal and vertical movement, diagonal movement is not allowed.
2- Each cell can be visited at most once.
3- Each cell can have at most 1 coin.
Вот пример (0 обозначает пустую ячейку, 1 обозначает ячейку с монетой, X обозначает недоступную) ячейка, S - начальная ячейка, D - ячейка назначения):
S , X, X, X, X, X, X, X
1 , Х, Х, Х, Х, Х, Х, Х, Х
0 , Х, Х, Х, Х, Х, Х, Х
1 , 1 , 1 , X, X, 0 , 1 , 0
0, X, 0 , X, X, 0 , X, 0
0, X, 0 , 1 , 1 , 1 , X, 1
0 , 1, 0, 0, 0, 0, 0, D
Оптимальные ячейки пути: полужирный .
Обратите внимание, что меня не интересует фактическая реализация решения, Мне нужна только помощь в поиске подходящей функции heuristi c для правильного моделирования этой проблемы.