Квантовые конечные автоматы — различия между версиями
Alex Z (обсуждение | вклад) (→Многомерный квантовый конечный автомат) |
м (rollbackEdits.php mass rollback) |
||
(не показано 7 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
− | + | Неформально говоря квантовый конечный автомат {{---}} это квантовый аналог ''конечного автомата'', который использует [[Квантовые гейты | квантовые гейты]]. Такие автоматы позволяют допускать некотые языки, имея при этом экспоненциально меньший размер, чем обычные автоматы. | |
== Определение == | == Определение == | ||
Строка 6: | Строка 6: | ||
|definition= | |definition= | ||
'''Квантовый конечный автомат (ККА)''' (англ. ''Quantum finite automata'', ''QFA'') {{---}} это кортеж : <tex>(Q,\Sigma, V, q_0, Q_a, Q_r)</tex>, где | '''Квантовый конечный автомат (ККА)''' (англ. ''Quantum finite automata'', ''QFA'') {{---}} это кортеж : <tex>(Q,\Sigma, V, q_0, Q_a, Q_r)</tex>, где | ||
− | * <tex>Q</tex> — множество состояний автомата | + | * <tex>Q</tex> — множество состояний автомата, |
− | * <tex>\Sigma</tex> — алфавит, из букв которого могут состоять входные слова | + | * <tex>\Sigma</tex> — алфавит, из букв которого могут состоять входные слова, |
− | * <tex>V</tex> — функция перехода автомата | + | * <tex>V</tex> — функция перехода автомата, |
− | * <tex>q_0</tex> — начальное состояние автомата | + | * <tex>q_0</tex> — начальное состояние автомата, |
− | * <tex>Q_a \subset Q</tex> — множество допускающих состояний | + | * <tex>Q_a \subset Q</tex> — множество допускающих состояний, |
− | * <tex>Q_r \subset Q</tex> — множество опровергающих состояний | + | * <tex>Q_r \subset Q</tex> — множество опровергающих состояний, |
− | * <tex>Q_{non} = Q \setminus (Q_a \bigcup Q_r), Q_{non} \subset Q </tex> — множество промежуточных состояний | + | * <tex>Q_{non} = Q \setminus (Q_a \bigcup Q_r), Q_{non} \subset Q </tex> — множество промежуточных состояний. |
}} | }} | ||
Строка 22: | Строка 22: | ||
==Типы ККА== | ==Типы ККА== | ||
− | * Первый тип {{---}} '''односторонние''' ККА. Они двигают только в одном направлении. Главная особенность односторонних ККА {{---}} допускать большинство регулярных языков. Также односторонние ККА делятся на Одномерные и Многомерные ККА. | + | * Первый тип {{---}} '''односторонние''' ККА. Они двигают только в одном направлении. Главная особенность односторонних ККА {{---}} допускать большинство регулярных языков. Также односторонние ККА делятся на Одномерные ККА и Многомерные ККА. |
− | * Второй тип {{---}} '''двухсторонние''' ККА. По аналогии с односторонним, они могу двигаться в обоих направлениях и их свойство {{---}} допускать нерегулярные языкы. | + | * Второй тип {{---}} '''двухсторонние''' ККА. По аналогии с односторонним, они могу двигаться в обоих направлениях и их свойство {{---}} допускать нерегулярные языкы. |
== Описание == | == Описание == | ||
Строка 60: | Строка 60: | ||
|definition= | |definition= | ||
'''Многомерный квантовый конечный автомат''' (англ. ''Measure-many QFA'') {{---}} это кортеж : <tex>(Q,\Sigma, \delta, q_0, Q_a, Q_r)</tex>, где | '''Многомерный квантовый конечный автомат''' (англ. ''Measure-many QFA'') {{---}} это кортеж : <tex>(Q,\Sigma, \delta, q_0, Q_a, Q_r)</tex>, где | ||
− | * <tex>Q</tex> — базисные ортогональные вектора пр-ва <tex>\mathcal{H}_Q</tex> | + | * <tex>Q</tex> — базисные ортогональные вектора пр-ва <tex>\mathcal{H}_Q</tex>, |
− | * <tex>\Sigma</tex> — алфавит, из букв которого могут состоять входные слова | + | * <tex>\Sigma</tex> — алфавит, из букв которого могут состоять входные слова, |
− | * <tex>\delta : Q\times \Sigma \times Q \to \mathbb{C} </tex> — всюду определённая функция перехода автомата | + | * <tex>\delta : Q\times \Sigma \times Q \to \mathbb{C} </tex> — всюду определённая функция перехода автомата, |
− | * <tex>q_0</tex> — начальное состояние автомата | + | * <tex>q_0</tex> — начальное состояние автомата, |
− | * <tex>Q_a \subset Q</tex> — базисные ортогональные вектора пр-ва <tex>\mathcal{H}_a</tex> | + | * <tex>Q_a \subset Q</tex> — базисные ортогональные вектора пр-ва <tex>\mathcal{H}_a</tex>, |
− | * <tex>Q_r \subset Q</tex> — базисные ортогональные вектора пр-ва <tex>\mathcal{H}_r</tex> | + | * <tex>Q_r \subset Q</tex> — базисные ортогональные вектора пр-ва <tex>\mathcal{H}_r</tex>. |
}} | }} | ||
'''Многомерный''' ККА был введен Attila Kondacs и John Watrous в 1997. Его главное свойство {{---}} допускать регулярные языкы. | '''Многомерный''' ККА был введен Attila Kondacs и John Watrous в 1997. Его главное свойство {{---}} допускать регулярные языкы. | ||
− | Принципы многомерного ККА очень схожи с | + | Принципы многомерного ККА очень схожи с одномерными, за исключением измерения вероятности после каждого прочтения символа входящей строки, вместо единственного измерения вероятности целой строчки у одномерных ККА. Для формального определения понадобится [[Гильбертовы пространства | гильбертово пространство]]. Пусть у нас есть гильбертово пространство <tex>\mathcal{H}_Q</tex> : |
<tex>\mathcal{H}_Q=\mathcal{H}_a \oplus \mathcal{H}_r \oplus \mathcal{H}_{non}</tex> , где <tex> \mathcal{H}_a </tex> {{---}} допускающее пр-во , <tex> \mathcal{H}_r </tex> {{---}} отвергающее пр-во , <tex> \mathcal{H}_{non} </tex> {{---}} промежуточное пр-во. Для каждого пр-ва существует набор базисных ортогональных векторов <tex>Q , Q_a \subset Q, Q_r \subset Q , Q_{non}\subset Q</tex> соответственно : | <tex>\mathcal{H}_Q=\mathcal{H}_a \oplus \mathcal{H}_r \oplus \mathcal{H}_{non}</tex> , где <tex> \mathcal{H}_a </tex> {{---}} допускающее пр-во , <tex> \mathcal{H}_r </tex> {{---}} отвергающее пр-во , <tex> \mathcal{H}_{non} </tex> {{---}} промежуточное пр-во. Для каждого пр-ва существует набор базисных ортогональных векторов <tex>Q , Q_a \subset Q, Q_r \subset Q , Q_{non}\subset Q</tex> соответственно : | ||
Строка 88: | Строка 88: | ||
|definition= | |definition= | ||
'''Двухсторонний квантовый конечный автомат''' (англ. ''2-way QFA'') {{---}} это кортеж : <tex>(Q,\Sigma, \delta, q_0, Q_a, Q_r)</tex>, где | '''Двухсторонний квантовый конечный автомат''' (англ. ''2-way QFA'') {{---}} это кортеж : <tex>(Q,\Sigma, \delta, q_0, Q_a, Q_r)</tex>, где | ||
− | * <tex>Q</tex> — множество состояний автомата | + | * <tex>Q</tex> — множество состояний автомата, |
− | * <tex>\Sigma</tex> — алфавит, из букв которого могут состоять входные слова | + | * <tex>\Sigma</tex> — алфавит, из букв которого могут состоять входные слова, |
− | * <tex>\delta : Q\times \Sigma \times Q \to \mathbb{C} \times \{-1,0,1\}</tex> — всюду определённая функция перехода автомата | + | * <tex>\delta : Q\times \Sigma \times Q \to \mathbb{C} \times \{-1,0,1\}</tex> — всюду определённая функция перехода автомата, |
− | * <tex>q_0</tex> — начальное состояние автомата | + | * <tex>q_0</tex> — начальное состояние автомата, |
− | * <tex>Q_a \subset Q</tex> — множество допускающих состояний | + | * <tex>Q_a \subset Q</tex> — множество допускающих состояний, |
− | * <tex>Q_r \subset Q</tex> — множество опровергающих состояний | + | * <tex>Q_r \subset Q</tex> — множество опровергающих состояний. |
}} | }} | ||
Текущая версия на 19:07, 4 сентября 2022
Неформально говоря квантовый конечный автомат — это квантовый аналог конечного автомата, который использует квантовые гейты. Такие автоматы позволяют допускать некотые языки, имея при этом экспоненциально меньший размер, чем обычные автоматы.
Содержание
Определение
Определение: |
Квантовый конечный автомат (ККА) (англ. Quantum finite automata, QFA) — это кортеж :
| , где
Кроме того, ККА является частным случаем Геометрического конечного автомата и Топологического конечного автомата[1].
Принцип работы
- На вход подается строчка .
- На выходе мы получаем число , являющееся вероятностью данного конечного автомата быть в допускающем состоянии.
Типы ККА
- Первый тип — односторонние ККА. Они двигают только в одном направлении. Главная особенность односторонних ККА — допускать большинство регулярных языков. Также односторонние ККА делятся на Одномерные ККА и Многомерные ККА.
- Второй тип — двухсторонние ККА. По аналогии с односторонним, они могу двигаться в обоих направлениях и их свойство — допускать нерегулярные языкы.
Описание
Для первоначального описание ККА воспользуемся следующим примером. Пусть у нас есть графовое представление ДКА и пусть в нем вершин, и все вершины пронумерованы. Тогда для представления такого графа можно воспользоваться набором матриц смежности таких, что каждая матрица размера и что каждому символу сопоставляется единственная матрица из этого набора. Каждая матрица состоит из и , причём означает переход из состояния в по символу , а — его отсутствие. В этом случае, текущее состояние автомата записывается как вектор, размерности , в котором будет лишь одна единица, обозначающая текущее положение состояния. При помощи такого описания можно легко делать переходы из нынешнего состояние в новое состояние по символу обыкновенным умножением матриц.
Пусть у нас есть ДКА с
вершинами и его . Тогда по описанному определению можно составить матрицы смежности размерности . Также введем -размерный вектор , описывающий состояние ДКА, a — начальное состояние автомата. Тогда для перехода из состояния в по строчке нужно воспользоваться правилом умножения матриц из линейной алгебры :Описанное выше по сути и является ККА, но в [2] такие, что , a матрицы — унитарные матрицы, причем такие матрицы могут не только состоять из и , но и состоять из комплексных чисел. Для ККА характерна геометрическая интерпретация в пространстве . С этой стороны вектор является точкой, a — операторы эволюции в представлении Шредингера [3].
записываются амплитуды вероятностейКроме того, можно упомянуть несколько особенностей ККА:
- НКА. Из-за свойства НКА в векторе алгоритм Томпсона, то построенные на их основе Квантовые конечные автоматы не будут эквивалентны. Эта проблема является одной из научно-исследовательских задач в теории ККА. и в столбцах матриц может находиться несколько . Если в этом случае рассмотреть
- Вероятностный конечный автомат. Для его построения нужно всего лишь в ККА использовать стохастические матрицы[4] для и вектор вероятностей состояний для . Одно из свойств — сумма всех элементов равна , и для того, чтобы во всех переходах сохранялось это свойство, и нужны стохастические матрицы.
- Марковская цепь. При вводе строчек марковской цепи[5]. при больших одномерный ККА может быть эквивалентен
Односторонние квантовые кончные автоматы
Одномерный квантовый конечный автомат
Авторы одномерного (англ. Measure-one) ККА — Cris Moore и James P. Crutchfield (2000). Главное свойство одномерного ККА — допускать регулярный язык. Автомат такого типа с состояниями представляется в виде кубита c состояниями.
- .
Такой кубит приносит в пространство метрику Фубини-Штуди[6] . Матрицы смежности остаются унитарными, а переход в новое сосояние по символу :
- .
Переход в допускающее состояние производится матрицей-проектором[7] .
Вероятность
, где равна :Многомерный квантовый конечный автомат
Определение: |
Многомерный квантовый конечный автомат (англ. Measure-many QFA) — это кортеж :
| , где
Многомерный ККА был введен Attila Kondacs и John Watrous в 1997. Его главное свойство — допускать регулярные языкы.
Принципы многомерного ККА очень схожи с одномерными, за исключением измерения вероятности после каждого прочтения символа входящей строки, вместо единственного измерения вероятности целой строчки у одномерных ККА. Для формального определения понадобится гильбертово пространство. Пусть у нас есть гильбертово пространство :
, где — допускающее пр-во , — отвергающее пр-во , — промежуточное пр-во. Для каждого пр-ва существует набор базисных ортогональных векторов соответственно :
- [8] , где — линейная оболочка
Так же в многомерном ККА присутствуют 3 матрицы-проектора :
, и для каждого гильбертово пр-ва :Переход в новое состояние кубита остается таким же, но после каждого перехода кубит коллпасирует в одно из трёх гильбертовых пр-в
. В таком случае вероятность автомата находиться в допускающем состоянии равна:- , где — входная строчка
Двухсторонние квантовые конечные автоматы
Определение: |
Двухсторонний квантовый конечный автомат (англ. 2-way QFA) — это кортеж :
| , где
Отличия от одностороннего :
- Головка может двигаться в обоих направлениях.
- Может гарантированно разрешать регулярный язык.
- Может за линейное время разрешать нерегулярный язык.
См. также
- Детерминированные конечные автоматы
- Недетерминированные конечные автоматы
- Построение по НКА эквивалентного ДКА, алгоритм Томпсона
Примечания
Источники информации
- Andris Ambainis, QUANTUM FINITE AUTOMATA
- Wikipedia — Quantum finite automata
- SlideShare.net, Seminar on quantum automata (complete)