Зафиксируйте целое число и алфавит . Определим как совокупность всех конечных автоматов на состояниях с начальным состоянием 1. Мы рассматриваем все DFA (не только связанные, минимальные или невырожденные); таким образом, .
Теперь рассмотрим две строки и определим как количество элементов которые принимают как и .
Вопрос: Какова сложность вычисления ?
Этот вопрос имеет значение для машинного обучения .
Изменить: Теперь, когда есть щедрость на этот вопрос, я думаю, что немного больше точности в формулировке в порядке. Для , пусть будет набором из автоматов, как определено выше. Для , определите как число автоматов в которые принимают и и . Вопрос: можно ли вычислить за время ?
Ответы:
Так что вопрос довольно короткий, но очень интересный. Я предполагаю, что входное значение в унарном виде, а x и y в двоичном (или у нас есть проблемы, как указано в ответе Кая).n x y
Прежде всего, если вам интересно знать приблизительно, вы можете просто сгенерировать несколько случайных DFA, и это даст вам (whp) хорошее приближение. (Интересно, есть ли у этого класса сложности имя?)K(x,y)
Тогда знание точно кажется сложной задачей. Как отмечено в комментариях a3_nm и Kaveh, вопрос эквивалентен определению количества автоматов, для которых x и y переходят в одно и то же состояние. Я буду обозначать вероятность того, что они перейдут в одно и то же состояние через p .K(x,y) x y p
Обновление: некоторые вещи, которые я здесь написал, не соответствуют действительности, теперь я их исправил.
Легко видеть, что . У нас есть равенство, если x - все 0, а y - все ноль, за исключением последнего бита, который равен 1. Существуют ли другие случаи? Я не знаю. Если, например, x - пустая строка и y = 00 , то p = n + 1p≥1/n x y x y=00 .p=n+1(n−1)n
Чтобы упростить задачу, я даже начал думать о том, что произойдет, если и y одинарны. Если оба не меньше n и их разность делится на n ! тогда p = 1 . Есть ли простая формула для унарной версии?x y n n! p=1
источник
Я вполне могу упустить момент, но вы заявили, что фиксировано, поэтому все DFA этого размера можно считать предварительно вычисленными и сохраненными в легко симулируемом формате. Вычислите K следующим образом:n K
На входе , y, где x , y ∈ Σ ∗x y x,y∈Σ∗
а. смоделируйте это на обоих словах (этот шаг )O(|xy|)
б. приращение если оба прогона симуляции принимаютc
В целом, вычисления имеют линейную сложность. Ответ совсем другой для .K(n,x,y)
источник