2017-01-19 4 views
1

скажем, что у меня есть n-состояния S = {s1, s2, s3, ..... sn}, и у меня есть оценка для каждого перехода, т. Е. T-матрица f.e. s1-> s5 = 0,3, s4-> s3 = 0,7, .... и т. д.Последовательность с максимальным счетом?

Какой алгоритм или процедура следует использовать для выбора наилучшей набранной последовательности/пути, начинающейся с состояния-x (s_x).

Два вопрос:

  1. Выберите лучшее следующее государство, так что в бесконечно длинном пути Я собираю как можно лучше состояние в среднем?
  2. Учитывая длину пути L, выберите последовательность состояний, которая будет генерировать самый высокий балл?

В настоящее время я изучаю Укрепление обучения, но это кажется излишним, потому что у меня нет ни действий, ни политик. Может быть, я могу использовать что-то вроде функции Value, dunno.

Что вы бы описали?

PS> В некоторых сценариях T-матрица может меняться со временем.


http://mnemstudio.org/path-finding-q-learning-tutorial.htm

кажется, что Q-обучения является хорошим выбором. Единственное различие, которое я вижу, заключается в том, что, если я буду хранить значения Q во времени, мне нужно понять способ адаптации для изменения T-матрицы.

И второе сложнее то, что конечной цели нет, но только смена баллов посредников. Может быть, мне не нужно менять алгоритм, который он просто сходится в сторону изменения оценок, что, я думаю, ОК.

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

ответ

2

Ваш вариант 1 будет называться жадным способом. Обычно это относится к подходам, которые выбирают сразу «лучшие» варианты. Проблема в том, что жадный выбор теперь может ограничить ваш оптимальный выбор в будущем.

Если вы не устанавливаете предел для длины пути, то, очевидно, максимальная оценка бесконечна.

Итак, вопрос в следующем: какая лучшая последовательность для заданной длины пути? Это может быть разрешено в полиномиальное время с такими вещами, как динамическое программирование.

A Рекурсивная формулировка (которую вы можете использовать для вычисления части динамического программирования): «Чтобы определить наилучший путь длины L, начиная с состояния x, посмотрите на все остальные состояния y. Для каждого из них вычислить T_xy + "лучший путь длины L-1, начиная с состояния y".

Очевидно, что лучший путь длины 1, начиная с некоторого состояния x, будет «следующим лучшим состоянием», поэтому ваша рекурсия имеет простой базовый регистр.

Смежные вопросы