Может ли FSA рассчитывать?


11

Это может быть глупый вопрос. Это представляется очевидным , что FSA, так как оно конечно, может рассчитывать только количество символов в его входной строки до числа , ограниченного числа его состояний. Но теперь предположим, что мы оснастили FSA возможностями вывода (например, печати). Тогда было бы очень легко построить машину , способную печатать один символ для каждого символа , который он читает. Будет ли это учитываться? Если нет, то почему нет?

Вместо этого, говоря об FST: я полагаю, что невозможно создать FST, способный отображать строку произвольной длины в двоичное представление (т. Е. Число в системе счисления base-2) ее длины. Но, конечно, тривиально создавать FST, способный отображать строку произвольной длины в строку, содержащую нули (или единицы) одинаковой длины. Но это может считаться подсчетом, не так ли, поскольку FST делает представление длины входных данных. Несколько странное представление, но все же представление, не так ли?


1
Таким образом, вы действительно задаете вопрос "что считать?" Это не похоже на информатику для меня. Было бы информатика , если ваш вопрос «для этого определения подсчета, может ли графа FSA?».
Сие Николы

Ответы:


8

Этот вопрос немного расплывчатый, поэтому здесь есть расплывчатый ответ: перевод унарного в унарный не является точным подсчетом, так как на самом деле машина «не знает», каков был размер ввода «в конце».

Вы, конечно, понимаете это, поэтому ставите под сомнение тот факт, что это действительно считается.

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

Так что, возможно, более точное понятие, вместо того чтобы считать, сравнивать . То есть, учитывая два числа (в одинарных) и , определите, если .1 m n = m1N1мNзнак равном

Способность делать это сравнение - вот что порождает известный нерегулярный язык . И неспособность NFA считать - то, что делает этот язык нерегулярным.{aNбN:N0}

Интересно, что этот язык является КЛЛ. И действительно, соответствующая модель автоматов - КПК, имеет возможность делать ограниченное сравнение.

Когда вы говорите о сравнении, преобразователи больше не дают вам никакой дополнительной силы, поэтому вопрос решается в этом смысле.

Дополнительное примечание: совершенно неформально, возможность сравнения двух чисел часто может использоваться для имитации машины с 2 счетчиками Minsky Machine , которая эквивалентна ТМ.


4

Нет. Конечные автоматы не в счет. Они могут делать вещи, которые похожи на это, но они не могут считать. Они могут даже делать небольшие (жесткие) вычисления (например, определить, делится ли двоичное число на три ), но это не считается.

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

В вашем примере fsa проверяет, имеет ли строка одинаковое число и , путем подсчета этих чисел на две разные выходные ленты. Другое устройство должно выполнять окончательное сравнение, если только у вас нет уловки, чтобы обрабатывать буквы и попарно и вычеркивать одно против другого. Как на площади.б а бaбaб

Теперь более формальная модель для сравнения. Согласно теореме Хомского – Шютценбергера каждый бесконтекстный язык является инверсией преобразования конечного состояния языка Дика на две пары скобок (так не указывается) в википедии, но вы должны верить мне). Теперь преобразователь конечного состояния может «принимать» свой контекстно-свободный язык следующим образом (для каждого языка свой преобразователь). На входе преобразует строку в (предполагаемую) серию всплывающих окон и толчков КПК для , затем проверяет, является ли результат поведением нажатия, то есть результат является строкой вT D 2 L = T - 1 ( D 2 ) T L T L D 2 w T - 1 ( D 2 ) T ( w ) D 2LTD2Lзнак равноT-1(D2)TLTLD2 . (Технические подробности опущены, но это так, как утверждается в теореме Ч-Ша: тогда и только тогда, когда )весT-1(D2)T(вес)D2

Суть в том, что некоторые «вычисления» выполняются преобразователем, но в тесте с скрыта большая мощность . Аналогично вашему примеру, где две буквы отсортированы на двух лентах. D2


Я могу создать DFA, который считает от до (Для фиксированного ) или даже в . Это больше, чем любой человек или настоящий компьютер управляет. Как бы вы назвали счет? 2 н ! п N02N!NN
Рафаэль

@Raphael. Конечно. И легко большие числа, чем это. Перестаньте учить, что контекстно-свободные языки более мощные, чем обычные языки: они одинаковы (по крайней мере, для строк длиной не более ). Просто шутка. Обращение к таким реальным компьютерным языкам создает конечное состояние, не так ли? Конечные автоматы не в счет! Они просто различают конечное число состояний, хотя это число может быть очень большим. 2N!
Хендрик Янв

Но то, как обычно представлены FSA, им только «разрешено» сказать «да» (принято) или «нет» (не принято). Учитывая это, никто не мог построить FSA, который имеет значение. Если мы позволим ему сообщать (например, печатать) состояние (число), в котором он находится, когда он завершается, то он может считать, но только до границы, заданной числом состояний. Но если мы разрешаем ему печатать, то тривиально создать одно состояние FSA, которое печатает (скажем) 1 каждый раз, когда читает символ из входной строки, таким образом сообщая счет в представлении подсчета. Что не так с этой идеей?
Торбьерн

И если мы забываем об отчете / печати и вместо этого думаем о внутренних представлениях, FSA может считать символы в строке, но не в произвольной длинной. Единый государственный FSA тогда, конечно, не может рассчитывать вообще.
Торбьерн

К

1

@Shaull: Спасибо за ваш ответ! Я новичок в StackExchange и не знаю, как комментировать ответ, поэтому вместо этого я решил написать ответ в надежде, что меня простят.

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

Я полагаю, что для вас «знать» означает, что в конце у него есть внутреннее представление счета. Тогда, конечно, очевидно, что FSA FST не может вычислить длину произвольной строки. Но если нам не нужны знания в этом смысле, а требуется только, чтобы FSA или FST могли сообщать результат внешнему наблюдателю, то мне кажется, что представление счета в формате подсчета должно быть в порядке.

Кроме того, если FSA оснащен как инкрементным входом, так и выходом, то он в принципе должен иметь возможность использовать свою внешнюю среду в качестве памяти для чтения / записи и, следовательно, быть таким же мощным, как машина Тьюринга. Правильно?

Спасибо, что подняли случай сравнения. Теперь, кажется, тот случай, если мы снимем требование внутреннего представления, и мы только требуем, чтобы машина способна представить результат ан внешнего наблюдателя, то мы могли бы легко построить конечный автомат, который может произвести свой род графическое представление результата. Предположим, ФСМ, после прочтения "aaaaaabbbbbb" написал

000000
000000

затем, поскольку столбцы имеют одинаковую длину, FSM принял строку "aaaaaabbbbbb". Два столбца одинаковой длины означают «да», разные длины означают «нет».

Я предполагаю, что я сгибая правила, но это то, что я хочу, так как я заинтересован в более или менее неявных предположений, которые делаются в области математической лингвистики.


FSAWОС{aN|N простое }

Я думаю, что разница между примерами, которые вы приводите, и FST-выводом в том, что пастух может читать строки после того, как они написаны, а FSM - нет. То же самое касается сравнения.
Шаул

Вы можете оставить комментарий, нажав кнопку «Добавить комментарий» ссылку под любую должность.
Рафаэль

Любой FSA построен сосчитать стадо может рассчитывать , что стадо. Ни один из построенных FSA не может сосчитать любую стаю. Основной вопрос заключается в том, знает ли пастух лишь то, как считать достаточно далеко, чтобы хотя бы считать свое стадо, или же он может использовать весь диапазон натуральных чисел. По моему опыту, мы, люди, должны в явном виде осуществить переход между двумя способностями в какой-то момент нашего математического образования.
reinierpost

1

Конечные автоматы могут «считать» в пределах ограниченного диапазона / число шагов , обозначенных переходов состояний. однако они не могут считать за конечное число шагов.

есть смысл , в котором FSA-как машина может рассчитывать. тесно связанная с машиной называется конечными состояния преобразователя . преобразователь действительно может рассчитывать в смысле «водопроводной» вход и выход. один преобразователь может взять входную последовательность (скажем, в двоичном виде) и «преобразовать» ее в выходную последовательность, которая увеличивается. затем один «зацепляет» (идентичные) преобразователи счетчика на 1, каждый из которых увеличивает свой вход на 1 и выводит его. его также как рудиментарный «потоковый алгоритм» .


более подробно: преобразователь может увеличивать работу в порядке от «lsb» до «msb», то есть от «младшего бита сигнатуры» до «самого младшего бита», используя логику, аналогичную полному сумматору EE .
августа

К сожалению, датчики конечного состояния, кажется, не были изучены полностью. есть еще одно интересное применение к Коллатцу гипотезе в создании машины , которая вычисляет итерацию. кто заинтересован в дальнейшей теории / обсуждения плз свяжитесь со мной в чате или на моем блоге .
ВЗН
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.