Численный анализ многокубитных систем

(1/43) > >>

С.И. Доронин:
Есть такая мысль – попытаться разработать удобную для пользователя программу для численного анализа многокубитных систем. У меня много материала и самих кодов (на С), которые можно взять за основу, но этого недостаточно. Здесь речь идет о том, чтобы все это грамотно скомпоновать и оформить в виде программы под Windows, с понятным интерфейсом, чтобы ей мог пользоваться любой человек, даже далекий от квантовой физики.

Основное предназначение программы и главная мотивация при ее создании – предоставить удобный инструмент для анализа квантовой запутанности в многокубитной системе.

Чем она может быть интересна, скажем так, для нефизиков? Прежде всего, речь идет о нелокальных квантовых корреляциях в многоуровневой системе, и программа может быть полезна для тех, кто интересуется тонким миром и хочет понять, как он влияет на мир плотный. Например, астрологи, пользуясь программой, смогут анализировать многоуровневые квантовые корреляции и влияние, напр. деканов или планетных сфер на плотный мир. Смотреть, как взаимосвязаны все эти «тонкие истечения» звезд и планет в составе единой многоуровневой иерархической системы. Кто интересуется тонкой структурой нашего тела, смогут анализировать его эфирную, астральную, ментальную и др. составляющие, опять в их взаимосвязи и взаимном влиянии, как друг на друга, так и на плотное физическое тело. Все это можно рассматривать в динамике, например, в терминах работы наших чакр, или это может быть модель эволюции Универсума, как замкнутой системы, с учетом динамики тонких уровней реальности.
В принципе, ее можно было бы использовать практически в любых задачах, где предполагается учитывать роль и влияние квантовых уровней, в той же квантовой психологии, например :).

На персональном компьютере сейчас относительно спокойно можно проанализировать 8-кубитную систему, больше уже сложно. Но это и так физическое тело (или плотный мир) плюс семь тонких уровней квантового ореола (семь его слоев). Возможные аналоги – семь тонких Космических Сфер, Семь Управителей (семь Ангелов Творения) со всем их «воинством» на нижних уровнях; семь тонких тел человека (семь чакр) и т.д.
Во многих случаях будет достаточно меньшего числа кубитов, например, для анализа гексаграмм, или рун достаточно трехкубитной системы. Для анализа «загробного мира», как я уже писал в теме http://quantmag.ppole.ru/index.php?option=com_smf&Itemid=34&topic=16.0  достаточно пяти кубитов.

Замах, наверное, слишком сильный :), но задача вполне выполнима (теоретически :)). Естественно, один я ее не осилю. В общем, если удастся собрать команду энтузиастов, можно попробовать. Основное требование к тому, кто пожелает присоединиться – знание языка С, хотя бы на начальном уровне.

ksv:
Да, интересное дело. Уверен, что реализация программы моделирования многокубитных систем и эксперименты с ней позволят лучше понять и "прочувствовать" квантовые закономерности.

Мне например затруднительно разобраться в математическом формализме квантовой физики по существующим учебникам по квантовой механике. Эти учебники слишком привязаны к частным вопросам физики, а также зачастую оперируют математическими понятиями, выходящими за рамки стандартной программы математической подготовки технического вуза. Учебника описывающего предмет в терминах систем (без "жесткой" привязки к частным вопросам физики) я пока не нашел.

А программа моделирования многокубитных систем должна в наглядном и понятном для всех виде показывать динамику таких систем в зависимости от задаваемых параметров. В общем я согласен по мере возможностей принять участие в создании такой наглядной и полезной программы. Язык С знаю неплохо. Но думаю что наиболее перспективно реализовать это на Java, что позволит разместить ее даже на квантовом портале :) без необходимости инсталляции.

Поэтому для начала расскажите поподробнее, что у Вас уже есть. А также в общих чертах обрисуйте логику работы программы: что подается на вход, по каким алгоритмам данные преобразуются, что получаем на выходе. И как все это в идеале на Ваш взгляд должно выглядеть.

С.И. Доронин:
Расскажу более подробно.

Задача состоит в решении уравнения Лиувилля – фон Неймана для матрицы плотности ρ (ħ=1):

idρ/dt = [H, ρ],       (1)

где [H, ρ] = Hρ – ρH коммутатор, а гамильтониан H зависит от конкретной задачи. Он отвечает за взаимодействия в системе. У меня есть коды для построения некоторых гамильтонианов, которые используются чаще всего.

Решение (1) имеет вид:

ρ(t) = e–iHtρ(0) eiHt,     (2)

где ρ(0) – начальное условие, т.е. это исходная матрица плотности, которая задается в зависимости от решаемой задачи.

Первая сложность в том, что в показателе экспоненты стоит матрица H, т.е. мы имеем матричные экспоненты. Расправляются с ними следующим образом. Поскольку матрица гамильтониана H обычно является симметричной и вещественной, она может быть диагонализована ортогональным преобразованием U (UUТ=Е, здесь Е – единичная матрица). В результате решение (2) можно записать в виде:

ρ(t) = Ue–iΛtUТρ(0)UeiΛtUТ,     (3)

где

Λ = UТHU

диагональное представление гамильтониана. Или, попросту, Λ – это полный набор собственных значений матрицы H, а U – матрица, составленная из собственных векторов.

Таким образом, на первом этапе алгоритм решения задачи сводится к следующим операциям.

В виде действительной симметричной матрицы 2N*2N, задаем исходный гамильтониан системы, состоящей из N кубитов. В программе будет предусмотрен выбор некоторого стандартного гамильтониана из имеющегося набора, с объяснением для каких задач используется тот или иной гамильтониан. Либо пользователь может сам построить гамильтониан согласно общим указаниям.Диагонализуем матрицу гамильтониана H, в результате получаем матрицу собственных векторов U и вектор собственных значений Λ.Вычисляем произведения матриц S=Ue–iΛtUТ и S+=UeiΛtUТ в виде S=Sre–iSim, S+=Sre+iSim, где Sre= Ucos(Λt)UТ и Sim= Usin(Λt)UТ. Вычисляем матрицу плотности ρ(t). Согласно формуле (3), умножаем матрицу S на начальную матрицу плотности ρ(0), затем полученную матрицу умножаем на S+.
Пункты 1–2 выполняются однократно, вычисления по пунктам 3–4 проводятся в цикле по времени t. Для хороших графиков нужно где-то 300 шагов по времени. Поскольку диагонализация выполняется лишь однократно и по числу операций сопоставима с умножением матриц, основные затраты вычислительного времени приходятся на п. 3 и 4.

Все это у меня есть в исходниках на С++, которые отлажены и многократно проверены. Собственно по ним мы считаем свои задачи по спиновой динамике и список основных публикаций можно посмотреть на портале в моем блоге. Единственное, что нет никакого интерфейса.

Но это лишь первый этап. На втором, имея полную матрицу плотности для всей системы, на каждом шаге по времени вычисляются уже сами меры квантовой запутанности между различными подсистемами на всех уровнях. Т.е., например, для многокубитной системы ABCDE… считаются квантовые корреляции А-В, А-ВС, A-BCD, A-BCDE, и т.д. Все это будут различные слои квантового ореола, все более тонкие и удаленные от A (в данном случае). Но это не все, а только влияние квантовых уровней на «плотное тело» (один кубит), помимо этого будут вычисляться корреляции более сложного типа, например AB-CDE, (аналог – взаимосвязь эфирного и астрального планов) и т.д. Т.е. будет полный анализ квантовых корреляций и взаимосвязей всех тонких уровней между собой.

Этого у меня нет в кодах, да пока никто и не знает, как решить такую задачу и сделать полный анализ квантовой запутанности для многокубитной системы на всех ее уровнях :). Это, можно сказать, сейчас самый передовой край физики квантовой информации. Но чтобы немного заинтриговать скажу, что у меня есть соображения и даже конкретный алгоритм, как это можно сделать. Но пусть пока это будет нашим ноу-хау :), это еще не опубликовано, и я только работаю над статьей.

Могу только сказать, что там ничего сложного, в плане программирования намного легче первого этапа. Как обычно, нужно от матрицы, полученной на первом этапе, брать частичные (редуцированные) матрицы плотности, как это делается, я писал, например, в статье http://quantmagic.narod.ru/volumes/VOL112004/abs1123.html

И на основе этих редуцированных матриц уже вычисляются сами меры квантовой запутанности.

Основной результат на выходе – графики квантовых корреляций на всех уровнях многокубитной системы (в динамике). Это в самом простом случае. Можно подумать, как лучше или более наглядно преподнести результат.


Очевидно, что при t=0 мы имеем стационарный случай (начальная матрица плотности не меняется), и эта задача имеет большой самостоятельный интерес. Первый динамический блок отключаем, но работает второй блок, который анализирует квантовую запутанность для введенной (исходной) матрицы плотности. В этом случае можно анализировать различные классы запутанных состояний, например, хорошо известные Cat-состояния (шредингеровского кота), W-состояния, состояния Вернера и др. Все эти типы запутанности сейчас хорошо изучены, для них есть аналитические выражения мер квантовой запутанности (для двух- и трехкубитных систем), поэтому есть возможность проверять и отлаживать наш второй блок, вычисляющий квантовую запутанность. Таким образом, мой алгоритм будет проверен, и можно будет убедиться, что результаты совпадают с тем, что уже известно.
Ну и для пользователей, я думаю, можно сделать что-то типа образовательного блока, который будет знакомить с основными классами запутанных состояний и наглядно демонстрировать их отличительные особенности, специфику и основные характеристики.

Можно еще сделать отдельный блок для однокубитной сферы Блоха. На трехмерном рисунке показывать динамику вектора состояния, и как, в случае открытой системы (смешанного состояния), точка со сферы уходить вглубь шара. Это будет полезно и в познавательном плане, как знакомство с этим интересным и довольно глубоким понятием квантовой теории. Кстати, эту подпрограмму со сферой Блоха можно использовать и для более наглядной демонстрации результата в основной динамической задаче, когда на сфере мы показываем, что происходит с одним кубитом (плотным телом) под влиянием квантовых корреляций различного уровня.

Наверное, можно придумать еще много чего интересного, но основное я предложил.

ksv:
Теперь в общих чертах теоретическая основа понятна. Скажите, а подход к моделированию многокубитных квантовых систем на основе дифференциального уравнения Луивилля - это наиболее общий подход из существующих? Сомнение здесь вот какого плана. Если мы моделируем эволюцию замкнутой системы в целом, то мы не должны в явном виде задавать зависимость переменных от времени, т.к. для системы в целом времени нет. Время должно возникать в результате такого моделирования. А в уравнении Луивилля зависимость от времени задана в явном виде. Поэтому вопрос: на Ваш взгляд это не сужает область применения модели? Не являются ли другие методы более перспективными? Например, в книге Х.Гулд, Я.Тобочник "Компьютерное моделирование в физике" (в 2 частях) квантовые системы анализируются с помощью метода случайных блужданий и вариационного метода Монте-Карло для квантовомеханических систем.

Теперь что касается непосредственно предложенной модели. Вы говорите, что Цитата: С.И. Доронин от 25 Марта 2007, 23:44:52

Решение (1) имеет вид:

ρ(t) = e–iHtρ(0) eiHt,     (2)

Однако в книге К.Блюм "Теория матрицы плотности и ее приложения" на стр. 67 говорится, что указанное решение справедливо для случая, когда Н не зависит от времени. Т.е. предлагается закладывать в модель неизменность взаимодействий в процессе эволюции (за которые и отвечает гамильтониан Н). Не является ли это слишком грубым упрощением реальности?

По алгоритму расчета:
1. Не понял, откуда берется начальная матрица плотности ρ(0)? По идее это тоже задаваемая матрица, как и гамильтониан.
2. Каков алгоритм диагонализации матрицы?

Как я понимаю, ко всему этому теперь нужен грамотный графический интерфейс?

С.И. Доронин:
ksv

Цитата:

Теперь в общих чертах теоретическая основа понятна. Скажите, а подход к моделированию многокубитных квантовых систем на основе дифференциального уравнения Луивилля - это наиболее общий подход из существующих? Сомнение здесь вот какого плана. Если мы моделируем эволюцию замкнутой системы в целом, то мы не должны в явном виде задавать зависимость переменных от времени, т.к. для системы в целом времени нет. Время должно возникать в результате такого моделирования. А в уравнении Луивилля зависимость от времени задана в явном виде. Поэтому вопрос: на Ваш взгляд это не сужает область применения модели? Не являются ли другие методы более перспективными? Например, в книге Х.Гулд, Я.Тобочник "Компьютерное моделирование в физике" (в 2 частях) квантовые системы анализируются с помощью метода случайных блужданий и вариационного метода Монте-Карло для квантовомеханических систем.

Если речь идет о точном решательстве, то да, обычно используют уравнение Лиувилля. Помимо этого есть много приближенных методов, в частности, Монте-Карло.

На время t в этой задаче не стоит смотреть как на физическое время в нашем обычном понимании. Экспоненциальный оператор в уравнении описывает «сдвиг» состояния. Гамильтониан конкретизирует характер этого смещения, а t – это всего лишь параметр, который отвечает за частоту сдвигов, насколько быстро они происходят. В нашем случае можно говорить, что для системы и нет времени, а есть параметр смещения состояния.
Если речь идет о конкретной физической задаче, когда мы описываем, например, физический эксперимент и задаем конкретный гамильтониан, то, действительно, мы привязываемся к обычному нашему времени t. Но в нашем случае цель другая – понять основные закономерности и взаимосвязи в системе с учетом нелокальных квантовых корреляций. При этом мы смотрим, что происходит с подсистемами, как они «проявляются» и какие корреляции их «пронизывают», когда изменяется состояние всей системы. При этом можно проследить и обратные связи, т.е. как изменения в подсистемах и на квантовых уровнях сказываются на состоянии всей системы, поскольку все рассматривается в единстве и всеобщей взаимосвязи.

Кстати, уравнение Лиувилля позволяет описывать не только замкнутые системы, но и открытые, в этом его преимущество по сравнению с ур. Шредингера, когда рассматривается динамика вектора состояния. В случае замкнутой системы матрица плотности получается из вектора состояния как проектор ρ=|ψ><ψ|.

Цитата:

Однако в книге К.Блюм "Теория матрицы плотности и ее приложения" на стр. 67 говорится, что указанное решение справедливо для случая, когда Н не зависит от времени. Т.е. предлагается закладывать в модель неизменность взаимодействий в процессе эволюции (за которые и отвечает гамильтониан Н). Не является ли это слишком грубым упрощением реальности?

Вы правы, предполагается, что гамильтониан не зависит от времени. Не думаю, что это грубое упрощение, чаще всего в реальных физических задачах динамическая часть гамильтониана является малой добавкой. Учитывать ее имеет смысл для более точного описания каких-то конкретных экспериментов, но в нашем случае, когда речь идет лишь об общем понимании закономерностей, она ни к чему, по-моему.

Цитата:

По алгоритму расчета:
1. Не понял, откуда берется начальная матрица плотности ρ(0)? По идее это тоже задаваемая матрица, как и гамильтониан.

Начальная матрица плотности задается «вручную», например, это может быть равновесное состояние. А для циклической эволюции вообще неважно, откуда стартовать, будет лишь смещение начала координат.

Цитата:

2. Каков алгоритм диагонализации матрицы?

Я использую стандартные подпрограммы tred2 и tqli, это метод Хаусхолдера и QL-алгоритм с неявными сдвигами. Посмотреть описание можно здесь:
http://www.cyberguru.ru/programming/programming-theory/matrix-vectors-values-8.html
http://www.cyberguru.ru/programming/programming-theory/matrix-vectors-values-10.html
Или здесь:
http://www.netcode.ru/cpp/?click=Eigenvalue.html

Цитата:

Как я понимаю, ко всему этому теперь нужен грамотный графический интерфейс?

Похоже, это основной вопрос, в который все упирается. У меня опыт здесь небольшой, на Borland C++ Builder 6 для себя я делал несколько небольших программок под Windows. Но в данном случае этого недостаточно, например, с графиками и построением изображений я не умею работать, всегда пользовался для этих целей отдельными программами.
Основной компилятор, которым я пользуюсь, это Cygwin http://ru.wikipedia.org/wiki/Cygwin , поскольку мне нужна привязка к юниксовым g++ и gcc.

Навигация

[0] Главная страница сообщений

[#] Следующая страница