У меня возникли проблемы с решением логической головоломки Lights out с использованием алгоритма A *.Сейчас я использую реализацию алгоритма A *, где я рассматриваю всю матрицу источников света как узел в алгоритме (где 1 представляет включенные источники света, а 0 - выключенные источники света) вместе с координатами текущего узла.это будет переключено.После того, как я выберу узел из открытого списка с наименьшим значением f, я переключу его и получу его 8 соседних соседей, а затем добавлю их в открытый список и повторяю, пока не найду узел, у которого сумма всех источников света равна0 (все источники света выключены).
Для вычисления показателя f каждого узла я просто вычисляю сумму всех источников света в их локальной матрице, выбирая каждый раз узел, имеющий матрицу снаименьшее количество включенных источников света.
Я знаю, что алгоритм будет не таким производительным, даже если сравнивать с методом "Chasing the Lights", но я не понимаю, как указать алгоритму, какой узел выбрать, поэтому какую функцию подсчета f использовать, потому что рассмотрение суммы источников света в матрице приведет к тому, что алгоритм будет проходить через одни и те же 3/4 узла каждый раз.
Кроме того, я хотел бы получить некоторые предложения покак представить узел для алгоритма, так как я не могу понять, как использовать алгоритм, обычно используемый для пути выбораИмизация внутри матрицы, где у вас есть целевой узел, используемый в такой ситуации, когда вы рассматриваете всю матрицу как узел, и ваша цель не достичь определенного узла, а просто проверить, что его сумма равна 0.
Язык, на котором я реализовал всю работу - это Lua.
Спасибо.
EDIT от 27.05.19 Так как я новичок в Lua, я обвиняю свои ошибки и свои способностинаписание кода в нем, а также мое понимание алгоритма на тот факт, что я не могу найти решение.Я не очень хорошо объяснил проблему, с которой столкнулся, поэтому я попытался извлечь максимум пользы из полученных комментариев, и теперь я опубликую измененный код, чтобы ребята, если вы хотите помочь, лучше понимали (code >> wordsхаха).
Примечание: я написал алгоритм, основанный на этой статье A * алгоритм
lua исходный код