Первый трюк заключается в том, чтобы рассматривать таблицу умножения как таблицу переходов автомата где каждое состояние представляет букву в таблице умножения, но пока не беспокоится о принятии. Так что буквы слева и в теле таблицы на самом деле являются состояниями - было бы точнее записать их как q a , q b , q c , но я не буду. Буквы в верхней части являются входными данными.AQa, дб, дс
Затем создайте автомат (« T » для транспонирования) для обратного умножения путем транспонирования A :ATTA
ATaбсaaaсбсaбсбсa
Таким образом, переводит вас в состояние c , и , как вы заметили, A T ( c b a ) переходит в состояние a of A T.A ( a b c )сAT( с б а )aAT
Тем не менее, предполагает, что вы идете справа налево, а мы все еще хотим идти слева направо. Таким образом, второй трюк состоит в том, чтобы перевернуть автомат (а не умножение, которое бы просто вернуло нас, если бы мы начали), путем обращения всех стрелок в обратном направлении , что приводит к недетерминированному автомату A T R, указанному в таблице переходов ниже, с подмножества, обозначенные каскадными буквами, чтобы курица не царапалась, поэтому a c действительно { a , c } . (надеюсь, я все понял - кажется, работает).ATATрс{ а , с }
ATрaбса бб сса б в∅aа б∅са бса б ва б в∅ббсaб сса ба б в∅ссaбса б вб са б в∅
Вы можете интерпретировать это как недетерминированный автомат только с тремя строками над линией или с определенной версией со всеми 8 строками.
Наконец, машиной для решения проблемы является автомат перекрестных произведений исходных и A T R , то есть A × A T R для выполнения пересечения двух автоматов (нам больше не нужен A T ) , × Т Р имеет состояния , которые представляют собой пары , такие как ⟨ с , в с ⟩ . Функция перехода запускает A и A T R независимо. Один начальное состояние ⟨ 1 , 1 ⟩AATрA × ATрATA × ATр⟨ , С ⟩AATр⟨ 1 , 1 ⟩переходит в при входе а , в ⟨ б , б ⟩ при входе б и т.д. ⟨ , ⟩a⟨ Б , б ⟩б
Принимая состояния в неопределенных версиях являются и т.д. В детерминированной версии, принимая состояния пары , в которых первый компонент ∈ второго компонента набора, например, ⟨ в , ⟩ или ⟨ б , б с ⟩ .⟨ , ⟩∈⟨ , ⟩⟨ Б , б с ⟩
дополненное и определенное, как показано, имеет 25 = 3 ⋅ 8 + 1 состояний, так что извините, если я не напишу это подробно. Но недетерминированная версия имеет только 10 = 3 ⋅ 3 + 1 состояний.A × ATр25 = 3 ⋅ 8 + 110 = 3 ⋅ 3 + 1