Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
Мы выполним то, что намеревались сделать — найти какой-нибудь квантовомеханический гамильтониан системы, которая может быть использована в вычислениях, и это все, что следует сказать. Но имеет место некий интерес заняться определенными вопросами, связанными с простейшей реализацией. Гамильтониан, который мы выпишем, содержит члены, отражающие особый вид взаимодействия между пятью атомами. К примеру, три таких атома в регистре для осуществления операции CONTROLLED CONTROLLED NOT, а два других будут использоваться как дополнительные ячейки в качестве программных счетчиков. Возможно, это достаточно сложно сделать. Вопрос заключается в следующем: можем ли мы построить такую систему из простейших частей. Оказывается, да. Мы можем это сделать так, что в каждом взаимодействии будут учитываться только три атома. Мы собираемся стартовать с новых примитивных элементов, вместо тех, с которых мы начинали раньше. Мы будем иметь ту же операцию NOT, но в дополнение к ней мы будем производить простой «переключатель» (см. также Priese [5]). Предположим, что мы имеем следующий член в гамильтониане $q^{*} c p+r^{*} c^{*} p$ плюс член ему комплексно сопряженный (во всех случаях мы будем использовать буквы из начала алфавита для обозначения значений атомов регистра и из конца алфавита для обозначения программного места). См. рисунок 7. Здесь показано действие переключателя: если $c$ в начальный момент находится в состоянии $|1\rangle$, курсор из $p$ будет двигаться в $q$, в противном случае, если $c$ находится в состоянии $|0\rangle$, курсор из $p$ перейдет в $r$. В течение этой операции контролируемый атом $c$ изменяет свое состояние. (Возможно также записать выражение, в котором контролируемый атом не меняет своего состояния, а именно, $q^{*} c^{*} c p+r^{*} c c^{*} p$ плюс его комплексное сопряжение, это не приносит никаких частных преимуществ или недостатков, мы исследуем самый простой случай.) Комплексное сопряжение приводит к обратному результату. Однако, если курсор находится в $q$ и $c$ находится в состоянии $|1\rangle$ (или курсор на $r$, а $c$ в состоянии $|0\rangle$ ), тогда $H$ С таким переключателем мы можем сделать большое число операций. Например, мы можем получить CONTROLLED NOT операцию, как это показано на рисунке 8. Переключатель $a$ контролирует операцию 0. Предположим, что курсор находится в состоянии $s$. Если $a=1$, программный курсор движется вдоль верхней линии, тогда как если $a=0$, курсор движется вдоль нижней линии, в обоих случаях мы получим в конце концов программное состояние $t$. В таком случае не стоит беспокоиться, что один путь (две курсорные позиции) длиннее, чем другой (одна позиция курсора), поскольку не существует интерференции. Никакого рассеяния не возникает в любом случае, когда мы к цепи связных ячеек добавляем дополнительный отрезок цепи, состоящий из любого числа ячеек с той же взаимосвязью между ячейками (по аналогии со связующим сопротивлением в линиях передач). Изучая далее этот вопрос, рассмотрим соединенные вместе отрезки. Отрезок цепи $M$ (см. рисунок 9) может быть представлен как логический элемент взаимодействующих частей, под которыми мы понимаем начальное состояние курсора $s_{M}$ и конечное его состояние $t_{M}$. Все оставшиеся программные состояния, находящиеся между $s_{M}$ и $t_{M}$, представлены внутренними частями $M$, и $M$ содержит собственные регистры. Только состояния $s_{M}$ и $t_{M}$ могут быть связаны внешним образом. Рис. 9. Один из «отрезков линии». $s_{M}$ — начальное программное состояние для отрезка, $t_{M}$ — конечное программное состояние для отрезка. $H_{M}\left(s_{M}, t_{M}\right)$ — часть гамильтониана, соответствующая всем «атомам» и программным состояниям, входящим в бокс $M$, а также их взаимодействие с $s_{M}$ и $t_{M}$ Гамильтониан такой подсистемы мы будем обозначать как $H_{M}$, а под $s_{M}$ и $t_{M}$ мы будем понимать начальное и конечное программные состояния и записывать это как $H_{M}\left(s_{M}, t_{M}\right)$. И, следовательно, $H_{M}-$ часть гамильтониана, представляющая все входящие в бокс $M$ атомы и их внешние начальные и конечные состояния. Сейчас мы можем рассмотреть с разных сторон связь таких логических элементом. К примеру, наиболее очевидный способ такой связи можно осуществить при помощи последовательности. Если мы сначала хотим произвести действие бокса $M$, а затем действие бокса $N$, мы можем связать конечную позицию первого и начальную позицию второго, как это показано на рисунке 11. Таким образом, получается новая операция $K$, гамильтониан $H_{K}$ которой имеет вид Пусть теперь действие происходит по условию: если $a=1$, то выполняется $M$, но если $a=0$, то выполняется $N$, как это показано на ри- сунке 12. Для этой операции гамильтониан имеет вид Операция CONTROLLED NOT является частным случаем приведенного выше с $M=N O T b$, для которого гамильтониан имеет вид и $N$ — операция $s^{*} t$. Рис. 11. Последовательность операций устройств, прямого и обратного к нему, а использующий ту же самую машину, но только посылая данные обратно в устройство в обратном направлении, используя изображенный на рисунке 13 наш переключатель. Предположим, что такая система имеет специальный флаг, который изначально всегда находится в нуле. Мы также предположим, что исходные данные содержатся во внешнем регистре, а пустой внешний регистр используется для выходных данных, а также все машинные регистры пусты (содержат нули). Таким образом, мы получили начальное состояние системы $s$. Первое, что мы сделаем, это скопируем (используя операцию CONTROLLED NOT) содержимое нашего внешнего регистра в $M$. Затем действует $M$, и курсор переходит на верхнюю позицию на нашем рисунке. Далее копируем выходные данные действия оператора $M$ во внешний выходной регистр. В $M$ сейчас содержится мусор. Теперь меняем $f$ на NOT $f$ и возвращаемся назад по другой линии переключателя, проходим в обратную сторону по $M$, очищая его от мусора, и все копируем снова во внешний входной регистр. Когда вы копируете данные, а затем делаете это снова, вы обнуляете один из регистров, тот, в который вы копировали в первый раз. После такого копирования данные уходят (поскольку $f$ теперь изменен) по другой линии, где мы восстанавливаем в $f$ нулевое значение и выходим в момент $t$. Таким образом, на промежутке от $s$ до $t$ мы теперь имеем новое устройство, обладающее следующими свойствами. В начале работы в регистре, названном IN, содержатся входные данные. Во внешнем регистре, названном OUT, содержатся нули. Внутренний флаг находится в положении ноль, а бокс $M$ не содержит ни- каких данных. В результате произведенных действий в момент $t$ во входном регистре так и будут находиться входные данные, а выходной регистр содержит результат действия оператора $M$. $M$, однако, продолжает оставаться пустым, а флаг $f$ находится в нуле. Также очень важным для компьютерной программы является возможность использования одной и той же подпрограммы несколько раз. Конечно, с логической точки зрения этого можно достичь, записывая этот участок программы еще и еще раз, столько раз, сколько нам необходимо, но в практических вычислениях было бы гораздо лучше, если мы могли построить такой раздел компьютера, который производил бы некое частное действие, а затем использовать его снова и снова. Для того чтобы показать такую возможность, мы для начала предположим, что нам необходимо произвести двойное последовательное повторение определенной операции (см. рисунок 14). Мы начнем в момент $s$, флаг $a$ находится в состоянии 0 . Далее мы будем двигаться вдоль линии, и первое, что произойдет, — изменится значение $a$. Затем мы произведем операцию $M$. Теперь, так как значение $a$ изменено, вместо того чтобы уйти по верхней линии, с которой мы начинали, мы возвращаемся назад по нижней линии, которая возвращает программу назад на момент очередного изменения значения флага $a$. Таким образом, все начинается снова. На этот раз, пройдя сквозь $M$, мы выйдем из подпрограммы по верхней линии и таким образом достигнем конечного момента $t$. Гамильтониан этой системы имеет вид Стало ясно, что с использованием такого флага или последовательности используемых древовидных структур переключателей, мы могли бы направить данные в любое место в памяти. Под памятью мы понимаем место, где находятся регистры, в которых записаны данные и к которым обращается программа. Курсор будет перемещаться по таким данным. Я полагаю, что должны существовать и другие древовидные системы из переключателей, позволяющие проводить курсор в обратном направлении после записи данных, причем система остается обратимой. На рисунке 16 показан пошагово приращиваемый бинарной счетчик (содержащий три бита $a, b$ и $c$, причем $c$ — наиболее важный бит), который сохраняет информацию о том, сколько раз курсор прошел от $s$ до $t$. Этих примеров должно быть вполне достаточно, чтобы показать, что мы действительно можем построить любую вычислительную функцию, используя наши переключатели и операции NOT. Мы не будем далее вникать в подробности.
|
1 |
Оглавление
|