Тип работы:
Предмет:
Язык работы:


Классические и квантовые алгоритмы для функции «EQUALITY»

Работа №47748

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы71
Год сдачи2018
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
402
Не подходит работа?

Узнай цену на написание


Введение 4
1 Детерминированные вычисления 7
1.1 Детерминированные ветвящиеся программах 7
1.2 Функция EQ 9
1.3 Детерминированная ветвящаяся программа для функции EQ 10
1.4 Детерминированные коммуникационные вычисления 12
1.5 Связь коммуникационных вычислении и ветвящихся про грамм 14
1.6 Детерминированные коммуникационные протоколах для функции EQ 17
1.7 Поиск оптимального детерминированного алгоритма 18
2 Вероятностные вычисления. 21
2.1 Общее понятие вероятностного алгоритма 21
2.2 Вероятность однораундоввые коммуникационные вычисления 21
2.3 Вероятностные ветвящиеся программах 22
2.4 Вероятностные алгоритмах для функции EQ 23
2.5 Уменьшение вероятности ошибки. Оценка Чернова 26
2.6 Вероятностные протоколы с общими случайными битами 27
2.7 Хэш-функции 29
2.8 Кодах с исправлением ошибок 30
3 Квантовые вычисления 34
3.1 Сравнение квантовых и классических систем 34
3.2 Квантовые ветвящиеся программах 41
3.3 Квантовые коммуникационные вычисления 44
3.4 Тривиальные квантовые алгоритмы 44
3.5 Эффективные квантовые алгоритмы 53
3.6 Квантовые хэш-функции 60
3.7 Квантовый алгоритм, использующий ’’хорошие” коды 62
Заключение 65
Литература 68

Данная работа относится к области теории сложности и посвящена исследованию и сравнительному сложностному анализу классических и квинтовых алгоритмов для функции ’’EQUALITY” (EQ). Алгоритм - это определенная последовательности действий, приводящая через конечное число шагов к результату — решению задачи, для которой разработан алгоритм. Любой алгоритм должен удовлетворятся двум свойствам. Во-первых, массовость, то есть алгоритм предназначен для решения задачи с некоторым множеством допустимыx входных данных. Во-вторых, конечности, это значит, что алгоритм должен завершается за конечное число шагов. Сложности алгоритма — это функция, определяющая зависимости объёма работы, выполняемой алгоритмом, от размера входных данных. В теории сложности алгоритмов выделяют две основные меры сложности - пространственная и временная. Время определяется количеством элементарных шагов, необходимых для решения задачи, пространство определяется объёмом памяти или места на носителе данных. Эффективным алгоритмом принято называть алгоритм, сложность которого ограничена полиномом от размера задачи.
Для реализации алгоритма необходимо выбрать модель вычисления. Модели вычислений можно условно разделить на модели с памятью и модели без памяти. К первым относятся так называемые машинные, ко вторым - схемные модели вычислений. Между этими двумя классами моделей нет четких различий. В ряде случаев схемные модели можно непосредственно интерпретировать с машинной точки зрения. Типичной схемной моделью вычислений являются ветвящиеся программы. С одной стороны, ветвящаяся программа - это контактная схема, с другой стороны, в терминах ветвящихся программ естественным образом описываются машины Твюринга и автоматы. Вычислительная модель называется однородной, если один и тот же алгоритм работает на входах различной длины. В противном случае, вычислительная модель называется неоднородной. К однородным вычислительным моделям относятся, например, машины Тьюринга, классические модели конечных автоматов. Схемы из функциональных элементов, ветвящиеся программы являются неоднородными.
В данной работе рассматриваются две модели вычислений: модель ветвящихся программ и коммуникационная модель вычислений. Коммуникационная модель вычислений рассматривается при доказательстве нижних оценок сложности, а также как основа некоторых алгоритмов. В работе приводится Теорема о связи сложности ветвящейся программы и коммуникационной модели вычислений. Данная теорема была известна ранее, но в данной работе доказательство утверждения автором проведено самостоятельно.
Для указанных моделей исследуются различные алгоритмы для вычисления функции EQ. Эта функция проверки двух наборов (двух последовательностей) на эквивалентность (равенство). К функции EQ можно свести ряд других функций (например, проверка является ли слово палиндромом, проверка периодичности числовой последовательности и т.д.). Таким образом, алгоритмы для EQ можно использовать для вычисления функций, которые к ней сводятся.
Исследованы три класса алгоритмов: детерминированные, вероятностные и квантовые. Каждый класс алгоритмов описан в соответствующей главе:”Детерминированные вычисления”, ” Вероятностные вычисления” и ” Квантовые вычисления”. В главе ’’Квантовые вычисления” приводится сравнение классических (детерминированных, вероятностных) и квантовых систем. Квантовые системы базируются на законах квантовой механики, поэтому детерминированные и вероятностные системы можно объединить одним термином - ’’Классические системы”. Для каждого класса приведены различные алгоритмы для функции EQ на языке ветвящейся программы и коммуникационной модели вычисления. Приведенные алгоритмы сравниваются между собой по сложности. Отдельно рассматриваются алгоритмы, базирующиеся на хэш-функциях и кодах с исправлением ошибок. На основе этих алгоритмов предложенв1 обобщенные вероятностные и квантовые алгоритмы, основанные
на универсальных хэш-функциях и ’’хороших” кодах.
Таким образом, в данной работе исследованы различные алгоритмах для функции EQ для детерминированных, вероятностных и квантовых ветвящихся программ и коммуникационнв1х моделей вычислении, проведен их сравнительный анализ, получены верхние оценки сложности.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


Таким образом, в работе были исследованы алгоритмах для функции EQ, а также проведен их сравнительный сложностной анализ. Для данной функции были рассмотрены три класса алгоритмов: детерминированные, вероятностные и квантовые.
В главе ’’Детерминированные вычисления” были рассмотрены разные алгоритмы. В первом алгоритме переменные считывались по очереди из каждой последовательности, сложность алгоритма была линейная. Также был рассмотрен алгоритм, в котором использовался естественный порядок считывания переменных, в таком случае сложность алгоритма была экспоненциальной. Таким образом, сложность вычисления функции EQ зависит от порядка считывания пеерменных.
Вероятностные алгоритмы не гарантируют абсолютно правильный ответ, но могут быть эффективнее детерминированных. Если вероятность ошибки ограничена константой, то такие алгоритмы считаются хорошими, так как путем повторения алгоритма несколько раз вероятность ошибки можно сделать сколь угодно малой. В данной работе были рассмотрены следующие вероятностные алгоритмы: ’’Тривиальный” алгоритм, алгоритм ’Сложение по модулю” и алгоритм ’’Полином”. В ’’Тривиальном” алгоритме вероятность ошибки равна O((n — l)/n). Это наихудшая ошибка любого вероятностного алгоритма, так как для того, чтобы сделать вероятность ошибки экспоненциально малой, согласно оценке Чернова, алгоритм нужно повторить к раз, где k=0(22n). В алгоритме ’’Сложение по модулю” вероятность ошибки уменьшается по сравнению с предыдущим алгоритмом и равна 0(1/п), это значительно меньше, чем в ’’Тривиальном” алгоритме. Вероятность ошибки можно уменьшить путем увеличения диапозона чисел, из которого выбирается необходимый параметр алгоритмар. В алгоритме ’’Полином” вероятность ошибки не зависит от и.
Хотелось бы также отметить особенность самих алгоритмов. В некоторых алгоритмах, а именно, ’’Сложение по модулю” и ’’Полином” использовались идеи сжатия последовательности бит. Данные идеи лежат в основе хэш- функций. Также был рассмотрен алгоритм для коммуникационной модели с тремя участниками, использующий общую последовательность случайных бит (public coin). Данный алгоритм, является основой кода Уолша-Адамара с исправлением ошибок.
В разделе ”Хэш-функции” был рассмотрен обобщенный алгоритм, основанный на вероятностном выборе хэш-функций из универсального множества хэш-функций. В разделе ’’Коды с исправлением ошибок” рассмотрен алгоритм с ’’избыточными” битами. Таким образом, в результате сравнения предложенных вероятностных алгоритмов, было показано, что наилучшим вероятностным алгоритмом является алгоритм ’’Полином”. Были получены верхние оценки алгоритмов, проведена классификация алгоритмов.
Также были рассмотрены алгоритмы и для квантовых моделей. Предложена квантовая модификация алгоритмов, изложенных в главе ’Вероятностные вычисления”, а именно, ’’Тривиальный алгоритм”, алгоритм ’Сложение по модулю” и алгоритм ’’Полином” были изложены на квантовом языке. Квантовые алгоритмы были разбиты на две основные группы: Тривиальные алгоритмы и Эффективные алгоритмы. Под ’’Тривиальным” алгоритмом мы понимали такой алгоритм, в котором вычисление функции EQ основано на прямом сравнении элементов последовательности. В противоположность ’’Тривиальным” алгоритмам, ’’Эффективные ” алгоритмы, в которых сравниваются не сами последовательности, а некоторые функции от них.
В разделе ’’Тривиальные алгоритмы” были рассмотренны несколько видов алгоритмов, а именно, алгоритмы, использующие дополнительную память, алгоритм, который не использует дополнительную память, но изменяет входные кубиты, квантово-вероятностные алгоритмы, квантовый тривиальный алгоритм, использующий суперпозицию и квантовый алгоритм с промежуточным измерением.
В разделе ” Эффективные алгоритмы” рассмотрены квантовые алгоритмах ’’Сложение по модулю ” и ’’Полином ”. Коммуникационная сложности этих алгоритмов O(log n), а ошибка - константная. Выяснено, что основой рас- смотренных эффективных алгоритмов является использование квантовых хэш-функций. Также разработан метод построения эффективных квантовых алгоритмов, основанных на использовании’’хороших” кодов. Получены верхние оценки, проведен сравнительный анализ алгоритмов, а также разработан метод построения эффективного квантового алгоритма, использующий ’’хорошие” коды.
Таким образом, в работе исследованы три класса алгоритмов для функции EQ: детерминированные, вероятностные и квантовые. Проведено сравнение вероятностных и детерминированных алгоритмов. Сделан вывод, что использование вероятностных алгоритмов позволяет заметно уменьшить сложность алгоритма, повысить точность алгоритма можно путем повтора алгоритма. Также были исследованы квантовые алгоритмы, которые по своей природе значительно отличаются от классических. Были найдены такие алгоритмы, которые с высокой точностью выдают правильный ответ, разработан метод построения эффективных квантовых алгоритмов.


[1] Аблаев Ф.М., Васильев А.В. Классические и квантовые ветвящиеся программы. URL: http://old.kpfu.ru/f9/bin_files/ablayev-vasiliev%21184.pdf (дата обращения: 15.09.2017).
[2] Аблаев Ф.М.,Хайруллин А.Ф., Аблаев М.Ф. Коммуникационные вычисления. URL: lift}): repository.kpfu.ru ?p_id 61470 (дата обращения:
29.09.2017) .
[3] Аблаев Ф.М., Гайнутдинова А.Ф. Дискретные и вероятностные модели вычислений. Конспект лекций.
[4] Черноусова (Ежова) Е.О. Стохастический анализ в задачах. URL: https://www.mccme.ru/ium/postscript/sl2/gasnikov-12.pdf (дата обращения: 15.10.2017)
[5] Шень А.Х. Введение в теоретическую информатику, URL: https://stepik.org/course/104/syllabus (дата обращения: 18.10.2017).
[6] Вялый М.Н. Как использование случайности может помочь сделать ваш код быстрее?, URL: https://habrahabr.ru/company/yandex/blog/214745/ (дата обращения: 25.10.2017)
[7] Подольский В.В., Ромащенко А.Е. Введение в коммуникационную сложность. Конспект лекций. Мехмат МГУ, 2012. URL: https://www.mccme.ru/ anromash/courses/lectures-cc-2012.pdf (дата обращения: 01.11.2017)
View. URL: https://pdfs.semanticscholar.org/presentation/4c37/745e52f2bdl- a6e9c6dll39891fd550e73850.pdf (дата обращения: 16.11.2017)
[9] Головнев А. Семинар по сложности булевых функций. Лекция 6: Коммуникационная сложности и глубина схем. URL:
https://compsciclub.ru/media/slides/boolean_functions_complexity_2011_-
autumn/2011_ll_06_boolean_functions_complexity eU8qQNW.pdf
(дата обращения: 27.11.2017)
[10] Courtesy RK Brayton, Kuehlmann A. Logic Synthesis. Binary Decision Diagrams. URL: http://slideplayer.com/slide/7023047/ (дата обращения:
01.12.2017)
[11] Ромащенко А., Румянцев А., Шенв А. Заметки по теории кодирования.
| М.: МЦНМО, 2011. | 80 с. ISBN 978-5-94057-750-8.
[12] Henrik Reif Andersen, An Introduction to Binary Decision Diagrams. Lecture notes for Efficient Algorithms and Programs, Fall 1999. The IT University of Copenhagen. URL: http://www.cmi.ac.in/ madhavan/courses/verification- 2011/andersen-bdd.pdf (дата обращения: 16.12.2017)
[13] Jan Friso Groote, Jaco van de Pol, Equational Binary Decision Diagrams, Department of Computing Science, Eindhoven University of Technology, Software Engineering (SEN) SEN-R0006 February 29, 2000 URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.2580&re- p rep 1 Vtype pdf (дата обращения: 21.12.2017)
[14] William Lovas, Lecture Notes on Binary Decision Diagrams, 2011, URL: https://www.cs.cmu.edu/ wlovas/15122-rll/lectures/25-bdds.pdf (дата обращения: 22.12.2017)
[16] Полиномиальные хэши и их применение[Статья], URL: https://habrahabr.ru/post/142589/ (дата обращения: 29.12.2017)
[17] Хэш-алгоритмы[Статья], URL: https://habrahabr.ru/post/93226/ (дата обращения: 12.02.2018)
[18] Анализ сложности алгоритмов. Примеры [Статья], URL: https: pro
prof, com archives 1660 (дата обращения: 17.02.2018)
[19] Новиков Ф. А. Н73 Дискретная математика дл я программистов: Учебник дл я вузов. 3-е изд. — СПб.: Питер, 2009. — 384 е.: ил. — (Серия «Учебник дл я вузов»),
[20] Оценка сложности алгоритмов.Лекция 1. Сложность алгоритма: понятие, виды сложности. Классы сложности. URL:
https://sfedu.ru/www/umr_main.umr_download?p_umr_id=2389 (дата обращения: 24.02.2018)
[21] Вялый М.Н. Квантовые алгоритмы: возможности и ограничения, 2011. URL: https://compsciclub.ru/media/course_class_attachments/201- 10403_quantum_algorithms_vyali_lecture_notes.pdf (дата обращения:
03.03.2018)
[22] Аблаев Ф.М. Квантовые ветвящиеся программы - новая парадигма модели квантовых алгоритмов, 2011. URL: http://www.iki.rssi.ru/seminar/2011030204/presentation/20110302_03.pdf (дата обращения: 19.03.2018)
[23] Китаев А., Шень А., Вялый М. К53 Классические и квантовые вычисления _ м.: МЦНМО, ЧеРо, 1999. — 192 с.
[24] Buhrman Н., Cleve R., Watrous J., Wolf R. Quantum fingerprinting, 2001. URL: https://arxiv.org/pdf/quant-ph/0102001.pdf (дата обращения:
29.03.2018)
[25] Васильев А.В. Квантовые вычисления для программистов. URL: http://old.kpfu.ru/f9/bin_files/vasiliev! 183.pdf (дата обращения: 11.04.2018)
[26] Гайнутдинова А.Ф. Основы квантовых вычислений: Учебное пособие/ - Казани: КГУ, 2009. -100с.
[27] Гайнутдинова А.Ф. Квантовые модели вычислений: Учебное пособие/ - Казани: КФУ, 2016. - 104с.

Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ