claygod / nutcracker

Problem-based approach

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nutcracker

API documentation

Problem-based approach

Задачный подход

Решатель, который может искать цепочку возможных шагов для того чтобы приблизиться из стартового состояния к целевому. Проблема постановки задачи остаётся "снаружи".

Процесс

Создаём решатель, учим каким-то базовым, хардкорным умениям и затем ставим задачи и смотрим что получится. Если в процессе решения задачи будет найден какой-то весьма эффективный ход (цепочка ходов), то этот ход может быть добавлен к базовым.

Решатель ищет множество решений, и из этого пула решений какое-то будет выбрано исходя из неких критериев. Если решения не найдены, то предусмотрен вариант с поиском случайного хода, после которого можно будет найти решение, т.е. поиск кружного пути. (Пока это метод через простое увеличение числа шагов в цепочке)

Обучение

Базовые чейнжеры тоже можно генерировать не как определенные математические функции, а на примере, когда есть входное и выходное состояние и внутренняя функция, этоприменение дельты между ними

ToDo

  • [*] имплементация CalcChainletRate (нужна хоть какая-нибудь, базовая)
  • имплементация AtomicChanger
  • [*] имплементация AtomicChangerRepository
  • имплементация StateComparer (возможно снаружи передается при начальном создании)
  • имплементация ProblemWithAnswer
  • имплементация ProblemWithAnswerRepo
  • [*] имплементация ChainletGenerator
  • продумать тему колонок, это что-то вроде групп чейнджеров, объединенных по принципу например близости входов, целей, или дельт

Визуализация пакета

Copyright

Copyright © 2022-2024 Eduard Sesigin. All rights reserved. Contacts: claygod@yandex.ru

About

Problem-based approach

License:GNU General Public License v3.0


Languages

Language:Go 100.0%