Похоже, на данный момент у вас есть только проблема классификации.Вы хотите отобразить некоторые знания о том, что вы в настоящее время идете на один из набора классов.Знание класса местности позволяет вам затем вызвать соответствующую подпрограмму.Это правильно?
Если это так, то существует широкий спектр классификационных механизмов, которые вы можете использовать, включая нейронные сети, байесовские сети, деревья решений, ближайшего соседа и т. Д. Чтобы выбрать наилучшее соответствие, мыВам понадобится больше информации о вашей проблеме.
Во-первых, какой тип входных или сенсорных данных у вас есть, чтобы помочь вам определить класс поведения, который вы должны вызывать?Во-вторых, можете ли вы описать обстоятельства, при которых вы будете обучать этот классификатор, и каковы обстоятельства во время выполнения при его развертывании, например, какие-либо ограничения вычислительных ресурсов или требования устойчивости к шуму?
РЕДАКТИРОВАТЬ: С тех пору вас есть фиксированное количество классов, и у вас есть некоторая параметризованная модель для генерации всех возможных ландшафтов, я бы рассмотрел использование k-средних кластеров .Принцип заключается в следующем.Вы группируете целую кучу ландшафтов в k различных классов, где каждый кластер связан с одной из ваших специализированных подпрограмм, которая работает лучше всего для этого кластера ландшафтов.Затем, когда появится новая местность, она, вероятно, упадет рядом с одним из этих скоплений.Затем вы вызываете соответствующую специализированную подпрограмму для навигации по этой местности.
Сделайте это в автономном режиме: создайте достаточно случайных ландшафтов для достаточной выборки пространства параметров, отобразите эти ландшафты в свое сенсорное пространство (но помните, какие точки в сенсорном пространстве соответствуютна местности), а затем выполните k-означает кластеризацию в этом сенсорном пространстве, где k - количество классов, которые вы хотите выучить.Ваша функция расстояния между представителем класса C и точкой P в сенсорном пространстве была бы просто функцией приспособления, позволяющей алгоритму C ориентироваться на местности, которая произвела P. Затем вы получили бы разбиение вашего сенсорного пространства на k кластеров, каждый кластер отображался влучшая подпрограмма, которая у вас есть.Каждый кластер будет иметь репрезентативную точку в сенсорном пространстве.
Теперь во время выполнения: вы получите некоторую немеченую точку в сенсорном пространстве.Используйте другую функцию расстояния, чтобы найти ближайшую репрезентативную точку к этой новой точке входа.Это говорит вам, к какому классу относится местность.
Обратите внимание, что успех этого метода зависит от качества отображения из пространства параметров генерации ландшафта в сенсорное пространство, из сенсорного пространства в ваши фитнес-функции ифункция конечного расстояния, которую вы используете для сравнения точек в сенсорном пространстве.
Обратите также внимание, что если у вас было достаточно памяти, вместо того, чтобы использовать только k репрезентативных сенсорных точек, чтобы указать, к какому классу принадлежит сенсорная точка без метки, вы можетеПройдите свой тренировочный набор и отметьте все пункты изученным классом.Затем во время выполнения вы выбираете ближайшего соседа и заключаете, что ваша немеченая точка в сенсорном пространстве находится в том же классе, что и этот сосед.