Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике Мы выполним то, что намеревались сделать – найти какой-нибудь квантовомеханический гамильтониан системы, которая может быть использована в вычислениях, и это все, что следует сказать. Но имеет место некий интерес заняться определенными вопросами, связанными с простейшей реализацией. Гамильтониан, который мы выпишем, содержит члены, отражающие особый вид взаимодействия между пятью атомами. К примеру, три таких атома в регистре для осуществления операции 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 |
Оглавление
|