Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
18 Сентября 2020, 09:42:17
Начало Помощь Поиск Войти Регистрация
Новости: Книгу С.Доронина "Квантовая магия" читать здесь
Материалы старого сайта "Физика Магии" доступны для просмотра здесь
О замеченных глюках просьба писать на почту quantmag@mail.ru

+  Квантовый Портал
|-+  Тематические разделы
| |-+  Физика (Модератор: valeriy)
| | |-+  Численный анализ многокубитных систем
0 Пользователей и 1 Гость смотрят эту тему. « предыдущая тема следующая тема »
Страниц: 1 2 3 ... 15 [Все] Печать
Автор Тема: Численный анализ многокубитных систем  (Прочитано 317394 раз)
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« : 24 Марта 2007, 22:45:23 »

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

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

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

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

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

Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #1 : 25 Марта 2007, 17:00:01 »

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

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

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

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


Просмотр профиля
« Ответ #2 : 25 Марта 2007, 23:44:52 »

Расскажу более подробно.

Задача состоит в решении уравнения Лиувилля – фон Неймана для матрицы плотности ρ (ħ=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
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #3 : 26 Марта 2007, 18:29:23 »

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

Теперь что касается непосредственно предложенной модели. Вы говорите, что
Решение (1) имеет вид:

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

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

Как я понимаю, ко всему этому теперь нужен грамотный графический интерфейс?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #4 : 27 Марта 2007, 00:58:33 »

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.

Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #5 : 27 Марта 2007, 12:06:07 »

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

Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #6 : 27 Марта 2007, 23:54:06 »

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

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

На время t в этой задаче не стоит смотреть как на физическое время в нашем обычном понимании.
Не совсем понял, речь же идет о диффернециальном уравнении Лиувилля, где в левой части стоит производная (!) матрицы плотности. Как по другому на это можно посмотреть? Да и  экспонента в решении возникла не просто так, а скорее всего как результат интегрирования по времени правой части.

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

Кстати, уравнение Лиувилля позволяет описывать не только замкнутые системы, но и открытые, в этом его преимущество по сравнению с ур. Шредингера, когда рассматривается динамика вектора состояния. В случае замкнутой системы матрица плотности получается из вектора состояния как проектор ρ=|ψ><ψ|.
А за счет чего уравнение Лиувилля позволяет учесть квантовые взаимодействия открытой системы с окружением, да еще и динамику их изменений?
Что касается уравнения Шрёдингера, то помимо времени, в нем присутствуют еще и координаты в трехмерном прострастве. Тут я полностью разделяю Вашу точку зрения, что это скорее классическое приближение к квантовой физике, чем сама квантовая физика, которая открыла состояние материи более фундаментальное, чем ее существование в пространстве-времени, рассматриваемом классической физикой.

Вы правы, предполагается, что гамильтониан не зависит от времени. Не думаю, что это грубое упрощение, чаще всего в реальных физических задачах динамическая часть гамильтониана является малой добавкой. Учитывать ее имеет смысл для более точного описания каких-то конкретных экспериментов, но в нашем случае, когда речь идет лишь об общем понимании закономерностей, она ни к чему, по-моему.
Когда писал об этом, подумал о возможности моделирования расширяющейся Вселенной :), в которой сила одного из фундаментальных взаимодействий (гравитационного) между частями Вселенной меняются по мере изменения масштаба.
А если серьезно, то разве не интересно рассмотреть модель развития системы путем самоусложнения, когда целое направляет процесс взаимодействия частей в сторону усложнения и само усложняется в результате.
Ну например, такая модель квантовой социологии :). Предположим все люди своим существованием создают коллективное бессознательное (Р), которое определяет динамику каждого субъекта (О), т.е. задает границы свободы, в рамках которой субъект движется. Совокупная динамика субъектов изменяет состояние поля. И динамику каждого субъекта задает уже поле с новым состоянием. В результате такого циклического процесса система эволюционирует, что можно представить в виде системы уравнений:
P=F(O1,...,On) - уравнение эволюции коллективного бессознатльного;
Oi=G(P) - уравнение динамики i-го субъекта.
Видно что взаимодействие частей определяется целым, сотояние которого меняется в результате динамики частей.
Позволит уравнение Лиувилля это учесть или нет? :)

У меня опыт здесь небольшой, на Borland C++ Builder 6 для себя я делал несколько небольших программок под Windows. Но в данном случае этого недостаточно, например, с графиками и построением изображений я не умею работать, всегда пользовался для этих целей отдельными программами.
Основной компилятор, которым я пользуюсь, это Cygwin http://ru.wikipedia.org/wiki/Cygwin , поскольку мне нужна привязка к юниксовым g++ и gcc.
К сожалению у меня тоже почти нет опыта создания графичесих интерфейсов на С++. Но вроде же есть в Borland визуальный редактор для построения с помощью операции dgrad&drop :) окон любой сложности. Если Вы использовали только стандартные библиотеки С++ (а если нет у программы графического интерфейса, то это скорее всего так), то проблем с переносом проекта в Borland возникнуть не должно.
А зачем сохранять привязку к gcc ? Cygwin из небольшого опыта общения с ним могу сказать, что это жутко неудобная вещь, за уши притянута в Винду.
Открытая Java более предпочтительна на мой взгляд, хотя переписывать уже имеющееся на java - тоже не лучшая идея.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #7 : 28 Марта 2007, 02:12:23 »

С.И. Доронину

    Насколько я поняла, программа вами уже написана. А это меняет дело. Одно дело проект в смысле проектирование, а другое – доводить чужую программу до ума. Да и к тому же еще остались самые невкусные куски :).
    Делать графическую оболочку, или как я ее презрительно называю – "гую" (GUI = Graphic User Intertface), на мой взгляд, достаточно противно :). Не будучи профессиональным программистом, я обычно не довожу свои программы в этом отношении до блеска, поскольку сама же являюсь их конечным пользователем. А у создателя с его собственной программой, как правило, бывают более доверительные отношения.
    Что же касается самой проблемы, то тут мне кажется целесообразным использовать стандартные вызовы какой-нибудь из графических библиотек – OpenGL или DirectX. Тех самых, которые во всю используют игровые программы. В этом отношении DirectX даже предпочтительнее, поскольку входит в поставку Windows XP и инсталлируется вместе с ней автоматически.
    Насколько я себе представляю, в ней есть куча мала разных трехмерных объектов. А сферы там такие аппетитные :), как живые, – с тенями и блеском, варьируемой степенью прозрачности и т.д.
    Есть и более старая библиотека, описанная в хидере gl.h. (может это и есть OpenGL?) Вроде бы Silicon Graphics 15 лет назад написал, а может и того больше. Однако работает. Я на ней 4-х мерный гиперкуб вертела.
     В этом отношении интересен пакет MatLab, просто замечательно подходящий для матричных операций. Рисовать всякую трехмерную фигню :) он тоже отлично умеет. Однако, к сожалению, написанные на нем программы не могут работать автономно. Так что для данной цели его придется отбросить.
     Из того, чем люблю заниматься – это ускорять работу программ. Делаю это за счет ассемблерных функций (компилируются ассемблером до объектного модуля, а затем подлинковывается к программе).
    Матрицы – мои любимые объекты :), и в теоретико-математическом смысле, и в качестве объектов для программирования алгоритмов с их участием. Многие алгоритмы пишу сама, а, значит, им нет доверия :). Нынче повсеместно принято использовать функции из авторитетных библиотек.
    Переводила некоторые алгоритмы с Фортрана на Си - в тех случаях, когда по описанию не могла понять, как они работают. На нынешний момент у меня целая библиотека матричных функций, инкапсулированных в классы С++. На полноту не претендует, т.к. содержит только то, что мне когда-либо было нужно.
    Значительное ускорение матричных операций в основном достигается использованием ассемблерной процедуры для вычисления скалярного произведения двух векторов (линейных массивов). Эта операция очень широко используется внутри матричных алгоритмов. И не только при умножении матриц (где она основная), но и в упомянутых вами тридиагонализации по Хаусхолдеру, и QL-итерациях.
    Эффект ускорения достигается за счет накопления суммы в регистре FPU (Float Point Unit). При этом исчезает необходимость на каждом шаге выбирать частную сумму из памяти и вновь туда ее записывать после прибавления к ней произведения. Сумма – число длинное (8 байт), да еще и округляется до разрядной сетки типа double, - все это напрасно тянет время. Компилятор этого сделать не может, т.к. FPU имеет стековую архитектуру, и из-за этого его регистры не могут быть жестко привязаны к переменным.
    Очень важно еще и то, что накапливаемая таким образом сумма имеет внутри FPU более длинную мантиссу, чем в типе double. А это позволяет получать сумму, верную даже в самом младшем разряде. При обычном же сложении сплошь и рядом встречаются потери малых слагаемых из-за недостатка разрядности мантиссы. Последнее очень важно для того, чтобы след матрицы оставался постоянным.
    Еще один ресурс ускорения – это процедура вращения по Гивенсу в QL-алгоритме (у вас это "tqli"). Как показывает практика, основное время тянет не сама итерация, а перестроения матрицы собственных векторов:
a[] = a[]*cos - b[]*sin
b[] = a[]*sin + b[]*cos
Т.е. это плоское вращение. Учитывая, что множители для всех элементов строки одинаковы (будь то синус или косинус), оказывается эффектным лишь однажды загрузить в FPU эти два множителя (sin и cos), а затем использовать их для умножения (умножать можно так, что множитель при этом не портится). Кроме того, элементы векторов a[] и b[] можно заружать из памяти всего единожды, а не дважды. Как ни смешно, но такой способ ускоряет "ротацию" более чем вдвое.
    Аналогично этому реализуется процедура прибавления к вектору другого вектора, умноженного на константу. Это тоже часто используется в матричных алгоритмах.
    При многократных вычислениях синуса и косинуса от одного угла (это используется у вас при вычислениях экспоненты от комплексного аргумента), становится выгодным использовать ассемблерную инструкцию FSINCOS, которая за то же самое время вычисляет сразу и синус, и косинус. Тригонометрические функции очень долгие и выполняются за большое число тактов, и тут такая возможность оказывает сильное ускоряющее действие. Компилятор тут тоже не умеет использовать такую возможность, т.к. это никак невозможно запрограммировать на языке высокого уровня.
     Есть еще много других "секретов", но даже все вместе они дают выигрыш в скорости гораздо более скромный, чем то, что я только что перечислила.

Возникшие у меня вопросы:
    1. Насколько важно сохранять привязку к юниксовой среде (g++ и gcc)? Чем вызвана такая необходимость. Можно ли "безвозвратно" мигрировать на среду Windows?
    2. (самый наглый вопрос) Можно ли получить исходник вашей программы, в его нынешнем виде?
Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #8 : 28 Марта 2007, 14:20:50 »

Кстати по поводу построения графиков. В linux есть мощная утилита для этих целей с открытым кодом - gnuplot. Последняя версия от 2 марта 2007. Причем есть откомпилированная версия и под win32. Она строит 2D и 3D графики.
http://www.gnuplot.info/
Скачать можно отсюда (в том числе исходный код):
http://sourceforge.net/project/showfiles.php?group_id=2055&package_id=1996
Как вариант - использовать ее код в нашей программе.
Нам же будет достаточно, если она может строить график по таблице данных?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #9 : 28 Марта 2007, 17:18:04 »

    Для построения графиков никаких библиотек не нужно. Функций Windows API вполне достаточно для построения практически любых плоских изображений. Лично мне вполне хватает "пера" и "кисти", чтобы нарисовать любой график или гистограмму.
    Проблема возникает при необходимости рисования объемных изображений, или как их иначе называют – 3D-графики. Этого точками и отрезками не сделаешь, потому как надо наносить на объект градиент тени, чтобы он выглядел объемным. Для этого и нужна спец. библиотека.
     Библиотеки Linux, скорее всего, не годятся. Это не матричные алгоритмы, которые можно компилировать под любой ОС, а вещь напрямую связанная с аппаратным выводом, который жестко завязан либо на драйвер видеокарты, либо на специфические функции операционки. В любом случае эти вещи у разных операционных систем разные, так что компиляцией тут не отделаешься. Компиляция оборвется на вызове функций, которые у Linux и Windows не совпадают.
     DirectX (как и OpenGL) – не просто библиотеки, но и набор инсталлированных драйверов, которые почти что напрямую взаимодействуют с графическим процессором видеокарты. Графические примитивы Windows они, естественно, не используют. Иначе это было бы непроизводительно долго.
      Кстати, очень может быть, что данная программа может вообще обойтись без трехмерной графики. Например, для сферы Блоха можно  использовать готовую картинку, используемую в качестве фона, а проводить поверх нее только линию вектора.
      Думаю, что прежде чем обсуждать конкретные графические средства, необходимо выяснить, что именно надо рисовать.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #10 : 29 Марта 2007, 03:32:05 »

ksv

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

Цитата:
А вот про физический смысл данного уравнения если можно, пожалуйста, поподробнее: что это за «сдвиг» состояния? Каков в общих чертах характер эволюции квантовой системы из некоторого количества взаимодействующих кубитов? В каком направление она развивается? Какую картину показывают графики? Это интересно!

Про сдвиг состояния, кратко и по существу, можно посмотреть здесь http://www.rec.vsu.ru/rus/ecourse/quantcomp/ см. Семинар 2 (в конце). Можно еще в книгу Дирака «Принципы квантовой механики» заглянуть, это гл.IV, п.25-26. Она есть у меня на старом сайте в djvu-формате.

Характер эволюции будет зависеть от гамильтониана и начальной матрицы плотности, и там может быть очень много чего интересного :). Пока в качестве простейшего примера я могу привести график динамики квантовой запутанности в трехкубитной системе из своей статьи S.I. Doronin, Multiple quantum spin dynamics of entanglement, Phys. Rev. A 68, 052306 (2003). Здесь работает так называемый многоквантовый (МК) гамильтониан (он отличается от обычного дипольного гамильтониана), которым описывают диполь-дипольные взаимодействия спинов в МК ЯМР. Если попытаться сказать проще, то дипольный гамильтониан описывает взаимодействие между вращающимися «сгустками энергий»; или пример из школы – взаимодействие замкнутых контуров с током; если ближе к эзотерической практике, это, например, может быть взаимодействие замкнутых энергетических потоков у нескольких людей, то, что бывает на занятиях в группе. 


 
В данном случае характер эволюции периодический, спины из начального локального сепарабельного состояния  периодически «растворяются» в нелокальном состоянии (синие кружочки) и снова «проявляются» (красные кружочки), при этом образуются и исчезают квантовые оболочки вокруг «плотного тела». Интересно, как ведет себя двухкубитная запутанность EBC – это аналог эфирного уровня (первая квантовая оболочка), запутанность не такая большая, примерно 0.2, т.е. довольно близко к «плотному миру», но в отдельные моменты повышается до 0.55. При этом в максимально запутанном состоянии эфирная оболочка полностью «растворяется» (синие кружочки), она хоть частично, но тварная, а в этом случае остаются только нетварные энергии (чистая квантовая информация). Здесь видна еще одна очень интересная особенность – эволюция между двумя первыми синими точками, это полный период между двумя максимально запутанными состояниями (проявление/растворение тварных энергий), но он отличается от следующего такого периода, который проходит уже через красную точку (сепарабельное состояние).
В общем, численные решения могут дать очень богатую пищу для размышлений :).

Для пользователей можно подавать результаты и как-то иначе, более интересно, например, когда моделируется эволюция Универсума, можно на картинках показывать, как из нелокального состояния «проявляются» локальные объекты, как они становятся все плотнее, и при этом «укутываются» несколькими слоями квантовых оболочек (стадия погружения в материю), а затем обратный процесс, когда всё тварное «растворяется» и снова возвращается в нелокальный источник реальности. Это можно сопровождать ссылками на тексты из религиозных и мистических учений, где описываются аналогичные процессы, например Манвантара - Пралайя и т.п.

Из приведенного рисунка, возможно, легче будет понять, что я пытался сказать насчет времени. Там приведены реальные физические константы диполь-дипольного взаимодействия D, которые входят в гамильтониан, поэтому и время на графике – наше реальное время (в миллисекундах). В нашей программе эти константы в гамильтониане лучше нормировать на единицу, но тогда и время будет уже другое, в характерном масштабе самой системы, сам вид графика при этом не изменится. Т.е. мы от конкретной частной физической задачи переходим к общей модели уже для произвольных систем, т.е. «энергетических вихрей» любой природы и любого размера, основным взаимодействием которых является дипольное. Правда, кроме основных закономерностей процесса и его особенностей мы сказать ничего не сможем, но мы к большему и не стремимся :).

Цитата:
А за счет чего уравнение Лиувилля позволяет учесть квантовые взаимодействия открытой системы с окружением, да еще и динамику их изменений?

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

Цитата:
А если серьезно, то разве не интересно рассмотреть модель развития системы путем самоусложнения, когда целое направляет процесс взаимодействия частей в сторону усложнения и само усложняется в результате.

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

Цитата:
А зачем сохранять привязку к gcc ?

Привязку к g++ или gcc сохранять не надо, просто это то, что у меня есть на данный момент, то, что мне нужно было по работе.

Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #11 : 29 Марта 2007, 03:38:30 »

Pipa

Цитата:
Насколько я поняла, программа вами уже написана. А это меняет дело. Одно дело проект в смысле проектирование, а другое – доводить чужую программу до ума.

Да нет, это совершенно новый проект, где все придется проектировать заново от самого начала до конца с учетом GUI :). Из моих программ, самое большее, что можно взять – это отдельные функции, которые придется «вырезать» и вставлять, например, в С++Builder. А второй части у меня нет совсем, там нужно будет писать ряд функций.

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

У меня та же ситуация :).

Цитата:
Что же касается самой проблемы, то тут мне кажется целесообразным использовать стандартные вызовы какой-нибудь из графических библиотек – OpenGL или DirectX. Тех самых, которые во всю используют игровые программы. В этом отношении DirectX даже предпочтительнее, поскольку входит в поставку Windows XP и инсталлируется вместе с ней автоматически.

Думаю, Вы правы, но это на интуитивном уровне понимания :), тут я мало что знаю.

Насчет «ускорения» – вопрос очень существенный, все Ваши предложения я могу только приветствовать. И хорошо бы здесь выжать по-максимуму, сейчас я посмотрел, 8-кубитная система считалась у меня 16 минут, это вычислялись матрицы плотности на 300 шагах по времени. Правда, там считаются интенсивности многоквантовых когерентностей, но это самая последняя операция, которая времени занимает совсем мало.
16 минут это много, а у нас еще придется считать запутанность на всех уровнях, причем, на каждом шаге по времени, там тоже перемножаются матрицы и ищутся собственные значения. Время в несколько раз увеличится. Т.е. 8 кубитов уже под угрозой, нужно либо оптимизировать, либо по максимуму придется брать 7 кубитов.

Цитата:
Возникшие у меня вопросы:
    1. Насколько важно сохранять привязку к юниксовой среде (g++ и gcc)? Чем вызвана такая необходимость. Можно ли "безвозвратно" мигрировать на среду Windows?
    2. (самый наглый вопрос) Можно ли получить исходник вашей программы, в его нынешнем виде?

На Ваш первый вопрос ответ был выше, конечно нам нужен только Windows.

Исходники я высылаю вам обоим. Это задача по спиновой динамике для расчета интенсивностей многоквантовых когерентностей. Сами интенсивности нам не нужны, но там считается матрица плотности по тому алгоритму, о котором я говорил, т.е. это первый этап нашей программы. У меня они компилируются g++ под Cygwin. В качестве параметра при запуске на счет задается число кубитов, т.е. командой
a.exe 5
будет посчитана 5-кубитная система. В результате счета в текущей папке создаются файлы с массивами данных по динамике интенсивностей МК когерентностей (в первом столбце время, во втором сами когерентности). Матрица плотности rm[][], которая нам нужна, считается в функции Multi().
В данной программе за эволюцию отвечает МК гамильтониан, о котором я упоминал выше.
Да, еще один момент, здесь в качестве начальной матрицы плотности используется ρ(0)=Iz, которая диагональна, и в программе она задана в виде вектора, т.е. функцию перемножения матриц Multi()нужно будет немного поправить, вектор заменить матрицей. А так, вроде, больше ничего исправлять не надо, в смысле, остальные функции можно брать так, как есть.

Записан
freeneutron
Новичок
*
Сообщений: 22



Просмотр профиля
« Ответ #12 : 29 Марта 2007, 11:31:43 »

С графикой все просто. Не надо забывать, что OpenGL и Direct-X созданы для пользователя и подробно разобраны на многих порталах. Уверен, что для своего случая вы найдете подходящий шаблон, который без труда переправите под свою программу.
Вот только мне не совсем понятно, какая польза может быть от этой программы. Какую пользу можно получить от наблюдения за 8-ми кубитной системой?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #13 : 29 Марта 2007, 18:09:11 »

Вот только мне не совсем понятно, какая польза может быть от этой программы. Какую пользу можно получить от наблюдения за 8-ми кубитной системой?

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


Просмотр профиля
« Ответ #14 : 01 Апреля 2007, 23:11:45 »

В этом отношении интересен пакет MatLab, просто замечательно подходящий для матричных операций. Рисовать всякую трехмерную фигню :) он тоже отлично умеет. Однако, к сожалению, написанные на нем программы не могут работать автономно. Так что для данной цели его придется отбросить.
Да, Matlab - очень мощный математический пакет, изначально предназначенный для операций над матрицами (MatLab - Matrix Laboratory).
Причем в современных версиях пакета есть очень интересные модули, позволяющие написанные в Matlab программы автоматом экспортировать в Си.
С сайта http://matlab.exponenta.ru/matlabcompiler/default.php
Цитата:
С помощью MATLAB Compiler Вы можете автоматически генерировать оптимизированный C и C++ код для M-файлов. Транслируя код MATLAB на C и C++, компилятор существенно ускоряет работу приложения.
Ускорение вычислений. Ориентированный на работу с матрицами язык MATLAB оптимизирован для выполнения операций с массивами. Однако выполнение других типов операций, таких как операции со скалярами, может быть существенно ускорено при преобразовании на язык C или C++. Compiler производит это преобразование легко и быстро.
Уменьшение времени разработки. Компилятор сбережет Вам время, обеспечив автоматический переход от интерактивной среды MATLAB к эффективным математическим приложениям. 
Исполняемые модули. Компилятор генерирует C код для двух типов исполняемых модулей: MEX-файлы и автономные исполняемые модули. MEX-файлы - это исполняемые модули MATLAB, которые вызываются из MATLAB и динамически линкуются во время выполнения. Автономные модули, генерируемые компилятором, могут быть встроены в приложения, написанные на C и C++ , которые выполняются вне среды MATLAB.
Так что сходу отбрасывать эту идею пока не стоит. Если у кого есть опыт работы с данным пакетом, могут попробовать реализовать алгоритм в нем, а затем экспортировать в автономную прорамму?

    Для построения графиков никаких библиотек не нужно. Функций Windows API вполне достаточно для построения практически любых плоских изображений. Лично мне вполне хватает "пера" и "кисти", чтобы нарисовать любой график или гистограмму.
Согласен, но эти функции надо знать! А насколько я понял среди нас пока нет к сожалению такого знатока.
     Библиотеки Linux, скорее всего, не годятся. Это не матричные алгоритмы, которые можно компилировать под любой ОС, а вещь напрямую связанная с аппаратным выводом, который жестко завязан либо на драйвер видеокарты, либо на специфические функции операционки. В любом случае эти вещи у разных операционных систем разные, так что компиляцией тут не отделаешься. Компиляция оборвется на вызове функций, которые у Linux и Windows не совпадают.
В упомянутой мной программе gnuplot есть части для отрисовки графиков для множества разных операционных систем.
Однако попробовал разобраться в исходном коде, пока очень туго. Думаю перспективней искать другой путь.
      Думаю, что прежде чем обсуждать конкретные графические средства, необходимо выяснить, что именно надо рисовать.
Полностью поддерживаю. Прежде чем искать готовые шаблоны в коде, надо более четко определиться с типом графиков. Это позволит сузить поиск. Насколько понимаю на первом этапе достаточно ограничиться графиками простой зависимости вида y=f(x), где f - задана массивом чисел.

Насчет времени. Я пытаюсь сказать, что время, которое входит в уравнение, в нашем случае будет не то время, которое мы измеряем по своим часам.
Это понятно. Но я говорил о другом. Сама форма уравнения, которае задает динамику системы. По моему мнению уравнение Лиувилля в этоим плане принципиально отличается от приводившейся мной системы уравнени, когда результат вычисления первого уравнения используется для расчета во втором уравнении, результат которого в свою очередь используется в первом уравнении на следующем шаге и т.д. В последнем случае время "возникает" в результате взаимодействия подсистем и их совместной эволюции, а не задается изначально в виде параметра. Другими словами, в уравнении Лиувилля мы можем рассчитать матрицу плотности системы на произвольном шаге t=a (где а - сколь угодно далеко отстоит от t=0), минуя все промежуточные расчеты матриц плотности на шагах от t=1 до t=a-1 путем применения оператора сдвига во времени. А в моем примере этого сделать принципиально не получится: нельзя рассчитать характеристики системы на шаге t=a без расчета всех предыдущих циклов взаимодействия в моменты 0<t<a, от которых зависит состояние системы в момент t.

Дополнительные уравнения здесь на первых порах даже не нужны, на мой взгляд, это можно делать в рамках приведенного уравнения. Надо только подумать, как это лучше сделать, например, самый простой вариант, на отдельных шагах по времени изменять состояние отдельных кубитов, т.е. кубит (один или несколько) как бы «проявляет самостоятельность», он не слепо эволюционирует согласно уравнению, а проявляет «свободу воли», т.е. это простейшая имитация деятельности сознания. И можно будет смотреть, как это сказывается на квантовых уровнях и на всей системе.
Очень интересная идея! Например с помошью генератора псевдослучайных чисел вносить некоторую недетерминированность в состояние отдельного кубита. Вот только не понимаю как в матрице плотности можно выделить отдельный кубит? Матрица ведь представляет общее (интерференционное) состояние всех кубитов системы.

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

Исходники я высылаю вам обоим.
Сергей Иванович, спасибо. Однако очень не просто оказалось для меня разобраться в Ваших исходниках: слишком много переменных, которые непонятно для чего введены. Как я понимаю смотреть надо только на алгоритм в функции Multi() ?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #15 : 03 Апреля 2007, 21:59:54 »

С.И. Доронину

    В тексте программы есть функция MultiIx(), которая никогда не вызывается. Судя по содержанию, она считает экспоненты, причем не комплексные, а исключительно действительные.
    Нельзя прояснить вопрос о ее назначении?
   
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #16 : 03 Апреля 2007, 22:21:45 »

Pipa

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

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #17 : 03 Апреля 2007, 22:33:33 »

С.И. Доронину

    Наконец-то дошли руки откомпилировать и запустить вашу программу. С компиляцией проблем не возникло (компилятор: Borland C++ 5.02).
    Основное время действительно пожирает функция Multi(), занимающаяся перемножением комплексных матриц. На этом шаге скорость можно увеличить, если отказаться от вычисления скалярных произведений каждой пары векторов в комплексной форме, а перейти на действительную. Сделать это можно так:
    Если r1[] и i1[] – соответственно действительная и мнимая части первого вектора, а r2[] и i2[] - второго, то их комплексное скалярное произведение может быть вычислено как сумма:
    sum_re = Summa(r1[]*r2[]) - Summa(i1[]*i2[])
    sum_im = Summa(r1[]*i2[]) + Summa(r2[]*i1[])
где все четыре суммы вычисляются по соответственным парам обычных double-векторов, что можно вычислить значительно быстрее (способ я подробно описала ранее в #7), не связываясь с комплексным представлением.
    К сожалению, для этого надо транспонировать матрицы так, чтобы вектора умножались не по столбцам, а по строкам. А это существенная переделка, в ходе которой легко допустить ошибку. Необходимость состоит в том, что в матрицах данного типа СТРОКИ содержат элементы, расположенные физически друг за другом, и переход на следующую пару элементов осуществляется простым инкрементированием адреса, когда как перебор по столбцу обходится значительно дороже.
    Нынешний вариант допускает напрасную трату времени еще и на формирование комплексной формы из двух ее частей на каждом шаге цикла. Это непроизводительно.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #18 : 04 Апреля 2007, 10:46:30 »

С.И. Доронину

Есть 9-кубитная система!

    Оптимизация оказалась сильно проще, чем я думала – транспонировать ничего не пришлось, поскольку матрица cosin оказалась симметричной, а, значит, могла быть использована как уже транспонированная.
    Отказ от комплексной арифметики и ассемблерное вычисление векторных скалярных произведений дало ускорение в 3 раза (точнее в 3.2 - 3.3). Выходные файлы ускоренной и исходной программы полностью совпали для 5,6,7,8-кубитных систем (9-кубитная на исходной программе не запускалась из-за долгого ожидания результатов).
     В программу добавлена индикация времени исполнения. Получены следующие значения:

Кубитов        Исходная        Оптимизированная
      5                    1 сек               1 сек
      6                    8 сек               3 сек
      7                  56 сек             17 сек
      8                448 сек           134 сек
      9                    ?                1118 сек ( 18.6 мин)

Итого, менее 20 мин для 9-кубитной системы на компьютере Pentium-4 3.2 GHz с шиной 400 MHz.

    В вычислительном плане рабочие массивы rab1 и rab2 не нужны, поскольку результат работы функции Multi() утилизируется в матрице rm[][]. Вычисление ее элементов возможно сразу в общем цикле (вынесение ее вычисления в отдельный цикл избыточно, из-за чего и возникли рабочие массивы).
     В методическом плане меня настораживает, что элементы rm[][] вычисляются как сумма действительной и мнимой частей комплексного числа. "По духу" на это место просится модуль комплексного числа, т.е. корень из суммы квадратов реальной и мнимой части. Вы уверены, что там должна быть сумма, а не модуль?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #19 : 04 Апреля 2007, 15:21:23 »

Отлично! Пипа, Вы молодец!  :) Около двух минут для 8-кубитов это терпимо. На втором этапе, когда будет считаться мера квантовой запутанности, время тоже много уйдет. Там собственные значения надо будет вычислять на каждом шаге по времени, причем из комплексной эрмитовой матрицы, насчет метода тоже здесь надо думать, правда собственные вектора уже не нужны будут, что облегчает задачу.

Цитата:
В методическом плане меня настораживает, что элементы rm[][] вычисляются как сумма действительной и мнимой частей комплексного числа. "По духу" на это место просится модуль комплексного числа, т.е. корень из суммы квадратов реальной и мнимой части. Вы уверены, что там должна быть сумма, а не модуль?

Мне нужна была сумма, там считаются интенсивности многоквантовых когерентностей, и правильность расчетов многократно проверена другими методами.
Кстати, здесь можно проследить за точностью вычислений – сумма всех интенсивностей для каждого момента времени должна равняться единице, т.е. для какого-то одного времени берем из каждого файла значения, все их складываем и должны получить единицу.

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

Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #20 : 04 Апреля 2007, 22:18:56 »

ksv

Цитата:
Но я говорил о другом. Сама форма уравнения, которае задает динамику системы. По моему мнению уравнение Лиувилля в этоим плане принципиально отличается от приводившейся мной системы уравнени, когда результат вычисления первого уравнения используется для расчета во втором уравнении, результат которого в свою очередь используется в первом уравнении на следующем шаге и т.д. В последнем случае время "возникает" в результате взаимодействия подсистем и их совместной эволюции, а не задается изначально в виде параметра. Другими словами, в уравнении Лиувилля мы можем рассчитать матрицу плотности системы на произвольном шаге t=a (где а - сколь угодно далеко отстоит от t=0), минуя все промежуточные расчеты матриц плотности на шагах от t=1 до t=a-1 путем применения оператора сдвига во времени. А в моем примере этого сделать принципиально не получится: нельзя рассчитать характеристики системы на шаге t=a без расчета всех предыдущих циклов взаимодействия в моменты 0<t<a, от которых зависит состояние системы в момент t.

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

Цитата:
Вот только не понимаю как в матрице плотности можно выделить отдельный кубит? Матрица ведь представляет общее (интерференционное) состояние всех кубитов системы.

Матрицы плотности для отдельных кубитов и более сложных подсистем типа AB, ABC, и т.д. находятся взятием частичного следа по окружению, получаются редуцированные матрицы плотности уже для подсистем.

Цитата:
А что вообще дает полный анализ квантовой запутанности? Т.е. насколько понимаю мера квантовой запутанности - это вещественный коэффициент от 0 до 1, показывающий степень взаимосвязи частей системы: от 0 (полностью сепарабельная система) до 1 (чистое состояние). Какие выводы можно сделать по динамике этих мер запутанности? Почему им придают такое большое значение?

Да, смысл запутанности примерно такой, но не совсем, максимальная мера запутанности это не просто чистое состояние, поскольку и сепарабельное состояние тоже может быть чистым, напр. |ψ>=|000…0>. Мера запутанности характеризует нелокальность, ее значимость, роль и «вес» квантовых корреляций по сравнению с классическими взаимодействиями. Мера запутанности, равная 1, означает, что в этом случае нет классических взаимодействий и локальных объектов. Мы можем посчитать несколько таких «тонкоматериальных» уровней, для которых существенны нелокальные корреляции, и посмотреть, как они взаимосвязаны друг с другом.

Цитата:
Как я понимаю смотреть надо только на алгоритм в функции Multi() ?

В этой функции только умножение матриц и получается нужная нам матрица плотности. Особо копать программу нет необходимости, достаточно иметь хотя бы общее представление. Как говориться, свою программу порой написать легче, чем разобраться в чужой :). А Вы сможете написать какую-нибудь функцию? Например, взятие частичного следа и получение редуцированной матрицы плотности. Общий алгоритм есть в статье, о которой я уже упоминал http://quantmagic.narod.ru/volumes/VOL112004/abs1123.html на 5 странице.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #21 : 05 Апреля 2007, 00:47:47 »

Мне нужна была сумма, там считаются интенсивности многоквантовых когерентностей, и правильность расчетов многократно проверена другими методами.

    А если так, то вы делаете двойную работу. Объясняю.
Раз уж вы эти две суммы все равно потом складываете

    sum_re = Summa(m2[k]*cos[k] - rm1[k]*sin[k])
    sum_im = Summa(m2[k]*sin[k] + rm1[k]*cos[k])
    rm[j] = sum_re + sum_im

то зачем же тогда их считать отдельно?
Накапливайте тогда их в одном сумматоре:
   
    rm[j] = Summa(m2[k]*cos[k] - rm1[k]*sin[k] + m2[k]*sin[k] + rm1[k]*cos[k])

и тогда увидите, что одно и тоже число умножается на cos и на sin, а потом эти произведения складываются. Отсюда следует, что если использовать вместо таблиц cos[] и sin[], таблицы их сумм и разностей cps[] = cos[]+sin[] и cms[] = cos[]-sin[], то матрица плотности может быть вычислена вдвое быстрее:

    rm[j] = Summa(m2[k]*cms[k] + rm1[k]*cps[k])

Т.е. если задача состоит в нахождении суммы действительной и мнимой частей сумм, то просто глупо "честно" множить матрицы. А поскольку эта процедура лимитирует скорость всей задачи, то такие действия уже просто расточительны.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #22 : 05 Апреля 2007, 14:59:04 »

Цитата: С.И. Доронин
Пипа, спасибо, эта программа используется и в других задачах, где нужны и Re, и Im, а не только их сумма.

    В чем же дело? Пусть тогда другие задачи не пользуются этой фукцией :) Тем более когда универсальность достигается такой дорогой ценой.
    О чем базар? :) Перемножение матриц - это всего три строки кода! Из которых первые две - вложенные друг в друга циклы для обхода всех клеток результата, а третья вычисляет скалярное произведение пары векторов. Комплексный случай сложнее только тем, что третья строка у него чуточку длиннее (там уже не одно скалярное произведение, а сумма или разность четырех).
    Что мешает иметь функцию для перемножения матриц, когда нужны комплексные элементы произведения, и отдельно функцию, когда мнимая часть рассматривается, как действительная, и оттого может быть с ней сложена в одно действительное число? Тем более, когда это дает 50%-ное ускорение все программы.

Цитата: С.И. Доронин
Да, я еще упоминал, что вместо вектора, который засылается в функцию Multi() в качестве параметра у нас должна быть матрица, т.е. умножение немного усложнится. Пока можно тот вектор, который был раньше, расположить на диагонали новой матрицы.

    Поподробнее, пожалуйста, про матрицу в качестве параметра. Вы имеете в виду, что у параметра появится еще и мнимая часть (но тем не менее останется комплексным вектором) или все-таки станет буквально матрицей?
    Можно ли объяснить использование параметра в алгоритме. Дело в том, что входной вектор процедуры Multi(), по-видимому, является не сомножителем, а представляет собой "сырье", из которого там же приготавливается матрица-сомножитель, которая затем умножается на матрицу синусов/косинусов.
    Может быть, вы имеете в виду, что матрица-сомножитель будут формироваться в другом месте, а процедура будет получать ее уже в готовом виде в виде параметра?
     В любом случае хотелось бы, чтобы вы пояснили действия в процедуре Multi(), как в нынешнем ее виде, так и после изменения, на элементах матричной алгебры. Как выглядит этот алгоритм в матричной записи?

   Еще имею вопрос про выходные файлы. Отчего они называются как четные цифры? Почему пропущены нечетные? И что с ними потом делать?
   Чем больше цифра, тем сильнее мельчают интенсивности в файлах. На 5-7 кубитах файл 8.txt содержит одни нули. И даже на 8-кубитах содержит интенсивности лишь на уровне погрешности вычислений.
    Если строить график по "времени" во всем диапазоне (от 0 до 0.003), то в одном масштабе даже 6.txt не удастся увидеть – слишком мал.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #23 : 05 Апреля 2007, 16:33:27 »

    С одним вопросом кажется сама разобралась - процедура Multi() выполняет преобразование:
UT*D*U,
где D - диагональная, а U - унитарная
Унитарной матрицей служит таблица cosin, а диагональная представлена в параметре только своей диагональю.
    Видимо под матрицей в параметре вы имели в виду использование в качестве D матрицы любого типа, а не только диагональной.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #24 : 05 Апреля 2007, 17:19:54 »

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

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

Цитата:
Поподробнее, пожалуйста, про матрицу в качестве параметра. Вы имеете в виду, что у параметра появится еще и мнимая часть (но тем не менее останется комплексным вектором) или все-таки станет буквально матрицей?

Речь идет о той самой матрице ρ(0), о которой я писал в алгоритме. Можно ее взять вещественной, но лучше всего для общности сделать комплексной. Т.е. в качестве параметров в Multi() будут засылаться две матрицы (вещественная и мнимая часть ρ(0)), т.е. типа Multi(double **re_ro0, double **im_ro0).
Сама матрица ρ(0) должна задаваться в отдельной функции (или выбираться из стандартного набора, напр. равновесное состояние, cat-состояние, максимально-смешанное состояние и т.п.).

Цитата:
Можно ли объяснить использование параметра в алгоритме. Дело в том, что входной вектор процедуры Multi(), по-видимому, является не сомножителем, а представляет собой "сырье", из которого там же приготавливается матрица-сомножитель, которая затем умножается на матрицу синусов/косинусов.

Да нет, это не «сырье», а именно то, что умножается на синус/косинус:

Код:
for(i=0;i<N;i++)
         for(k=0;k<N;k++)
        {
         complex t(0.0,0.0);
         z1=c[i][k];
         z2=s[i][k];
         complex z(z1,-z2);
         t=z*plr[k];
         m2[i][k]=Re(t);
         rm1[i][k]=Im(t);   
        }

Здесь это вектор plr[k], который умножается на z, у нас вместо вектора должна быть матрица, причем лучше всего комплексная.

Для начала в defdiag.h можно создать отдельную функцию, которая будет формировать матрицу ro0. Например, Init_ro0(double *plr), создать в конструкторе новые матрицы для вещественной и мнимой части: double **re_ro0 и double **im_ro0, заполнить их нулями, а потом в новой функции их сформировать. В самом простом случае, чтобы отладить и получить совпадение с предыдущим вариантом, нужно оставить мнимую часть этой матрицы нулевой, а в вещественную матрицу заслать старый вектор на диагональные элементы матрицы re_ro0.

Код:
inline void BLOCK:: Init_ro0(double *plr)
{
int i;
for(i=0;i<N;i++)
re_ro0[i][i]= plr[i];
}

Затем в головной программе Main.cc перед основным циклом по времени вызвать эту функцию:
    bk->Init_ro0(bk->tm);

А тот кусок кода с умножением из функции Multi(), который я привел выше, нужно переписать, с учетом того, что вместо старого вектора plr[] будет уже комплексная матрица re_ro0[][], im_ro0[][]. Т.е. в матричной записи нужно прийти к тому варианту алгоритма, который я описывал в начале темы.

Цитата:
Еще имею вопрос про выходные файлы. Отчего они называются как четные цифры? Почему пропущены нечетные цифры? И что с ними потом делать?

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

Цитата:
Чем больше цифра, тем сильнее мельчают интенсивности в файлах. На 5-7 кубитах файл 8.txt содержит одни нули. И даже на 8-кубитах содержит интенсивности лишь на уровне погрешности вычислений.
    Если строить график по "времени" во всем диапазоне (от 0 до 0.003), то в одном масштабе даже 6.txt не удастся увидеть – слишком мал.

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

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #25 : 05 Апреля 2007, 19:55:03 »

А тот кусок кода с умножением из функции Multi(), который я привел выше, нужно переписать, с учетом того, что вместо старого вектора plr[] будет уже комплексная матрица re_ro0[][], im_ro0[][]. Т.е. в матричной записи нужно прийти к тому варианту алгоритма, который я описывал в начале темы.

   Смотрите, что получилось.
После оптимизации кода старая процедура Multi() превратилась вот во что:
Код:
void BLOCK::MultiD(double *plr)
{
  double *re = new double[N];
  double *im = new double[N];

  for(int i=0; i<N; i++)
  { for(int k=0; k<N; k++)
    { re[k] = plr[k]*c[i][k];
      im[k] = -plr[k]*s[i][k];
    }

    for(int j=0; j<N; j++)
    { rm[i][j] = Scalar(re,c[j],N) - Scalar(im,s[j],N)
               + Scalar(re,s[j],N) + Scalar(im,c[j],N);
    }
  }
  delete[] im;
  delete[] re;
}
Пояснения:
1) Функция Scalar(vec1,vec2,N) это не одноименный член класса Hami, а вызов ассемблерной функции вычисления скалярного произведения. Случайно совпали имена, но это не мешает работе, т.к. класс здесь другой.
2) Промежуточный продукт UTD целиком не строится, а по мере надобности в том же цикле вычисляется рабочий столбец этого продукта. Благодаря чему, для работы дополнительно необходима только пара рабочих векторов для действительной и мнимой части рабочего столбца, а не полная матрица, как раньше.
3) Процедура выдает сумму действительной и мнимой части, но очевидно, что выкладывать результат можно по отдельности (вторую строку сумм не складывать, а укладывать в другой массив).
4) Функция Multi() переименована в MultiD(), подчеркивая в названии, что она работает с диагональю. Функцию, работающую с плотной комплексной матрицей, я назвала MultiC().

Аналогично, функция, работающая с комплексной матрицей, выглядит так:
Код:
void BLOCK::MultiC(double **re_ro0, double **im_ro0)
{
  double *re = new double[N];
  double *im = new double[N];
 
  for(int i=0; i<N; i++)
  { for(int k=0; k<N; k++)
    { re[k] = Scalar(re_ro0[i],c[i],N) - Scalar(im_ro0[i],s[i],N);
      im[k] = -Scalar(re_ro0[i],s[i],N) + Scalar(im_ro0[i],c[i],N);
    }

    for(int j=0; j<N; j++)
    { rm[i][j] = Scalar(re,c[j],N) - Scalar(im,s[j],N);
      rm1[i][j] = Scalar(re,s[j],N) + Scalar(im,c[j],N);
    }
  }
  delete[] im;
  delete[] re;
}
Здесь действительная и мнимая части результата помещаются в матрицы rm[][] и rm1[][], сответственно.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #26 : 05 Апреля 2007, 22:41:43 »

Понял, спасибо, если результаты совпадают с исходными, то все отлично. С комплексной матрицей насколько дольше считается?
Кстати, Вы подсказали хорошую идею – сделать несколько вариантов функции Multi(), и в зависимости от типа начальной матрицы плотности выбирать тот или иной вариант, чтобы не считать каждый раз с комплексной матрицей. Нужно тогда еще третий вариант сделать для вещественной матрицы плотности ρ(0), напр. MultiR(double **re_ro0), он, похоже, чаще всего будет использоваться.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #27 : 05 Апреля 2007, 23:12:52 »

Понял, спасибо, если результаты совпадают с исходными, то все отлично.

    Результаты с исходными совпадают полностью, за исключением 8.txt для 8-кубитной системы (при меньшем числе кубитов там одни нули). Значения интенсивностей там порядка е-34, из-за чего становятся видны ошибки округления (из-за ограниченности длины мантиссы теряются малые слагаемые на фоне большой суммы). У функции Scalar() погрешность меньше, т.к. складывет она в сумматор типа long double (лишних 11 двоичных разрядов, чем у типа double).

С комплексной матрицей насколько дольше считается?

    Почти вдвое дольше. Это очевидно из числа циклов. MultiC() вызывает Scalar() 8N2 раз, а MultiD() только 4N2 раза (обычными умножениями на этом фоне можно принебречь).
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #28 : 06 Апреля 2007, 01:44:38 »

    Еще один резерв скорости.
Матрица плотности, получающаяся в результате процедуры MultiC(), ведь всегда эрмитова? А, значит, фигли ее всю считать – достаточно верхнего треугольника! Модификация кода ничтожная – крутим внутренний цикл не до <N, а до <=i, а результат заталкиваем сразу в обе половинки матрицы (меняя местами только действительные и мнимые значения).
    Вроде бы, не теряя общности, получаем ускорение процедуры почти в два раза.
    Аналогичная Multi() задача оказалась и в процедуре cosin(), она тоже была оптимизирована тем же способом.

    Итого рекорд на сегодняшний день:

Кубиты      Время всей программы
     5                 0 sec
     6                 1 sec
     7                 8 sec
     8               47 sec (0.8 min)
     9             396 sec (6.6 min)

(Pentium-4 3.2 GHz, FSB 400 MHz).
расчет по MultiD().
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #29 : 06 Апреля 2007, 14:09:02 »

Отлично! Так, глядишь, мы и 9 кубитов сможем осилить :).

Цитата:
Значения интенсивностей там порядка е-34,

Это чистые нули, больше 20 знаков после запятой вообще нет смысла учитывать, число «пи» там только 20 знаков имеет.

Цитата:
Матрица плотности, получающаяся в результате процедуры MultiC(), ведь всегда эрмитова? А, значит, фигли ее всю считать – достаточно верхнего треугольника! Модификация кода ничтожная – крутим внутренний цикл не до <N, а до <=i, а результат заталкиваем сразу в обе половинки матрицы (меняя местами только действительные и мнимые значения).

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


Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #30 : 06 Апреля 2007, 14:43:20 »

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

    Верное замечание. И что это вдруг на меня нашло? :)

Ускорение на пределе (ускорилось в 9.5 раз, почти на порядок, по сравнению с базовым вариантом).
А что дальше делать?

Но, повторюсь, нам эти интенсивности не нужны, мы будем считать квантовую запутанность и графики строить для нее.

    Хотелось бы дотянуть до графика. Иначе у меня нет стимула делать GUI-версию.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #31 : 07 Апреля 2007, 16:17:13 »

Насчет дальнейших действий. Думаю, можно постепенно переходить ко второму блоку, который будет считать квантовую запутанность. Здесь работы много, поскольку практически ничего нет. Что нужно – назову три основных подпрограммы, которые нам понадобятся:
  • операция взятия частичного следа и получение редуцированной матрицы плотности (меньшего размера) из той матрицы плотности, которая вычисляется в первом блоке.
  • функция для тензорного (прямого) произведения двух матриц произвольной размерности и, частный случай, который и будет в основном использоваться это тензорное произведение матрицы плотности на единичную матрицу (как справа, так и слева, нужны оба случая).
  • нахождение собственных значений для комплексной эрмитовой матрицы (собственные векторы не нужны).

Если в наличии будут эти три подпрограммы, то второй блок, можно сказать, будет сделан.

Но сейчас уже легко делать анализ квантовой запутанности в отдельных частных случаях для двухкубитной системы. Здесь есть аналитические выражения, которые легко запрограммировать, я их приведу.
Первый случай – чистое состояние двухкубитной системы. Если начальная матрица плотности это чистое состояние, то оно чистым и останется, тогда мера квантовой запутанности (критерий Вуттерса, concurrence) между подсистемами A и B равна

С=2|sqrt(ρ11ρ44) – sqrt(ρ22ρ33)|.      (1)

Здесь ρ11 и т.д. это диагональные элементы двухкубитной матрицы плотности.
В программе нужно предусмотреть функцию для проверки чистоты состояния, оно довольно простое, если выполняется условие ρ2=ρ, то состояние чистое.

Второй случай – смешанное состояние двухкубитной системы. Здесь ситуация сложнее, но и тут кое-что сделано. В качестве примера можно взять состояние Вернера, это состояние типа:

ρ= (1–γ)/4 I + γ|Ф><Ф|,        (2)

где I – единичная матрица, а |Ф> – одно из четырех белловских (максимально-запутанных состояний):
1/√2(|00>) + |11>),
1/√2(|00>) – |11>),
1/√2(|01>) + |10>),
1/√2(|01>) – |10>).

Эта четверка векторов часто называется белловским базисом, последний из этих векторов – это хорошо известное состояние ЕПР-пары.
Для состояния (2) мера запутанности равна:

С=3γ/2 – 1/2.

Если простыми словами, то состояние (2) это что-то промежуточное между максимально-смешанным состоянием (скалярная матрица плотности, т.е. нормированная единичная матрица, след которой равен единице) и одним из максимально-запутанных состояний. Их «удельный вес» и соотношение характеризуется параметром γ.

В нашем случае, когда мы реализуем общий алгоритм, результаты должны совпадать с этими двумя примерами (1) и (2). Т.е. это все равно нужно делать, хотя бы для того, чтобы затем тестировать и отлаживать общий алгоритм.

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

Цитата:
Хотелось бы дотянуть до графика. Иначе у меня нет стимула делать GUI-версию.

Для двухкубитных систем по матрице плотности, которую мы считаем, и по критерию (1) уже можно строить график запутанности, когда начальная матрица плотности задана как чистое состояние. Информативность пока небольшая, но хотя бы для отладки графического режима.


Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #32 : 07 Апреля 2007, 17:48:58 »

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

    Вопрос по первому пункту. В чем заключается редуцирование? Обрасывание "лишних" столбцов и строк или какой-то иной алгоритм понижения размерности?
    Хотелось бы услышать подробнее о том, какова стратегия редуцирования.

С остальными двумя пунктами понятно.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #33 : 07 Апреля 2007, 18:31:02 »

Цитата:
В чем заключается редуцирование?


Об этом я писал:
http://quantmagic.narod.ru/volumes/VOL112004/abs1123.html

на стр.5.
Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #34 : 08 Апреля 2007, 23:42:21 »

А Вы сможете написать какую-нибудь функцию? Например, взятие частичного следа и получение редуцированной матрицы плотности. Общий алгоритм есть в статье, о которой я уже упоминал http://quantmagic.narod.ru/volumes/VOL112004/abs1123.html на 5 странице.

Если честно, то я не понял из статьи, как это делается :) Хоть я и понимаю, что данная статья научно-популярная, но данный момент на мой взгляд в ней изложен весьма запутанно. Например, на стр.5 Вы пишите:
Цитата:
Чтобы получить частичную  матрицу  плотности,  редуцированную (усредненную), например, по второй частице  roA = TrB|psy><psy|, можно воспользоваться простым правилом: Каждый из элементов матрицы |psy><psy| нужно взять в "обкладки" из векторов <0| |0> и <1| |1> и подействовать ими на второй спин.

Что значит взять в обкладки? Какой второй спин? Каким образом на него подействовать? Мне не понятно.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #35 : 09 Апреля 2007, 07:21:41 »

    Меня тоже «обкладки» покоробили :). Как <0| |0>, так и <1| |1> - скаляры. Ими никак нельзя ничего обхватить. А если матрицу вкладывать во внутрь <0| M |0> или <1| M |1>,
то получится тоже скаляр, т.к. это вроде бы квадратичная форма.
     Из примера на той же 5-ой странице у меня создалось впечатление, что для таких вычислений проектор вычислять не надо. Очевидно, что по меньшей вере половина строк и столбцов получатся сплошь нулевыми. И накакой отбор это обстоятельство уже не изменит. А, значит, матрица уже всегда автоматически редуцируется в вдвое меньшего порядка. Правило «отбора» может лишь обнулить какие-то клетки таким способом редуцированной матрицы, но не в состоянии еще более понизить ее порядок.
     Из этого следует, что можно сразу строить псевдоредуцированную матрицу нужно размера, а затем лишь обнулить в ней кое-что. Например, матрицу (*) на 5-ой странице (не понятно отчего вместо номера у нее звездочка) можно сразу было построить в псевдоредуцированнаном виде. Тогда она выглядела бы так:

aa’ ab’
ba’ bb’

А уж потом, вычеркнув, что не надо, получим тоже самое:

aa’ 0
0 bb’

тут я комплексное сопряжение обозначаю шрихом, и использую aa’ вместо вычурной  записи |a|2.
    На мой взгляд, постороение псевдоредуционной матрицы типа

aa’ ab’
ba’ bb’

не только всегда возможно, но и имеет более простые правила для своего построения, чем «распухшая матрица». Кроме того, она уже имеет нужный размер.
    Начинаю подозревать, что прямое (тензорное) умножение матриц вообще не надо производить, поскольку размер редуцированной матрицы можно предсказать заранее – она будет ровно того же размера, как и матрицы до умножения.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #36 : 09 Апреля 2007, 21:13:53 »

Насчет редуцированной матрицы плотности попробую, для начала, пояснить на простых примерах.
Возьмем двухкубитное cat-состояние:

|Ψ>=1/√2 (|00> + |11>).          (1)

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

|Ψ>=1/√2 (|0>A|0>B + |1>A|1>B).      (1')

Матрица плотности cat-состояния имеет вид:

½ 0 0 ½
0 0 0 0
0 0 0 0
½ 0 0 ½

Она получается если взять проектор |Ψ><Ψ|, т.е. вектор-столбец умножить на вектор-строку. В общем случае вектор-строку нужно брать комплексно сопряженной.

Эта матрица плотности может быть расписана следующим образом

ρ = ½ |00><00| + ½ |00><11| + ½ |11><00| + ½ |11><11|              (2)

Или используя индексы для отдельных кубитов:

ρ= ½ |0>A|0>B<0|A<0|B + ½ |0>A|0>B<1|A<1|B + ½ |1>A|1>B<0|A<0|B + ½ |1>A|1>B<1|A<1|B         (2')

Теперь, собственно, сам процесс редуцирования. Если мы оставляем первый кубит А, и хотим сделать редукцию по В, то нужно как я писал:
Цитата:
Каждый из элементов матрицы |psy><psy| нужно взять в "обкладки" из векторов <0| |0> и <1| |1> и подействовать ими на второй спин.

Поясню подробнее. В нашем случае есть четыре элемента матрицы плотности, возьмем самый первый

½ |0>A|0>B<0|A<0|B

И те вектора, которые имеют индекс В, мы берем в «обкладки» из базисных векторов, выглядит это следующим образом.

½ |0>A<0||0>B<0|A<0|B|0>

Смотрим теперь на <0||0>B и <0|B|0> здесь получаются единицы, поскольку это скалярное произведение вектора на самого себя. Чтобы убедиться, можно умножить вектор-строку (1, 0) на вектор-столбец (1, 0)T, получается 1.

В результате данный элемент матрицы плотности «редуцируется» до

½ |0>A<0|A

Если подействовать таким образом на все четыре элемента матрицы плотности, и не только <0| |0>, но и <1| |1>, то остаются два элемента, тот, который выше и второй

½ |1>A<1|A

Очевидно, что когда мы имеем варианты типа <0||1>В или <1|В|0>, либо <1||0>В или <0|В|1> – то это нули. Таким образом, два из четырех элементов в приведенном примере исчезают.

В конечном итоге мы имеем редуцированную матрицу плотности размерностью 2*2

ρA = TrBAB) = ½ |0><0| + ½ |1><1|.       (3)

Простое «обнуление» отдельных элементов матрицы плотности здесь не поможет. Из приведенного примера этого пока не видно, чтобы убедиться, можно взять более сложный пример – произвольное чистое состояние двухкубитной системы:

|Ψ>= a|00> + b|01> + c|10> + d|11>.              (4)

Если все проделать так, как я написал выше, то получим ρA, которая имеет вид:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

Т.е. происходит не просто обнуление, а суммирование отдельных элементов исходной матрицы плотности.

Причем, когда мы берем частичный след по другому кубиту (по A, а не по B, как перед этим), то частичная матрица плотности ρВ уже другая:

|a|2+|с|2    ab*+cd*
ba*+dc*    |b|2+|d|2

На самом деле общий алгоритм построения любой редуцированной матрицы плотности довольно простой. Может быть, из приведенных примеров этого пока не видно так явно, но я попытаюсь все же пояснить.

Сначала насчет того, что мы уже имеем все свои матрицы плотности в виде проекторов, поскольку мы их все строим в стандартном двоичном базисе. Если простыми словами, то на любой элемент матрицы плотности
Код:
ρ[i][j]
можно смотреть как на запись данного элемента в виде проектора, если под i и j понимать числа в двоичной системе счисления. Например, элемент ρ23 для 5-кубитной системы это проектор вида |00010><00011|, т.е. 2 и 3 нужно записать в двоичной системе. Нумерация начинается с 0, как обычно в Си, т.е. самый первый элемент (в левом верхнем углу матрицы) ρ00. В случае 5-кубитной системы матрица плотности имеет размер 32*32 и самый последний элемент ρ31;31 (в правом нижнем углу). Число 31 в двоичной системе это как раз 11111, т.е. последний элемент в виде проектора записывается |11111><11111|.

Теперь насчет общего алгоритма редуцирования. Поступаем следующим образом, если мы редуцируем, скажем пятикубитную систему ABCDE и оставляем кубиты AD, проводя редукцию по всем остальным (по ВСЕ), то перебираем все элементы 5-кубитной матрицы плотности и по их индексам в двоичной форме смотрим, что стоит на позициях ВСЕ, т.е. на второй, третьей и пятой позиции в проекторе. Например,

|11111><11111|

Я выделил то, на что нужно смотреть. Если в проекторе слева и справа есть полное совпадение, то этот элемент остается в редуцированной матрице AD и идет, в данном случае к элементам |11><11| (то, что не выделено жирным), таких элементов может получаться несколько, и они будут суммироваться, например,

|11011><11011|
или
|10010><10010|

Тоже пойдут к элементам |11><11| в матрице ρAD.

Если же в проекторе нет совпадения слева и справа, например,

|10011><11011|,

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

Здесь делается все то же самое, о чем я писал выше для двухкубитной системы, только при редукции по 3 кубитам, когда остается 2, в «обкладки» нужно брать по всем базисным векторам трехкубитной системы, их уже восемь штук, а не два как раньше. Но смысл такой же – либо скалярное произведение дает единицу, и этот элемент остается в редуцированной матрице, либо скалярное произведение дает ноль, и этот элемент пропадает. 

P.S.  Обозначение ВСЕ немного неудачное получилось, это не слово «все» :), а подсистемы типа ABD.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #37 : 10 Апреля 2007, 00:49:11 »

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

   Нашла на Фортране процедуру htrid3.f (из пакета EISPACK) для приведения комплексной эрмитовой матрицы к тридиагональной форме. Далее, для получения из нее собственных значений, годится старая tqli().
   На С существует лишь ее автоматический перевод отвратительного качества. Если у вас нет на примете ничего лучшего, то попытаюсь сделать на основе этого.

   Касаемо редуцирования матрицы плотности, к вам будет просьба определить входные и выходные параметры для этой процедуры.
   Представьте себе, что уже есть такая функция, и называется она, скажем,
reduce(.........)
Какие параметры вы бы в нее заложили, и в каком виде хотели бы получить результат? При этом предполагается, что параметры этой функции являются достаточными для выполнения работы. (Нельзя надеяться на то, что функция умеет таскать недостающие данные из других мест). Порядок следования параметров сейчас роли не играет – важно определиться с тем, в каком виде предоставляются входные и выходные данные.

    Тензорное (прямое) произведение двух матриц – вроде бы тривиальная задача, но все равно тоже хотелось бы внести ясность.
    DirectMul(
    **mat1_re, // действительная часть 1-ой матрицы
    **mat1_im, // мнимая часть 1-ой матрицы
    n1, // размерность 1-ой матрицы
    **mat2_re, // действительная часть 2-ой матрицы
    **mat2_im, // мнимая часть 2-ой матрицы
    n2, // размерность 2-ой матрицы
    **mat_re, // действительная часть матрицы результата
    **mat_im, // мнимая матрицы результата
   );
Так годится? Надеюсь, что все-таки  mat1 и mat2 не "произвольной размерности", как вы пишите, а все-таки квадратные.
Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #38 : 10 Апреля 2007, 23:17:14 »

   Касаемо редуцирования матрицы плотности, к вам будет просьба определить входные и выходные параметры для этой процедуры.
   Представьте себе, что уже есть такая функция, и называется она, скажем,
reduce(.........)

Какие параметры вы бы в нее заложили, и в каком виде хотели бы получить результат?

Я себе это так представляю:
reduce(
    **mat1_re, // действительная часть исходной матрицы плотности
    **mat1_im, // ее мнимая часть
    n1, // размерность исходной матрицы плотности
    char *s  /* Строковый код схемы редукции. Например "ВСЕ" как в примере СИДа. Вообще считаю обозначения подсистем в таком виде весьма удобным и перспективным. Получаются настоящие квантовые формулы (по аналогии с химическими формулами :) Кроме того от букв, использую их внутренние asscii коды всегда легко перейти к цифрам. */
    **mat2_re // действительная часть редуцированной матрицы плотности
    **mat2_im, // ее мнимая часть
    &n2, /* размерность редуцированной матрицы плотности. Этот параметр вычисляется в самой функции (как разность между n1 и pow(2,ln(n1)/ln(2)-len(s)) ) и результат записывается в область памяти, на которую ссылается &n2. */
)

...то этот элемент остается в редуцированной матрице AD и идет, в данном случае к элементам |11><11| (то, что не выделено жирным)...

Не понял, что значит "идет к элементам |11><11|"? Какая за этим стоит операция?
« Последнее редактирование: 14 Апреля 2007, 21:56:01 от ksv » Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #39 : 11 Апреля 2007, 04:04:33 »

   Один из трех пунктов готов! А именно – нахождение собственных значений для комплексной эрмитовой матрицы.
   За основу взяла фортановскую версию процедуры, приводящую преобразованиями Наусхолдера эрмитову матрицу в тридиагональную. Следующая ступень, нахождение собственных значений для тридиагональной матрицы, в программе уже была реализована ранее (tqli).
  1) Фортрановская процедура транслирована на С++.
  2) Циклы модифицированы таким образом, чтобы матрицы и вектора считались с нулевого элемента (C-стандарт), а не с первого (Fortran-стандарт).
  3) Разделена входная матрица на две части – действительную и мнимую. В натуральной процедуре (видимо из-за соображений экономии памяти) эрмитова матрица задается только своим нижним треугольником. При этом  действительная часть лежит на своем месте, а ее мнимая часть транспонирована в верхний треугольник матрицы. Это пришлось выламывать из всего алгоритма – было довольно противно.
  4) Алгоритм протестирован пока только на одном примере – на матрице 4x4. Результат совпал по всем значащим цифрам с продуктом функции hess() из пакета MatLab 7.0.1 (форма Хессенберга для эрмитовых матриц является тридиагональной).
  5) Проведена частичная оптимизация - скалярные произведения по строкам вычисляются ассемблерной функцией. В настоящее время скорость составляет:

Матрица          Время
 256x256          0.17 сек
 512х512          1.71 сек
1024x1024     14.20 сек

Вопрос: нужно ли сортировать собственные значения по ниспадающей или не надо? tqli() их сортировала.

    char *s  /* Строковый код схемы редукции. Например "ВСЕ" как в примере СИДа. Вообще считаю обозначения подсистем в таком виде весьма удобным и перспективным. Получаются настоящие квантовые формулы (по аналогии с химическими формулами :) Кроме того от букв, использую их внутренние asscii коды всегда легко перейти к цифрам. */

   А вот у меня есть сомнения, что программа должна обращаться к своей функции на человечьем языке, говоря "ВСЕ". Более симпатично было бы иметь битовую маску в числе типа int. "ВСЕ" - означало бы установить все биты в единичку. Младший бит - A, следующий за ним - B, и т.д. Соответственно этому, ABD кодируется как 1011. И совпадения удобно проверять по двоичной логике.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #40 : 11 Апреля 2007, 19:02:10 »

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

    Готова функция тензорного (прямого) произведения двух матриц!
Алгоритм искать не стала – написала сама. Определение такого произведения – достаточный алгоритм.
    Процедура, как и ожидалось, получилась простая (6 строк):
Код:
void DirectMulR( double **mat1, int n1, double **mat2, int n2, double **mat)
// вычисление прямого произведения действительных матриц
// **mat1 = 1-я матрица
// n1 = размерность 1-ой матрицы
// **mat2 = 2-я матрицы
// n2 = размерность 2-ой матрицы
// **mat = матрица результата, размерности n1*n2
{
  for( int i=0, ii=0; i < n1; i++, ii+=n2)
  { for( int j=0, jj=0; j < n1; j++, jj+=n2)
    { double x = mat1[i][j];
      for( int k=0; k < n2; k++)
        for( int l=0; l < n2; l++)
          mat[ii+k][jj+l] = x * mat2[k][l];
    }
  }
}

Процедура DirectMulС, рассчитанная на комплексные матрицы, отличается лишь заменой единственного умножения  в цикле на его комплексный аналог.

Тестирование выглядит так:
Код:
а[][] =
1  2
3  4

b[][] =
  1    11     111
 10   110    1110
100  1100   11100

(такие числа выбраны для того, чтобы легко было проверять результат)

DirectMulR( a, 2, b, 3, c);

c[][] =
  1      11      111      2     22     222
 10     110     1110     20    220    2220
100    1100    11100    200   2200   22200
  3      33      333      4     44     444
 30     330     3330     40    440    4440
300    3300    33300    400   4400   44400
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #41 : 11 Апреля 2007, 19:44:33 »

Насчет параметров reduce(…), помимо матриц, пока у меня самое простое предложение – для управления редукцией использовать вектор из целых чисел, в котором будут задаваться номера тех кубитов, по которым проводится редукция (или наоборот, тех, которые остаются). В принципе, можно использовать и символы, и битовую маску.

ksv

Цитата:
Не понял, что значит "идет к элементам |11><11|"? Какая за этим стоит операция?

Наверное, я здесь плохо сказал, элемент |11><11| в редуцированной матрице, естественно один, но он может «собираться» из многих «осколков» при редуцировании исходной матрицы. Я приводил самый простой пример чистого состояния двухкубитной системы, когда для редуцированной матрицы ρA ее элемент |1><1| равен сумме |c|2+|d|2. В более сложных случаях будет та же самая ситуация – каждый элемент редуцированной матрицы может состоять из нескольких слагаемых, что я попытался показать на примере 5-кубитной системы для элемента |11><11|.

Если говорить о тензорном произведении, то, естественно, у нас все матрицы квадратные, и, Пипа, Вы правильно предлагаете параметры для DirectMul(…). Я могу еще привести явный алгоритм для вычисления элементов матрицы С, которая является тензорным произведением матриц А (размерностью m) и В (размерностью n).
Для r,i=1,2,…m и s,j=1,2,…,n
полагаем
k=(r-1)n + s,
l=(i-1)n + j,
тогда
сkl=aribsj.

Это из книги П. Ланкастера «Теория матриц», М.:Наука, 1978, стр.235. Нам нужно только в последнем выражении все индексы на единичку уменьшить, чтобы нумерация строк и столбцов с нуля начиналась.

Насчет собственных значений эрмитовой матрицы, Пипа, посмотрите еще здесь:
http://alglib.sources.ru/eigen/hermitian/hermitianevd.php
http://alglib.sources.ru/eigen/hermitian/hermitianbisectionandinverseiteration.php
http://www.zsu.zp.ua/lab/MathDep/ApMath/PROGR3/7/MGU/cat/cat571.htm

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


P.S. Пипа, Вы молодец! :) Я не успеваю…, еще не видел Вашего последнего сообщения, буду смотреть :).

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #42 : 11 Апреля 2007, 19:53:35 »

С.И. Доронин
   Просьба конкретизировать тип матриц, участвующих в тензорном произведении. Нужны процедуры для тензорного произведения комплексных матриц или сомножители всегда действительные?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #43 : 11 Апреля 2007, 20:07:03 »

   Просьба конкретизировать тип матриц, участвующих в тензорном произведении. Нужны процедуры для тензорного произведения комплексных матриц или сомножители всегда действительные?

Чаще всего будут использоваться тензорные произведения типа ρ×I и I×ρ, где I – единичная матрица, а ρ – комплексная матрица плотности (I и ρ разной размерности).
Здесь хорошо бы подумать, как ускорить алгоритм и не множить две полных матрицы.

Но общий случай, который Вы реализовали, тоже нужен.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #44 : 11 Апреля 2007, 20:09:55 »

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

    Нет, на положительных собственных значениях сэкономить не удастся. QL-алгоритм представляет собой скрытую форму исчерпывания, а потому собственные значения получаются в монотонном порядке и полным набором. Алгоритм бисекций гораздо хуже, и выигрыша во времени в данной задаче он не даст.
    Хотелось бы уточнить какой (максимальный) размер предполагает у матриц-сомножителей, а также у продукта тензорного произведения (до редукции).
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #45 : 11 Апреля 2007, 20:17:08 »

Чаще всего будут использоваться тензорные произведения типа ρ×I и I×ρ, где I – единичная матрица, а ρ – комплексная матрица плотности (I и ρ разной размерности).
Здесь хорошо бы подумать, как ускорить алгоритм и не множить две полных матрицы.

    Готова функция тензорного (прямого) произведения матрицы на единичную справа! Операция умножения в ней отсутствует.
 
Код:
void DirectMulOneLeftR( double **mat1, int n1, int n2, double **mat)
// прямое умножение действительной матрицы на единичную СЛЕВА (M x I)

// **mat1 = 1-я матрица
// n1 = размерность 1-ой матрицы
// n2 = размерность единичной матрицы
// **mat = матрица результата, размерности n1*n2
{
  for( int i=0, ii=0; i < n1; i++, ii+=n2)
  { for( int j=0, jj=0; j < n1; j++, jj+=n2)
    { double x = mat1[i][j];
      for( int k=0; k < n2; k++)
        for( int l=0; l < n2; l++)
          mat[ii+k][jj+l] = (k==l)? x : 0;
    }     
  }
}

Тестирование выглядит так:
Код:
а[][] =
1  2
3  4

DirectMulOneLeftR( a, 2, 3, c);

c[][] =
  1       0        0      2      0       0
  0       1        0      0      2       0
  0       0        1      0      0       2
  3       0        0      4      0       0
  0       3        0      0      4       0
  0       0        3      0      0       4
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #46 : 11 Апреля 2007, 20:19:15 »

    Хотелось бы уточнить какой (максимальный) размер предполагает у матриц-сомножителей, а также у продукта тензорного произведения (до редукции).

Максимальный размер любых наших матриц не будет превышать размер 8- (или 9) кубитной матрицы. Т.е. той, на которой мы остановимся в качестве максимальной. У сомножителей при тензорном произведении тоже размер будет такой, чтобы результирующая матрица не превышала 8-9 кубитов.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #47 : 11 Апреля 2007, 20:41:50 »

    Готова функция тензорного (прямого) произведения матрицы на единичную справа! Операция умножения в ней отсутствует.
Код:
void DirectMulOneRightR( double **mat1, int n1, int n2, double **mat)
// прямое умножение действительной матрицы на единичную СПРАВА (I x M)
// **mat1 = 1-я матрица
// n1 = размерность 1-ой матрицы
// n2 = размерность единичной матрицы
// **mat = матрица результата, размерности n1*n2
{
  for( int i=0, ii=0; i < n2; i++, ii+=n1)
    for( int j=0, jj=0; j < n2; j++, jj+=n1)
      for( int k=0; k < n1; k++)
        for( int l=0; l < n1; l++)
            mat[ii+k][jj+l] = (i==j)? mat1[k][l] : 0;
}

Тестирование выглядит так:
Код:
а[][] =
1  2
3  4

DirectMulOneRightR( a, 2, 3, c);

c[][] =
  1       2        0      0      0       0
  3       4        0      0      0       0
  0       0        1      2      0       0
  0       0        3      4      0       0
  0       0        0      0      1       2
  0       0        0      0      3       4
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #48 : 11 Апреля 2007, 20:51:43 »

Интересно, а какой у них выигрыш по времени по сравнению с произведением двух полных матриц?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #49 : 11 Апреля 2007, 20:59:20 »

    Одиночные умножения, в отличии от векторных, потребляют очень мало времени. Прямое (тензорное) умножение матриц можно считать мгновенной процедурой (как в случае заполненных матриц, так и с единичной матрицей в качестве сомножителя). Время выполнения таких операций пренебрежимо мало, и находится на уровне погрешностей воспроизведения.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #50 : 11 Апреля 2007, 21:23:07 »

Отлично! Хоть одной проблемой меньше :), а то я боюсь, что второй блок займет больше времени вычислений, чем первый. Не понятно еще, сколько времени «съест» редукция.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #51 : 11 Апреля 2007, 21:33:19 »

   На редукцию мне даже страшно смотреть. :)
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #52 : 13 Апреля 2007, 00:20:10 »

Цитата: С.И. Доронин link=topic=76.msg1378#msg1378
Теперь насчет общего алгоритма редуцирования. Поступаем следующим образом, если мы редуцируем, скажем пятикубитную систему ABCDE и оставляем кубиты AD, проводя редукцию по всем остальным (по ВСЕ), то перебираем все элементы 5-кубитной матрицы плотности и по их индексам в двоичной форме смотрим, что стоит на позициях ВСЕ, т.е. на второй, третьей и пятой позиции в проекторе. Например,
|11111><11111|
Я выделил то, на что нужно смотреть. Если в проекторе слева и справа есть полное совпадение, то этот элемент остается в редуцированной матрице AD и идет, в данном случае к элементам |11><11| (то, что не выделено жирным), таких элементов может получаться несколько, и они будут суммироваться...

    Можно ли понимать эти ваши слова так, что какой бы большой ни была заданная матрица плотности – хоть ABCDEF…XYZ (от A до Z включительно), то редукция ее по AD не превзойдет своим размером 4x4 (т.е. матрицы, изначально построенной на паре AD)? Ведь иначе будет невозможно то "суммирование", про которое вы пишите (т.к. суммирование определено только на матрицах одного размера).
    Вопрос не праздный, поскольку верхний размер редуцированной матрицы желательно знать наперед (из-за того, что практически вырезать столбцы и строки из большой матрицы довольно накладно по времени).
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #53 : 13 Апреля 2007, 00:52:47 »

Пипа, я не совсем понял вопрос, на выходе, т.е. в результате редуцирования, получается одна матрица, например 4*4, только это не редукция по AD, а наоборот, редукция по ВСЕ, когда остается AD. Исходная матрица, т.е. та, которая редуцируется, не будет превышать наши максимальные 8-9 кубитов.
Варианты редукции могут быть разные, т.е. из одной матрицы, напр. ABCDE (32*32) в результате редукции могут получаться матрицы меньшего размера, напр. А (2*2), AB (4*4), ABC (8*8 ), ABCD (16*16), и аналогичные матрицы для всех других «буквенных» комбинаций.
Т.е. из исходной матрицы получаются все возможные матрицы меньшего размера.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #54 : 13 Апреля 2007, 01:06:32 »

    Конечно же я неверно выразилась. Под "редукцией по AD" я имела ввиду, что AD остается, а остальное редуцируется.
    Размер исходной матрицы меня не интересует, т.к. ее размер задан при входе в процедуру. Интерес представляет размер продукта. Должна ли сама процедура его вычислять, или же в качестве приемника для редуцированной матрицы может быть подставлена матрица с заранее установленными габаритами?
    Поскольку число "остающихся" от редукции кубитов определяет верхний размер редуцированной матрицы, то это сильно облегчает алгоритм.
    Остается лишь вопрос о необходимости дальнейшего урезания продукта уже по признаку полностью нулевых строк и столбцов. Для каких целей нужна затем редуцированная матрица? Если только для нахождения собственных значений, то урезание нулевых строк/столцов можно не делать - на результат это не повлияет (нулевые соб.значения в расчет не берем).
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #55 : 13 Апреля 2007, 01:24:03 »

Размер выходной матрицы определяется по входным параметрам. Если в параметрах указаны номера остающихся кубитов (напр. 1 и 4), или их символьное обозначение (AD) то этим и задается размер результирующей матрицы 4*4. Т.е. это то, что говорите Вы:
Цитата:
Поскольку число "остающихся" от редукции кубитов определяет верхний размер релуцированной матрицы, то это сильно облегчает алгоритм.

Цитата:
Для каких целей нужна затем редуцированная матрица? Если только для нахождения собственных значений, то урезание нулевых строк/столцов можно не делать - на результат это не повлияет (нулевые соб.значения в расчет не берем).

Перед тем как находить собственные значения, с этой матрицей нужно будет делать тензорное умножение, поэтому нужен ее настоящий размер.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #56 : 13 Апреля 2007, 01:28:54 »

Перед тем как находить собственные значения, с этой матрицей нужно будет делать тензорное умножение, поэтому нужен ее настоящий размер.

    Это меняет дело. А то я думала, что сначала делаем тензорное умножение, а лишь потом редуцируем произведение.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #57 : 13 Апреля 2007, 01:32:21 »

   Впрочем, если делается тензорное умножение на единичную СПРАВА, то собственные значения получатся как объединение собственных значений каждого из сомножителей (поскольку блоки будут выстроены по диагонали). А следовательно, собственные значения исходной матрицы всего лишь дуплицируются столько раз, каков порядок единичной матрицы.
   Что касается умножения на единичную СЛЕВА, то доказать этого не могу, но все числовые примеры дают на MatLab'е тот же результат - набор собственных значений исходной матрицы "размножается" во столько раз, каков порядок единичной матрицы.
   В обоих случаях - как при левом, так и при правом тензорном умножении на единичную матрицу - собственные значения продукта с легкостью угадываются без проведения вычислений в лоб.
   Может быть в этом случае тензорное произведение не надо вычислять?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #58 : 13 Апреля 2007, 11:49:29 »

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

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #59 : 14 Апреля 2007, 03:34:08 »

Процедура редуцирования матрицы плотности
(1-ая примерка)

Код:
bool Reduce( double **Re, double **Im, int n1, int offmask,
  double **redRe, double **redIm, int n2)
// input: complex matrix Re:Im, size n1, reduced bites
// output: complex matrix redRe:redIm, size n2
{
// нередуцируемые кубиты
  int onmask = (n1-1)^offmask;  // onmask=9(01001), offmask=22(10110)
Здесь параметр offmask кодирует редуцируемые кубиты. По двоичной системе: A=1, B=2, C=4, D=8, E=16. Редукция системы ABCDE по BCE будет соответствовать коду BCE=2(B)+4(C)+16(E)=22
onmask – комплиментарное к offmask дополнение (кубиты не подвергающиеся редукции). Вычисляется внутри процедуры. Для данного примера onmask = 9 = 1(A)+8(D).

Код:
// массив индексов для переноса
  int *index = new int[n1];
  int n = 0;
  index[0] = 0;
  for( int i=0; i < n1; i++)
    index[i] = ( (i & onmask) && !(i & offmask) )? ++n : 0;
  if( ++n != n2)  // проверка наличия места
  { print( "Bad size: n=%d, n2=%d", n, n2);
    return false;
  }
Массив index[] служит для пересчета номеров столбцов/строк НЕредуцируемых элементов на новые номера в редуцированной матрице. Не все элементы массива используются, но так быстрее будет потом пересчитывать.
Для данного примера:
index[0] = 0; (A-,D-)
index[1] = 1; (A+,D-)
index[8] = 2; (A-,D+)
index[9] = 3; (A+,D+)
остальные элементы  - мусор.

Код:
// обнуляем результат
  for( int i=0; i < n2; i++)
    for( int j=0; j < n2; j++)
      redRe[i][j] = redIm[i][j] = 0;

// добавляем в результат
  for( int i=0; i < n1; i++)
  { int on1 = i & onmask;  // строка: остающиеся
    int off1 = i & offmask;  // строка: редуцируемые
    for( int j=0; j < n1; j++)
    { int on2 = j & onmask;  // столбец: остающиеся
      int off2 = j & offmask;  // столбец: редуцируемые
      if( off1 == off2)  // редуцируемые в столбце и строке совпадают
      { int n = index[on1];  // строка куда
        int m = index[on2];  // столбец куда
        redRe[n][m] += Re[i][j];
        redIm[n][m] += Im[i][j];
      }
    }
  } 

  delete[] index;
  return true;
}
Конец процедуры.

По операциям логического AND с маской offmask выделяются редуцируемые биты (off), а с маской onmask – остающиеся (on). Первые используются для теста "сомнительных элементов" – пропускать их (при различных off) или добавлять (при совпадении off). Вторые используются для расчета места, куда добавлять при совпадении.
Для "базовых" кубитов (AD) исключение не делается – они пропускаются на том же правиле, поскольку их нулевая off должна пропустить их в результат.

Удаление нулевых строк/столбцов результата пока в процедуре отсутствует. Чтобы это сделать необходимо будет завести спец. класс матриц, у которых можно будет выборочно удалять столбцы и строки. Попутно это уменьшит во всей программе число параметров в функциях, поскольку один объект будет хранить в себе действительную, мнимую части и габариты матрицы.

Уверенности в том, что это заработает, у меня нет. Не знаю даже как это проверять. Жду совета.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #60 : 14 Апреля 2007, 21:10:11 »

Мне сложно что-то сказать, нужно проверять. Пока могу назвать лишь основные моменты. Поскольку редуцированная матрица это тоже матрица плотности, то все ее свойства должны иметь место, т.е. ее след будет равен единице, и она эрмитова (симметричная в вещественном случае). Это, естественно, когда в качестве исходной матрицы, тоже берется матрица плотности.
Тестирование можно начинать с самого простого случая, когда редуцируется чистое состояние двухкубитной системы и остается один кубит. Явный вид редуцированных матриц ρA и ρВ для этого случая я приводил.

Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #61 : 14 Апреля 2007, 21:51:06 »

Pipa - молодец: так быстро проделали столько работы!

У меня тоже есть идея как реализовать в коде алгоритм (предложенный С.И. Дорониным) выбора в исходной матрице элементов, которые должны попасть в редуцированную матрицу.
Код:
#include <stdio.h>

int main(void)
{
typedef union {
short ind;
struct {
unsigned int b0:1;
unsigned int b1:1;
unsigned int b2:1;
unsigned int b3:1;
unsigned int b4:1;
unsigned int b5:1;
unsigned int b6:1;
unsigned int b7:1;
unsigned int b8:1;
unsigned int b9:1;
unsigned int b10:1;
unsigned int b11:1;
unsigned int b12:1;
unsigned int b13:1;
unsigned int b14:1;
unsigned int b15:1;
} byte2;
} cod;

cod i;

scanf("%d",&i.ind);

printf("\n bite0 = %d",i.byte2.b0);
printf("\n bite1 = %d",i.byte2.b1);
printf("\n bite2 = %d",i.byte2.b2);
printf("\n bite3 = %d",i.byte2.b3);
printf("\n bite4 = %d",i.byte2.b4);
printf("\n bite5 = %d",i.byte2.b5);
printf("\n bite6 = %d",i.byte2.b6);
printf("\n bite7 = %d",i.byte2.b7);
printf("\n bite8 = %d",i.byte2.b8);
printf("\n bite9 = %d",i.byte2.b9);
printf("\n bite10 = %d",i.byte2.b10);
printf("\n bite11 = %d",i.byte2.b11);
printf("\n bite12 = %d",i.byte2.b12);
printf("\n bite13 = %d",i.byte2.b12);
printf("\n bite14 = %d",i.byte2.b14);
printf("\n bite15 = %d",i.byte2.b15);

return 0;
}

Использование битовых полей позволяет получить доступ к отдельным битам индекса элементов матрицы. А далее их уже можно просто сравнивать между собой. Так тип short в Visual C++ занимает 2 байта, что вполне достаточно для индекса элементов матрицы.

Вот только не могу пока понять, по какому алгоритму в общем случае формируется каждый из элементов редуцированной матрицы.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #62 : 14 Апреля 2007, 22:23:27 »

Поскольку редуцированная матрица это тоже матрица плотности, то все ее свойства должны иметь место, т.е. ее след будет равен единице, и она эрмитова (симметричная в вещественном случае). Это, естественно, когда в качестве исходной матрицы, тоже берется матрица плотности.
Тестирование можно начинать с самого простого случая, когда редуцируется чистое состояние двухкубитной системы и остается один кубит. Явный вид редуцированных матриц ρA и ρВ для этого случая я приводил.

Результаты проверки следующие:
1) След и эрмитовость сохраняются при любых исходных данных (генерировала случайные эрмитовые матрицы плотности размером 32х32 и редуцировала их до 4х4).
2) Пример

½ 0 0 ½
0 0 0 0
0 0 0 0
½ 0 0 ½

проредуцировался до 

½ 0
0 ½

Вроде бы так ему и положено.
----

    Сергей Иванович! Нарисуйте, пожалуйста исходную матрицу (можно в форме a,b,c,d). Для которой вы привели ответ редукции:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

Только не ввиде суммы проекторов :), а в "живом"виде - в том,  в котором матрицы обычно пишут.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #63 : 15 Апреля 2007, 02:23:03 »

Pipa
Цитата:
Сергей Иванович! Нарисуйте, пожалуйста исходную матрицу (можно в форме a,b,c,d). Для которой вы привели ответ редукции:

Для произвольного чистого состояния двухкубитной системы

|Ψ>= a|00> + b|01> + c|10> + d|11>,

матрица плотности имеет вид:

|a|2    ab*    ac*    ad*
ba*    |b|2    bc*    bd*
ca*    cb*    |c|2    cd*
da*    db*    dc*    |d|2

Где а, b, c, d – произвольные комплексные числа, удовлетворяющие условию нормировки:
|a|2+|b|2+|c|2+|d|2=1.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #64 : 15 Апреля 2007, 13:30:15 »

Кажется первая примерка прошла удачно.

матрица плотности имеет вид:

|a|2    ab*    ac*    ad*
ba*    |b|2    bc*    bd*
ca*    cb*    |c|2    cd*
da*    db*    dc*    |d|2
Если все проделать так, как я написал выше, то получим ρA, которая имеет вид:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

Т.е. происходит не просто обнуление, а суммирование отдельных элементов исходной матрицы плотности.
Причем, когда мы берем частичный след по другому кубиту (по A, а не по B, как перед этим), то частичная матрица плотности ρВ уже другая:

|a|2+|с|2    ab*+cd*
ba*+dc*    |b|2+|d|2

Результаты тестов:

    1) Этап 1. Действительные целочисленные числа.
Мнимые части обнуляем и принимаем: a=1, b=2, c=3, d=4.

При этих значениях матрица плотности

|a|2    ab*    ac*    ad*
ba*    |b|2    bc*    bd*
ca*    cb*    |c|2    cd*
da*    db*    dc*    |d|2

принимает вид:

1    2    3    4
2    4    6    8
3    6    9   12
4    8   12  16
(след = 1+4+9+12=30)

Ее редукция по A дает:

 5   11
11  25
(след = 5+25=30)

а редукция по B дает:

10   14
14   20
(след = 10+20=30)

что совпадает с приведенным вами общим решением.
 
    2) Этап 2. Действительных случайные числа.
Значения a, b, c, d генерировались с помощью генератора случайных чисел random(), а затем, подстановкой по формулам,  заполнялась исходная матрица плотности и матрица ожидаемого результата.
После проведения редукции результат автоматически сравнивался с ожидаемым (цикл сравнения по всем клеткам) и печатался факт совпадения или расхождения.
На 100 автоматически сгенерированных примерах не обнаружилось ни одного расхождения предсказанного результата с ожидаемым.

    3) Этап 3. Комплексные случайные числа.
Проводился аналогично этапу 2, но матрица мнимых частей заполнялась тем же способом, что и действительная часть, – случайной генерацией нижнего треугольника, а верхний заполнялся с изменением знака.
Те же 100 проходов дали полностью совпадающие результаты с ожидаемыми, как при редукции по A, так и по B.

На этом предлагаю пока считать процедуру работоспособной.

Вопрос: У меня вызывает сомнение, что получаемая процедурой Reduce() «псевдоредуцированная» матрица размером 2N (где N – число кубитов, НЕподвергающихся редукции) может иметь полностью нулевые столбцы или строки, что могло бы потребовать ее дальнейшего сжатия.
Если вам кажется, что я не права, то предлагаю вам придумать такие a, b, c, d (за исключением тривиального случая, когда они все равны по нулям), чтобы в редуцированной матрице оказался полностью нулевой столбец или строка (на матрицах бОльшей размерности полностью нулевая строка или столбец тем более маловероятны).
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #65 : 15 Апреля 2007, 14:11:00 »

Вы не стали нормировать на единицу? Наверное, пока это оправдано, так легче тестировать.
Пипа, я только очень прошу Вас быть более внимательной, иначе мне тяжело, Вы пишите:

Цитата:
Ее редукция по A дает:

 5   11
11  15
(след = 5+15=30)

Очевидно, что 5+15 это не 30, я догадываюсь, что вместо 15 должно быть 25, но все же будьте повнимательней, в более сложных случаях мы просто запутаемся. И остальные цифры проверьте еще раз.

И с терминологией тоже давайте договоримся, – редукция по A, это когда A исчезает, а остается все остальное, в данном случае В, т.е. эта матрица, наоборот, редукция по B, когда остается ρA.

Вы можете поправить в своем тексте, а это сообщение удалить, чтобы не засорять тему.

Чуть позже я еще приведу примеры, в том числе с нулевыми строками и столбцами и не только в редуцированной, но и исходной матрице, но нам все равно нужны полные размеры. Сжимать ничего не надо, будет только лишняя путаница.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #66 : 15 Апреля 2007, 14:23:46 »

Пипа, я только очень прошу Вас быть более внимательной, иначе мне тяжело, Вы пишите:

Цитата:
Ее редукция по A дает:

 5   11
11  15
(след = 5+15=30)

Очевидно, что 5+15 это не 30, я догадываюсь, что вместо 15 должно быть 25, но все же будьте повнимательней, в более сложных случаях мы просто запутаемся. И остальные цифры проверьте еще раз.

   Виновата. Программа сама проверяет совпадение матриц, как и их следов. А для форума мне приходится списывать цифирь с отладчика в ручную - отсюда и такие досадные ошибки Грустный.

И с терминологией тоже давайте договоримся, – редукция по A, это когда A исчезает, а остается все остальное, в данном случае В, т.е. эта матрица, наоборот, редукция по B, когда остается ρA.

   Здесь я ничего не напутала - результат действительно таков.

Вы не стали нормировать на единицу? Наверное, пока это оправдано, так легче тестировать.

    Так тестировать сложнее, т.к. целые числа в пределах десятка я без труда складываю и умножаю в уме. А дробные числа гораздо менее наглядные и оперировть ими в уме сложнее.
    Программе же все равно что считать. А любая нормировка на a, b, c, d сразу же приведет к масштабированию всей матрицы. А поскольку данный алгоритм имеет дело только с суммированием, то очевидно что и для результа редуцирования сохранится тот же масштаб. Но если вы не верите, то я готова это проверить.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #67 : 15 Апреля 2007, 15:05:45 »

Результаты тестирования на нормированных действительных значениях.

Значения a=1, b=2, c=3, d=4 после нормировки  - почленному делению на sqrt(a*a+b*b+c*c+d*d) - дают значения:
a=0.182574
b=0.365148
c=0.547723
d=0.730297

Отсюда получаем матрицу плотности:

0.0333 0.0667 0.1000 0.1333
0.0667 0.1333 0.2000 0.2667
0.1000 0.2000 0.3000 0.4000
0.1333 0.2667 0.4000 0.5333
(след = 1.0000)

Редукция по А дает (В - остается):

0.1667 0.3667
0.3667 0.8333
(след = 1.0000)

Редукция по B дает (A - остается):

0.3333 0.4667
0.4667 0.6667
(след = 1.0000)

Как видите, теперь не так наглядно. Там вы заметили у меня ошибку с 15 вместо 25, а при таких числах это сделать гораздо сложнее.

P.S. Сделала вывод в файл. Числа теперь точные, а не рукотворные.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #68 : 15 Апреля 2007, 15:17:19 »


Цитата:
Здесь я ничего не напутала - результат действительно таков.

Не понял. Матрица ρA, которая равна:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

для Вашего примера это

 5   11
11  25

Данная матрица – редукция по В, а не по А. Это ρA=TrB), когда берется частичный след по В.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #69 : 15 Апреля 2007, 15:32:28 »

    Ну что ж, будем считать испытания проваленными. Первый блин, как говорится, комом.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #70 : 15 Апреля 2007, 15:41:40 »

Почему? Сами матрицы правильные получаются, или дело не в терминологии? Можно пояснить?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #71 : 15 Апреля 2007, 15:45:05 »

   Уже не в терминологии, а хуже. Я задаю процедуре offmask=1, требуя отредуцировать первый кубит (A), а получаю от нее результат редукции по В. И наоборот. Это порок алгоритма, а не терминологии.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #72 : 15 Апреля 2007, 18:01:51 »

Матрица ρA, которая равна:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

Никак это не получается Грустный.
Вставила трассировку вовнутрь алгоритма. Даю к ней комментарий.

Чтобы получить ρA делаю редукцию по B.
Передаю процедуре параметр offmask = 10 (бинарное), что означает редукцию по старшему кубиту – B. (У меня младший бит кода соответствует младшей букве алфавита: A=0001, B=0010, C=0100, D=1000 и т.д.)
 
offmask = 10

Программа вычисляет ему комплиментарный:

onmask =  01

что означает остающийся кубит A.

    Далее идет обход элементов исходной матрицы P[][].
«Element» - номер элемента исходной матрицы
«row» - двоичный код номера строки
«col» - двоичный код номера столбца
«row&onmask» - вырезка остающихся битов из номера строки
«col&onmask» - вырезка остающихся битов из номера столбца
«row&offmask» - вырезка редуцируемых битов из номера строки
«col&offmask» - вырезка редуцируемых битов из номера столбца

Совпадение «row&offmask» и «col&offmask» влечет за собой добавление данного элемента к результату (матрице R[][]) в ячейку, с номером строки «row&onmask» и номером столбца «col&onmask».
Везде в таблице, за исключением индексов в квадратных скобках, числа в двоичном формате.

Код:
Element row col row&onmask col&onmask row&offmask col&offmask
P[0][0]   00  00        00            00            00             00     R[0][0]+=P[0][0]=|a|2
P[0][1]   00  01        00            01            00             00     R[0][1]+=P[0][1]=ab*
P[0][2]   00  10        00            00            00             10
P[0][3]   00  11        00            01            00             10
P[1][0]   01  00        01            00            00             00     R[1][0]+=P[1][0]=ba*
P[1][1]   01  01        01            01            00             00     R[1][1]+=P[1][1]=|b|2
P[1][2]   01  10        01            00            00             10
P[1][3]   01  11        01            01            00             10
P[2][0]   10  00        00            00            10             00
P[2][1]   10  01        00            01            10             00
P[2][2]   10  10        00            00            10             10     R[0][0]+=P[2][2]=|c|2
P[2][3]   10  11        00            01            10             10     R[0][1]+=P[2][3]=cd*
P[3][0]   11  00        01            00            10             00
P[3][1]   11  01        01            01            10             00
P[3][2]   11  10        01            00            10             10     R[1][0]+=P[3][2]=dc*
P[3][3]   11  11        01            01            10             10     R[1][1]+=P[3][3]=|d|2

Получаю матрицу R[][]:

|a|2+|c|2    ab*+cd*
ba*+dc*    |b|2+|d|2

но она не такая, как требуется, а представляет собой редукцию по A, а не по B.

Теперь насчет общего алгоритма редуцирования. Поступаем следующим образом, если мы редуцируем, скажем пятикубитную систему ABCDE и оставляем кубиты AD, проводя редукцию по всем остальным (по ВСЕ), то перебираем все элементы 5-кубитной матрицы плотности и по их индексам в двоичной форме смотрим, что стоит на позициях ВСЕ, т.е. на второй, третьей и пятой позиции в проекторе. Например,

|11111><11111|

Я выделил то, на что нужно смотреть. Если в проекторе слева и справа есть полное совпадение, то этот элемент остается в редуцированной матрице AD и идет, в данном случае к элементам |11><11| (то, что не выделено жирным), таких элементов может получаться несколько, и они будут суммироваться, например,

|11011><11011|
или
|10010><10010|

Тоже пойдут к элементам |11><11| в матрице ρAD.

Если же в проекторе нет совпадения слева и справа, например,

|10011><11011|,

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

У меня для элемента P[2][2]=|c|2 двоичный код строки и столбца один и тот же - 10.

|10><10|

(в отличие от вас я вынуждена нумеровать кубиты, начиная с младшей цифры - EDCBA, чтобы возрастание кода совпадало с порядком букв в алфавите).

следовательно я должна принять его в редуцировнную матрицу. Так и появляется в ней слагаемое |c|2 в левом углу матрицы.

Что в алгоритме не так? Помогите найти ошибку!
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #73 : 15 Апреля 2007, 21:29:11 »


Цитата:
У меня для элемента P[2][2]=|c|2 двоичный код строки и столбца один и тот же - 10.

|10><10|

(в отличие от вас я вынуждена нумеровать кубиты, начиная с младшей цифры - EDCBA, чтобы возрастание кода совпадало с порядком букв в алфавите).

Для элемента |c|2 проектор правильный, но редукцию Вы делаете по A, а не по В, ведь «вычеркивается» 1 (первый кубит), и остается 0? Это так? Должно быть наоборот – вычеркивается вторая позиция, т.е. 0, а первая остается.

Пока не совсем понял насчет нумерации, может в этом дело? Если Вы первому кубиту сопоставили букву В, то это не значит, что он им стал, ведь Вы не переходите к новому базису? Тогда нужно менять исходную матрицу, записывать ее в новом базисе, и элемент |c|2 тогда будет |01><01|, т.е. при редукции он пойдет уже в нужное место. Или я что-то не так понимаю?

Если это так, то буквы нужно переобозначить, т.е. для 5 кубитов и EDCBA, необходимо при редукции E принимать за A, D – за В, и т.д. С учетом такого переобозначения, в примере для двух кубитов, тогда у Вас все правильно – букву А необходимо принимать за В.

А переходить к новому базису с обратным порядком букв не следует, иначе в более сложных случаях мы просто концы не соберем…

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #74 : 15 Апреля 2007, 22:30:44 »

Пока не совсем понял насчет нумерации, может в этом дело?

    Я тоже этого не пойму.
Если посмотреть на матрицу плотности, то там кубит A находится ближе к левому верхнему углу (ρ00), а кубит с высоким номером/буквой находится ближе к нижнему краю диагонали.
    Отсюда следует, что с ростом индекса в матрице плотности растет и буква кубита. Значит, цифры и буквы возрастают в одном и том же направлении.
Вы пишите:
Если простыми словами, то на любой элемент матрицы плотности
Код:
ρ[i][j]
можно смотреть как на запись данного элемента в виде проектора, если под i и j понимать числа в двоичной системе счисления. Например, элемент ρ23 для 5-кубитной системы это проектор вида |00010><00011|, т.е. 2 и 3 нужно записать в двоичной системе. Нумерация начинается с 0, как обычно в Си, т.е. самый первый элемент (в левом верхнем углу матрицы) ρ00. В случае 5-кубитной системы матрица плотности имеет размер 32*32 и самый последний элемент ρ31;31 (в правом нижнем углу). Число 31 в двоичной системе это как раз 11111, т.е. последний элемент в виде проектора записывается |11111><11111|.
    С эти я полностью согласна. Но раз уж элемент ρ23 вы представили как |00010><00011|, то стало быть МЛАДШИЙ кубит А у вас СПРАВА. Т.е. если 2 это 00010, а 3 это 00011, то младший бит у вас СПРАВА, как у всех многозначных чисел. Значит, кубиты следуют в этой записи как EDCBA – младший справа. 00001 – это у нас «встал» кубит А, а 10000 – кубит E.
Но сразу же за этим вы пишите:
Теперь насчет общего алгоритма редуцирования. Поступаем следующим образом, если мы редуцируем, скажем пятикубитную систему ABCDE и оставляем кубиты AD, проводя редукцию по всем остальным (по ВСЕ), то перебираем все элементы 5-кубитной матрицы плотности и по их индексам в двоичной форме смотрим, что стоит на позициях ВСЕ, т.е. на второй, третьей и пятой позиции в проекторе. Например,
|11111><11111|
    Отсюда видно, что 2-ю, 3-ю и 5-ю позиции вы подчеркнули начиная с ЛЕВОГО края, т.е. перешли в систему записи, когда младшая цифра находится слева. Т.е. в этой записи биты следуют уже не в двоичном порядке, а в строковом, когда буквы пишут слева направо – ABCDE.
    Такое смешение создало путаницу в вашем объяснении: говоря о индексе вы пользуетесь двоичным представлением чисел (у которых младший разряд находится справа), а при вычеркивании позиций перешли в алфавитную последовательность ADCDE, в которой младшмй кубит находится уже слева.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #75 : 16 Апреля 2007, 00:00:59 »


Цитата:
Если посмотреть на матрицу плотности, то там кубит A находится ближе к левому верхнему углу (ρ00), а кубит с высоким номером/буквой находится ближе к нижнему краю диагонали.
    Отсюда следует, что с ростом индекса в матрице плотности растет и буква кубита. Значит, цифры и буквы возрастают в одном и том же направлении.

Нет, рост индекса к росту буквы кубита отношения не имеет. Ниже поясню подробнее.

Цитата:
С эти я полностью согласна. Но раз уж элемент ρ23 вы представили как |00010><00011|, то стало быть МЛАДШИЙ кубит А у вас СПРАВА. Т.е. если 2 это 00010, а 3 это 00011, то младший бит у вас СПРАВА, как у всех многозначных чисел. Значит, кубиты следуют в этой записи как EDCBA – младший справа. 00001 – это у нас «встал» кубит А, а 10000 – кубит E.

Не так, не надо за индексами искать место расположения кубитов, зачем Вы это делаете? Я же там не писал, что «младший кубит А справа» Непонимающий
Любой элемент матрицы с любым индексом, т.е. любой проектор, в частности |00010><00011|, имеет один и тот же порядок расположения кубитов, и он определяется только позицией в базисе. Попробую еще пояснить, я уже как-то расписывал позиции кубитов A и B в проекторе для двухкубитной системы, например элемент |c|2, о котором мы говорили раньше, можно расписать:

|1>A|0>B<1|A<0|B.

Аналогично для любого числа кубитов. Так элемент ρ23, т.е. |00010><00011|, о котором зашла речь, может быть «разложен по полочкам»:

|0>A|0>B|0>C|1>D|0>E<0|A<0|B<0|С<1|D<1|E.

И такой буквенный порядок будет для всех остальных проекторов, т.е. для всех элементов матрицы плотности с любым индексом. Индексы (и проекторы) не имеют отношения к выбранному порядку букв.

Думаю, при такой записи уже наглядно видно, почему я подчеркивал позиции 2,3 и 5, когда говорил о редукции по ВСЕ. Т.е. то, о чем Вы пишите далее:
Цитата:
Отсюда видно, что 2-ю, 3-ю и 5-ю позиции вы подчеркнули начиная с ЛЕВОГО края, т.е. перешли в систему записи, когда младшая цифра находится слева. Т.е. в этой записи биты следуют уже не в двоичном порядке, а в строковом, когда буквы пишут слева направо – ABCDE.

Цитата:
Такое смешение создало путаницу в вашем объяснении: говоря о индексе вы пользуетесь двоичным представлением чисел (у которых младший разряд находится справа), а при вычеркивании позиций перешли в алфавитную последовательность ADCDE, в которой младшмй кубит находится уже слева.

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

Если я плохо пояснил, и что-то остается непонятным, спрашивайте, это важный момент, и здесь нужно полное понимание.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #76 : 16 Апреля 2007, 00:45:16 »

Подведем итог.
Имеем матрицу плотности:

|a|2    ab*    ac*    ad*
ba*    |b|2    bc*    bd*
ca*    cb*    |c|2    cd*
da*    db*    dc*    |d|2

редуцируем ее по B, т.е. оставляем A.

По Доронину  получается так:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

А по Пипиному получается эдак:

|a|2+|c|2    ab*+cd*
ba*+dc*    |b|2+|d|2

Кто прав?

    Я полагаю, что Доронин считал индексы по двоичной системе (слева на право), а удалял их по алфавиту (справа налево), оттого у него и получились "перепутанные" формулы, в которой биты считаются в противоположном порядке. Для двухкубитной системы вместо редукции по А получается редукция по B. А у трехкубитной вместо A было бы C. т.е. порядок кубитов оказывается инвертированным.
    Пипа же везде пользуется единой системой, а потому права :):):).

Для поверки испытаем систему в которой кубита B совсем нет, но в матрице для него зарезервировано место:

p   q   0   0
s   t   0   0
0   0   0   0
0   0   0   0

т.е. блок

p   q
s   t

отвечает матрице кубита А, а матрица кубита B пустая.

Теперь мы редуцируем исходную матрицу 4x4 по B, которого нет. По идее мы должны получить то, что имеем для кубита A. А именно:

p   q
s   t
   
Проверяем это.

В формуле Пипы

|a|2+|c|2    ab*+cd*
ba*+dc*    |b|2+|d|2

подставляем c=d=0 и получим:

|a|2+0    ab*+0
ba*+0*    |b|2+0

или

|a|2    ab*
ba*    |b|2

Что похоже на правду. Т.е. если бы кубита B в самом деле не было, то так бы матрица плотности и выглядела.

По Доронину имеем:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

снова подставляем c=d=0 и получим:

|a|2+|b|2    0+0
0+0             0+0

или

|a|2+|b|2    0
0                 0

т.е. какую-то фигню :).

Так элемент ρ23, т.е. |00010><00011|, о котором зашла речь, может быть «разложен по полочкам»:

|0>A|0>B|0>C|1>D|0>E<0|A<0|B<0|С<1|D<1|E.

  Нет. Раскладывать мы будем не элемент ρ23, а элемент ρ22 (поскольку именно он у нас спорный), и не по "полочкам", а в виде живых матриц и векторов. Если вам не трудно – прошу изобразить в полной матричной нотации.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #77 : 16 Апреля 2007, 22:47:54 »

Пипа, похоже, Вы меня не понимаете Грустный. В том вопросе, на котором мы сейчас застопорились, нет предмета для спора или дискуссии. Редуцированная матрица ρA, которую я привел – это не моя прихоть, и получена она вовсе не «по Доронину» :), а согласно общепринятым правилам КМ. Это правильный ответ, любой другой – ошибочен. Постарайтесь понять, как получается правильный вид редуцированной матрицы, а плодить ошибочные решения можно до бесконечности, в этом нет никакого смысла.

Цитата:
Я полагаю, что Доронин считал индексы по двоичной системе (слева на право), а удалял их по алфавиту (справа налево), оттого у него и получились "перепутанные" формулы, в которой биты считаются в противоположном порядке.

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

Цитата:
Для поверки испытаем систему в которой кубита B совсем нет, но в матрице для него зарезервировано место:

p   q   0   0
s   t   0   0
0   0   0   0
0   0   0   0

т.е. блок

p   q
s   t

отвечает матрице кубита А, а матрица кубита B пустая.

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

Хотите, я еще более простой пример приведу. Как Вы думаете, отличаются ли между собой следующие матрицы плотности?

1  0
0  0

1  0  0  0
0  0  0  0
0  0  0  0
0  0  0  0

1  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0

И т.д.

Думаете, ничем не отличаются? Судя по Вашей логике, все они одинаковы, и кроме кубита А в них ничего нет? Вы глубоко заблуждаетесь, все эти матрицы плотности отличаются, причем это отличие существенно и принципиально. Я запишу векторы состояния, которые соответствуют этим матрицам:
|Ψ> = |0>
|Ψ> = |00> = |0>A|0>B
|Ψ> = |000> = |0>A|0>B|0>С
И т.д.

Вы видите разницу? Кроме первой однокубитной системы, когда кроме А ничего и нет, во всех остальных случаях всегда есть другие кубиты. Даже если присутствует только одна единичка в левом верхнем углу, она относится ко всем кубитам, которые есть в системе. И редуцировать можно по любому из них, и для всех редуцированных матриц мы будем иметь ту же единичку в левом верхнем углу, но в матрицах меньшего размера.
А я все недоумевал, зачем Вы порывались вычеркивать нулевые строки и столбцы. Вы полагаете, вот так просто, не думая ни о чем, их можно вычеркивать? Это не так – нулевые строки и столбцы нужны для того, чтобы знать, какой размер у матрицы, т.е. сколько кубитов в системе. Для матриц плотности это очень важно, как Вы можете видеть из приведенных примеров. Не индексы и не элементы матрицы здесь важны, а то, в каком базисе записаны эти элементы. В многокубитном базисе та же самая единичка будет иметь совсем другой смысл, и она вовсе не относится к кубиту А, а ко всем кубитам одновременно.

Цитата:
Теперь мы редуцируем исходную матрицу 4x4 по B, которого нет. По идее мы должны получить то, что имеем для кубита A. А именно:

А если Вы будете редуцировать по А то получите матрицу ρВ, состоящую из одних нулей? Ведь по Вашей логике кубита В совсем нет? :)

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

Цитата:
По Доронину имеем:

|a|2+|b|2    ac*+bd*
ca*+db*    |c|2+|d|2

снова подставляем c=d=0 и получим:

|a|2+|b|2    0+0
0+0             0+0

или

|a|2+|b|2    0
0                 0

т.е. какую-то фигню :)

:) Пипа, это не фигня :), это и есть ПРАВИЛЬНЫЙ ОТВЕТ :), и опять это ответ не «по Доронину», а согласно КМ.

Цитата:
Нет. Раскладывать мы будем не элемент ρ23, а элемент ρ22 (поскольку именно он у нас спорный), и не по "полочкам", а в виде живых матриц и векторов. Если вам не трудно – прошу изобразить в полной матричной нотации.

Мне не трудно :). Вы имеете в виду ρ22 для двухкубитной системы, т.е. |10><10|?

Это векторы:
|10> = (0, 0, 1, 0)T – вектор-столбец,
<10| = (0, 0, 1, 0) – вектор-строка.

Если перемножить столбец на строку, т.е. найти явный вид проектора |10><10| в виде матрицы, мы получим соответствующий один ненулевой элемент матрицы плотности:

0  0  0  0
0  0  0  0
0  0  1  0
0  0  0  0

Остается только умножить на коэффициент, т.е. на |c|2, и будем иметь наш элемент в структуре исходной матрицы плотности.


Пипа, Ваша инициатива, самостоятельность мышления и творческий подход к делу – очень ценные качества, только я Вас умоляю :), используйте их разумно, не надо переписывать формализм КМ :)

« Последнее редактирование: 17 Апреля 2007, 01:10:49 от С.И. Доронин » Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #78 : 17 Апреля 2007, 15:21:52 »

Pipa:
Нет. Раскладывать мы будем не элемент ρ23, а элемент ρ22 (поскольку именно он у нас спорный), и не по "полочкам", а в виде живых матриц и векторов. Если вам не трудно – прошу изобразить в полной матричной нотации.

Доронин:
Мне не трудно :). Вы имеете в виду ρ22 для двухкубитной системы, т.е. |10><10|?

Это векторы:
|10> = (0, 0, 1, 0)T – вектор-столбец,
<10| = (0, 0, 1, 0) – вектор-строка.

Если перемножить столбец на строку, т.е. найти явный вид проектора |10><10| в виде матрицы, мы получим соответствующий один ненулевой элемент матрицы плотности:

0  0  0  0
0  0  0  0
0  0  1  0
0  0  0  0

Остается только умножить на коэффициент, т.е. на |c|2, и будем иметь наш элемент в структуре исходной матрицы плотности.

    Я просила показать редукцию на элементе ρ22, а вы показали, что в матрице плотности ему соответствует элемент |c|2, стоящий в строке 2 и столбце 2 (считая от 0). А это и так очевидно.
    Вопрос именно о соотношениях между номерами строк и столбцов и именем редуцируемого кубита. Ваше утверждение о том, что между ними нет никакой взаимосвязи для меня сомнительно. Именно этот вопрос я и хотела выяснить, заведя разговор об элементе ρ22.
    Я не спроста выбрала для рассмотрения диагональный элемент, у которого номер строки и столбца одинаковый. Благодаря этой своей особенности он несомненно должен войти в редуцируемую матрицу, поскольку при полном совпадении номера строки и столбца не может быть вычеркнут. Впрочем, даже на интуитивном уровне ясно, что все диагональные элементы исходной матрицы останутся живы, а если и произойдет уплотнение с жильем, то переселятся они не в любую коммуналку, а коммуналку лежащую на диагонали.
   Но только вот в какую? Этот ответ будет напрямую зависеть от соотношений между номерами битов в номере их прежней отдельной квартиры. И тут нам никак не уйти от вопроса о том, какая позиция в двоичной записи номера какому кубиту отвечает.
    Для элемента ρ22 двоичный эквивалент номера равен 10. Если мы редуцируем по кубиту B, то должны точно знать, какая позиция в двоичном числе соответствует А, а какая B.
    Порядок следования битов в записи двоичного числа строго определен стандартом двоичной записи – справа налево. Т.е. в записи двоичного числа типа int биты следуют в таком порядке:
b31 b30 b29 b28 b27 b26 b25 b24 b23 b22 b21 b20 b19 b18 b17 b16 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

    Индексы строки и столбца тоже имеют у матриц такую же кодировку. Спрашивается, где среди них разряд, соответствующий А, а где разряд, соответствующий B? Ведь при редукции одни из разрядов мы обязаны рассматривать как "удаляемые", а другие как "остающиеся".
    Если полагать, что b0 соответствует кубиту A, b1 – кубиту B, b2 – кубиту C, и т.д. то получится "естественная система, в которой номера букв кубитов совпадают с номерами следования двоичных разрядов. Где у нас кубит G? – 7-ая буква алфавита, значит, это и будет 7-ой разряд по порядку – b6:

G   F   E   D   C   B   A
b6 b5 b4 b3 b2 b1 b0

    Если же вдруг захочется присвоить имя "А" старшему разряду двоичного числа и далее двигаться в порядке уменьшения номера бита, то возникнет сразу же проблема – как найти бит для кубита A? Ведь это только в рукописном варианте мы опускаем старшие нули, оставляя столько значимые, а компьютер этого делать не умеет.
    Очевидно, что А не будет 32-битом b31, но каким? Для этого надобно проводит, так называемый бит-риверс внутри ограниченной области. А именно – присвоить (временно) кубиту A младший разряд числа b0, затем, зная общее число кубитов отсчитать справа на лево такое число двоичных разрядов, а затем переставить этот  разряд со всеми, кто правее него, в обратном порядке, т.е. инвертировать участок от этого бита до самого младшего. Это и будет тот самый порядок, который использует Доронин в своей буквенной нумерации кубитов.
     Если в "естественная" нумерация легко программируется, поскольку позиция бита, задаваемого литерой, определяется его расстоянием от младшего разряда, позиция которого всегда фиксирована. А "доронинская" нумерация неопределенна до тех пор, пока не укажут где внутри сетки двоичного числа находится бит, соответствующий кубиту А, чтобы начать считать от него вправо.
    Соответственно этому, добавление "лишнего" кубита – например, расширение системы ABCD до ABCDE, в "естественной" системе никак не скажется на первой четверке кубитов, в том смысле, что их биты в двоичном числе останутся теми же самыми:

D   C   B   A
b3 b2 b1 b0

E   D   C   B   A
b4 b3 b2 b1 b0

А вот в "доронинской" системе они все сдвинутся:

A   B   C  D
b3 b2 b1 b0

A   B   C   D   E
b4 b3 b2 b1 b0

     Например, наш элемент ρ22 в "естественной" системе всегда отвечает "комбинации" кубитов А и B (B+,A-), как бы много не было кубитов в системе. А в "доронинской" системе исчисления его привязка каждый раз будет меняться.
    Еще более неприятно, что матрицы считаются от левого верхнего угла (ρ00) в порядке увеличения номеров, а нумерация кубитов "по Доронину" оперирует с двоичными разрядами строк и столбцов обратном порядке. Т.е. кубит А у него всегда старший и ассоциируется он со старшими битами номера строки/столбца (когда производится редукция).

Я запишу векторы состояния, которые соответствуют этим матрицам:
|Ψ> = |0>
|Ψ> = |00> = |0>A|0>B
|Ψ> = |000> = |0>A|0>B|0>С
И т.д.

   Здесь мы отчетливо видим, что двоичные цифры в |000> находятся с последовательностью литер кубитов в обратном порядке. И только одинаковые нули это скрывают. Т.е 
   Предположим, что у нас было бы не
|Ψ> = |00>
а
|Ψ> = |10>
что бы это было?
|1>A|0>B
или
|0>A|1>B ?
   По-видимому, это зависит только от того, как мы соотносим биты с буквами. Буквы у нас растут однозначно по алфавиту – тут альтернативы нет. А цифирь можно считать с обеих сторон. И если Доронин ассоциирует с литерой "А" левый справа бит, то, значит, что он и биты считает слева направо. В этом случае XXXXX в записи |XXXXXX> нельзя рассматривать как  двоичное число.
   Если бы это была не двоичная система, а десятичная, ситуация выглядела бы так (только для иллюстрации - я понимаю, что здесь десятичные цифры неуместны):
|Ψ> = |123> = |1>A|2>B|3>С
   Т.е. по Доронину сотни это А, десятки это B, а единицы – С.
В этой ситуации надо либо инвертировать биты на стадии двоичной записи – "переворачивать" двоичные номеров строк и столбцов в матрице плотности, либо присваивать литера с конца, вот так:
|Ψ> = |123> = |3>A|2>B|1>С
    В работах по квантовой механике видимо уже существует привычка, которая не позволяет проделать только что изложенное. Но тогда остается лишь одно – делать битриверс двоичным числам. Это по вычислительным меркам страшно неудобно, а потому бит-инверсию придется делать на входе в процедуру Reduce(), поскольку считать прямо по Доронину компьютер не сможет, а риверсировать индексы при каждом обращении к матрицы – слишком накладно в плане скорости выполнения.
    Риверс битов – часто используется при FFT (Fast Fourier Transform), но на языке Си это делается крайне неэффективно. На ассемблере можно сдвигать число по одному разряду вправо и вталкивать биты переноса в другой регистр слева.
    На все эти ухищрения приходится идти "во имя человечности" :), ради дани традиции записывать числа начиная со старшего разряда. В иврите с этим все впорядке :) :):) – Там квантовую механику считать легче :).
    Принимая во внимание эти обстоятельства, написанная мной процедура Reduce() работает правильно, только на ее входе кодировка кубитов должна быть битриверсирована.

Пипа, похоже, Вы меня не понимаете Грустный.

    Радует, что среди участников форума непонятливая только я одна - всем остальным все понятно.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #79 : 17 Апреля 2007, 20:04:10 »

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

Никакого соотношения «между номерами строк и столбцов и именем редуцируемого кубита» нет, Вы меня не слышите Грустный.
То о чем Вы спрашиваете, я уже показывал подробно Ответ #36
Попробую еще раз. Редукция элемента |10><10| осуществляется следующим образом. Смотрим на вектор-столбец и вектор строку в проекторе. Различаем в них две позиции – первая позиция соответствует одному кубиту, вторая позиция – другому. Это просто потому, что так строятся векторы, например, вектор-строка <10|=(0, 0, 1, 0) получается в результате тензорного произведения двух векторов <1|, и <0|, соответствующих первому и второму кубиту. Их можно обозначить как угодно, чтобы Вас не смущали индексы, т.е. номера строк и столбцов, или буквы А и В, я возьму вообще какие-нибудь произвольные обозначения, напр. £ для первого кубита и ¥ для второго.

Тогда тензорное произведение двух кубитов, первого <1|£=(0, 1) и второго <0|¥=(1, 0) дадут вектор-строку для двух кубитов <1|£<0|¥=(0, 0, 1, 0). То же самое для вектор-столбца |1>£|0>¥=(0, 0, 1, 0)Т.

Таким образом, мы видим, что в проекторе первая позиция в векторах соответствует первому кубиту, а вторая – второму. Т.е. мы всегда можем разложить кубиты в проекторе «по полочкам»:
|1>£|0>¥<1|£<0|¥.

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

Теперь можно переходить к редукции. Допустим, мы хотим редуцировать по второму кубиту, который у нас обозначен как ¥. Чтобы редуцировать по нему, мы в проекторе его находим, и берем «в обкладки» из базисных векторов <0| |0> и <1| |1> (поочередно). Т.е. записываем сначала

|1>£<0||0>¥<1|£<0|¥|0>.

Смотрим теперь на <0||0>¥ и <0|¥|0> – здесь получаются единицы, и остается только |1><1|, т.е. при редукции этот элемент идет в правый нижний угол редуцированной матрицы, размером 2*2.

Очевидно, что когда второй кубит мы возьмем в обкладки из <1| |1> получаться нули, т.е. этого можно не делать.

Цитата:
Но только вот в какую? Этот ответ будет напрямую зависеть от соотношений между номерами битов в номере их прежней отдельной квартиры. И тут нам никак не уйти от вопроса о том, какая позиция в двоичной записи номера какому кубиту отвечает.

Пипа, я уже устал повторять, что никакие номера битов и их позиции в двоичной записи здесь ни причем, забудьте Вы пока о них. Все делается при помощи базисных векторов. Первая позиция всегда отвечает первому кубиту, вторая позиция – всегда второму и т.д.

Цитата:
Для элемента ρ22 двоичный эквивалент номера равен 10. Если мы редуцируем по кубиту B, то должны точно знать, какая позиция в двоичном числе соответствует А, а какая B.

Не в двоичном числе, а в векторе! Будьте более внимательны, когда я писал об индексах, то говорил, что они лишь дают вид проектора, напомню:
Цитата:
Если простыми словами, то на любой элемент матрицы плотности
Код:
ρ[i][j]
можно смотреть как на запись данного элемента в виде проектора, если под i и j понимать числа в двоичной системе счисления.

Т.е. на 10 надо смотреть не как на число, а как на вектор |10> или <10|. Надеюсь, Вы понимаете, что числа и вектора это разные вещи. И позиция кубита не в двоичном числе, а в векторе! И эту позицию мы всегда знаем – первая позиция всегда кубит А, вторая – кубит В и т.д.

Цитата:
Спрашивается, где среди них разряд, соответствующий А, а где разряд, соответствующий B? Ведь при редукции одни из разрядов рассматривать , мы обязаны как "удаляемые", а другие как "остающиеся".

Причем здесь разряды чисел? Не разряды соответствуют кубитам, а векторы, и они всегда стоят на своих местах, на первой позиции – всегда первый кубит (неважно как мы его обозначим), на второй  – второй кубит и т.д.

Цитата:
Предположим, что у нас было бы не
|Ψ> = |00>
а
|Ψ> = |10>
что бы это было?
|1>А|0>В
или
|0>А|1>В ?
   По-видимому, это зависит только от того, как мы соотносим биты с буквами.

Всегда будет |1>А|0>В, и никаких «по-видимому» :), это абсолютно точно – биты с буквами никак не соотносятся.

Цитата:
Если бы это была не двоичная система, а десятичная, ситуация выглядела бы так (только для иллюстрации - я понимаю, что здесь десятичные цифры неуместны):
|Ψ> = |123> = |1>А|2>В|3>С
   Т.е. по Доронину сотни это А, десятки это B, а единицы – С.

Пипа, не путайте числа с векторами. Первая позиция А – это никакой не разряд числа, а отдельный самостоятельный вектор первого кубита. То же самое относится к В и С. И редукция идет не по битам, не по разрядам чисел, а по векторам.

Цитата:
В этой ситуации надо либо инвертировать биты на стадии двоичной записи – "переворачивать" двоичные номеров строк и столбцов в матрице плотности, либо присваивать литера с конца, вот так:
|Ψ> = |123> = |3>А|2>В|1>С
    В работах по квантовой механике видимо уже существует привычка, которая не позволяет проделать только что изложенное.
Но тогда остается лишь одно – делать битриверс двоичным числам.

В КМ как раз все предельно просто :), ничего инвертировать не надо, и никакой «стадии двоичной записи» там нет, поскольку вектор |123> – это вовсе не число с разрядами, как Вам представляется, и никакие биты здесь ни причем. Это тензорное произведение трех самостоятельных векторов |1>|2>|3>, и каждый из этих векторов относится к своему кубиту.

Как я понял, именно эта Ваша ошибочная подмена векторов числами приводит Вас к непониманию. Пипа, постарайтесь увидеть за индексами не числа, и не биты – а вектора, и за каждой позицией – не разряды чисел, а самостоятельные векторы отдельных подсистем, по которым и делается редукция. И обозначать эти подсистемы мы можем как угодно, любыми значками, а не только нумеровать цифрами или обозначать буквами алфавита. И порядок кубитов в векторах и проекторах всегда будет одинаков в соответствии с нашим порядком обозначений – на первой позиции всегда стоит первый кубит (первая подсистема) и т.д. по порядку.

« Последнее редактирование: 18 Апреля 2007, 13:59:26 от С.И. Доронин » Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #80 : 18 Апреля 2007, 18:59:51 »

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

|Ψ> = a|00> + b|01>,                   (1)

где а и b удовлетворяют условию нормировки |a|2+|b|2=1. Сразу замечу, что векторы |00> и |01> в более подробной покубитной записи это |0>A|0>B и |0>A|1>B, о чем я подробно говорил в предыдущем сообщении.

Чтобы получить матрицу плотности этого чистого состояния, поступаем как обычно в КМ – записываем проектор |Ψ><Ψ|, т.е.

ρ = |Ψ><Ψ| = (a|00> + b|01>)(a*<00| + b*<01|) = |a|2|00><00| + ab*|00><01| + ba*|01><00| + |b|2|01><01|,             (2)

здесь |a|2=aa*, |b|2=bb*.

По сути дела, мы уже записали матрицу плотности, поскольку если перемножить вектора в каждом из четырех проекторов, мы получим четыре матрицы. Я их привожу в той же последовательности проекторов |00><00|, |00><01|, |01><00|, |01><01|.

1  0  0  0
0  0  0  0
0  0  0  0
0  0  0  0

0  1  0  0
0  0  0  0
0  0  0  0
0  0  0  0

0  0  0  0
1  0  0  0
0  0  0  0
0  0  0  0

0  0  0  0
0  1  0  0
0  0  0  0
0  0  0  0

Если учесть соответствующие множители и сложить эти матрицы, как это делается в выражении (2), то мы как раз получим искомую матрицу плотности в привычном для нас виде:

|a|2   ab*   0   0
ba*   |b|2   0   0
0       0       0   0
0       0       0   0

Узнаете, ту самую матрицу, которую Вы приводили в качестве примера? :) Но на практике, особенно для бОльшего числа кубитов, слишком утомительно перемножать вектора в каждом проекторе, чтобы узнать, куда пойдет тот или иной элемент. И, чтобы расставить элементы по своим местам, можно использовать следующий простой прием, при помощи которого очень легко получить из проекторной записи, матрицу плотности уже в явном виде.

Делается это следующим образом. Составляем таблицу, где строками и столбцами являются базисные векторы, все базисные векторы – для двухкубитной системы это четыре вектора, для трехкубитной – восемь векторов и т.д. Для двух кубитов шаблон такой таблицы выглядит следующим образом:

                  <0|A<0|B   <0|A<1|B   <1|A<0|B   <1|A<1|B
                   ______________________________________
|0>A|0>B  |
|0>A|1>B  |
|1>A|0>B  |
|1>A|1>B  |

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

                  <0|A<0|B   <0|A<1|B   <1|A<0|B   <1|A<1|B
                  ______________________________________
|0>A|0>B  |    |a|2             ab*             0               0
|0>A|1>B  |    ba*             |b|2             0               0
|1>A|0>B  |    0                 0                 0               0
|1>A|1>B  |    0                 0                 0               0

Точно так же можно поступать и во всех других случаях, для 3-х кубитной системы это будет таблица 8*8, для 4-х – 16*16 и т.д.

Как можно видеть, для построения матрицы плотности, никакие индексы вообще не нужны. Хотя теперь, возможно, легче будет понять, каким же образом индексы матричных элементов связаны с проекторами.  Любая пара индексов i и j, какого-нибудь элемента матрицы, указывает на тот или иной проектор, например элемент ρ11=|b|2 указывает на проектор |0>A|1>B<0|A<1|B. И что самое интересное, нам даже не нужно держать таблицу перед глазами и в нее заглядывать, – если мы распишем индексы в двоичной системе, они и будут давать вид соответствующих векторов проектора. Чтобы опять не сбить Вас с толку, подчеркну, именно вид, не двоичное число, то же 01, здесь важно само по себе, а на это число надо смотреть как на вектор |01> (для i) или <01| (для j). Т.е. индексы в двоичной системе служат нам как бы указателями на соответствующие базисные векторы в таблице.

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

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #81 : 18 Апреля 2007, 19:16:25 »

   Спущусь на землю от пространных объяснений до означенной темы, т.е. численного анализа.
    Написанная мной процедура Reduce() имеет, помимо указателей на входную и выходную матрицы, управляющий целочисленный параметр offmask. Каждый бит, установленный в единицу у этого параметра сигнализирует о том, что строки и столбцы исходной матрицы, в бинарном номере которых это бит присутствует, должны быть редуцированы, т.е. буквально удалены из матрицы, понижая тем самым ее размерность. При этом к остающимся элементам матрицы возможно «подселение» из числа элементов (клеток) из удаляемых строк и столбцов.
   Пусть мы имеем матрицу плотности:

|a|2    ab*    ac*    ad*
ba*    |b|2    bc*    bd*
ca*    cb*    |c|2    cd*
da*    db*    dc*    |d|2

1) Если положить offmask = 1 (двоичный эквивалент 01), то матрица потеряет все НЕЧЕТНЫЕ строки и столбцы (в них для иллюстрации проставлены нули):

|a|2+    0    ac*+    0
0          0      0        0
ca*+    0    |c|2+    0
0          0      0        0

после переноса в матрице результата получится:

|a|2+   ac*+
ca*+    |c|2+

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

2) Если положить offmask = 2 (двоичный эквивалент 10), то матрица потеряет всю свою нижнюю половину и правую часть:

|a|2+    ab*+
ba*+    |b|2+

Согласно утверждению Доронина, редукция по кубиту B должна быть такая:

|a|2+(|b|2)    ac*+(bd*)
ca*+(db*)    |c|2+(|d|2)

Присмотревшись, мы узнаем в ней вариант 1) offmask = 1 (двоичный эквивалент 01), подселенцев я взяла в скобочки, чтобы четче выглядели хозяева квартир.

А редукция по кубиту А должна быть такая:

|a|2+(|c|2)    ab*+(cd*)
ba*+(dc*)    |b|2+(|d|2)

в ней тоже без труда можно опознать вариант 2) offmask = 2 (двоичный эквивалент 10).

    Таким образом получаем:
редукция по кубиту А – режем старший бит (offmask = 2 dec  = 10 bin)
редукция по кубиту B – режем младший бит (offmask = 1 dec = 01 bin)

    При увеличении числа кубитов тенденция остается та же – редукция по самому старшему кубиту (буква ближайшая к концу алфавита) режет по младшим битам номеров строк и столбцов, а редукция по младшему кубиту «А» режет по старшему биту номеров. Т.е. возрастание буквы редуцируемого кубита влечет уменьшение номера бита в маске. Именно это явление я назвала битриверсом.
    Как бы то оно ни было, но затык возник в месте интерпретации фразы "редуцирование по кубиту X" и битовыми операциями при манипуляции с матрицей. Этот разрыв я ликвидировать не могу. Тем более, что вы сами отрицаете такую взаимосвязь.   
    Предлагаю оставить процедуру как она есть, т.е. задавать ей параметр редукции не по имени кубитов, а по удаляемым битам в нумерации строк и столбцов. Годится ли процедура в таком виде для целей общей залачи?
    Если такое решение вам кажется по каким-либо причинам неприемлемым, то просьба изложить эту причину. И предложить свой вариант исчисления редуцируемых битов номеров строк/столбцов для данной процедуры, в зависимости от списка имен редуцируемых кубитов.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #82 : 23 Апреля 2007, 22:41:18 »

Пипа, я подготовил ответ с учетом второй части Вашего сообщения, которая сейчас отсутствует, начну с этого.

Основной момент. При редуцировании работа идет не со всей матрицей, а с каждым из ее элементов в отдельности. Т.е. это то, о чем Вы писали:
Цитата:
Если обкладывать надо не всю матрицу, а каждый из ее элементов в отдельности - тогда обложите мне элемент ρ22, чтобы была ясна РАЗНИЦА в его судьбе при редукции по кубиту А и В. МНЕ НУЖЕН ЧИСЛОВОЙ ПРИМЕР, выясняющий судьбу элемента ρ22 в матрице 4x4. Т.е. "демонстрация фокуса" на конкретном примере.

Пипа, я попытаюсь...

Первый шаг. Берем поочередно каждый элемент матрицы плотности, напр. ρ22 и рассматриваем матрицу этого элемента (когда остальные элементы - нули), т.е.

0   0   0    0                                (1)
0   0   0    0
0   0   ρ22 0
0   0   0    0

Расписываем эту матрицу в векторном виде:

ρ22 |1>А|0>В<1|А<0|В.

Как я говорил, конкретный вид проектора для каждого элемента, в данном случае |10><10| можно получить по индексам i и j, если их записать в двоичной системе, но рассматривать как векторы.

Вас смущает запись в виде бракетов? Но я же «переводил» ее и на обычный «язык» в виде векторов. Я отмечал, что на |1> нужно смотреть как на вектор (0, 1)T (вектор-столбец из двух элементов), на |0> как на вектор-столбец (1, 0)T. Тоже самое для <1| и <0|, только это уже вектор-строки, а не столбцы.

В явном векторном виде этот элемент расписывается следующим образом:

ρ22 (0, 1)TA×(1, 0)TВ•(0, 1)A×(1, 0)В.         (2)

Тензорное произведение я обозначил × (без кружочка), обычное произведение векторов здесь обозначается • (точкой).
Если выполнить все действия с векторами, сначала найти тензорные произведения, а затем перемножить полученные вектор-столбец на вектор-строку, можно убедиться, что мы здесь записали именно матрицу (1). Т.е. выражения (1) и (2) – это полные тождества. Но выражение в виде (2), когда разделены векторы первого и второго кубитов (обозначенные индексами A и В) нам нужно, чтобы провести редукцию. Еще раз подчеркну, что в такой векторной записи порядок кубитов всегда одинаков, т.е. на первом месте стоит первый кубит, на втором – второй, и т.д.

Второй шаг – сама редукция.
Бракетная запись редукции элемента ρ22 по второму кубиту (по В) имеет вид:

|1>А<0||0>В<1|А<0|В|0>.       (3)

Жирным цветом я выделил те самые «обкладки», т.е. векторы, которые мы добавляем, т.е. вводим дополнительно в исходный матричный элемент, который у нас был раньше: |1>А|0>В<1|А<0|В.

Куда именно мы помещаем эти «обкладки» зависит от того, по какому элементу делается редукция. В данном случае, когда редукция идет по кубиту В, эти добавочные векторы мы ставим рядом с векторами в исходном элементе, помеченные индексом В.

В обычной матричной (векторной) записи выражение (3) имеет вид:

(0, 1)TA×{(1, 0)•(1, 0)TВ}•(0, 1)A×{(1, 0)В(1, 0)T}.

Сначала мы находим обычное скалярное произведение векторов (в фигурных скобках):

(1, 0)•(1, 0)T=1.

Получаем единицу, это число, а не матрица, поэтому тензорное произведение здесь пропадает, и мы получаем:

(0, 1)TA•(0, 1)A.          (4)

Осталось сделать последнее действие, перемножить вектор-столбец на строку, и мы получим результирующую матрицу:

0  0
0  1

Она и показывает, куда именно, на какую позицию в результирующей матрице размером 2*2 у нас пошел остаток от редукции данного элемента. То число, которое стояло в исходной матрице на месте ρ22 пойдет сюда. Аналогично все делается для всех остальных элементов исходной матрицы плотности.

Пипа, Вы об этом меня просили? Записать редукцию элемента в явном векторном виде? Это то, что Вы хотели, или нет?

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

<1||1>А |0>В <1|А|1><0|В

И «срабатывать» теперь только будет не базисный вектор |0>, как в предыдущем случае, а базисный вектор |1>. Теперь он будет давать ненулевой результат (единицу) для <1||1>А и <1|А|1>. Как я уже говорил, в качестве «обкладок» надо перебирать все базисные векторы. Для редукции по одному кубиту их всего два |0> и |1>, и их надо оба использовать поочередно, оставляя те варианты, которые не дают ноль.

А дальше все опять делается как выше – расписываются бракеты в виде обычных векторов и перемножаются. Только теперь получится |0><0|, т.е. в результате редукции этого элемента ρ22 по A, результирующая матрица (без коэффициента) имеет вид:

1  0
0  0


Таким образом, я попытался расписать редукцию в явном векторном виде без бракетов. Вот только, проделывать все эти операции с векторами нет никакой необходимости! :) В том-то и дело, что все эти операции в матричном виде можно опустить. Я как раз и предлагал алгоритм, как можно легко без этого обойтись. По двоичным числам индексов i и j нужно просто грамотно «вычеркивать» позиции, а результат правильно собирать в «контейнере». Т.е. то, о чем я говорил раньше. Или по Вашей терминологии – достаточно использовать битовую маску (грамотно ей воспользоваться).
Это можно сделать потому, что скалярные произведения векторов у нас всегда дают либо ноль, либо единицу – нет необходимости их считать, нужно просто «посмотреть» на биты в нужных позициях, сравнить их слева и справа (в двоичной записи i и j), в нашем примере 10 и 10 (при редукции ρ22 по В). Мы сразу можем сказать, ноль будет в результате скалярного произведения (когда они разные), или единица (когда они совпадают). Когда разные, этот элемент совсем пропадает, когда одинаковые, как у нас, просто их «вычеркиваем», и остается то, что нужно, только на числа эти надо смотреть как на проектор, у нас остается |1><1|. Тем самым мы пропускаем все операции с векторами, о которых я писал выше, и сразу приходим к нужному результату (4). В этом случае редукцию мы делаем, не используя матричные операции.


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

0   0   0   0   0   0   0   0
0   1   2   0   3   0   0   0
0   2   4   0   6   0   0   0
0   0   0   0   0   0   0   0
0   3   6   0   9   0   0   0
0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0

Я не стал нормировать на единицу, чтобы легче было проверять. Индексы здесь будут указывать на векторы из трех компонент, т.е. у элемента ρ22 будет проектор |010><010|.

Попробуйте воспользоваться своей программой для следующих вариантов редукции:

1) редукция по С, т.е. по третьему кубиту (по третьей позиции в проекторе, удаляется третий бит), когда остаются А, В и получается ρАВ.
2) редукция по В, по второму кубиту, когда остаются А, С и получается ρАС.
3) редукция по А, т.е. по первому кубиту, когда остаются В, С и получается ρВС.

В этих случаях редуцированные матрицы имеют размер 4*4, приведите их все три, то, что у Вас получается.

Далее, можно сделать редукцию исходной матрицы по двум кубитам (остается один):

4) редукция по ВС, по второму и третьему кубиту, т.е. по второй и третьей позиции в проекторе (остается А), когда получается ρА.
5) редукция по АС (остается В), т.е. получается ρВ.
6) редукция по АВ (остается С), т.е. получается ρС.

В последних трех вариантах будут получаться матрицы 2*2, тоже приведите эти три матрицы.

Я проделаю все это вручную, и мы сравним результаты.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #83 : 23 Апреля 2007, 23:29:00 »

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

0   0   0   0   0   0   0   0
0   1   2   0   3   0   0   0
0   2   4   0   6   0   0   0
0   0   0   0   0   0   0   0
0   3   6   0   9   0   0   0
0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0

Попробуйте воспользоваться своей программой для следующих вариантов редукции:

1) редукция по С, т.е. по третьему кубиту (по третьей позиции в проекторе, удаляется третий бит), когда остаются А, В и получается ρАВ.
2) редукция по В, по второму кубиту, когда остаются А, С и получается ρАС.
3) редукция по А, т.е. по первому кубиту, когда остаются В, С и получается ρВС.
4) редукция по ВС, по второму и третьему кубиту, т.е. по второй и третьей позиции в проекторе (остается А), когда получается ρА.
5) редукция по АС (остается В), т.е. получается ρВ.
6) редукция по АВ (остается С), т.е. получается ρС.

Я проделаю все это вручную, и мы сравним результаты.

    Учитывая свой прошлый опыт, провожу предварительное бит-риверсирование:
A = 4 dec = 100 bin
B = 2 dec = 010 bin
C = 1 dec = 001 bin
---------------------------------------------
1) редукция по С, т.е. по третьему кубиту (по третьей позиции в проекторе, удаляется третий бит), когда остаются А, В и получается ρАВ

offmask = 1

1  0  0  0
0  4  6  0
0  6  9  0
0  0  0  0
---------------------------------------------
2) редукция по В, по второму кубиту, когда остаются А, С и получается ρАС.
 
offmask = 2

4  0  0  0
0  1  3  0
0  3  9  0
0  0  0  0
---------------------------------------------
3) редукция по А, т.е. по первому кубиту, когда остаются В, С и получается ρВС.

offmask = 4

9  0  0  0
0  1  2  0
0  2  4  0
0  0  0  0
---------------------------------------------
4) редукция по ВС, по второму и третьему кубиту, т.е. по второй и третьей позиции в проекторе (остается А), когда получается ρА.

offmask = 3 = 2+1

5  0
0  9
---------------------------------------------
5) редукция по АС (остается В), т.е. получается ρВ.

offmask = 5 = 4+1

10  0
 0   4
---------------------------------------------
6) редукция по АВ (остается С), т.е. получается ρС.

offmask = 6 = 4+2

13  0
 0   1
---------------------------------------------
У всех матриц след = 14
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #84 : 23 Апреля 2007, 23:45:06 »

Все ответы ПРАВИЛЬНЫЕ! :) Я еще подумаю о тестовых примерах для трехспиновой системы, что-нибудь посложнее придумаю :).
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #85 : 24 Апреля 2007, 20:10:04 »

Пипа, а как насчет времени, много занимает редукция? Например, полностью заполненная матрица для 8 кубитов (какая-нибудь произвольная) сколько времени редуцируется по 7-ми кубитам, по 6-ти, 5-ти и т.д.?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #86 : 24 Апреля 2007, 21:33:25 »

Пипа, а как насчет времени, много занимает редукция? Например, полностью заполненная матрица для 8 кубитов (какая-нибудь произвольная) сколько времени редуцируется по 7-ми кубитам, по 6-ти, 5-ти и т.д.?

   Ничтожно мало, причем настолько, что временем этих вычислительных процедур можно пренебречь (как и тензорным умножением).
   Причина этого в том, что основное время занимают процедуры сложностью N3, т.е. там, где объем вычислений пропорционален кубу поперечника матрицы. Это, прежде всего, умножение матрицы на матрицы - требующая N3 умножений  и столько же сложений (при матрицах равного размера). И нахождения собственных значений и векторов (сейчас точно не помню сколько умножений и сложений там надо, но примерно того же порядка).
    На этом фоне, вычислениями сложности N2 уже можно пренебречь. Ведь уже при 7-и кубитах N=27=128, N2 будет в 128 раз меньше, чем N3, т.е. менее 1%.
    Тензорное умножение и редукция содержат в себе ничтожно малое число арифметических операций - только копирование и сложение. Все это на общем фоне не заслуживает даже учета.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #87 : 24 Апреля 2007, 22:24:05 »

Отлично! :) Похоже, что во втором блоке программы остается одна времязатратная функция – нахождение собственных значений.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #88 : 25 Апреля 2007, 14:51:13 »

Пипа, я подготовил еще один тестовый пример для трехкубитной системы.

1   0   0   2   0   3   4   0
0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0
2   0   0   4   0   6   8   0
0   0   0   0   0   0   0   0
3   0   0   6   0   9  12  0
4   0   0   8   0  12 16  0
0   0   0   0   0   0   0   0

Попробуйте опять получить шесть редуцированных матриц, как и в предыдущем случае.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #89 : 25 Апреля 2007, 15:32:53 »

    Привожу выходной файл в том виде, в каком его выдала тестовая программа:

Matrix:
    1    0    0    2    0    3    4    0
    0    0    0    0    0    0    0    0
    0    0    0    0    0    0    0    0
    2    0    0    4    0    6    8    0
    0    0    0    0    0    0    0    0
    3    0    0    6    0    9   12    0
    4    0    0    8    0   12   16    0
    0    0    0    0    0    0    0    0

Reduce C:
    1    0    0    4
    0    4    6    0
    0    6    9    0
    4    0    0   16

Reduce B:
    1    0    0    3
    0    4    8    0
    0    8   16    0
    3    0    0    9

Reduce A:
    1    0    0    2
    0    9   12    0
    0   12   16    0
    2    0    0    4

Reduce BC:
    5    0
    0   25

Reduce AC:
   10    0
    0   20

Reduce AB:
   17    0
    0   13
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #90 : 25 Апреля 2007, 19:08:06 »

Пипа, опять все правильно! :) Думаю, редукцию мы осилили :).
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #91 : 26 Апреля 2007, 00:47:42 »

    Поясню причину первоначальных неурядец с редуцированием.
Как известно, позиционные системы счисления основаны на том, что число записывается в несколько разрядов, среди которых естественным образом выделяются младшие и старшие разряды.
    Если расположить натуральную последовательность чисел в ЛЮБОМ ПОРЯДКЕ (как в возрастающем, так и убывающем), то младший разряд легко узнаваем по его особенности меняться на каждом шаге, от числа к числу. Чем старше разряд, тем реже в нем происходят изменения. Например, в первой сотне чисел от 0 до 100, разряд единиц меняется каждый раз, разряд десятков меняется через десять шагов, разряд сотен сменится всего один раз.
    Теперь взглянем на то, как Доронин заполняет матрицу плотности:

                  <0|A<0|B   <0|A<1|B   <1|A<0|B   <1|A<1|B
                   ______________________________________
|0>A|0>B  |
|0>A|1>B  |
|1>A|0>B  |
|1>A|1>B  |
 

Для наглядности я распишу последовательность следования базисных векторов в таком виде:
A   B
0    0
0    1
1    0
1    1
Очевидно, что B выступает в роли МЛАДШЕГО разряда – ведь чередование в его ряду происходит чаще.
Еще более наглядно выглядит матрица для трехкубитной системы:
A   B   С
0    0    0
0    0    1
0    1    0
0    1    1
1    0    0
1    0    1
1    1    0
1    1    1
Как видим, добавление кубита C привело к тому, что младшим стал он.
Т.е. с ростом порядкового номера столбца и строки перебор базисных векторов строится таким образом, что чем ближе буква кубита к началу алфавита, тем старшее место он занимает.
     Используя битовую маску для редуцируемых кубитов, я по логике алгоритма должна была опираться на битово-цифровую систему, а не буквенно-алфавитную. И по началу считала кубиты в порядке возрастания старшенства.  Т.е. за кубит А я  принимала самый младший.
      Теперь, когда выяснилось, что порядок здесь обратный, я вывернула порядок наизнанку (произвела битриверс), после чего стали получаться правильные результаты.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #92 : 27 Апреля 2007, 01:22:15 »

Доронин С.И.
    Устроила программе жесткую модерацию :). Привела в порядок все, что можно, для того чтобы потом было меньше путаницы.
    Перво-наперво ввела классы матриц: RealMatrix, CompexMatrix, IntMatrix (для действительных, комплексных и целочисленных элементов, соответственно). И для полноты компании такие же векторы: RealVector, CompexVector, IntVector.
    Каждый из объектов этих классов аллокирует для себя память в конструкторе и освобождает ее в деструкторе. Хранят свои габариты. Содержат функцию Zer() для обнуления содержимого и другие полезные функции: нахождения следа, копировавания, распечатки в файл, чтения их файла и т.п.
    После этого программа стала совсем компактной и гораздо более понятной. Число параметров у функций уменьшилось, т.к. теперь можно передать в параметре ссылку на матрицу, не указывая ее размер. При комплексных матрицах получается один параметр вместо трех.
    Комплексная матрица CompexMatrix, включающая  в себя два массива (для действительной и мнимой части), образована на базе действительной RealMatrix. Это позволяет использовать ее в качестве параметра для функций, требующих действительную матрицу, и тогда будут использоваться только ее действительная часть.
    Операторы члены класса позволяют использовать индексацию элементов так же, как и было раньше. Подстановка возложена на компилятор, и исполнение программы это не задерживает.
   Например:
CompexMatrix ro(8,8), red(2,2);  // создание матриц 8x8 и 2x2
ro.Read( "in.txt");  // чтение матрицы из файла in.txt
Reduce( ro, red, "BC");  // редуцирование по кубитам B и C
red.Print( "out.txt");  // печать матрицы в файл out.txt
   Или
ro.re[2][3] = 5;  // присвоение значения действительной части элемента ro23
ro.im[2][3] = -2;  // присвоение значения мнимой части элемента ro23
   Или
x = ro.Trace();  // вычисление следа
   Или
ro.CopyTo( ro1);  // копирование матрицы ro в матрицу ro1
   и т.д.

    В ходе переработки программы возник вопрос, связанный с размерностями. Раньше этого не было заметно, но сейчас вышло на поверхность.  Класс BLOCK имеет две "габаритки". Словом "габаритки" я называют размер, определяющий длину массивов (векторов и матриц, членов класса BLOCK).
    1) первая габаритка N = 2spin
    2) вторая габаритка cm = параметр конструктора, получающий значение из Hami->cm.
     При этом одни массивы имеют длину N, а другие cm, и от этого возникает формальная путаница. Например, в функции cosin() векторы размерностью N умножаются на матрицы размерностью cm x cm. Формально это нарушение.
     Еще хуже в функции BLOCK::Iz(). Там "крутятся" чужие массивы, принадлежащие HAMI (связь через параметры). Но циклы там по габариткам BLOCK'а, а не HAMI, который эти массивы аллокировал. Зачем это? Не лучше ли самому HAMI заниматься своими массивами, про размеры которых он в курсе?
     Размерности и в других местах имеют массу нестыковок, но программа продолжает работать только потому, что в ней N всегда совпадает с cm. Хоть и считает HAMI эту cm через lim, но точно так же, как и BLOCK вычисляет свое N.
     Это так и задумано было? Или все-таки могут быть режимы работы, когда cm < N?
     Нельзя ли чуточку пояснить относительно разбиения алгоритмов на BLOCK и HAMI? HAMI – это гамильтониан, с ним вроде бы все понятно. А что такое BLOCK? И может ли он быть больше гамильтониана?

P.S. Даже если в программе не всё потребуется для дальнейшей работы, все равно прошу пояснить эти моменты, т.к. хочется полностью распутать опасные перехлесты (грозящие выходом за пределов массивов), прежде чем развивать на ее базе дальнейшие вычисления.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #93 : 27 Апреля 2007, 21:17:31 »

Пипа, спасибо! Исходники я тоже получил.

Цитата:
Размерности и в других местах имеют массу нестыковок, но программа продолжает работать только потому, что в ней N всегда совпадает с cm. Хоть и считает HAMI эту cm через lim, но точно так же, как и BLOCK вычисляет свое N.
     Это так и задумано было? Или все-таки могут быть режимы работы, когда cm < N?

Этот «хвост» тянется от задачи, которая решалась ранее. Для некоторых гамильтонианов, в частности для MQ-гамильтониана, который сейчас задействован, можно перейти к задаче меньшей размерности – в одном из базисов матрица гамильтониана и сама матрица плотности разбивается на блоки, и для полного решения задачи достаточно работать с одним блоком, матрица которого в два раза меньше исходной. Поэтому и был предусмотрен режим, когда cm < N.
Но нам, я думаю, лучше работать с полными матрицами, поскольку для других гамильтонианов этого не будет. Поэтому, cm лучше везде заменить на N, чтобы не путаться с размерностями.

Цитата:
Нельзя ли чуточку пояснить относительно разбиения алгоритмов на BLOCK и HAMI? HAMI – это гамильтониан, с ним вроде бы все понятно. А что такое BLOCK? И может ли он быть больше гамильтониана?

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

Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #94 : 28 Апреля 2007, 17:16:27 »

Пипа, я посмотрел Ваш последний релиз программы. Возник такой вопрос – трехкубитная система у Вас считается? У меня программа вылетает на функции Tqli с сообщением "Too many iterations in tqli". Причем это только для 3 кубитов, с другим числом кубитов считает нормально. В предыдущем варианте программы, который Вы высылали перед этим, такой проблемы не было, трехкубитная система считалась без проблем.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #95 : 28 Апреля 2007, 17:58:24 »

   Трехкубитную систему ровно с тем же сообщенем "Too many iterations in tqli" не считала исходная ваша программа, откомпилированная мной и минимальными изменениями только (вставка дополнительных хидеров) на компиляторе Boraland C++ 5.02.
   Отчего мой прошлый вариант посчитал 3-кубита это удивительно и для меня. По крайней мере, сравнить результат мне не с чем, поскольку вместе и исходниками, работающего exe-модуля вы не прислали. (А нельзя ли прислать в качестве "эталона"?)
   С причиной ошибки разберусь, а интуитивно мне кажется виновата плохая проверка малости fabs(e[m]+dd)==dd
   Например, Уилкинсон в своем знаменитом Справочнике, рекомендует в этом месте условие: fabs(e[m]) <= DBL_EPSILON*dd
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #96 : 29 Апреля 2007, 18:36:45 »

С.И. Доронин
    Мое первоначальное предположение оказалось неверным – в вычислительном плане оба условия на расщепление тридиагональной матрицы являются эквивалентными. Но то, что сбой обнаружился в процедуре QL-алгоритма меня сильно ... порадовало :).
    Порадовало оттого, что моя любовь к матрицам воспылала от прочтения замечательной книги Парлетта (B.N. Parlett). Какая не скажу :), тем более что в русском переводе у него вышла всего одна книжка, которая нынче представляет библиографическую редкость. Вообще-то практической пользы от той книги вроде бы и нет, т.к. проблема собственных значений для симметричных матриц была решена давно (около 1960 г) и с тех пор ею мало кто интересуется, т.к. все эти алгоритмы давно стали достоянием любого библиотечного пакета для матричных операций (EISPACK, LAPACK, SCILAB и многих других). Но, тем не менее, книга написана настолько хорошо, что ее чтение доставляет эстетическое удовольствие. В ней даже в помине нет ничего педагогически-занудного. И ничего популярного тоже нет! Вот ведь как бывает.
     Книжку вспомнила оттого, что в ней были затронуты вопросы, относящиеся к сходимости QL-алгоритма. Когда устанавливали порог в 30 итераций на одно собственное значение было даже заключено пари на кругленькую сумму :), что никто не найдет такой матрицы, которая достигнет этого лимита (обычно более 4-х бывает редко). И хотя сроки того пари давно истекли (нет уже в живых того, что бился об заклад), но я была крайне возбуждена, увидев, что 3-кубитную систему вышибло при переходе за тридцатник.
     К сожалению, прославить свое имя такой удивительной матрицей мне не пришлось :), причина несходимости итераций оказалась гораздо более прозаической – машинные нули – вещь давно известная.
     И, тем не менее, матрица гамильтониана меня удивила – вопреки моим ожиданиям она имела практически нулевой след (e-307), а крупные числа (e+4) оказались вне диагонали. Из-за симметрии матрицы гамильтониана, его приведение к тридиагональной форме сохраняет нули на главной диагонали. Да ладно бы нули, а там шушера с порядками от e-309 до e-290, т.е. на самом краю процессорной арифметики. К тому же, неудачная процедура масштабирования в tred2() еще более усугубляла ситуацию.
     Процедуру «тридиагонализации» (tred2) пришлось видоизменить – привести ее к виду одноименной процедуры из пакета EISPACK. Сбой от этого пропал, но сильно радоваться этому не стоит – условия сходимости одинаково плохи для данного типа гамильтониана при ЛЮБОМ числе кубитов. Остальным просто повезло, что они уложились в 30. А в 3-кубитной системе балансировало на волоске, из-за этого то сходилось, а то нет.
     Ранее мне приходилось встречаться с задачей нахождения собственных значений, но мои матрицы всякий раз были типа корелляционных/ковариационных, т.е. явно тяготели к диагонали (именно на ней были или единицы или самые крупные числа). Соответственно этому, таких проблем с ними никогда не было.
     Знаю, как составляется гамильтониан для N-спиновой системы в ПМР. Там гамильтониан блочный:
22 = 4 = 1+2+1
23 = 8 = 1+3+3+1
24 = 16 = 1+4+6+4+1
25 = 32 = 1+5+10+10+5+1
и тоже с тяготением к диагонали (даже углы у него голые). А этот гамильтониан такой из себя странный...
     В связи с этим хотелось бы попросить подробнее рассказать про данный тип гамильтониана. Тем более что вы ранее уже обмолвились, что у вас имеется несколько способов их построения.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #97 : 30 Мая 2007, 15:10:00 »

В конце мая в Письмах в ЖЭТФ (самый «крутой» физический журнал у нас в России :)) вышла наша лабораторная статья: http://www.jetpletters.ac.ru/ps/1346/article_20329.shtml
С.И. Доронин, А.Н. Пырков, Э.Б. Фельдман, Запутанность в альтернированных открытых цепочках ядерных спинов s=1/2 с XY-гамильтонианом, Письма в ЖЭТФ 85, 627 (2007).

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

P.S. Пипа, я извиняюсь, что не ответил на Ваш вопрос насчет гамильтониана, разговор тут долгий. Кратко могу сказать, что в той задаче, которая сейчас у нас «крутится» используется так называемый многоквантовый (МК) гамильтониан. В отличие от обычного гамильтониана в ЯМР, который отвечает за квантовые переходы лишь между соседними энергетическими уровнями, МК-гамильтониан реализует все возможные переходы между квантовыми уровнями, он используется в многоквантовом ЯМР.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #98 : 15 Июня 2007, 19:21:58 »

Oleg Shaposhnikov
   Прошу меня извинить, но заведенный вами разговор мне пришлось выделить в отдельную тему "Гадание на кубитах" http://quantmag.ppole.ru/index.php?option=com_smf&Itemid=34&topic=180.0
   Вы вправе изменить ее название, отредактировав свое первое сообщение в ней.

Модератор раздела
Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #99 : 11 Июля 2007, 22:35:48 »

Сергей Иванович, Пипа скажите, а в каком состоянии сейчас находится сей проект?
Что уже сделано, что еще планируется сделать?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #100 : 12 Июля 2007, 20:20:26 »

ksv

Над программой мы работаем, и довольно успешно :). Сделано уже очень много, в том числе, мы начали считать динамику квантовой запутанности. Подключили еще один гамильтониан диполь-дипольного взаимодействия. Картинки получаются очень интересные и содержательные. В качестве примера могу привести такую картинку:


Это динамика квантовой запутанности на различных квантовых уровнях системы из 4 кубитов, связанных диполь-дипольным взаимодействием (здесь используется обычный дипольный гамильтониан, а не многоквантовый) при начальном условии |Ψ>=|0001>. Т.е. в начальный момент времени система находилась в сепарабельном состоянии, но в результате взаимодействия возникает запутанность, и мы можем видеть ее динамику.

Например, запутанность одного кубита А с остальными кубитами, т.е. запутанность типа A–BCD имеет вид:


Запутанность двух кубитов AB с другими два (CD), эволюционирует следующим образом:


Это второй квантовый уровень.

На третьем, самом «тонком» квантовом уровне четырехкубитной системы, т.е. запутанность типа ABC–D ведет себя так:


Самая простая двухкубитная запутанность типа A–B имеет такую динамику:


Хочу поблагодарить Пипу, – она просто молодец! :) Это ее усилиями программа появилась на свет, и основной движок, на данный момент, практически полностью готов и протестирован. Сейчас продолжается работа над графическим интерфейсом, чтобы более удобно ей было пользоваться. В дальнейших планах – наращивание числа различных используемых гамильтонианов, ну и различная мелочевка…

Хорошо, если Пипа поделится своими впечатлениями от работы над программой, думаю, ей есть что сказать :), хотя бы общую оценку…

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

« Последнее редактирование: 12 Июля 2007, 20:38:13 от С.И. Доронин » Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #101 : 17 Июля 2007, 19:21:25 »

Цитата:
Сделано уже очень много, в том числе, мы начали считать динамику квантовой запутанности. Подключили еще один гамильтониан диполь-дипольного взаимодействия.
Понятно. Очень рад, что так быстро удалось многое сделать.
А гамильтониан задаете матрицей? Как она выглядит?
Насколько понимаю динамика запутанности сильно зависит от гамильтониана.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #102 : 18 Июля 2007, 21:15:43 »

Насколько понимаю динамика запутанности сильно зависит от гамильтониана.

    Не то слово! :) Но было еще более странно, если бы от гамильтониана ничего не зависело. В конце концов, гамильтониан и задает динамику.

А гамильтониан задаете матрицей? Как она выглядит?

     Сергей Иванович, кажется, посылал вам исходник той програмы, от которой начали танцевать. Там есть и алгоритм постороения гамильтониана. Лишь совсем недавно Доронин предложил включить и другой гамильтониан. Причем оба они задаются не готовой матрицей, а некоторым алгоритмом (правилом), который строит такой гамильтониан для заданого числа кубитов. Оба гамильтониана представляют собой действительные симметричные матрицы, причем достаточно разряженные.
     Для малого числа кубитов они выглядят примитивно, например для двух кубитов первый выглядит так:
0       0       0       1
0       0       0       0
0       0       0       0
1       0       0       0
а второй так:
1       0       0       0
0      -1      -1       0
0      -1      -1       0
0       0       0       1
(нормировочный множитель опущен).
    И все-таки очень странно, что запутанность очень сильно зависит от матрицы исходного состояния. Мне раньше казалось, что процесс должен "окончательно запутаться", т.е. придти к некоторому равновесному состоянию. Однако этого не происходит. Эволюция сводится к процессу "вращения состояния" в многомерном пространстве, причем положение "оси вращения" определяет структура гамильтониана. Вращаться эта "штуковина" может долго, и видимо можно дождаться, когда система вновь пройдет исходное состояние. Т.е. процесс носит явно периодический характер, несмотря на то, что период может быть очень большим (ожидание, когда множество осцилляторов вновь окажется в одинаковой фазе).
     Открытое обсуждение этой темы с некоторых пор было прервано по просьбе Доронина, из-за того, что предложенный им метод расчета запутанности до сих пор еще не опубликован в открытой печати. С сегодняшнего дня он находится в отпуске. А моя интенсивная работа в последнее время была обусловлена необходимостью сотворить на скорую руку такой програмный инструмент, чтобы во время отпуска у него была возможность более тщательно исследовать закономерности динамики запутанности (ноутбук у его с собой будет, а интернет нет) . Вследствие этого, усилия были направлены по большей мере на интерфейс пользователя, чтобы дать возможность задавать условия задачи без программирования, а исключительно средствами пользовательского интерфейса.
    В настоящий момент программа представляет не готовый продукт, расчитанный на широкий круг пользователей, а скорее макет, в котором все происходящие события по максимому "оголены". Т.е. сейчас это в высшей степени отладочный инструмент, с максимальной прозрачностью и средствами просмотра промежуточных результатов. К этому вынуждает сама вычислительная сложность задачи, не позволяющая "на глазок" оценивать правдопобность результатов, что заставляет выводить многие дополнительные характеристики промежуточных продуктов в виде текстовых таблиц.
    Что же касается программирования в новой для меня системе Borland C++ Builder 6.0, то я была просто удручена тем, насколько это занятие не вяжется с тем, что я считала программированием раньше. Тут играет основную роль не знание языка программирования, а знание того, на какие кнопочки надо нажимать, и где их искать. Такое занятие больше похоже на игру Sims :), чем на программирование, - выбираешь мышкой из списка тело героя, голову, цвет волос, прическу, одежду и т.д., вплоть до меблировки комнаты. Не программирование, а какая-то игра типа "Одень Барби" :). Вот и маешься, перетрясая бесконечный гардероб в поисках того, что сгодилось бы для программы.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #103 : 29 Августа 2007, 11:27:49 »

В конце мая в Письмах в ЖЭТФ (самый «крутой» физический журнал у нас в России :)) вышла наша лабораторная статья: http://www.jetpletters.ac.ru/ps/1346/article_20329.shtml
С.И. Доронин, А.Н. Пырков, Э.Б. Фельдман, Запутанность в альтернированных открытых цепочках ядерных спинов s=1/2 с XY-гамильтонианом, Письма в ЖЭТФ 85, 627 (2007).
Она на русском языке и, по-моему, свободна для скачивания. Это не совсем то, о чем мы говорим здесь, но все равно близко.

    Если что и действительно близко к тому о чем здесь говорят, то это, на мой взгляд, статья Городецких:
Horodecki M, Horodecki P. Reduction criterion of separability and limits for a class of protocols of entanglement distillation,
увидевшая свет почти 10 лет тому назад.
    На эту статью набрела совершенно случайно – ее мне выдал поисковик Google, когда я искала совершенно иной материал. Однако слово «entanglement» (запутанность) привлекло мое внимание и заставило взглянуть на текст этой статьи, благо это был препринт со свободным доступом для скачивания.
    Проглядев статью «по диагонали», у меня появился страшный зуд обвинить Доронина в плагиате :). Настолько близким показался мне этот материал к тому, что сейчас делается.
    В своих работах Доронин не раз ссылался на «клон» Городецких, которые, по-видимому, в этой области являются заслуженными светилами. Однако все те ссылки относятся к «трехголовому клону», где присутствует еще Horodecki R, которого в этой статье нет.
    Не имея прямого интернет-доступа к Phys. Rev. Lett., я не cмогла прочесть более поздние статьи чрезвычайно плодовитого «клона» Городецких. Очень возможно, что в других своих статьях они повторяют, а то и развивают те идеи, которые я обнаружила в этом препринте 1998 года. И, тем не менее, даю ссылку на эту работу. Она, несомненно, того заслужила.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #104 : 29 Августа 2007, 21:49:21 »

Pipa

Естественно, что мера запутанности, которая используется в программе, возникла не на пустом месте :). Помимо той статьи, которую Вы указываете M. Horodecki and P. Horodecki, Phys. Rev. A 59, 4206 (1999), можно назвать еще один первоисточник:
N.J. Cerf, C. Adami, and R.M. Gingrich, Phys. Rev. A 60, 898 (1999), в свободном доступе http://arxiv.org/abs/quant-ph/9710001
На эти статьи я ссылаюсь, только нужно понимать разницу между критерием сепарабельности (в данном случае речь идет о критерии приведения - reduction criterion) и мерой запутанности. Критерии сепарабельности обычно формулируются в виде неравенств и дают лишь общий ответ, является состояние сепарабельным или нет. Они не дают количественной величины (меры) запутанности. В свою очередь, на основе критериев сепарабельности, можно вводить и меры запутанности.

Вы можете сказать, что на основе критерия ввести меру несложно, я соглашусь, но в случае reduction-критерия этого не было сделано. Это я проверял.

Чтобы лучше понять ситуацию могу привести такой пример. На основе РРТ-критерия (в файловом архиве есть статьи по этому критерию) мера запутанности была введена только спустя несколько лет в работе G. Vidal and R.F. Werner, Phys. Rev. A 65, 032314 (2002) http://arxiv.org/abs/quant-ph/0102117 . И это отдельная статья, в которой вводится и обосновывается именно мера запутанности (negativity) на основе ранее хорошо известного РРТ-критерия. Но эта мера не очень удобная в практическом применении, там есть ряд вопросов, которые затрудняют ее применение в той задаче, которая решается у нас.

Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #105 : 10 Ноября 2007, 21:06:37 »

К моему глубокому сожалению, с уходом Пипы проект оказался под угрозой. Пипа, я прошу Вас вернуться на форум. Если можно, постарайтесь все же забыть взаимные обиды и разногласия с администрацией форума. Жалко останавливать такой интересный проект, в общем, он горит, Пипа, выручайте! На Вас вся надежда!
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #106 : 29 Ноября 2007, 19:03:58 »

Сергей Иванович!

   Что там с расчетом критерия Вутерса для многокубитных чистых состояний? Вашего ответа на версию 71 так и не получила, а потому теряюсь в догадках - правильно ли программа считает этот случай или нет.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #107 : 29 Ноября 2007, 22:26:45 »

Пипа, с Вуттерсом все в порядке, Вы отлично все сделали! :)

Для других участников форума, которых интересует эта тема, скажу, что наша работа над программой продолжается. Сделано уже достаточно много: задействовано четыре гамильтониана; помимо моего метода для расчета запутанности используются два других – на основе PPT- критерия и мера Вуттерса (согласованность), последняя в отдельных частных случаях, там, где она применима.
Все идет к тому, что скоро программу можно будет предлагать к общему использованию. Я уже начинаю задумываться над хелпом и ее описанием.

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

Пипа, Вы бы тоже поделились своим мнением о программе, хотя бы в общих чертах :).

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #108 : 01 Декабря 2007, 15:36:43 »

Пипа, Вы бы тоже поделились своим мнением о программе, хотя бы в общих чертах.
   Не думаю, что кого-либо на этом форуме заинтересуют мои откровения на этот счет. И прежде всего потому, что сама программа пока имеет в глазах участников форума сомнительную ценность.
   Все-таки начать надо с того, чтобы разъяснить какую пользу из этой программы можно извлечь. То, что эта программа может быть полезна для вашей научной работы - для меня вполне очевидно. Однако в том, что она может оказаться полезной еще кому-либо, сомневаюсь даже я.
 
Все идет к тому, что скоро программу можно будет предлагать к общему использованию.
   Вот этот пункт следовало бы развернуть пошире и подробнее объяснить, достижению каких конкретных целей может привести ее "общее использование".
   В самом первом сообщении этой темы вы писали:
Например, астрологи, пользуясь программой, смогут анализировать многоуровневые квантовые корреляции и влияние, напр. деканов или планетных сфер на плотный мир. Смотреть, как взаимосвязаны все эти «тонкие истечения» звезд и планет в составе единой многоуровневой иерархической системы. Кто интересуется тонкой структурой нашего тела, смогут анализировать его эфирную, астральную, ментальную и др. составляющие, опять в их взаимосвязи и взаимном влиянии, как друг на друга, так и на плотное физическое тело. Все это можно рассматривать в динамике, например, в терминах работы наших чакр, или это может быть модель эволюции Универсума, как замкнутой системы, с учетом динамики тонких уровней реальности.
В принципе, ее можно было бы использовать практически в любых задачах, где предполагается учитывать роль и влияние квантовых уровней, в той же квантовой психологии, например.
   Однако, это было сказано вами относительно проекта в целом, в то время как конкретная программа, имеющаяся на сегодняшний день, по-видимому, далеко не в полной мере отвечает столь громкой заявке.
   Мой скептицизм в этом вопросе проистекает из-за понимания сложности получения оцифрованных данных, относящихся к конкретным физическим системам, не говоря уже о перечисленных вами выше. В первую очередь это относится к оценкам гамильтониана системы и матрицы плотности исходного состояния.
   До сих пор, программа имела дело с модельными гамильтонианами и матрицами плотности. А отсюда и результаты эволюции той матрицы имели в основном лишь теоретико-иллюстративный смысл.
   Для каких-либо практических целей следовало бы сначала подробно разъяснить метод получения числовых значений гамильтониана и элементов матрицы плотности именно для декларируемых вами случаев ("планетных сфер", "звезд и планет в составе единой многоуровневой иерархической системы", "взаимного влияния эфирной, астральной и ментальной составляющих" и т.п.). Иначе от программы будет не больше толку, чем от карманного калькулятора для сложения неизвестных чисел.
   Фактически, трудности здесь ровно те же, что и с применением любых расчетных методов в жизни - прежде чем вести подобные расчеты, должны быть оцифрованы (т.е. количественно замерены) большинство существенных характеристик моделируемого физического процесса. И лишь после этого можно надеяться, что расчеты по полученной численной модели будут соответствовать реальному процессу.
   До сих пор, несмотря на существенно возросшую мощность вычислительных систем, не удается в достаточной мере вычислять многие экономические показатели, хотя заинтересованность в таком прогнозировании колоссальная. То же, хотя и в более скромном масштабе, касается прогнозирования биржевых торгов и связанных с этим процессов ценообразования. И главная беда здесь не в недостатке или несовершенстве программ, а в принципиальной невозможности собрать все необходимые числовые данные для проведения подобных расчетов.
   И даже в несоизмеримо более простых случаях, таких, как, например, квантовомеханические расчеты многоатомных молекул, до сих пор пользуются полуэмпирическими методами. Т.е. буквально подгоняют большинство параметров под "ответ", поскольку непосредственно замерить или вычислить такие параметры не представляется возможным. И если эта проблема так остро стоит даже для простейших квантовомеханических систем, то, что говорить о гораздо более сложных?
   Спиновые системы в ядерном магнитном резонансе - несомненно, очень перспективное поле для применения подобного рода расчетов, однако эта сфера применения чудовищно далека от "насущных проблем", поскольку слишком глубоко погружена в микромир. Для подтверждения ваших деклараций о применимости квантовомеханических закономерностей в макромире (здесь - в человеческих масштабах, а не в масштабах Вселенной или в момент ее сингулярности) следовало бы разобрать какой-либо практический случай и показать для него применимость квантового формализма. Ничуть не настаиваю, чтобы пример имел какое-либо отношение к магии, вполне достаточно, чтобы демонстрация была проведена не с "умозрительными" предметами, а хотя бы на видимых невооруженным глазом :).
   Считаю, что интерес к квантовомеханическим расчетам возникнет не ранее, чем самостоятельная способность строить гамильтонианы реальных систем и описывать реальные состояния в терминах матриц плотности. Тут, как и в случае с карманным калькулятором, сначала следует научиться считать купюры, и лишь только потом проводить операции с полученными числами с помощью калькулятора.
Записан
ain
Старожил
****
Сообщений: 600



Просмотр профиля WWW
« Ответ #109 : 01 Декабря 2007, 16:12:08 »

Добавлю про то, что знаю.
Данная система не годится для астрологии.
Там вся суть основана на совершенно ином.
Никакого отношения к характеристикам самих планет астрология не имеет.
Основа в том, что всё на свете циклично. И планеты так же находятся в неких циклах.
Изучение циклов планет не вопрос, а вот изучение напрямую циклов человека – это непонятно, что откуда брать. Но, можно, отталкиваясь от знания, что все циклы взаимоувязаны, не случайны, найти соответствия.
И тут такая интересная штука.
Не важно, есть ли некая планета или нет, т.е. не имеет принципиального значения наличие объекта в небе.
Можно придумать любой объект, рассчитать, как бы могла двигаться планета, будь она тут и потом, так же находить соответствия циклов данной планеты с некими характеристиками человеком.
И такая астрология есть, в которой большая часть – фиктивные планеты.
Это астрология Гамбургской школы. По многим параметрам эта школа впереди всех старых школ.
Настолько впереди, что была запрещена Гитлером, а её представители были отправлены в концлагерь за их плохие предсказания. В смысле плохие для Гитлера.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #110 : 01 Декабря 2007, 18:34:18 »

Данная система не годится для астрологии.
<...>
Никакого отношения к характеристикам самих планет астрология не имеет.
Основа в том, что всё на свете циклично. И планеты так же находятся в неких циклах.
Изучение циклов планет не вопрос, а вот изучение напрямую циклов человека – это непонятно, что откуда брать. Но, можно, отталкиваясь от знания, что все циклы взаимоувязаны, не случайны, найти соответствия.
<...>
Не важно, есть ли некая планета или нет, т.е. не имеет принципиального значения наличие объекта в небе.
Можно придумать любой объект, рассчитать, как бы могла двигаться планета, будь она тут и потом, так же находить соответствия циклов данной планеты с некими характеристиками человеком.
И такая астрология есть, в которой большая часть – фиктивные планеты.

   Все наоборот. Беда программы состоит как раз в недостатке привязки к реальным данным, которые используются для расчета. А если в реальных характеристиках планет нет необходимости (по вашим же собственным словам), то для применения программы это явный плюс, поскольку ее слабость при этом не проявляется.
   Для спекулятивных применений (когда требуется подогнать результат под известную динамику) программа как раз подходит очень хорошо. Более того, я, пожалуй, решилась бы даже на экстремальную оценку, утверждая, что любая система из связанных между собой гармонических осцилляторов может быть ТОЖДЕСТВЕННО сведена к процессу эволюции матрицы состояния в рамках подходящего гамильтониана. Причем, проявлять здесь какие-либо квантовые свойства совершенно не требуется.
   Дело здесь в том, что любое периодическое поведение эквивалентно вращению некоторого вектора в соответствующем пространстве измерений. Объединение множества осцилляторов (т.е. периодически изменяющих свое состояние объектов), с разными характеристиками СОБСТВЕННОЙ периодичности, в одну систему приводит к возникновению сложного случая, когда взаимная связь не позволяет (в общем случае) проявляться индивидуальным характеристикам каждого из составляющих систему объектов. В результате чего, траектория вращения каждого из составляющих систему векторов становится весьма сложной и причудливой.
   Чем сильнее межэлементные связи между объектами, составляющими систему, тем сильнее складывается их "личное хозяйство" в коллективное! При слабых связях система получается вполне сепарабельной, при этом каждый из составляющих систему объектов живет "своей жизнью", т.е. той, которую он бы вел, будучи в полном одиночестве. Наша планетарная система, между прочим, весьма к этому состоянию близка, т.к. взаимные возмущения орбит достаточно малы, а периоды обращения вокруг Солнца уже успели за долгое время синхронизироваться почти до кратных отношений.
   Напротив, сильная связь "склеивает" элементы системы между собой, наподобие цемента. И если сепарабельная система ведет себя наподобие сыпучего песка, где каждая песчинка падает сама по себе, то сцементированная глыба падает единым куском, представляя собой чистое состояние, в котором индивидуальные характеристики составных элементов полностью растворились.
   В реальных системах можно наблюдать весь непрерывный спектр между сепарабельным и чистым состоянием, причем матрица плотности (по квантовой терминологии) или ее макроаналоги (матрицы корреляции или ковариации) в состоянии описать все это множество сложных отношений между объектами в системе. При этом аппарат матричной алгебры замечательно подходит для анализа подобных случаев, поскольку сами матрицы приобрели свою популярность именно в связи с исследованием многомерных случаев.
   Эволюция запутанности, вычисляемая программой, настолько явно проявляется в виде четких гармоник с разными периодами (см. картинки в сообщении #100 этой темы), что я без всяких просьб со стороны Доронина, ввела в программу функцию преобразования Фурье, которую традиционно применяют для выявления периодических вкладов среди экспериментальных временных рядов.
   К слову сказать, преобразование Фурье с успехом использовалось для выявления периодичности в биоритмах человека. И этот подход, с моей точки зрения, гораздо перспективнее, чем отсчитывать константу со дня рождения (или зачатия) человека до настоящего момента времени. Конечно же, циркадные ритмы (т.е. суточные) играют свою роль, синхронизируя между собой ритмы разных людей, однако уповать на их постоянство с времен младенчества не стоит. Известно, что даже от совместного проживания в одной комнате общежития у женщин достаточно быстро устанавливается синхронизация менструальных циклов :). Что уж тут говорить о какой-то предопределенности от дня зачатия?
   Я и сама как-то провела исследования над собой, собирая в течении полутора лет объективные биометрические показатели. А затем, естественно, провела их "гармонический анализ". И представьте, что узнала о себе очень много интересного! Жаль, что это относится только ко мне, и не может быть использовано для всеобщая закономерность.
   Возвращаясь к матричному представлению, можно заметить, что гармоническая периодичность проявляется здесь в тех случаях, когда унитарный оператор действия (т.е. такая трансформация, которая не деформирует пространство) представляет собой матрицу поворота (или вращения). Тогда постоянное применение такого оператора к любой матрице (пространству) рано или поздно приведет к состоянию, близкому к исходному. Можно, сказать, что путешественник, совершив оборот вокруг земного шара, вновь ступает на землю свой Родины. А решение временного уравнения Шредингера именно таково. Из-за этого в эволюции явно проглядывает периодичность.
   Из простейших и наиболее наглядных примеров применения матричной теории могу предложить построить матрицу участников форума :), где каждый активный участник получит свой номер столбца/строки (наподобие итоговой таблицы футбольно-хоккейного чемпионата), а в местах пересечения будет проставлена оценка, в соответствии с которой участники оценивают посты друг друга. Например, процент одобрительных оценок за вычетом числа неодобрительных. При этом на пересечении "дружественно настроенных" участников получатся положительные числа, а на пересечении "враждебно настроенных" - отрицательные. А когда постоянного предпочтения не наблюдается, то число будет близко к нулю. На тех форумах, когда участники активно проставляют друг другу "карму" (+ или -), можно использовать эту величину в том же смысле.
   Затем итоговая матрица нормируется так, чтобы взаимные оценки передвинулись в положительную область (1-полная поддержка, 0-полная неприязнь) и на диагонали проставляются единички ("сама себе всегда нравлюсь на все 100%" :) ), а затем матрица подвергается стандартной процедуре "диагонализации" с урезанием размерности до величины ранга. Например, с использованием SVD-процедуры ("singular value decomposition" - http://en.wikipedia.org/wiki/Singular_value_decomposition ). В результате чего число "участников" резко сократится, а на оставшихся номерах строк/столбцов будут стоять уже не те участники, что стояли там прежде, а некие абстрактные сущности (типа эгрегоров), аккумулирующие в себе все наши согласия и разногласия. Причем каждый из участников как бы "сливает свою кровь" в тела тех эгрегоров, которые составляют "суть его души" :). А сами эти эгрегоры будут некими кумулятивными сущностями, выражающими "чистые состояния". Например, без расчетов ясно, что Любовь сольется с April в один эгрегор, раз не банит ее даже за откровенное хамство, а моя участь - слиться в folor'ом :) - уж очень часто он называл меня умницей :). Сильно подозреваю, что и ain'у у нас тоже найдется местечко. А про судьбу Доронина я тоже знаю, но умолчу :).
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #111 : 01 Декабря 2007, 19:11:35 »

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

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

 физический же план хорош еще и тем что здесь рядышком в соседних тушках могут проектироваться осознания, которые ТАМ видят не друг друга, а только один из двух может видеть другого, второго этому не дано В замешательстве...
и только поэтому, работа двойных стандартов - это отдельная песня...
 - лично Я и дальше по моему ранжиру Подмигивающий
или таки многомерных?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #112 : 01 Декабря 2007, 20:18:52 »

   К сведению тех, кто как в танке :). Процедуры матричного анализа, подобные приведенной мной, уже давным-давно широко используются в психологии (psychometrics) под общим названием "Факторный анализ". В кратком изложении про это можно почитать здесь - http://en.wikipedia.org/wiki/Factor_analysis и здесь - http://ru.wikipedia.org/wiki/16-факторный%20личностный%20опросник .
   Сходство квантовомеханических методов с методами многомерной статистики далеко не случайно! И это сходство обусловлено отнюдь не действием квантовомеханических закономерностей на макроуровне (по Доронину), а скорее, напротив, - наличием единой закономерности, равно справедливой как для микро-, так и для макромира. А учитывая исторический приоритет макроисследований, можно сказать, что это скорее макрозакономерности, проявляющие себя в микромире, а не наоборот.
   Такие закономерности всегда верны для любых систем, свойства которых являются линейной комбинацией свойств составляющих их элементов. Именно по этой причине здесь эффективно работают законы линейной алгебры, частью которой является матричный анализ. И даже в тех случаях, когда реальность не вполне точно описывается аддитивным законом, данное линейное представление почти всегда может быть использовано в качестве модели для начального приближения.
   Люди образуют социум примерно на тех же общих принципах, на которых строятся любые системы,  состоящие из более или менее однородных элементов. При этом "общая однородность" как бы выпадает в осадок, формируя фундамент системы (major factor = major eigenvector), а остающиеся "в растворе" различия после этого (удаления подобия) выглядят гипертрофированно, формируя у нас искаженное представление о данной системе. По этой причине человеческие суждения обычно бывают весьма контрастными, поскольку концентрировать свое внимание на различиях гораздо легче, чем на сходстве. Из-за этого сходство (наблюдателя и объекта) оказывается как бы вынесено за скобки, из-за чего зачастую и становится ненаблюдаемой "вещью в себе".
   Победные реляции и энтузиазм по поводу нашей запутанности с миром оказываются на поверку плохой наградой. Ибо именно эта запутанная часть выпадет из нашего наблюдения, подобно тому, как невозможно прочитать текст, цвет которого полностью совпадает с фоном. Наше познание мира основано на контрасте свойств, благодаря которому мы в состоянии различать и классифицировать эти различия. Запутанность же с объектом наблюдения делает для нас неразличимыми как раз те аспекты, которые оказываются запутанными. Как, например, плывущий на пароме не может определить скорость течения реки, т.к. в своем движении запутан с нею. Это он может сделать только, если выберет ориентир на неподвижном берегу! Т.е. опираясь на информацию от незапутанной с ним части мира.
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #113 : 01 Декабря 2007, 22:34:03 »

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

а вот на счет того, что
Цитата:
Запутанность же с объектом наблюдения делает для нас неразличимыми как раз те аспекты, которые оказываются запутанными.
я бы не утверждала...
при наличии одинаковых качеств - частот - возможен резонанс, к чему он приводит при неумении контролировать свои эмоции здесь и Вы, сударыня, демонстрировали... отсюда и двойные стандарты, и бревно в собственном глазу, которое заслонено соломинкой в чужом...
но его же можно использовать и для познания - определившисть с общими точками можно взаимно расширить диапазоны понимания и взаимопонимания, т.е. увеличить запутанность - от точки перейти к полосе, осознание же каких бы то ни было процессов приводит к сепарабельности... вот такой парадокс... Строит глазки

а вот про исторический приоритет как раз можно сказать, что мы просто иного себе не можем представить, потому переводим любую инфу в плоскость своих знаний, не замечая в ней других измерений...  Крутой
я бы не утверждала, что древние были материалистами Смеющийся
Записан
Vincent Law
Пользователь
**
Сообщений: 97


Просмотр профиля
« Ответ #114 : 03 Декабря 2007, 13:39:14 »

   До сих пор, несмотря на существенно возросшую мощность вычислительных систем, не удается в достаточной мере вычислять многие экономические показатели, хотя заинтересованность в таком прогнозировании колоссальная. То же, хотя и в более скромном масштабе, касается прогнозирования биржевых торгов и связанных с этим процессов ценообразования. И главная беда здесь не в недостатке или несовершенстве программ, а в принципиальной невозможности собрать все необходимые числовые данные для проведения подобных расчетов.
     А как на счёт того, чтобы сразу моделировать программу на этом основании? Как на счёт того, чтобы ввести в алгоритм наличие неизвестных параметров? Как Вы думаете - возможно ли это?
Записан

"...Пока я часть этого мира - за мной кто-то наблюдает,
и я не часть этого мира, когда только наблюдаю за ним...
...Невозможно быть частью этого мира.
Это неопровержимая истина..."
(ErgoProxy, Meditatio XI - Anamnesis)
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #115 : 03 Декабря 2007, 17:31:27 »

А как на счёт того, чтобы сразу моделировать программу на этом основании? Как на счёт того, чтобы ввести в алгоритм наличие неизвестных параметров? Как Вы думаете - возможно ли это?

    Не программа моделируется, а она сама предназначена для моделирования каких-то процессов. Неизвестные параметры, на то они и есть неизвестные, что ввести их никак нельзя. Бывает, конечно, и так, что без каких-то параметров можно обойтись, установив им значения "от балды" или руководствуясь доступными экспертными оценками на их счет. Но главную проблему это не решает, поскольку численный анализ по своей сути предполагает, что мы делаем расчет, исходя из каких-то известных количественных характеристик моделируемой системы или процесса.
    Например, электрокардиограф требуется подключить к пациенту, чтобы получить его ЭКГ (электрокардиограмму). А если требуется получить анализ крови, то ее необходимо у пациента забрать. Если бы мы могли обойтись без такого подключения или забора, то резонно встал бы вопрос: "Чья это ЭКГ? Чей это анализ?". Точно так же оказывается необходимым предварительно получить от исследуемого объекта какую-либо численно выраженную информацию, прежде чем заниматься ее обработкой с помощью программ. В противном случае расчетные данные не будут иметь никакого отношения к объекту.
    Короче говоря, численные методы потому и называются численными, что оперируют уже с численной (т.е. количественной информаций). А если же такой информации получить не удается, то и применимость численных методов этим сильно ограничивается.
    Существуют, правда, и так называемые "полуэмпирические методы", когда необходимые параметры не вводятся, а подбираются с целью наибольшего совпадения поведения модели с моделируемым процессом. Однако и здесь подразумеваются известными те характеристики процесса, с которыми мы хотим получить соответствие. Т.е. так или иначе, но чтобы компьютер мог выдавать какие-либо полезные выводы, он должен быть каким-то образом предварительно напичкан информацией о том, о чем мы его спрашиваем. Иначе это будет не программа, а гадальная машина, случайным образом выкидывающая кости.
   Любая программа - это алгоритм для переработки информации! А, следовательно, предмет переработки обязательно должен быть в нее введен. Ведь даже мясорубка не выдаст фарша, если в нее предварительно не засунуть кусок мяса. А численные методы - это как раз мясорубка для чисел.
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #116 : 04 Декабря 2007, 10:02:55 »

А сами эти эгрегоры будут некими кумулятивными сущностями, выражающими "чистые состояния". Например, без расчетов ясно, что Любовь сольется с April в один эгрегор, раз не банит ее даже за откровенное хамство, а моя участь - слиться в folor'ом :) - уж очень часто он называл меня умницей :). Сильно подозреваю, что и ain'у у нас тоже найдется местечко. А про судьбу Доронина я тоже знаю, но умолчу :).
"Слияние по подобию" - не единственный способ организации систем, лишь самый очевидный, лежащий на поверхности. Объединение систем по принципу "дополнения до целостности" предоставляет системе больше степенией свободы, больше вариаций, больше состояний, больше возможностей. Реальные системы довольно редко существуют в своих чистых состояниях и сравнительно недолго, потому что их окружение - безмерно и динамично. Чистые состояния интересны не в смысле достижения их, а в смысле тенденции перемен, направления движения системы от одного своего чистого состояния к другому чистому состоянию. И в реальных системах чистых состояний в общем случае больше, чем два. Это только у примитивных систем их два - "физики\ лирики", "Пипа\Эйприл", "эзотерика\физика", "ушла, хлопнув дверью\триумфально вернулась".
По этому расчитывать на успех представленного в теме программного продукта, опираясь исключительно на два чистых состояния - "физики рулят\эзотерики отстой" - утопия.

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

Я так понимаю, что СИД задумал эту программу не для того, чтобы потешить свое или твое самолюбие, а для конечных пользователей, тех самых эзотериков.
Значит успех программы в том, чтобы повернуться к ним лицом.

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

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

По этому в любой уважающей себя ЭС существуют анциллы  между экспертом и программой, между программой и конечным пользователем - Двуликий Янус, одним лицом развернутый в сторону человека, другим - в сторону программы.

-  существует блок "извлечения знаний", в котором эксперт  в удобной для него форме отвечает на ряд вопросов, поступающих со стороны ЭС,  и уже САМА ЭС форматирует ответы в нужную ей форму.
В данном случае - в гамильтониан.

- существует блок "интерпретации выходных данных", в котором САМА ЭС преобразует выходные данные  в форму, удобную для чтения и понимания  пользователем.
В данном случае - матрицы плотности необходимо преобразовать в некоторый очевидный для понимания модельно-образный ряд. Графики, да, возможно. Но и что-нибудь типа звездного неба, или "лабиринтов Сета", или еще что.

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









Записан

Vincent Law
Пользователь
**
Сообщений: 97


Просмотр профиля
« Ответ #117 : 04 Декабря 2007, 13:14:34 »

    Не программа моделируется, а она сама предназначена для моделирования каких-то процессов.
    Программа, которая моделирует... Интересно...
    В любом случае, сперва необходимо смоделировать саму эту программу. Или у Вас уже готов окончательный идеальный алгоритм? Если да, то приношу свои извинения за вмешательство.
Цитата:
   Неизвестные параметры, на то они и есть неизвестные, что ввести их никак нельзя.
   Вы уверены?
Цитата:
    Например, электрокардиограф требуется подключить к пациенту, чтобы получить его ЭКГ (электрокардиограмму). А если требуется получить анализ крови, то ее необходимо у пациента забрать.
   Да, в классическом мире это так. Но эти данные обрабатывает алгоритм, руководствуясь уже готовой моделью. Такая программа не моделирует процессов.
Цитата:
Если бы мы могли обойтись без такого подключения или забора, то резонно встал бы вопрос: "Чья это ЭКГ? Чей это анализ?". Точно так же оказывается необходимым предварительно получить от исследуемого объекта какую-либо численно выраженную информацию, прежде чем заниматься ее обработкой с помощью программ. В противном случае расчетные данные не будут иметь никакого отношения к объекту.
   Всё абсолютно верно. Но даже получая эти данные, алгоритм фильтрует их. Часть сигнала он принимает как входные данные, а остальную отбрасывает как шум. Он поступает так исходя из модели, по которой действует. Это алгоритм обработки, но не алгоритм моделирования.
Цитата:
    Короче говоря, численные методы потому и называются численными, что оперируют уже с численной (т.е. количественной информаций). А если же такой информации получить не удается, то и применимость численных методов этим сильно ограничивается.
   Бесспорно. Без входящей информации не может быть никаких методов обработки, не говоря уже о моделировании.
Цитата:
    Существуют, правда, и так называемые "полуэмпирические методы", когда необходимые параметры не вводятся, а подбираются с целью наибольшего совпадения поведения модели с моделируемым процессом.
   А вот это уже интересно... Показает язык
Цитата:
Однако и здесь подразумеваются известными те характеристики процесса, с которыми мы хотим получить соответствие. Т.е. так или иначе, но чтобы компьютер мог выдавать какие-либо полезные выводы, он должен быть каким-то образом предварительно напичкан информацией о том, о чем мы его спрашиваем.
   Согласен. Тут нет возражений. Уже говорил, что иформация необходима. А теперь задумаемся, какие методы взаимодействия с информацией мы должны иметь в этом алгоритме моделирования:
1) Методы получения иформации.
2) Методы обработки информации.
3) Методы организации информации.
Каждый пункт имеет свои трудности организации.
Нетрудно заметить, что третий пункт - это как раз конечный продукт работы алгоритма - это то, что Вы назвали "моделями процессов".
Цитата:
Иначе это будет не программа, а гадальная машина, случайным образом выкидывающая кости.
   А как же без этого?! ))))
Для того, чтобы такая программа работала, ей просто необходим собственный "демон"!  Подмигивающий
И от его силы будет зависеть качество моделирования.
Цитата:
   Любая программа - это алгоритм для переработки информации! А, следовательно, предмет переработки обязательно должен быть в нее введен. Ведь даже мясорубка не выдаст фарша, если в нее предварительно не засунуть кусок мяса. А численные методы - это как раз мясорубка для чисел.
   И тут соглашусь с Вами! И для идеальной работы этой мясорубки у неё должны быть очень мелкие и крепкие зубки. И невообразимо мелкие дырочки. И для этой мясорубки не подойдут полуфабрикаты - ей понадобятся только качественные натуральные продукты. Другими словами - не оцифрованные данные, а аналоговые. Это и есть первый пункт в идеале. Но кроме приёма информации необходимо её ещё обрабатывать и организовывать. Другими словами - фарш необходимо подготовить для обработки, придать форму и поджарить! Вы больше предпочитаете котлеты, или может быть пельмени?..

Несколько слов о "демоне".

Представьте себе точку. Вокруг неё три круга. Вся эта совокупность - и есть наш алгоритм моделирования. Рассморим его геометрию:

1. За пределами этих кругов - те самые неизвестные данные. Или по другому - никак не организованный хаос, о котором нашей программе ничего не известно.

2. Область между третьим кругом и вторым - это область ввода данных. Это своеобразный "приёмный пункт". Внешнее Кольцо. Это первый пункт методов. Он позволяет получать информацию из неорганизованного хаоса. Важным моментом является то, что методы получения данных из хаоса должны также моделироваться самим алгоритмом. Это значит, что алгоритм в зависимости от метода определяет, что из входящих данных считать информацией, а что - шумом. А также он должен уметь изменять эти методы.

3. Между вторым и первым кругом находится область обработки информации. Среднее Кольцо. Тут данные, поступающие из Внешнего Кольца,  подвергаются анализу, обработке, возможно, формируются некоторые смысловые блоки... Это место видно плохо... В общем, это Кольцо также должно обладать свойством перестройки методов анализа и обработки.

4. Между первым кругом и точкой находится область организации информации. Это Внутреннее Кольцо, которое должно из проанализированной и обработанной  в прошлом Кольце информации формировать организацию. Именно эта организация - и есть моделируемые процессы, цель алгоритма, сливки... Это тор... Похоже, что именно этот Тор влияет на перестройку Среднего и Внешнего Колец при экстравертном цикле, а они влияют на него при интровертном... стремясь достичь резонанса... Для того, чтобы мы получили эти самые "модели процессов", алгоритм должен пустить экстравертную волну за пределы круга, преобразовывая структуру в исходящие данные... Это то, что Апрель назвала Двуликим Янусом...

5. Точка. ЭТо и есть "демон" алгоритма. Его сущность - такой же хаос, как и за пределом всех кругов. Это двигатель программы, позволяющий ей моделировать. Для практической реализации такой программы необходимо создать генератор хаоса, который играл бы роль этого "демона" и позволил бы организовать движущиеся пульсирующие волны из центра наружу и обратно. Волны возникают из-за притяжения внешнего хаоса и внутреннего, или из-за разности потенциалов... Не знаю как это лучше назвать...

Вот такие в общем котлеты...  Показает язык
Записан

"...Пока я часть этого мира - за мной кто-то наблюдает,
и я не часть этого мира, когда только наблюдаю за ним...
...Невозможно быть частью этого мира.
Это неопровержимая истина..."
(ErgoProxy, Meditatio XI - Anamnesis)
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #118 : 04 Декабря 2007, 17:04:04 »

Vincent Law
 
Цитата:
Волны возникают из-за притяжения внешнего хаоса и внутреннего, или из-за разности потенциалов... Не знаю как это лучше назвать...
из-за разности уровней организации (?) возникают качественные и количественные переходы... В замешательстве
Записан
Vincent Law
Пользователь
**
Сообщений: 97


Просмотр профиля
« Ответ #119 : 04 Декабря 2007, 18:12:25 »

Vincent Law
 
Цитата:
Волны возникают из-за притяжения внешнего хаоса и внутреннего, или из-за разности потенциалов... Не знаю как это лучше назвать...
из-за разности уровней организации (?) возникают качественные и количественные переходы... В замешательстве
   Я не знаю, что такое качественно-количественные переходы...
   Но я чувствую, что двигатель Алгоритма, этот "демон", связан с каждым Кольцом напрямую. Можно сказать, что он склеиваит эти Кольца. Он не находится в конкретном месте, он всюду... Помните - хаос находится между состояниями. И между уровнями тоже он получается.
   И ещё... Похоже, что Внутреннее Кольцо - это не Тор. Это Кольцо только прилегает к нему...
   Можно сказать, что Тор - это Абстрактное Ядро алгоритма. Похоже, что это Ядро содержит в себе описание всего алгоритма с его Кольцами, связками и так далее. Получается как бы фрактал...
   А ещё это Ядро скрывает "демона", который движет алгоритмом. Тор - это Кетер - Точка В Круге. Тор служит своеобразными Покровами Хаоса. Он создаёт иллюзию точки. Хотя на самом деле получается, что её нет. Там только Бесконечность... Круги можно продолжать целую вечность. Поэтому возникает сокрытие Бесконечности. Эти Покрова создают иллюзию "самости", эго...
   Похоже на то, что именно это сокрытие и создаёт "разность потенциалов" - движущую силу, которая заставляет возникать волны. А поскольку "демон" склеивает все состовляющие Алгоритма, то его сокрытие Покровами приводит к возникновению синтаксического тумана...
   Синтаксический туман - это попытки объяснить переходы между уровнями, когда реальная движущая сила неизвестна. Синтаксический туман застелает места соединений Колец...
   Синтаксический туман - это теории, построенные из элементов того же уровня, который они должны объяснять. Этими теориями система скрывает своё незнание реальной движущей силы... Показает язык

   Только что понял - в нагвализме обходятся только двумя Кольцами, в центре которых находится Абстрактное Ядро...  :)
« Последнее редактирование: 04 Декабря 2007, 18:22:38 от Vincent Law » Записан

"...Пока я часть этого мира - за мной кто-то наблюдает,
и я не часть этого мира, когда только наблюдаю за ним...
...Невозможно быть частью этого мира.
Это неопровержимая истина..."
(ErgoProxy, Meditatio XI - Anamnesis)
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #120 : 04 Декабря 2007, 18:23:46 »

Цитата:
Синтаксический туман - это теории, построенные из элементов того же уровня, который они должны объяснять.
   
- ну это бы не бяда...
 хужее не соответствия, когда тонкие уровни объясняют классикой в полной мере, забывая, что акромя подобия есть и качественно иные особенности... потому порой и случается понимание - с точностью до наоборот В замешательстве
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #121 : 04 Декабря 2007, 19:11:16 »

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

    Может быть он не такой уж и идеальный, но алгоритм, вложенный в программу, фиксирован. В данном случае программа сама является запрограммированным алгоритмом, от которого мы и ожидаем результатов. Т.е. тут не тот случай, когда программу подгоняют под реализацию какой-то задачи, а, наоборот, случай, когда идет испытание определенного алгоритма в целях исследования эффективности его применимости для практических целей.
    Это чем-то похоже на испытание летных качеств самолета новой конструкции, когда целью является не довести пассажиров до места назначения, а определить летные характеристиками новой модели, с тем, чтобы выявить область ее эффективного применения.
    В принципе, то, что будет представлять собой данный проект (программа) полностью определено Дорониным в сообщении #2 этой темы. И поэтому питать к проекту какие-либо повышенные ожидания, на мой взгляд, не стоит. Он изначально был задуман, как программная реализация определенного алгоритма, и вопрос об изменении или замены алгоритма другим даже не ставится. Иначе это будет уже другой проект.
    То, что положено в основу проекта, - это численное решение уравнения Лиувилля – фон Неймана. И если вы не против, то я немного расскажу об этом, хотя прямого вопроса по этому поводу вы не задавали.
    Жозеф Лиувилль (1809-1882) - французский математик. Как видите, он умер еще за долго до появления квантовой механики. А дело касается одной из теорем, названной в его часть, - теоремы Лиувилля о сохранении фазового объёма, которая является ключевой теоремой в статистической и гамильтоновой механике.
    В значительной мере, теорему Лиувилля можно отнести к законам сохранения. При этом надо понимать, что любые предсказания (!) возможны лишь на основе предположения о том, что в будущем сохранятся какие-то параметры из прошлого состояния прогнозируемого процесса. Ведь в противном случае, будущее никак не зависело бы от текущего и прошлого состояния процесса, и его ни в какой мере невозможно было бы предсказать. Именно, постоянство каких-то характеристик ограничивает свободу процесса, и тем самым заставляет его будущее стать в какой-то мере предсказуемым.
    Теорема Лиувилля декларирует постоянство объёма фазового пространства, благодаря чему эволюция во времени в гамильтоновой механике сводится к каноническому преобразованию. Использование операторного формализма позволяет в статистической механике применять к классическим системам методы, разработанные для квантовых систем.
    Именно последнее сходство и определило мое сотрудничество с Дорониным в этом проекте. Причем, я являюсь поклонницей статистических подходов (в макромире) и квантовыми явлениями ранее особо не интересовалась. Доронин же смотрит на мир исключительно с квантовых позиций, по-видимому, вследствие своей научной специализации. Соответственно чему, с моей точки зрения, алгоритм применяет принципы статистической механики, которые в значительной степени справедливы как для макро-, так и для микро-мира. А с точки зрения Доронина это выглядит как экстраполяция законов квантовой механики на мир в целом. В то время, как объективно, общий формализм теоремы Лиувилля позволяет ее одинаково успешно использовать и там, и сям.
    Тяготение к описанию мира через вариационные принципы гамильтоновой механики у меня было еще задолго до знакомства с Дорониным. Еще четыре года назад мною была написана на форуме “Нагуализм“ (сайт А.Ксендзюка) тема «Магический квадрат» ( http://nag.maluke.com/rip/f6-t43-p01.html ), из которой уже тогда была явно видна моя тега к такой постановке проблемы. Причем, я действительно, вижу определенную магичность такого подхода, а иначе бы не рискнула завести разговор на эту тему на форуме «эзотерического» направления.
    Сильное подобие между квантовомеханическим и ститистически-вероятностным подходами проявилось еще на старом форуме «Физика магии» ( http://physmag.hut1.ru/forum/index.php ), на котором я выступила с темой «Многомерная матрица» ( http://physmag.hut1.ru/forum/topic.php?forum=8&topic=3 ). Несмотря на то, что общего языка с Дорониным я в той теме не нашла, формальное сходство описаний было поразительным. И это несмотря на то, что я анализировала конкретный макрослучай, а Доронин приводил примеры поведения квантовых объектов.
    Участие в данном проекте вполне удовлетворило мой интерес, поскольку общий формализм алгоритма позволял себя интерпретировать с той точки зрения, которая мне нравится. А с другой стороны, я сама без помощи Доронина никогда бы не справилась с доведением идеи до численного метода.
    Однако определенные разногласия у меня с Дорониным остались, и они касаются именно тех численных входных условий, которые следует задавать программе. Меня несколько раздражает, то обстоятельство, что Доронин задает тестовые прогоны программы на примерах, взятых из спиновых систем ядерного магнитного резонанса, которые кажутся мне слишком экзотическим случаем для реальной жизни :).

А теперь задумаемся, какие методы взаимодействия с информацией мы должны иметь в этом алгоритме моделирования:
1) Методы получения информации.
2) Методы обработки информации.
3) Методы организации информации.
Каждый пункт имеет свои трудности организации.
Нетрудно заметить, что третий пункт - это как раз конечный продукт работы алгоритма - это то, что Вы назвали "моделями процессов".

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

И для этой мясорубки не подойдут полуфабрикаты - ей понадобятся только качественные натуральные продукты. Другими словами - не оцифрованные данные, а аналоговые. Это и есть первый пункт в идеале.

    Боюсь, что программу еще долгое время придется кормить из ложечки, причем даже не полуфабрикатами, а буквально пережеванной пищей.

5. Точка. Это и есть "демон" алгоритма. Его сущность - такой же хаос, как и за пределом всех кругов. Это двигатель программы, позволяющий ей моделировать. Для практической реализации такой программы необходимо создать генератор хаоса, который играл бы роль этого "демона" и позволил бы организовать движущиеся пульсирующие волны из центра наружу и обратно.

    В этой связи я выскажусь не по поводу «демона», а по более фундаментальной проблеме, касающейся общей возможности применимости результатов любого рода (компьютерных) вычислений к реальности. Вся проблема состоит в том, что математика с одинаковым успехом может оперировать как объектами, имеющими существенное сходство с реальными, так и чисто вымышленными представлениями, порожденными ею самой или фантазией математиков. И в том и в другом случае математика может создать ВНУТРЕННЕ непротиворечивое построение. Успешное развитие численных методов, переживающих буквальный бум в связи с прогрессом в компьютеростроении, не только не изменило эту ситуацию, но и еще более усугубило ее.
    Мы видим, что ниточка, соединяющая компьютерный «муляж» с реальностью истончилась до предела. И в этом можно убедиться даже на примере компьютерных игр, где симуляторы реальных процессов с легкостью соседствуют с полностью виртуальными конструкциями. Другими словами, компьютерной программе (как и программисту) нет дела до того, моделирует ли программа что-то, имеющееся в реальности, или же она порождает монстров, являющихся плодом нашего «больного» воображения :).
    Причем это уже не «компьютерная болезнь», а скорее болезнь общечеловеческая, когда умствования, отделенные от практики порождают весьма замысловатые и логически непротиворечивые построения, которые, тем не менее, имеют очень слабое отношение к реальности. Причем, в «эзотерических» кругах эта болезнь приобрела размеры эпидемии :). Сочиняют все, кто во что горазд. И всю эту продукцию пытаются подать (а то и продать) за чистую монету.
    Для того, чтобы математические выкладки и компьютерные расчеты имели под собой твердую почву, необходимо условие того, чтобы с одной стороны, исходные данные и принципы соответствовали реальному положению вещей, а с другой стороны, чтобы результаты подобных расчетов обязательно верифицировались с реальностью. В противном случае, мы получим очередную программу для вычисления даты конца света.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #122 : 04 Декабря 2007, 21:44:08 »

Pipa

Цитата:
Вот этот пункт следовало бы развернуть пошире и подробнее объяснить, достижению каких конкретных целей может привести ее "общее использование".
<…>
Однако, это было сказано вами относительно проекта в целом, в то время как конкретная программа, имеющаяся на сегодняшний день, по-видимому, далеко не в полной мере отвечает столь громкой заявке.
<…>
Для подтверждения ваших деклараций о применимости квантовомеханических закономерностей в макромире (здесь - в человеческих масштабах, а не в масштабах Вселенной или в момент ее сингулярности) следовало бы разобрать какой-либо практический случай и показать для него применимость квантового формализма.

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

A-B ≤ A-BC ≤ A-BCD ≤ A-BCDE ≤ …

Убедиться в справедливости этих неравенств можно при помощи программы, они будут выполняться в любом случае. Например:

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

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

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

Пипа, все это довольно близко к Вашим словам о «наличии единой закономерности, равно справедливой как для микро-, так и для макромира». И такие общие закономерности, относящиеся к запутанным состояниям, программа позволяет вскрывать и анализировать. Тот факт, что они общие, проверяется достаточно просто – такие закономерности должны выполняться во всех случаях, независимо от конкретной задачи. Если это так, то уже с большой уверенностью можно говорить, что найдена именно единая закономерность, которая будет выполняться для произвольных систем (в том числе макроскопических).

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

Кроме этого, я считаю, что программа и используемые в ней методы анализа систем в терминах состояний (включая несепарабельные состояния), применимы не только в физике, но и в других областях, например, в экономике, психологии и т.д. Правда, здесь придется ее немного «подгонять» под свои задачи. Главное, чтобы для объекта исследования (анализируемой системы) можно было ввести набор базисных состояний для двухуровневых подсистем. Затем нужно задать начальное состояние и оператор эволюции системы – те взаимодействия и силы, под действием которых состояние эволюционирует (аналог гамильтониана). Если это можно сделать, то можно будет использовать программу – анализировать эволюцию состояний и смотреть динамику запутанности.

Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #123 : 04 Декабря 2007, 22:43:02 »

Pipa

Цитата:
Меня несколько раздражает, то обстоятельство, что Доронин задает тестовые прогоны программы на примерах, взятых из спиновых систем ядерного магнитного резонанса, которые кажутся мне слишком экзотическим случаем для реальной жизни
<…>
До тех пор пока эта цифирь будет извлекаться из опубликованных статей по квантовой механике (а это в основном так сейчас и происходит), до тех пор результаты будут иметь отношение только к микромиру. А мне бы очень хотелось увидеть результат работы алгоритма в отношении чего-нибудь гораздо более крупного.

Одно из основных преимуществ ЯМР в том, что его методы очень хорошо формализованы, кроме того, это все же не микроуровень в чистом виде, там имеют дело с макроскопическими наблюдаемыми величинами. Скорее, это удобный «мостик», который перекинут между микро- и макроуровенем.

Пипа, Вы хорошо написали про уравнение Лиувилля фон Неймана, могу добавить, что это уравнение иногда называют самым фундаментальным и основным уравнением Природы :). Уравнение общее, справедливо не только для микромира, помимо этого, методы анализа запутанности, которые используются в программе – тоже общие, они применимы для любых матриц плотности. Т.е. все основные алгоритмы применимы для произвольных систем, неважно, что подразумевается под двухуровневыми подсистемами (кубитами). Другое дело, что когда идет речь о какой-той конкретной ситуации (на том же макроуровне) придется немного поломать голову над корректной постановкой задачи (задать базис, построить аналог гамильтониана и т.д.) и из разумных соображений ее обосновать :).
А тестирование, вполне естественно проводить на тех системах, где это уже все сделано и есть решения.

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #124 : 05 Декабря 2007, 11:18:16 »

Кроме этого, я считаю, что программа и используемые в ней методы анализа систем в терминах состояний (включая несепарабельные состояния), применимы не только в физике, но и в других областях, например, в экономике, психологии и т.д. Правда, здесь придется ее немного «подгонять» под свои задачи. Главное, чтобы для объекта исследования (анализируемой системы) можно было ввести набор базисных состояний для двухуровневых подсистем. Затем нужно задать начальное состояние и оператор эволюции системы – те взаимодействия и силы, под действием которых состояние эволюционирует (аналог гамильтониана). Если это можно сделать, то можно будет использовать программу – анализировать эволюцию состояний и смотреть динамику запутанности.

Все зависит от того, на сколько реально широко вы ставите задачу. Вы можете остановиться на том, что есть, что сделано, и продолжать убеждать потенциальных пользователей - специалистов в прикладных областях, что программа имеет для них практический смысл. Как показывает опыт, метод убежедения не эффективен. Но можете поступить иначе.
"Немного подгонять" - оптимистично сказано. 70% труда хорошего программного продукта направлено на организацию диалога с пользователем, на организацию дружественного интерфейса.
(повторюсь, если вы вдруг не читаете посты, обращенные не лично к вам, см. пост от 04 Декабря 2007, 10:02:55)
Если рассматривать программу шире, с перспективой, как экспертную систему (ЭС), то две задачи -  организации ввода реальных данных в терминах, принятых специалистами-экспертами прикладной области, и интерпретации выходных данных  в их же терминах - не являются тривиальными, не являются "незначительной подгонкой", а самостоятельными задачами, имеющими целый ряд методов решения. Успешное решение задачи по организации "дружественного интерфейса" с потенциальными пользователями позволяет значительно расширить пользовательскую аудиторию без необходимости убеждать каждого в полезности программы, полезности квантовой теории, а показывая полезность, расширяя перспективы пользователей без необходимости для них изменять свои представления о реальности.
Честно скажу, что даже всерьез задуматься над подобной работой - уже инчае расставляет акценты. Значимость "перетекает" от "программного ядра", реализующего физ.-мат.метод,  в сторону  проблемм пользователя. Успешность программного продукта, таким образом, оказывается  в зависимости не от того, на сколько успешно реализовано "ядро", а от  от того, на сколько  удается "развернуться лицом" к пользователю.





Записан

Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #125 : 05 Декабря 2007, 12:48:11 »

April
Цитата:
Успешность программного продукта, таким образом, оказывается  в зависимости не от того, на сколько успешно реализовано "ядро", а от  от того, на сколько  удается "развернуться лицом" к пользователю.
при этом не маловажно, чтобы уровень ядра не  деградировал... т.е. программый продукт имел достаточно широкую полосу дружественного интерфейса...
нет... ну можно конечно довести интерфейс до состояния, когда он подменяет собой ядро, т.е. пользователь ваще не задумывается о содержимом, о том какие ноу хау применены в новой моделе, из-за чего расширены возможности и т.п.
но это допустимо для пользователя, который потребляет только конечный продукт...
дружественный интерфейс должен все-таки иметь многоуровневое строение, дабы каждый пользователь считал инфу по своему уровню осознания как минимум и имел возможность учиться более высокому уровню осознания...
Записан
Vincent Law
Пользователь
**
Сообщений: 97


Просмотр профиля
« Ответ #126 : 05 Декабря 2007, 14:13:39 »

   Т.е. тут не тот случай, когда программу подгоняют под реализацию какой-то задачи, а, наоборот, случай, когда идет испытание определенного алгоритма в целях исследования эффективности его применимости для практических целей.
То есть, практическая цель программы уже вложена в алгоритм, а теперь идёт исследование эффективности этого алгоритма? Понял.
Цитата:
   И поэтому питать к проекту какие-либо повышенные ожидания, на мой взгляд, не стоит. Он изначально был задуман, как программная реализация определенного алгоритма, и вопрос об изменении или замены алгоритма другим даже не ставится. Иначе это будет уже другой проект.
Об этом никто и не говорит. Я просто заинтересовался Вашей фразой "алгоритм, который моделирует". Но похоже на то, что я её не так понял))
Цитата:
    То, что положено в основу проекта, - это численное решение уравнения Лиувилля – фон Неймана. И если вы не против, то я немного расскажу об этом, хотя прямого вопроса по этому поводу вы не задавали.
Спасибо. Любопытная информация...
Цитата:
При этом надо понимать, что любые предсказания (!) возможны лишь на основе предположения о том, что в будущем сохранятся какие-то параметры из прошлого состояния прогнозируемого процесса. Ведь в противном случае, будущее никак не зависело бы от текущего и прошлого состояния процесса, и его ни в какой мере невозможно было бы предсказать.
А можно ли сказать, что прошлое, настоящее и будущее состояния "запутаны" между собой неким образом? А в квантовой физике вообще вроде как времени нет?.. Вроде так?
Цитата:
Именно, постоянство каких-то характеристик ограничивает свободу процесса, и тем самым заставляет его будущее стать в какой-то мере предсказуемым.
А "постоянство каких-то характеристик" обязательно принадлежит именно фазовому пространству данной эволюционирующей системы, или может находится в некотором ином... пространстве, с которым данное запутано?..
Цитата:
А мне бы очень хотелось увидеть результат работы алгоритма в отношении чего-нибудь гораздо более крупного. На что я, собственно, и раскручиваю Доронина своими постами на форум :).
Действительно, было бы интересно увидеть это.
Цитата:
Вся проблема состоит в том, что математика с одинаковым успехом может оперировать как объектами, имеющими существенное сходство с реальными, так и чисто вымышленными представлениями, порожденными ею самой или фантазией математиков. И в том и в другом случае математика может создать ВНУТРЕННЕ непротиворечивое построение.
Ни один человек, каким бы он гениальным не был, не может придумать ничего, не имеющее никакого отношения к реальности. Другое дело - как найти отражение своей непротиворечивой модели в этой реальности? К примеру, многие модели математиков во время их создания считались чистой абстракцией, и лишь через множество лет они становились чуть ли не фундаментальными принципами описания реальности.
Цитата:
    Мы видим, что ниточка, соединяющая компьютерный «муляж» с реальностью истончилась до предела. И в этом можно убедиться даже на примере компьютерных игр, где симуляторы реальных процессов с легкостью соседствуют с полностью виртуальными конструкциями. Другими словами, компьютерной программе (как и программисту) нет дела до того, моделирует ли программа что-то, имеющееся в реальности, или же она порождает монстров, являющихся плодом нашего «больного» воображения :).
Извините, но это уже вопрос действительно чисто "эзотерический". С такой же лёгкостью многие утверждают, что то, что мы называем "реальностью" - такой же "плод нашего больного воображения".
Цитата:
    Причем это уже не «компьютерная болезнь», а скорее болезнь общечеловеческая, когда умствования, отделенные от практики порождают весьма замысловатые и логически непротиворечивые построения, которые, тем не менее, имеют очень слабое отношение к реальности.
А почему они должны относится к реальности, которую мы обычно воспринимаем? Это больше похоже на разведку, которая сперва исследует территорию, наблюдая через подзорную трубу, а уже потом только подходит и щупает. Конечно же, есть и такие "товарищи", которые только говорят, что смотрят в трубу, а сами просто... эээ... В общем, построения таких людей сотканы из тумана и внутренне противоречивы.
Цитата:
Причем, в «эзотерических» кругах эта болезнь приобрела размеры эпидемии :). Сочиняют все, кто во что горазд. И всю эту продукцию пытаются подать (а то и продать) за чистую монету.
Не иначе, как преддверие квантового скачка, или типа того. Толи ещё будет. И даже не думайте спастись!  Смеющийся
Цитата:
    Для того, чтобы математические выкладки и компьютерные расчеты имели под собой твердую почву, необходимо условие того, чтобы с одной стороны, исходные данные и принципы соответствовали реальному положению вещей, а с другой стороны, чтобы результаты подобных расчетов обязательно верифицировались с реальностью.
Полностью с Вами согласен. Именно поэтому я и предложил модель "текучего" самоизменяющегося алгоритма, который как раз и направлен на максимальное "сцепление" с входящим потоком. Такой алгоритм должен регулироваться этими потоками и не является привязанным к неким статическим "насильно" заданным принципам.
Вот только маленькая проблемма...
Человек воспринимает ограниченный "кусочек" реальности. А теперь представим такую программу, которая построена по "внутренне непротиворечивому формализму". И вот она выдаёт результат, который не находит ответа в этом "кусочке" реальности . Означает ли это, что программа не имеет никакого отношения к реальности вообще?..
Цитата:
   В противном случае, мы получим очередную программу для вычисления даты конца света.
И в этом случае не стоит переживать и жалеть затраченных усилий - в наше время и такие программы неплохо ценятся!  Смеющийся

    У меня есть некоторые подозрения, что последняя часть Вашей реплики об отрыве построений от реальности также выступает намёком в сторону моих построений...)) Если так, то должен Вам возразить. Также позвольте всё же кратко обрисовать всю модель, части которой я описал в моих прошлых двух постах. Признаю, что по всей видимости им место не в этой теме, но уже не вижу целесообразным "перебираться" в другую.

   В прошлых постах я дал описание модели, состоящей из нескольких колец и ядра. Всю эту совокупность можно назвать "диском". Количество колец условно и зависит от конкретной задачи. Можно сказать, что кольца - это развёрнутые процессы, которые свёрнуты, "закодированы" в ядре. Первичные образы всех колец должны быть изначально заложены в ядре, чтобы можно было запустить систему. Достаточно создать ядро, а запустив его, кольца инициируются одно за другим.
  Такой диск сможет принимать некоторые данные из внешнего мира, совершать над ними некоторые действия и возвращать во внешний мир ответ. Но всё это он будет делать по шаблону. По тому шаблону, по которому эти кольца и были созданны. Но как сделать так, чтобы этот диск изменялся? Можно закодировать в ядре изменения, которые должны происходить с диском, но и это будет изменения по шаблону. Как сделать так, чтобы этот диск изменялся не по статичной схеме, а в зависимости от внешнего мира и внутреннего двигателя?.. Непростая задачка, но у меня есть некоторые любопытные мысли, которыми я хотел бы поделится, но ещё не придал им необходимой ясности... Могу пока лишь передать некоторые образы:
- Надо сложить два диска, центры которых будет объединять одно общее ядро.
- Необходимо, чтобы диски вращались в противоположные стороны.
- Разность вращения означает, что циклы у этих дисков противоположны. Когда "верхний" диск делает "вдох", то "нижний" делает "выдох", и наоборот. Можно даже представить, что "воздух" перетекает через ядро из одного диска в другой и обратно.
- Внеший мир, из которого "вдыхает" верхний диск должен отличаться от того, которым "дышет" нижний.
- Оба диска должны быть плотно запутаны друг с другом, но не должны иметь никакой возможности "узнать" друг о друге методами, лежащими в своей плоскости колец...

Я сам ещё толком не понимаю, что это такое, но что-то прикольное...  Показает язык
Записан

"...Пока я часть этого мира - за мной кто-то наблюдает,
и я не часть этого мира, когда только наблюдаю за ним...
...Невозможно быть частью этого мира.
Это неопровержимая истина..."
(ErgoProxy, Meditatio XI - Anamnesis)
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #127 : 05 Декабря 2007, 16:47:28 »

То есть, практическая цель программы уже вложена в алгоритм, а теперь идёт исследование эффективности этого алгоритма? Понял.

    Боюсь, что тут дело обстоит несколько по-иному. Программа – это алгоритм эволюции системы, вытекающий из уравнения Лиувилля – фон Неймана. Т.е. здесь само это уравнение и есть алгоритм, а программа его всего лишь применяет его по отношению к произвольным входным данным.
    В качестве аналогии могу привести компьютерную игру «бильярд» (симулятор), которая катает виртуальные шары в полном соответствии с физической моделью, основанной на законах сохранения импульса и энергии. Подобные игры-симуляторы существуют и для многих других процессов. Например, в футбольной игре «FIFA2005» движение мяча осуществляется по физической модели, близкой к реальности. Самолетные симуляторы  применяют к поведению самолета законы аэродинамики (пусть и в сильно упрощенном виде). Разного рода пушки и гаубицы стреляют в компьютерных играх снарядами, движение которых программа вычисляет по законам баллистики. Таких примеров можно привести очень много.
    Т.е. во всех играх подобного рода, программисты специально внесли алгоритм эволюции, подобный действию реальных законов природы.  Ведь в играх нет силы тяжести, и только от создателей игры зависит степень подобия виртуального мира земным условиям.
    Примерно подобным же способом осуществляется программная симуляция полета космических аппаратов, которая всегда предшествует реальному запуску. Т.е. программа в таких случаях играет в виртуальном мире роль вершителя законов природы. При этом сами эти законы вложены в алгоритм программы.
    Поскольку уравнение Лиувилля – фон Неймана тоже с полным правом можно считать законом природы, то проект Доронина в данном случае представляет точно такой же симулятор, который на мониторе компьютера проигрывает нам сюжет, получающийся из начальных (входных) условий. Подобно тому, как в компьютерной игре игрок только производит выстрел, держа оружие в каком-то произвольном положении, а программа, руководствуясь законами баллистики, вычисляет траекторию пули и отрисовывает куда она попала.
    По-видимому, Доронин считает уравнение Лиувилля – фон Неймана применимым не только в микро- и макромире, а и на «тонких планах бытия». Т.е. проводит максимально возможную экстраполяцию этого закона сохранения на все Бытие в целом. Однако осуждать его за это не надо, поскольку даже на иконах рисуют ангелов с крылышками :), тем самым подразумевая, что и на ангелов действует закон всемирного тяготения и законы аэродинамики.

А можно ли сказать, что прошлое, настоящее и будущее состояния "запутаны" между собой неким образом? А в квантовой физике вообще вроде как времени нет?.. Вроде так?

    Да, пожалуй, можно сказать, что прошлое, настоящее и будущее состояния запутаны между собой, поскольку почти всегда существует корреляция между состояниями в различные моменты времени. Вот разве только у игральных костей это не запутано, т.к. результаты следующего броска не зависят от предыдущего.
    А время в квантовой физике есть :), хотя там это не ход часов, а что-то вроде смены состояний. Если ничего не меняется, то и время как будто стоит :), а как идет какая-либо эволюция (в смысле любого изменения вообще), то вполне можно говорить о времени, как о последовательности состояний. В данной программе время существует явно, и именно оно откладывается по оси абсцисс на графике, приведенном Дорониным.
    Кроме того, само уравнение Лиувилля – фон Неймана имеет прямое отношение к решению, так называемого, ВРЕМЕННОГО уравнения Шредингера (от слова «время»), которое явно содержит в себе параметр времени.

А "постоянство каких-то характеристик" обязательно принадлежит именно фазовому пространству данной эволюционирующей системы, или может находится в некотором ином... пространстве, с которым данное запутано?..

    Фазовое пространство – это не то пространство, куда можно съездить на экскурсию по турпутевке :). Фактически, это лишь иное название состояния системы, изменение параметров которой во времени может быть представлено в виде графика в некотором пространстве. Например, если вы на протяжении вашей жизни растете и толстеете :-), то эту эволюцию можно представить в двумерном фазовом пространстве с осями «высота» и «толщина».
    Ставить вопрос о том, ГДЕ находится фазовое пространство, просто смешно :). Если оно где и находится, то только у нас в уме :), поскольку «пространство» - это, прежде, всего математическое ПОНЯТИЕ. И, тем не менее, пространственные представления имеют прямое отношение ко многим реальным явлениям, поскольку здесь наблюдается что-то вроде изоморфизма (подобия) между реальным положением вещей и их отражением в человеческих понятиях. Например, если на графике ценовой динамики кривая зашкаливает, то это соответствует тому, что в экономике государства происходят инфляционные процессы и жизнь становится дороже, хотя сам этот график в физическом плане нигде не существует, а является лишь частной проекцией фазового пространства.
 
Ни один человек, каким бы он гениальным не был, не может придумать ничего, не имеющее никакого отношения к реальности.

   Сейчас вы перепеваете чужие слова, не удосуживаясь вникнуть в их настоящий смысл. Не надо ставить знак равенства между истиной (т.е. совпадения с реальностью) и всем тем, что к ней имеет какое-либо отношение. Например, ложь ВСЕГДА имеет отношение к реальности! Другое дело, что в отличие от правды это уже не отношение подобия, а его антипод. Ложное утверждение о том, что у вас в кармане лежит миллиард баксов, несомненно, имеет прямое отношение к реальности уже только потому, что оперирует тем же набором предметов. Т.е. и ваш карман, и миллиард баксов в природе существуют, да вот только вся загвоздка в том, что друг в друге они не лежат :).
   Гениальность состоит не в том, чтобы выдумывать то, чего не существует, а в том, чтобы понять те реальные ОТНОШЕНИЯ, которые связывают элементы реальности между собой!


Другое дело - как найти отражение своей непротиворечивой модели в этой реальности? К примеру, многие модели математиков во время их создания считались чистой абстракцией, и лишь через множество лет они становились чуть ли не фундаментальными принципами описания реальности.

    Реальность и есть единственное мерило в данном вопросе. Как только математическая модель оказывается задействована в описании реальности, то ровно с того же самого момента времени она перестает быть чистой абстракцией, а становится одним из инструментов описания. Т.е. сама «чистота» абстракции, как раз и является мерой того, насколько это абстрактное представление может быть применено к реальным объектам. При этом может случиться и так, что реальность задает загадки,  для решения которых приходится изобретать новые абстракции, чтобы описать и понять новое. А может быть и так, что для этой цели оказываются пригодными какие-то из уже доступных нам абстракций, которые ранее мы применяли совсем для других целей. Тут уже наступает новая жизнь таких абстракций, которые обретают новый (физический!) смысл, которого до этого не имели. Например, матричный анализ был известен задолго до появления квантовой механики, а после появления последней стал самым необходимым инструментом. Причем стал не сразу, а лишь после того, как показал свою эффективность при вычислениях.
   P.S.: некоторые затронутые вами вопросы я оставила без комментариев, поскольку в данной теме намерена обсуждать исключительно вопросы, явно связанные с темой «Численный анализ многокубитных систем». В противном случае, тема просто погибнет под натиском «эзотериков», постоянно пытающихся запостить сюда свои «откровения» :). Однако это не должно восприниматься вами, как ограничитель, поскольку на форуме более чем достаточно места для таких разговоров. Есть даже специализированный раздел для этих целей.
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #128 : 05 Декабря 2007, 17:23:33 »

Vincent Law
у реакции Pip`ы несколько иная хронология...
 касаема она того, что она выразила словами:
Цитата:
Причем это уже не «компьютерная болезнь», а скорее болезнь общечеловеческая, когда умствования, отделенные от практики порождают весьма замысловатые и логически непротиворечивые построения, которые, тем не менее, имеют очень слабое отношение к реальности. Причем, в «эзотерических» кругах эта болезнь приобрела размеры эпидемии . Сочиняют все, кто во что горазд. И всю эту продукцию пытаются подать (а то и продать) за чистую монету.

вот еще и это из свеженького можно добавить в ту же кучу:
Цитата:
P.S.: некоторые затронутые вами вопросы я оставила без комментариев, поскольку в данной теме намерена обсуждать исключительно вопросы, явно связанные с темой «Численный анализ многокубитных систем». В противном случае, тема просто погибнет под натиском «эзотериков», постоянно пытающихся запостить сюда свои «откровения» . Однако это не должно восприниматься вами, как ограничитель, поскольку на форуме более чем достаточно места для таких разговоров. Есть даже специализированный раздел для этих целей.
- именно это лейтмотив всего ее умствования, которое себе то она позволяет... которое практикой в том смысле, в каком она требует от других тоже не подкреплено...
вот только история доказывает, что науки без умствования не было бы ваще, т.к. слишком большое количество открытий сделано "во сне", т.е. не в реальной практике, которую требует практиковать Pipa... да и умствования математиков таки приносят свои плоды даже по прошествию весьма впечатляющих периодов - Жозеф Лиувилль умствовал в 1809-1882 годах Подмигивающий
вот только... каждый практикует по уровню своего осознания, т.е. лепит из того что было в наличие на момент практики, соответственно то и получает... т.е. все результаты соответствуют уровням осознания В замешательстве

что касаемо дисков...
опять же сошлюсь на слова Pip`ы:
Цитата:
К сведению тех, кто как в танке . Процедуры матричного анализа, подобные приведенной мной, уже давным-давно широко используются в психологии (psychometrics) под общим названием "Факторный анализ".

- это и есть "вдыхающий диск", а "выдыхающий" выдал программу, которая сейчас работает в задачках по квантам со спинами...
при чем, в выдыхающем диске кольцо всего одно - метод тыка... который взят из моего умствования здесь на форуме, что психология и кванты имеют дело с одними и теми же процессами... таким макаром, мое умствование приобрело реальную практику Показает язык
так что... образ дышащих дисков - вполне работающая модель Подмигивающий
« Последнее редактирование: 05 Декабря 2007, 19:30:07 от Любовь » Записан
Vincent Law
Пользователь
**
Сообщений: 97


Просмотр профиля
« Ответ #129 : 05 Декабря 2007, 18:15:10 »

у реакции Pip`ы несколько иная хронология...
Возможно, но моим описаниям "дисков и ядра" действительно в этой теме не самое подходяще место. Правда, уже наверное поздно перебрасывать их куда-то ещё, да и смысла...
Касательно "дышаших дисков"... Ща сообразил, что вся эта намалёванная мной конструкция напоминает нашу галактику, или летающую тарелку, в общем фигня какая-то... Да ну её...  Смеющийся
Записан

"...Пока я часть этого мира - за мной кто-то наблюдает,
и я не часть этого мира, когда только наблюдаю за ним...
...Невозможно быть частью этого мира.
Это неопровержимая истина..."
(ErgoProxy, Meditatio XI - Anamnesis)
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #130 : 06 Декабря 2007, 22:42:16 »

Vincent Law

Цитата:
- Надо сложить два диска, центры которых будет объединять одно общее ядро.
- Необходимо, чтобы диски вращались в противоположные стороны.

Очень похоже на одно из наиболее простых наглядных представлений кубита (двухуровневой системы). Суперпозицию двух его альтернативных состояний очень часто для наглядности так и представляют, как одновременное вращение по часовой и против часовой стрелки.

Насчет «дыхания» в противофазе – это циклическая эволюция кубита между двумя его сепарабельными состояниями (между полюсами на сфере Блоха) :).

Pipa

Цитата:
По-видимому, Доронин считает уравнение Лиувилля – фон Неймана применимым не только в микро- и макромире, а и на «тонких планах бытия». Т.е. проводит максимально возможную экстраполяцию этого закона сохранения на все Бытие в целом. Однако осуждать его за это не надо, поскольку даже на иконах рисуют ангелов с крылышками :), тем самым подразумевая, что и на ангелов действует закон всемирного тяготения и законы аэродинамики.

Я бы несколько иначе сказал – не уравнение экстраполируется на «тонкие планы», а наоборот, они (тонкие уровни) получаются из уравнения в результате решения, когда учитываются несепарабельные состояния и их иерархия. Можно несепарабельностью пренебречь, как это делалось раньше, тогда будут решения только для сепарабельных состояний (материального мира).
Это примерно как на рисунке Зурека – можно ограничиться классическим доменом (осью Z), но можно учесть несепарабельные состояния и описывать квантовый ореол, который окружает классический домен. На сфере Блоха это наглядно видно – можно «двигаться» вдоль оси Z, изменяя Pz и диагональные элементы МП (классические состояния), но можно изменять Px и Py, уходя с оси Z и попадая уже в квантовый ореол.
Записан
Vincent Law
Пользователь
**
Сообщений: 97


Просмотр профиля
« Ответ #131 : 07 Декабря 2007, 12:48:48 »

Очень похоже на одно из наиболее простых наглядных представлений кубита (двухуровневой системы). Суперпозицию двух его альтернативных состояний очень часто для наглядности так и представляют, как одновременное вращение по часовой и против часовой стрелки.
А можно пару слов о сознании как о состоянии замолвлю? Дело в том, что во многих традициях человека описывают как существо с двумя восприятиями. Тоесть, это наше обычное эго и дубль. Они одновременно живут параллельно друг другу в разных "фазовых пространствах" и даже не подозревают об этом, хотя плотно запутаны друг с другом нелокальным образом. Вот и получается кубит с двумя альтернативными состояниями?
Насчет «дыхания» в противофазе – это циклическая эволюция кубита между двумя его сепарабельными состояниями (между полюсами на сфере Блоха) :).
Если говорить о фазах, то есть такая штука под названием "тайна видящего сон и видимого во сне". Это означает, что наше бодрствование - это сон дубля, а наш сон - это бодрствование дубля. Они по очереди сновидят друг друга и являются основанием для друг друга, источником питания.
Мне кажется, что именно наличие второго полюса, альтернативного состояния, второго восприятия создаёт неопределённость, необходимую для свободы воли, создаёт сам феномен осознания, превращая нас из механизмов в магических существ, потенциально обладающих свободой.
У меня даже возникла мысль - а что если попытаться смоделировать программу на этой кубитной схеме? Возможно, получится искуственный интеллект?  Смеющийся

И ещё прикол. Когда я разбирался с Древом Жизни, то в качестве эксперимента наложил эту схему на головной мозг. Сейчас для меня является очевидным, что ядро этих двух описанных выше дисков связано с  Даат. А на это место приходится шишковидная железа головного мозга. К чему бы это? Знать бы ещё анатомию мозга... Понятно только, что правый столб - это правое полушарие, левый столб - левое полушарие, и что высшая триада попадает в затылочные доли...
Записан

"...Пока я часть этого мира - за мной кто-то наблюдает,
и я не часть этого мира, когда только наблюдаю за ним...
...Невозможно быть частью этого мира.
Это неопровержимая истина..."
(ErgoProxy, Meditatio XI - Anamnesis)
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #132 : 07 Декабря 2007, 13:08:27 »

смотря какую анатомию...
анатомия препарированного мозга здесь только помешает, потому как препарированное шишковидное тело оч не похоже на на функционирующее... тот же кубит с двумя альтернативными состояниями...
шишковидное тело - один из основных порталов связи, второй - чаша, который часто путают с сердечной чакрой...
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #133 : 10 Декабря 2007, 13:49:00 »

СИДу.

С форума "Физика магии":
Гамильтониан записывается исходя из задачи, из тех взаимодействий, которые нас интересуют. Обычно исходят из начального состояния системы и тех сил, которые имеют место, и смотрят, как изменяется состояние системы под действием этих сил.

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

Меня интересует последнее: возможность самостоятельно, руководствуясь рекомендациями, построить гамильтониан.
У вас в программе уже реализована эта возможность?
Записан

С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #134 : 10 Декабря 2007, 19:09:01 »

April

Цитата:
Меня интересует последнее: возможность самостоятельно, руководствуясь рекомендациями, построить гамильтониан.
У вас в программе уже реализована эта возможность?

Пока нет. В принципе, гамильтонианы строятся на основе довольно ограниченного числа операторов, и из них, как из «кубиков» можно собрать любой другой гамильтониан. Здесь надо с Пипой обсуждать, пока этот вопрос не затрагивался.

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #135 : 11 Декабря 2007, 06:42:05 »

пока этот вопрос не затрагивался.
Понятно. Спасибо.
Записан

April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #136 : 12 Декабря 2007, 07:28:46 »

СИДУ.
Прошу рощения, но я опять к тому же.
В программе будет предусмотрен выбор некоторого стандартного гамильтониана из имеющегося набора, с объяснением для каких задач используется тот или иной гамильтониан.
Из рисунка, размещенного в теме, видно, что у вас есть список гамильтонианов. Вы можете рассказать о том, что задумавали - о каждом стандартном гамильтониане, реализованном в вашей программе, и круге соответствующих ему задач?
Записан

Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #137 : 13 Декабря 2007, 20:03:56 »

С.И. Доронин

    Хочу поддержать в ваших глазах просьбу April о возможности самостоятельного построения гамильтониана. У меня есть на этот счет предложение, хотя и сырое.
    А предложение таково. При в некоторых расчетах ПМР рассчитывают гамильтониан системы, состоящей из n протонов, на основании ЗАДАННЫХ химсдвигов и констант ССВ (Спин-Спинового-Взаимодействия). Причем порой берут эти данные из таблиц. Получающийся при этом гамильтониан имеет вид разряженной блочной матрицы, блоки которой имеют габариты, соответствующие биномиальным коэффициентам. Например, для 7 кубитов будет построена матрица гамильтониана размером 27=128=1+7+21+35+35+21+7+1. При этом блоки расположены именно в этом порядке на главной диагонали, а вне их всегда нули:

Этот рисунок - только трафарет, т.к. сама я такого гамильтониана в числах не строила, а потому просто зачернила в матрице области, в которых МОГУТ БЫТЬ числа, отличные от нуля.
   Чтобы сравнить этот шаблон с гамильтонианами, которые строит программа, я попросила ее нарисовать такие же картинки для заложенных в нее типов гамильтонианов, преобразовав числа в цветовые точки. При этом ячейка матрицы гамильтониана с максимальным по абсолютной величине числом будет выглядеть полностью черной точкой, а все остальные будут серыми с тем же процентом черноты, каков процент составляет их численное значение от максимального. Такие картинки весьма наглядны, в отличие от числовых матриц такого размера (128x128).
   Вот как выглядят в таком представлении все матрицы наших гамильноанов для 7-ми кубитного случая.
MQ:

Dz:

XY:

Heisenberg:

   Очевидно, что среди них нет того гамильтониана, который бы я хотела, поскольку во всех этих матрицах можно найти заполненные клетки в тех местах, где им быть на моем трафарете не положено.
   Изложу причины, чем предлагаемый мной гамильтониан видится мне привлекательным для практических целей.
   Во-первых, для его построения не надо вручную вводить всю матрицу, а она строится на основании констант, которых значительно меньше. Например, в 7-кубитном случае размер матрицы гамильтониана 128x128=16384 (одуреешь вводить!), а для того, чтобы построить ее из констант, нужно ввести только 7 значений химсдвигов и те  константы ССВ, которые отличны от нуля (а таких в практических случаях бывает не так уж и много).
   Во-вторых, April это должно понравиться, т.е. константы ССВ на ее языке называются симпатиями :). И уж тут-то "физический смысл" на макроуровне им был бы заведомо обеспечен. Остается не совсем ясной трактовка химсдвига для таких случаев, то, полагаю, что смысл этот вполне можно было бы натянуть, если постараться. В конце концов, это что-то вроде номинала у карт :).

   P.S. Нет ли у вас какой-нибудь книжки про ЯМР/ПМР, где бы построение такого гамильтониана было описано? Или хотя бы любой иной для общего образования, но обязательно в электронном виде! В интернете упоминается книжка Александрова И.В. "Теория ядерного магнитного резонанса" (1964 г.), но найти место,  где бы ее давали скачать бесплатно, мне не удалось.
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #138 : 14 Декабря 2007, 06:47:02 »

С.И. Доронин
.. рассчитывают гамильтониан системы, состоящей из n протонов, на основании ЗАДАННЫХ химсдвигов и констант ССВ (Спин-Спинового-Взаимодействия). Причем порой берут эти данные из таблиц.  
Спасибо. Понятно. Я так примерно и предполагала.  Подмигивающий
Константы - это константы, дают описание статическому аспекту системы. Химсдвиги - это перемены, дают описание динамическому аспекту системы. А  конкретные значения констант и сдвигов обнаруживаются  эмпирическим путем.
Да, это самый общий подход.
Есть еще вариант - задавать динамику системы не в значениях, а в правилах. Но не знаю, возможно ли это в квантовом описании?

 Во-вторых, April это должно понравиться, т.е. константы ССВ на ее языке называются симпатиями :).
Ты  это тут понаписала, чтобы сделать  мне приятное? Подмигивающий
Спасибо. Маленький шаг в предверии большой дружбы!  Смеющийся
Но сначала, как минимум,  научись говорить на моем языке, ну,  чтобы не ошибаться в догадках, что мне понравится, а что нет.  Смеющийся
Остается не совсем ясной трактовка химсдвига для таких случаев, то, полагаю, что смысл этот вполне можно было бы натянуть, если постараться. В конце концов, это что-то вроде номинала у карт :).
Вот-вот  - сначала научись говорить, ну, чтобы не пороть чушь.   Подмигивающий
Записан

Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #139 : 14 Декабря 2007, 09:20:54 »

   Изложу причины, чем предлагаемый мной гамильтониан видится мне привлекательным для практических целей.
   Во-первых, для его построения не надо вручную вводить всю матрицу, а она строится на основании констант, которых значительно меньше. Например, в 7-кубитном случае размер матрицы гамильтониана 128x128=16384 (одуреешь вводить!), а для того, чтобы построить ее из констант, нужно ввести только 7 значений химсдвигов и те  константы ССВ, которые отличны от нуля (а таких в практических случаях бывает не так уж и много).
   
если бы Творец придерживался бы такой же точки зрения, то в природе не было бы много образия уникальностей... и не было бы феномена Пипа...
представьте себе гамильтониан человека без индивидуальных отличий, как впрочем и всех проявлений природы - всех тварей даже не по паре, т.е. ни какого развития...
то самое - когда простота хуже воровства В замешательстве
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #140 : 14 Декабря 2007, 10:13:00 »

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

Записан

Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #141 : 14 Декабря 2007, 10:53:05 »

April

Цитата:
Во-вторых, April это должно понравиться, т.е. константы ССВ на ее языке называются симпатиями .

из этих слов Пипы на роль спин-спинового взаимодействия скорее напрашивается Ваш термин анцилла
симпатии - Пипин термин, он использован в ее посте о симпатиях пользователей форума Крутой
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #142 : 14 Декабря 2007, 13:11:09 »

из этих слов Пипы на роль спин-спинового взаимодействия скорее напрашивается Ваш термин анцилла
симпатии - Пипин термин, он использован в ее посте о симпатиях пользователей форума Крутой
Я всегда очень осторожно провожу  всякого рода параллели  и интерпретации. Все надо делать не абы как. Существуют соответствующие законы модельного представления, отступление от которых на практике приводит к плачевным результатам, если не сказать - катастрофическим. А поболтать на форуме - это можно и безответственно за свои слова.  Так что если и есть тут кто любитель за здорово живешь "натягивать смыслы" и проводить вольные интерпретации так это сама Пипа. Смеющийся 
Записан

Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #143 : 14 Декабря 2007, 21:15:56 »

   Наши ведьмочки, кажется, не успели договориться о том, чем им Pipa на форуме мешает. Вот и выступают вразнобой, выдвигая к ней противоречивые претензии. Как может Pipa быть "вызубрившей необходимое так, что от зубов само отскакивает" и одновременно "любительницей проводить вольные интерпретации"? Тут уж к чему-то одному придираться надо. Зубрить и интерпретировать - прямо противоположные вещи. А пока можно считать, что Pipa находится как раз в точке золотой середины между этими противоположными мнениями. :)
   Пока Доронин не подает признаков жизни :), рискну посоветовать воспользоваться инструментом, который я сама нашла только сегодня. Это программа с сайта Висконсинского университета в Мэдисоне http://www.chem.wisc.edu/areas/reich/plt/windnmr.htm . На этой же страничке эту программу дают скачать - http://www.chem.wisc.edu/areas/reich/plt/dnmr71set.zip
   Это программа-симулятор, т.е. инструмент позволяющий "виртуально" моделировать спектры ЯМР по алгоритму, о котором я упомянула в своем предыдущем сообщении. При запуске программа спросит пароль, в ответ на что, надо нажать кнопочку "Exit" (выход). Иногда это приходиться делать дважды. После этого программа запускается в демонстрационном режиме. Этого будет вполне достаточно, т.к. нам не реальный спектр надо моделировать, а лишь "ощутить" сам процесс.
   То, что моделируются спектры ЯМР страшиться не надо. Для наших целей изучение спектроскопии ЯМР не требуется, поскольку интерес будет представлять не интерпретация таких спектров, а "ощущение" квантовой запутанности на, пожалуй, одном из самых простых и наглядных примеров.
   Рискуя снова вызвать неудовольствие вольностью своей интерпретации, я, тем не менее, посчитаю нужным свою интерпретацию озвучить. Однако мыслящему человеку это не должно быть помехой строить свои собственные интерпретации увиденного.
    Итак, скачиваем архив с инсталлятором и запускаем его на инсталляцию, как это всегда делается. После финиша в списке программ появится папочка "WinDNMR" откуда ту программу можно запустить. К сожалению, на рабочий стол инсталлятор иконку не устанавливает.
    После запуска жмем "Exit" на диалоге, спрашивающем пароль, до тех пор, пока он не закроется. И вот перед вами картинка, состоящая из 4-х пиков: два средних большие, а двое по бокам маленькие.
    На первых порах установите константу взаимодействия (КССВ) равной нулю. В программе она называется Jab и отмечена красным заголовком, т.к. ямээрщики всегда обозначают эти константы буквой "J", указывая в нижнем индексе ту ПАРУ, взаимодействие между членами которой эта константа измеряет. Проще всего это сделать не редактированием числа, а тыканьем в знак минуса, который уменьшает значение KCCB на единичку. После чего из четырех пиков останутся только два, расположенные строго над стрелками "A" и "B", которые можно передвигать мышкой, вместе с пиками. При этом положения стрелок "A" и "B" как раз указывают на горизонтальной числовой оси значение химсдвига для протонов "A" и "B", соответственно.
    А вот теперь настало время для интерпретации, поскольку без нее гонять эти параметры будет не просто неинтересно, но и бессмысленно. Сразу предупрежу, что перед нами - НАИПРОСТЕЙШИЙ СЛУЧАЙ, в этом его истинная красота, а совсем не недостаток! Нельзя сразу окунаться в интерпретацию сложных случаев, не уяснив себе самого элементарного.
    Предельная простота этого случая состоит в том, что мы составляем СИСТЕМУ из двух ранее автономных элементов. Т.е. это буквально модель рождения самой простой системы, поскольку из меньшего числа элементов сложить ее невозможно. Причем сами элементы "A" и "B" тоже являются предельно элементарными, потому что у них вся индивидуальность исчерпывается значением химсдвига, т.е. одним каким-то числом. Только тем, что у "A" это число одно, а у "B" другое, они и различаются между собой. И больше ничем! А буквы "A" и "B" существуют только для нашего удобства задания им числового значения.
    Стартовое значение у этой программы A=142.5, В=157.5. Т.е. относительно произвольного центра (Vcenter=150) "A" и "B" РАЗОШЛИСЬ на расстояние 15 единиц (Vab=15) друг от друга.
    После того, как мы обнулили Jab, мы полностью разрушили всякую связь между элементами, поскольку эта константа и есть МЕРА ТАКОЙ СВЯЗИ. При этом СИСТЕМА оказывается буквально разрубленной на две НЕЗАВИСИМЫХ подсистемы, каждая из которых состоит из одного элемента. В какой-то мере ее и системой нельзя назвать, т.к. своих собственных "системных" свойств у нее не возникло, поскольку составляющие ее элементы на 100% сохранили ту свою индивидуальность, которой обладали по одиночке. Для того, чтобы система обрела новые качества, отличные от качеств составляющих ее элементов, элементы должны хотя частично "РАСТВОРИТЬСЯ ДРУГ В ДРУГЕ"!!! Т.е. системные свойства ВСЕГДА рождаются за счет УТЕРИ ПЕРВОНАЧАЛЬНОЙ ИНДИВИДУАЛЬНОСТИ составляющих ее элементов. А в пределе единения элементы буквально сливаются в ОДНО ЦЕЛОЕ настолько, что никакими средствами не удается их различить. И это проистекает не от недостатка наших возможностей, а исключительно потому, что элементы НА САМОМ ДЕЛЕ утеряли свою индивидуальность настолько, что уже перестали быть "составными кирпичиками". А по квантовому формализму элементы системы вообще нельзя рассматривать, как индивидуальности, как только "взаиморастворение" только началось (т.е. при J > 0).
    И вот пока мы держим Jab=0 наши "A" и "B" сидят на трубе :). Давайте же теперь установим взаимосвязь между ними, ткнув раза два мышкой на "+" (Jab=2). Что мы видим? - Пики раздвоились! Что же тут произошло?
    В моей вольной интерпретации это будет выглядеть так :). Будучи предельно элементарными, каждый из наших элементов может быть всего в двух состояниях - веселом и грустном :). Поэтому мерой их взаимосвязи может служить ОТКЛИК одного на настроение другого. А поскольку наши элементы предельно элементарны (состоят из одного единственного числа), то единственным откликом, доступным для элемента, может быть его ерзанье по числовой оси. Например, когда сосед находится в веселом состоянии духа, то сочувствующий пододвигается к нему чуть поближе, а когда тот не в духе ровно на то же расстояние отодвигается.
    Поскольку настроение у протонов меняется так быстро, что нам и не заметить, то мы можем наблюдать только среднестатистический случай, когда элементы веселятся и грустят равное время. А выглядит это так, как будто они веселятся и грустят одновременно :). Из-за этого и пики у нас начинают двоиться, но старую величину площади они сохраняют.
    Это раздвоение пока невелико, поскольку J составляет пока лишь 10% от расстояния (2/15). Теперь жмем  несколько раз тот же "+", пошагово увеличивая J. И видим чудо! При J=5 внутренние части пиков стали уже вдвое превышать внешние, на J=10 уже втрое, а на J=15 (т.е. уже 100% от расстояния) раз в шесть (на глаз). При J=75 (500%) центральные пики приблизились друг к другу в плотную, а боковые потеряли всю свою интенсивность и отодвинулись к краям экрана. И вот при J=150 (1000%) можно считать, что элементы практически слились воедино. При этом обращаю внимание на то, что позиции "A" и "B" даже не сдвинулись с места! Почему? - А потому, что сигналы по-прежнему имеют в этих точках свои центры тяжести. Боковые пики измельчали, но зато ушли так далеко в бок, что их "давление на рычаг" остается прежним.
    Аналогии с макромиром здесь вполне можно применять, поскольку можно с полным правом сказать, что данная модель отражает процесс формирования ЛЮБОЙ системы. Другое дело, что в макромире все это происходит не так явно.
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #144 : 14 Декабря 2007, 22:50:52 »

Pipa
у пользователя сайта ustierechi в блоге есть ссылочка на сайт, а на нем есть такие слова, что мы все вместе есть целое... со всеми вытекающими...
правда эти вытекающие для каждого свои...
для Вас - мы почему-то должны с April договариваться, т.е. Вы лишаете нас права иметь собственное мнение, но себе не отказываете в том, что Вы называете триумфом...
не могли бы Вы  дать графическую интерпритацию этих взаимодействий?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #145 : 15 Декабря 2007, 00:07:07 »

April

Цитата:
Из рисунка, размещенного в теме, видно, что у вас есть список гамильтонианов. Вы можете рассказать о том, что задумывали - о каждом стандартном гамильтониане, реализованном в вашей программе, и круге соответствующих ему задач?

О гамильтонианах разговор долгий… Для начала я приведу те гамильтонианы, которые уже реализованы.



Это
1) многоквантовый (MQ) гамильтониан;
2) упрощенный гамильтониан диполь-дипольного взаимодействия (Dz);
3) так называемый XY-гамильтониан (иногда его называют флип-флоп гамильтониан);
4) гамильтониан Гейзенберга (Heisenberg).

Почему именно эти гамильтонианы были реализованы в первую очередь, объясняется довольно просто – ранее у меня уже были написаны программные коды для их построения.

Возможно, что приведенная стандартная форма записи гамильтонианов кому-то будет непонятна, думаю об этом тоже надо сказать несколько слов. Сначала об обозначениях. Я использую нотацию, принятую в ЯМР. Здесь операторы Iz, Ix, Iy – это матрицы Паули, умноженные на 1/2. В других областях гамильтонианы часто записывают непосредственно через матрицы Паули, таким образом, все различие будет в коэффициенте 1/2.

I+, I – это повышающий и понижающий операторы.

При записи гамильтонианов использовались соотношения:


Операторы I+i, Ii , действующие на i-й кубит, в совокупности с оператором Izi и единичным оператором составляют полный набор операторов. С их помощью можно записать любой гамильтониан – именно это я имел в виду, когда говорил о возможности построения гамильтониана, заданного пользователем.

Чуть позже я продолжу…
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #146 : 15 Декабря 2007, 00:14:32 »

   Доронину браво! Лучшего ответа для April нельзя даже представить! :):):):):)
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #147 : 15 Декабря 2007, 02:47:11 »

Pipa

:) Вид гамильтонианов, рано или поздно, все равно приводить придется. Постепенно, на их примерах, я постараюсь, если получится :), хоть как-то подвести к пониманию физического смысла гамильтонианов. Для выбора гамильтониана или его построения для какой-то конкретной задачи необходимо понимать, что и как надо делать.

Та блочная структура гамильтониана, о которой Вы упоминаете, довольно часто встречается. Я тоже имел с ней дело. В одной из наших работ: S.I. Doronin, E.B. Fel'dman, and S. Lacelle, J. Chem. Phys. 117, 9646 (2002), мы пользуемся такой блочной структурой MQ- гамильтониана, она здесь получается в приближении ближайших соседей, необходимо только перейти к другому базису, грубо говоря, переставить в гамильтониане строки и столбцы определенным образом.

Цитата:
P.S. Нет ли у вас какой-нибудь книжки про ЯМР/ПМР, где бы построение такого гамильтониана было описано? Или хотя бы любой иной для общего образования, но обязательно в электронном виде! В интернете упоминается книжка Александрова И.В. "Теория ядерного магнитного резонанса" (1964 г.), но найти место,  где бы ее давали скачать бесплатно, мне не удалось.

Пипа, а с сайта библиотеки мехмата МГУ http://lib.mexmat.ru/ Вы, случайно, не можете скачивать книги? Например, под обложкой книги Эрнста http://lib.mexmat.ru/books/12399 есть «скачать», или там идет надпись  «Скачать книгу с нашего сайта нельзя»?
После того, как прочитал Ваш вопрос, я туда зашел, можно сказать случайно, у меня все книги были открыты для скачивания, хотя раньше все время были закрыты. Сегодня опять доступ перекрыт. Такое вот маленькое чудо :). В общем, я оттуда скачал несколько книг:

Абрагам А. Ядерный магнетизм.
Абрагам А., Блини Б. — Электронный парамагнитный резонанс переходных ионов.
Эмсли Дж., Финей Дж., Сатклиф Л. Спектроскопия ядерного магнитного резонанса высокого разрешения (в двух книгах Том 1 и Том 2).
Эрнст Р., Боденхаузен Дж., Вокаун А. ЯМР в одном и двух измерениях.

Обращаю внимание на последнюю книгу, она более современным языком написана и к нам ближе, про гамильтонианы там достаточно много.

Сликтера «Основы теории магнитного резонанса» я тоже скачал одним файлом.

По физике квантовой информации несколько книг оттуда забрал:
Chuang I.L., Nielsen M.A. Quantum Computation and Quantum Information.
Zeh H.D. Basic Concepts and their Interpretation.
Joos E. Decoherence through interaction with the environment.
Менский М.Б. Квантовые изменения и декогеренция.
Валиев К.А., Кокин А.А. Квантовые компьютеры: надежды и реальность.

Все эти книги я залил на наш портал в директорию Books, можете брать по ftp. Хорошо бы их в наш файловый архив добавить.

Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #148 : 15 Декабря 2007, 04:19:39 »

Пипа, а с сайта библиотеки мехмата МГУ http://lib.mexmat.ru/ Вы, случайно, не можете скачивать книги? Например, под обложкой книги Эрнста
http://lib.mexmat.ru/books/12399 есть «скачать», или там идет надпись  «Скачать книгу с нашего сайта нельзя»?

   Летом получалось, а с тех пор, как отрубило.
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #149 : 15 Декабря 2007, 08:53:00 »

   Доронину браво! Лучшего ответа для April нельзя даже представить! :):):):):)
Ты права. Это хороший ответ. Это тот ответ, который мне нужен.
Знаешь, чем я не люблю твои ответы?
Тем, что ты все валишь в кучу - смешиваешь абстрактный формальный уровень и уровень конкретный - представлений и интерпретаций. С "вольными интерпретациями", в этом ты тоже права,  - это я уж размахнулась, сделала тебе комплимент авансом . Подмигивающий Скажи мне спасибо.  Я щедрая.  Смеющийся

На самом деле они у тебя как раз и не вольные, а подчиненные  твоему желанию составить конкуренцию ведьмочкам, в твоем языке это звучит так: выиграть войну.
Что, одна не справляешься?  Подмигивающий
Только вот что смешно: ты воюешь не на том поле, где находимся мы, и не теми средствами, которые можно нам противопоставить.  Смеющийся 
Т.е. ты воюешь не с нами. Мы же с тобой не воюем.  Смеющийся
С кем же ты воюешь, Пипа? С кем же ты ведешь свои битвы? 
Сама с собой?  Шокированный
Твоя ученость воюет с твоим же желанием занять свое место среди ведьмочек? Смеющийся Смеющийся Смеющийся
И кто побеждает в этот раз?
Опять ученость? Смеющийся Смеющийся Смеющийся
Похоже. Это постоянная тенденция.
На чудо я даже не надеялась..  Обеспокоенный

А мы на твое место среди других ученостей не посягаем. По крайней мере я, вот те крест!  Шокированный  (хотя в последнее время меня очень интересует классическая теория три-тканей. ссылочку не подскажешь?  это не за ради войны, боже упаси! словом не обмолвлюсь, так, для чтения на досуге Подмигивающий )

Ты посмеялась ответу СИДа?
Да, в этом ты тоже права, сходу я не разберусь.
Но меня очень даже устраивает, что ответ чисто формальный. Потому как с представлениями и интерпретациями я сама хорошо справляюсь, и чужие интерпретации мне только мешают.

А знаешь, что самое дорогое в ответе СИДа?
Раз он ответил именно так, значит он в меня верит.  Подмигивающий
Мне этого достаточно.
А понимание еще придет - в свое время и в свою меру.

Успехов в войнушке!
Битвы с самим собой, это, подруга, самые тяжелые битвы.
Сочувствую.

Записан

С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #150 : 22 Декабря 2007, 20:16:28 »

Продолжу про гамильтонианы.

Попытаемся теперь за операторами, через которые выражаются гамильтонианы, увидеть матрицы. Формулы гамильтонианов записаны для произвольного числа кубитов, вплоть до бесконечно больших систем. Если у нас есть N кубитов, мы знаем, что матрица гамильтониана должна быть размером 2N×2N, как получить ее из операторной записи гамильтониана? Это очень важный момент, если понять, как получается матрица гамильтониана из заданного набора операторов, то полпути к пониманию сути гамильтонианов будет пройдено :).

Когда смотришь на формулы и парные операторы типа IzIz, сразу может возникнуть вопрос – откуда появляются матрицы нужного размера, ведь матрицы Паули имеют размер 2×2 и их произведение, очевидно, имеет тот же размер?

Дело в том, что это не просто матрицы 2×2, это операторы. Они действуют на определенный кубит, который указан в нижнем индексе, это номер кубита в базисном векторе.

Таким образом, первый шаг, когда задано (известно) число кубитов – это задание стандартного базиса. Тем самым определяется размерность матрицы гамильтониана. Например, для двухкубитной системы это будут четыре базисных вектора |00>, |01>, |10>, |11> (размер матрицы 4×4). Для трехкубитной системы уже восемь векторов: |000>, |001>, |010>, |011>, |100>, |101>, |110>, |111> (размер матрицы 8×8 ), и т.д.

У нас три основных оператора: Iz, I+, I, матрицы которых имеют вид:


Напомню еще, что состояния индивидуальных кубитов в дираковских обозначениях |0> и |1> это вектор-столбцы (1  0)T и (0  1)T соответственно.

То, каким образом операторы действуют на состояние кубита, можно понять из следующих выражений.


Таким образом, каждый из операторов действует на кубит строго определенным образом – изменяет его состояние в соответствии со следующими правилами (сведем их в более компактную таблицу):

 
Этой таблицей можно пользоваться при построении гамильтонианов, записанных через операторы. Действие парных операторов тоже определяется этими одиночными операторами, только здесь уже нужно указывать, на какой кубит действует каждый из одиночных операторов. Например, выражение I+1 I2 означает, что при некотором заданном числе кубитов в каждом из базисных векторов нужно подействовать повышающим оператором на первый кубит и понижающим на второй.

В качестве самого простого примера построим XY-гамильтониан для двухкубитной системы. В этом случае, на каждый из четырех базисных векторов |00>, |01>, |10>, |11> нужно подействовать операторами гамильтониана:

HXY=1/2b12(I+1 I2 + I1 I+2).

Чтобы нам сразу получить матрицу гамильтониана, удобно построить следующую таблицу:


В ней базисные векторы расположены по строкам и столбцам. Результат действия операторов на базисные векторы заносится в эту таблицу, и в конечном итоге мы будем иметь матрицу гамильтониана. Делается это следующим образом – мы последовательно перебираем все базисные векторы (строки), а то состояние, которое получается в результате действия операторов, ищем среди столбцов матрицы. Затем, на пересечении данной строки и столбца ставим соответствующий множитель (константу взаимодействия).

Итак, берем первый базисный вектор |00>. Очевидно, что в результате действие как оператора I+1I2, так и оператора I1I+2 получаем ноль, поскольку повышающий оператор здесь в обоих случаях дает нулевой элемент.

Переходим к состоянию |01>. Первый парный оператор I+1I2 опять дает ноль, но второй I1I+2 здесь уже работает – он «переворачивает» состояние каждого кубита в обратную сторону и получается состояние |10>, которое мы ищем среди столбцов. В таблице на пересечении строки |01> и столбца <10| записываем множитель, который стоит при операторе, в нашем случае это 1/2b12.

Следующий базисный вектор |10>. Теперь наоборот, работает первый оператор I+1I2, а второй дает ноль. Получается состояние |01>, которое ищем среди столбцов таблицы. На пересечении |10> и <01| ставим соответствующий множитель, у нас это опять 1/2b12.

Теперь последняя строка гамильтониана |11>. Здесь тоже очевидно будет нулевой элемент за счет действия понижающего оператора.

Все остальные элементы матрицы заполняются нулями, в итоге мы получаем таблицу:

Ее элементы это и есть искомая матрица XY- гамильтониана для двухкубитной системы.

Алгоритм, который я здесь описал, используется для построения гамильтонианов, реализованных в программе.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #151 : 26 Декабря 2007, 21:00:46 »

Хорошие предновогодние новости!
   К великой моей радости я стала наконец-то обладательницей последней версии (декабрьской) CodeGear RAD Studio 2007 - мощнейшего инструмента для написания программ. После почти полуторамесячных переговоров (переговоры вела не я) мою версию старого (2002 г. выпуска) компилятора Borland Builder 6.0, на котором я кропала эту программу, сочли достаточным аргументом, чтобы продать новый продукт на правах апгрейда, т.е. с очень большой скидкой. Апгрейд обошелся всего за $625, в то время как его номинальная цена - $1400. Я съэкономила целых 775 доларов! :). Впрочем, заплаченные денежки тоже не из моего кармана, но $1400 мне бы и не дали.
   Новый компилятор действительно монстрообразен, и на него нельзя смотреть без содрогания. Чтобы хотя бы отдаленно представить себе, что он такое, скажу, что он занимает почти гигабайт на диске и инсталлируется целых 45 минут! А еще до этого я три часа качала дестрибутив с сайта фирмы (CodeGear - дочерняя фирма Borland'а, которая теперь специализируется на средствах разработки), размером с целый DVD-диск (4.7 Гиг). И все оттого, что куплена была электронная версия, которую скачать можно только зная индивидуальный пароль. Именно этот пароль и покупаешь за денежку.
   Старого компилятора я поначалу тоже как огня боялась, думала не осилю. Это он по возрасту был старый (2002 г.), а для меня внове. Однако укротить мне его удалось, несмотря на то, что всех его возможностей я так и не испробовала (для программы много чего не понадобилось).
   Из того, что может делать новый компилятор, мне кажется интересной графика. Тот же график, который демонстрирует эволюцию квантовой запутанности, обрел возможность рисовать трехмерные объекты. Я пока не знаю, есть ли в этом необходимость, но картинки меня впечатлили. Предлагаю и всем вам на них посмотреть:





   Причем, программирование таких трехмерных графиков наудивление простое - сообщаешь все известные тебе точки, многократно вызывая функцию AddXYZ(x,y,z) с их кординатами, а компьютер сам строит трехмерное изображение. Признаюсь, что нынешний график запутанности не является трехмерным, а представляет собой лишь подражание трехмерной картинке. А сферу Блоха я вообще рисовала, минуя встроенные стредства компилятора, напрямую обращаясь к старинной библиотеке быстрой графики (OpenGL), встроенной прямо в Windows, причем так давно, что про нее кажется все уже забыли. Она столько же быстрая, сколько неудобная в использовании.
   Доронину С.И.
   Могу поделиться с вами дестрибутивом, выслав вам DVD-копию почтой по вашему домашнему адресу. Это не проблема. Оперативно обновлять такую версию вы не сможете, не обладая правами легального покупателя, но пользоваться ею можно неопределенно долгое время. Сейчас же вопрос стоит только в целесообразности перехода на более сложный в эксплуатации и инсталляции компилятор (на слабом компьютере работа превратится в мучение), решение которого зависит только от необходимости поддержки трехмерной графики. Без такой необходимости, я бы не стала рекомендовать вам на него переходить. Тем более, что у меня самой пока очень плохо получается делать на нем даже то, что на старом компиляторе не вызывало проблем.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #152 : 27 Декабря 2007, 00:22:25 »

Отличная новость! Разделяю с Вами радость по этому поводу! :)

Спасибо за предложение! Я тоже несколько опасаюсь новых инструментов и предпочитаю иметь дело с чем-то привычным и знакомым :). Но думаю, если работа над программой будет продолжаться, имеет смысл перейти на более современную версию компилятора. Трехмерная графика впечатляет!  Насчет необходимости в ней, сложно сказать, и хочется, и колется :), по крайней мере, она не помешает. Давайте попробуем. По крайней мере, ничего от этого не теряем, всегда можно будет вернуться к старому доброму шестому Билдеру.

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #153 : 27 Декабря 2007, 07:17:38 »

Псевдо трехмерная графика - это красиво. Но в вашей программе нет третьей координаты. Я уже спрашивала об этом.
Что может послужит третьей координатой, если вы все это примите и сделаете?
Записан

С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #154 : 28 Декабря 2007, 00:23:41 »

April

«Привинтить» третью координату не проблема – дурное дело не хитрое :). Например, это может быть расстояние между кубитами, о чем Вы упоминали. Тогда трехмерный график будет давать запутанность в зависимости от сближения (удаления) кубитов друг от друга. Вот только скорость вычислений здесь, боюсь, будет очень маленькая, т.е. такие трехмерные графики реально будет построить только для малокубитных систем.

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #155 : 28 Декабря 2007, 09:49:25 »

April
«Привинтить» третью координату не проблема – дурное дело не хитрое :). Например, это может быть расстояние между кубитами, о чем Вы упоминали. Тогда трехмерный график будет давать запутанность в зависимости от сближения (удаления) кубитов друг от друга.
А что, разве такая зависимость существует? Запутанность как-то меняется в зависимости от расстояний между кубитами? Шокированный 
Я имела в виду несколько другое.  Расстояние между кубитами совсем не в качестве третьей коодинаты. А в качестве способа отобразить уже расчитанную, как она сейчас есть, запутанность между кубитами в более удобной форме где-нибудь на дополнительной вкладке. Пусть даже только для малокубитных систем. Т.е. как расстояние изменяется  в зависимости от запутанности. А не наоборот.
Бог с ней, с третьей координатой.
Как сказала Любовь, жизнь сложная штука.  Подмигивающий
По жизни такое бывает: n-ое количество шагов человек, как система, изменяется под влиянием одной Силы (по одному закону, гамильтониану), а следующие - по другому, и потом третьему.. Или еще так: сначала человек ведет себя как 2х кубитовая система, а потом, как 4х или 7ми. Если третья координата существует, то она должна быть не "дурным делом", а чем-то  целесообразным.
Я не предлагаю в качестве третьей координаты  гамильтониан или размерность системы, понятия не имею, во что это выльется на трехмерном графике,  просто размышляю и провожу параллели.  Подмигивающий Мне интересно сопоставить  между собой не только графики запутанностей разных кубитов, у вас это есть, и все хорошо сделано, а графики запутанностей, к примеру, одного и того же  конкретного кубита, но расчитанных на основании разных гамильтонианов. Конечно, все это возможно сделать и сейчас - распечатай 4 графика и любуйся  Смеющийся - только не очень удобно. И не знаю, если ли в этом какой-то смысл для вас.
Записан

С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #156 : 29 Декабря 2007, 14:13:25 »

April

Цитата:
А что, разве такая зависимость существует? Запутанность как-то меняется в зависимости от расстояний между кубитами?

Результаты расчета зависят от геометрии, т.е. запутанность зависит не только от расстояния между кубитами, но и от их взаимного расположения. Сейчас реализована самая простая ситуация – линейная цепочка кубитов с одинаковыми расстояниями между ними. Взаимодействие здесь тоже зависит от расстояния, поскольку учитываются все взаимодействия, например, первый кубит с третьим взаимодействует в восемь раз слабее, чем первый со вторым (зависимость 1/r3).
Помимо этого задачу можно считать в приближении взаимодействия ближайших соседей – по кнопке … рядом с гамильтонианами нужно поставить галочку Nearest neighbors. Тогда можно вручную расставить константы взаимодействия между соседними парами кубитов (их число равно N-1).

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #157 : 02 Января 2008, 15:42:36 »

Результаты расчета зависят от геометрии, т.е. запутанность зависит не только от расстояния между кубитами, но и от их взаимного расположения.
..Сейчас реализована самая простая ситуация – линейная цепочка кубитов с одинаковыми расстояниями между ними.
..по кнопке … рядом с гамильтонианами нужно поставить галочку Nearest neighbors. Тогда можно вручную расставить константы взаимодействия между соседними парами кубитов (их число равно N-1).
От взаимного расположения - это я согласна.
Но достаточно ли задать константы, о которых вы говорите, чтобы задать не только собственно  расстояния между кубитами, но и геометрию  их взаимного расположения? 
Посмотрела в программе, получается, что не достаточно. Для 3х кубитовой системы, к примеру, нет возможности явно задать расстояние между кубитами А и С.
Я правильно понимаю?
А как же тогда можно расчитать решетку кубитов, если в программе реализована только цепочка?
С другой стороны, если выбрать какой-нибудь критерий, ранжировать по нему кубиты, то вполне можно любую многокубитную систему выстроить в цепочку.

PS: чем дальше в лес, тем больше дров.  Подмигивающий  В смысле, все больше и больше вопросов.
« Последнее редактирование: 02 Января 2008, 16:10:41 от April » Записан

С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #158 : 05 Января 2008, 23:12:19 »

April

Цитата:
Но достаточно ли задать константы, о которых вы говорите, чтобы задать не только собственно  расстояния между кубитами, но и геометрию  их взаимного расположения?

Одного расстояния недостаточно, еще нужен угол θij между радиус вектором, связывающем i-й и j-й кубит, и направлением внешнего поля (осью Z). В более общем случае гамильтонианы содержат множитель (1 – 3cos2ij)). Когда у нас цепочка кубитов расположена вдоль поля, угол равен нулю, косинус единица, и от множителя остается коэффициент –2, который учтен в гамильтонианах. Теоретически, задавая углы (наряду с расстояниями), можно любую геометрию предусмотреть, но в программе этого нет пока.

Цитата:
Посмотрела в программе, получается, что не достаточно. Для 3х кубитовой системы, к примеру, нет возможности явно задать расстояние между кубитами А и С.
Я правильно понимаю?

Да, правильно, расстояние между А и С сейчас задается неявно, в 2 раза больше, чем между соседними кубитами, оно складывается из двух равных расстояний А-В и В-С.
В приближении взаимодействий ближайших соседей (когда поставлена галочка у гамильтониана «Nearest neighbors»), расстояния между А-В и В-С можно уже задавать явно, каждое по отдельности, регулируя тем самым расстояние А-С. В этом случае отключено прямое взаимодействие между А и С, но запутанность между ними возникает за счет косвенного взаимодействия, т.к. В взаимодействует как с А, так и с С.
Кубит В в этом случае является посредником, анциллой (служанкой), обеспечивающей запутанность между А и С. Таким образом, режим «ближайших соседей» позволяет подробно проанализировать как работают анциллы :), и в чем различие между прямым и косвенным взаимодействием.

Цитата:
А как же тогда можно расчитать решетку кубитов, если в программе реализована только цепочка?

Пока никак…  Решетки тоже разные бывают, нужна конкретная геометрия и алгоритм, по которому будут определяться все расстояния и углы – их слишком много и вручную вводить очень трудоемко. Решетка гидроксиапатита в этом плане хороша тем, что имеет квазиодномерную структуру, о чем я в книге подробно писал.
С другой стороны, наверное, пока и нет необходимости задавать какую-то сложную геометрию кубитов. Сейчас хотя бы самые общие закономерности запутанности ухватить. Рассматривать конкретные решетки имело бы смысл, например, когда речь идет о специфических «магических» особенностях и свойствах различных кристаллов  :), о сравнении их между собой. А пока достаточно понять хотя бы в чем суть этой магии, здесь не до тонкостей :).

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #159 : 09 Января 2008, 08:32:27 »

А пока достаточно понять хотя бы в чем суть этой магии, здесь не до тонкостей :).
Согласна.
Просто хочется всего и сразу.  Подмигивающий Потому что реальные задачи всегда сложнее учебных.
Но уже в таком виде мне очень понравилось поведение 5-кубитной системы c гамильтонианом XY.  :) Ну это я уже говорила. В принципе для меня это точка отсчета понимания  - работающий пример. Но он слишком личный, чтобы можно было позволить себе давать публичные подробности.  Шокированный
Да и вопросов еще много. Над которыми раньше я даже не задумывалась. К примеру об углах.  Подмигивающий Прорисовала себе ситуацию, как вижу, и все.  Смеющийся
И графиков много. Печенкой чую, в них есть смысл!  Смеющийся
Ну ладно.
В Новый Год с Новыми Силами!
Ура!
 Смеющийся

Записан

April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #160 : 21 Февраля 2008, 18:37:59 »

СИДу.
Мне понравился MQ-гамильтониан.
Он дает периодическое изменение запутанности. Это эстетично и более привычно -  как-то ближе к реальному восприятию мира в его периодической повторяемости - смены дня и ночи, годового цикла и т.п. И ближе к понятию "циклического времени".
Расскажите немного подробнее про этот гамильтониан.
Записан

С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #161 : 21 Февраля 2008, 23:41:13 »

СИДу.
Мне понравился MQ-гамильтониан.
Он дает периодическое изменение запутанности. Это эстетично и более привычно -  как-то ближе к реальному восприятию мира в его периодической повторяемости - смены дня и ночи, годового цикла и т.п. И ближе к понятию "циклического времени".
Расскажите немного подробнее про этот гамильтониан.

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

Наблюдаемыми величинами в МК ЯМР- эксперименте являются интенсивности многоквантовых когерентностей. Кстати, данная программа как раз с этого и начиналась, т.е. первоначально в ней считались интенсивности МК-когерентностей :), это то, что у меня было раньше по работе.

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

Если же отойти от ЯМР и посмотреть на этот гамильтониан шире, как на оператор эволюции произвольной системы, то из его структуры можно заметить, что он «срабатывает» и реализует переходы между состояниями двух подсистем (кубитов), когда они находятся в одинаковых состояниях, напр. 00 или 11. Таким образом, под действием этого гамильтониана, когда состояния двух кубитов совпадают, они меняются на противоположные.  Здесь его можно сопоставить с XY гамильтонианом, который действует подобным образом, но только он «переворачивает» пары кубитов когда их состояния противоположны, т.е. 01 или 10.

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #162 : 22 Февраля 2008, 10:41:57 »

МК-эксперимент состоит из четырех периодов: подготовительного, эволюции, смешивания и детектирования.
Жутко люблю всяческие "четверки", пары пар. В теме "богословие" привела два примера. В вашем примере явно не хватало вот этого пункта - аналога "детектирования"  Подмигивающий
Если же отойти от ЯМР и посмотреть на этот гамильтониан шире, как на оператор эволюции произвольной системы, то из его структуры можно заметить, что он «срабатывает» и реализует переходы между состояниями двух подсистем (кубитов), когда они находятся в одинаковых состояниях, напр. 00 или 11.  Таким образом, под действием этого гамильтониана, когда состояния двух кубитов совпадают, они меняются на противоположные.
На счет переходов при условии одинаковых состояний - это очень даже понятно. В моем контексте это - "взаимодействие в уподобление".  Именно по этому результаты показались мне знакомыми. Это наиболее распространенное явление, наиболее очевидное. Хотя результат такого перехода - "переворачивание" - наименее очевиден. Это чем-то похоже на переход количественных изменений в качественные.
 
Здесь его можно сопоставить с XY гамильтонианом, который действует подобным образом, но только он «переворачивает» пары кубитов когда их состояния противоположны, т.е. 01 или 10.
Это типа "с кем поведешься, от того и наберешься"  Смеющийся -  "взаимодействие в дополнение". Как пример - это мы с Пипой  Подмигивающий. Наименее очевидно, что при взаимодействии мы "превращаемся" друг в друга  Смеющийся.
Если без шуток, это очень существенные замечания - как именно "работает" гамильтониан. Допускаю, что все это видно из формул гамильтонианов, но я, к примеру, не умею так глубоко понимать формулы, и такое словестное разъяснение очень нужно.
В таком же духе, расскажите, пожалуйста, про два других гамильтониана. Для полноты картины. Подмигивающий

Записан

Bit
Старожил
****
Сообщений: 567


Просмотр профиля
« Ответ #163 : 26 Января 2009, 09:42:39 »

Здравствуйте. Можно ли получить Вашу программу?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #164 : 26 Января 2009, 13:43:28 »

Здравствуйте. Можно ли получить Вашу программу?

Программу можно скачать отсюда: http://quantmag.ppole.ru/tmp/QE.ZIP
Записан
Bit
Старожил
****
Сообщений: 567


Просмотр профиля
« Ответ #165 : 26 Января 2009, 20:38:34 »

Спасибо!
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #166 : 23 Апреля 2009, 08:00:33 »

На периоде эволюции динамика ядерных спинов описывается тем самым MQ-гамильтонианом, о котором идет речь.
Если же отойти от ЯМР и посмотреть на этот гамильтониан шире, как на оператор эволюции произвольной системы, то из его структуры можно заметить, что он «срабатывает» и реализует переходы между состояниями двух подсистем (кубитов), когда они находятся в одинаковых состояниях, напр. 00 или 11. Таким образом, под действием этого гамильтониана, когда состояния двух кубитов совпадают, они меняются на противоположные.  Здесь его можно сопоставить с XY гамильтонианом, который действует подобным образом, но только он «переворачивает» пары кубитов когда их состояния противоположны, т.е. 01 или 10.
СИДу.
Напоминаю что, вы обещали продолжить тему про гамильтонианы Подмигивающий
Или хотя бы кратко про два других гамильтониана, реализованных  в программе.
Спасибо.
Записан

Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #167 : 14 Декабря 2011, 23:39:36 »

а есть конкретные заинтересованные лица в продвижении к практике квантового компьютера?
В смысле - к "железу".
Или поигрались в 4 кубита и будя ...
Записан
Владислав
Ветеран
*****
Сообщений: 2486


Просмотр профиля
« Ответ #168 : 15 Декабря 2011, 06:25:15 »

Или поигрались в 4 кубита и будя ...
нужны шарашки Сталина для реализации "идеи" ... или ...
. ..  игра она всегда всего лишь "игра" и всегда незримо видны-видятся "трансферы" (они бывают же не только футболе игровом).
Записан

Не сторонник "квантовой магии, психологии и прочих "ква-образований"", не исповедую никакой конкретной религии, не разделяю вселенную на материальное и нематериальное. Ни в коей партии или секте не состою.
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #169 : 15 Декабря 2011, 10:21:33 »

нужны шарашки Сталина для реализации "идеи" ... или ...
или
жадность не меньший стимул, чем страх.
« Последнее редактирование: 15 Декабря 2011, 11:08:32 от Станислав » Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #170 : 16 Декабря 2011, 11:53:02 »

а есть конкретные заинтересованные лица в продвижении к практике квантового компьютера?
В смысле - к "железу".
Или поигрались в 4 кубита и будя ...

   Нет таких :). И причина даже не только в том, что сделать самим квантовый компьютер слабО, в магазине его не купишь, да и даже содержать его было бы накладно (нужен жидкий гелий для охлаждения). А главная неприятность в том, что для полезного использования квантового компьютера нужны квантовые алгоритмы. А с ними большие проблемы.
   Дело в том, что на классическом компьютере возможно эмулировать компьютер квантовый, хотя и с огромным снижением в скорости. И даже здешний проект "Численный анализ многокубитных систем" можно рассматривать, как подобного рода попытку. Однако противоположное утверждение неверно. Т.е. далеко не каждый класический алгоритм можно превратить в квантовый. Грубо говоря, даже для того, чтобы сложить на квантовом компьютере 2+2 нужно драть себе жопу (это из старого анекдота про курицу) :). Проблема осложняется еще и тем, что квантовый компьютер по свой сути является аналоговой машиной, а не цифровой. А стало быть, эффективен он не для всех задач (как универсальный вычислитель), а лишь для узкоспецифических задач, которые в своей постановке имеют достаточно близкое подобие с квантовыми процессами, чтобы быть на этой почве моделированными.
 
Записан
Владислав
Ветеран
*****
Сообщений: 2486


Просмотр профиля
« Ответ #171 : 16 Декабря 2011, 13:28:11 »

для полезного использования квантового компьютера нужны квантовые алгоритмы. А с ними большие проблемы.
типа инструмент-то (голос!)  есть, но песен для него всё ещё нет да и слушать те "песни" ещё некому? Они (квантовые «умники и умницы») ещё не родились, но их уже ждут!

Это ж  как звенья одной цепи, можно сказать:

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

Не сторонник "квантовой магии, психологии и прочих "ква-образований"", не исповедую никакой конкретной религии, не разделяю вселенную на материальное и нематериальное. Ни в коей партии или секте не состою.
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #172 : 16 Декабря 2011, 13:34:25 »

И причина даже не только в том, что сделать самим квантовый компьютер слабО, в магазине его не купишь, да и даже содержать его было бы накладно (нужен жидкий гелий для охлаждения). А главная неприятность в том, что для полезного использования квантового компьютера нужны квантовые алгоритмы. А с ними большие проблемы.
Вы правы в отношении охлаждения гелием, если следовать традиционным "рецептам".
Правы и на счет некорректности эмуляции.
Собственно квантовые алгоритмы появятся только после появления квантовых компьютеров, до того как ... они просто не нужны и нет смысла корячится над ними бесплатно. Только спрос рождает предложение.
А вот обойти гелиевую накладку, полагаю, можно.
Собственно из-за этого и влез в тему. Только вот технарей и бизнеса что-то не видно.
Но именно это мне важно и интересно.
Не готово человечество ещё, не дозрело
ну вот, то от имени всей науки вещают, то от имени всего человечества ...
Уж скажите честно - лично вы не дозрели.
« Последнее редактирование: 16 Декабря 2011, 14:54:42 от Станислав » Записан
Владислав
Ветеран
*****
Сообщений: 2486


Просмотр профиля
« Ответ #173 : 16 Декабря 2011, 13:40:50 »

Уж скажите честно - лично вы не дозрели.
Да. В этом списке я неспорно первый!
Записан

Не сторонник "квантовой магии, психологии и прочих "ква-образований"", не исповедую никакой конкретной религии, не разделяю вселенную на материальное и нематериальное. Ни в коей партии или секте не состою.
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #174 : 16 Декабря 2011, 15:58:13 »

Собственно квантовые алгоритмы появятся только после появления квантовых компьютеров, до того как ... они просто не нужны и нет смысла корячится над ними бесплатно. Только спрос рождает предложение.

   С вашим утверждением вполне можно поспорить. Дело в том, что само по себе алгоритмическое мышление сводится к попытке достижения результата (а в задаче  - ответа) посредством определенной последовательности шагов, состоящих из элементарных операций. И даже если абстрагироваться от вычислительных задач, а вернуться к классической алгебре, то и там обнаружится, что аналитические выражения набираются из конечного числа элементарных операций. Появление на калькуляторах помимо 4-х кнопок арифметических действий, дополнительных функций "sin", "cos", "tg", "log", "ex" и т.п. обусловлено не особенностью применяемого микропроцессора, а именно вычислительными потребностями пользователя. Точно теми же потребностями обусловлены даже программные инструкции самого процессора (язык ассемблера), в котором представлено не все то, что данный процессор способен выполнять, а главным образом то, что может быть практически востребовано пользователем или программистом.
   Например, когда в системе IBM PC остро потребовалось быстрее выполнять операции с плавающей точкой, к нему срочно сотворили сопроцессор, который на выполнение таких операций был специально заточен (позже он "сросся" с основным процессором на одном кристалле). Та же ситуация с быстрыми преобразователями Фурье, матричными умножителями, вычислителями сверток, цифровыми фильтрами и т.д.
   С квантовыми же алгоритмами прямо беда. Если на базе квантового вычислителя удалось бы организовать привычные элементарные операции и стандартные функции, то такой вычислитель перестал бы быть квантовым по своим функциональным возможностям. Увы! Ибо тогда его заправляли бы обычными алгоритмами (арифметическими и логическими операциями), в производительности по которым он вряд ли обогнал бы привычные транзисторные сборки.
   Вся же суть квантового компьютера не в том, что он выполняет элементарные алгебраические операции быстрее, а в том, что он вообще обходится без них! Т.е. решает он свои задачи не путем разложения на алгебраические примитивы, а моделирует некоторую задачу в целом, фактически сводя ее к одновременному перебору всех вариантов ответа. Такой механизм никак не может быть разделен на последовательность привычных для нас операций, из которых можно было бы конструировать такие алгоритмы. А те примитивы, на которые квантовые операции удается разложить, слишком специфичны и настолько далеки от постановки задачи, что в этих примитивах жутко трудно формулировать вычислительный алгоритм. Это будет куда посложнее, чем писать программу не в кодах процессора, а в напряжениях и токах, составляющих его транзисторов.
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #175 : 16 Декабря 2011, 17:23:51 »

С квантовыми же алгоритмами прямо беда. Если на базе квантового вычислителя удалось бы организовать привычные элементарные операции и стандартные функции, то такой вычислитель перестал бы быть квантовым по своим функциональным возможностям
Ну наконец-то я встретил человека, который не вешает на уши стандартную лапшу про кубиты.
Вы правы.
Суть квантового компьютера конечно совершенно не в том, что он якобы может выполнять какие-то алгебраические операции. Это заведомо тупиковый образ мышления. Суть гораздо фундаментальней и гораздо сложней - некому задачному образу с соответствующей задачной структурой сопоставляется реальная физическая структура, поскольку ничего "другого" в квантовом компьютере просто нет.
Вот из этого должны вытекать все потенциально возможные квантовые алгоритмы.
А для этого как минимум надо знать о каких физических структурах может идти речь. Это совсем не наивно-вульгарная классика, типа - молекула-атом-электрон. Нравится это кому или нет, но это в любом случае есть структура действия. Нравится это кому или нет, но для того, чтобы составить реально работающие квантовые алгоритмы, надо создать модель кванта действия. То есть, надо смоделировать отношение бесконечно сложной структуре к себе самой и исследовать, какие отношение конечной сложности при этом возможны. Без этого квантовая алгоритмия будет нынешним шаманством с плясками и бубном, с завыванием про кубиты.
Я считаю это дело безусловно нужным, но вторичным.
А на первое место ставлю квантовое "железо", хотя бы те самые пресловутые кубиты, которые надо материализовать физически, иметь хотя бы для того, чтобы было на чем реально тестировать эти самые квантовые алгоритмы.
На уровне традиционного бла-бла просто невозможно ничего проверить, кто прав.
Поэтому я снова возвращаюсь к своему вопросу:
- а есть конкретные заинтересованные лица в продвижении к практике квантового компьютера?
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #176 : 17 Декабря 2011, 08:52:31 »

Поэтому я снова возвращаюсь к своему вопросу:
- а есть конкретные заинтересованные лица в продвижении к практике квантового компьютера?

   Наверняка есть, но ... не среди участников здешнего форума.
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #177 : 17 Декабря 2011, 09:10:57 »

Поэтому я снова возвращаюсь к своему вопросу:
- а есть конкретные заинтересованные лица в продвижении к практике квантового компьютера?

Наверняка есть, но ... не среди участников здешнего форума.

упсс... как все запущено Шокированный
 а чем как не квантовым компьютером является процесс осознания? Строит глазки
 именно осознания, а не комбинаторика копирайтеров по принципу заткнись и считай Смеющийся
 потому, Pipa, не стоит говорить за других - за тех, кто осваивает собственные квантовые компьюторы - собственное осознание Показает язык
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #178 : 17 Декабря 2011, 09:24:40 »

Pipa, не стоит говорить за других - за тех, кто осваивает собственные квантовые компьюторы - собственное осознание
конечно не стоит. И не только Pipa. На нынешнем этапе "освоения сознания" все было пару миллионов лет назад и все останется через пару миллионов лет.
Записан
Владислав
Ветеран
*****
Сообщений: 2486


Просмотр профиля
« Ответ #179 : 17 Декабря 2011, 09:38:08 »

жадность не меньший стимул, чем страх.
жадность - способность проглотить "наживку".

нет смысла корячится над ними бесплатно. Только спрос рождает предложение.
способность формировать "наживку" тоже важная составляющая успеха.

А вот обойти гелиевую накладку, полагаю, можно.
вот она, "наживка"

есть конкретные заинтересованные лица в продвижении к практике квантового компьютера?
это уже как бы сформирована некая оферта (для внимательного)!

упсс... как все запущено Шокированный
Да. Так  вот запущен "пробный шар" - есть предложение/соображения изготовить квантовый компьтер без гелиевой  (охлаждающей) установки - нужны спонсоры/инвесторы!


На нынешнем этапе "освоения сознания" все было пару миллионов лет назад и все останется через пару миллионов лет.
Это "утверждение" и есть настоящий «Ча́йник Ра́ссела», уважаемый Станислав.
Записан

Не сторонник "квантовой магии, психологии и прочих "ква-образований"", не исповедую никакой конкретной религии, не разделяю вселенную на материальное и нематериальное. Ни в коей партии или секте не состою.
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #180 : 17 Декабря 2011, 09:57:24 »

конечно не стоит. И не только Pipa. На нынешнем этапе "освоения сознания" все было пару миллионов лет назад и все останется через пару миллионов лет.

эт Вы о себе любимом? - печально...
я тут на поколениях собственной семьи изменения отслеживаю, а у Вас все на одном этапе, и даже средневековья не заметили...
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #181 : 17 Декабря 2011, 11:43:11 »

эт Вы о себе любимом?
Да, высокие, белые и пушистые материи мне безразличны, я все больше о грязи железа, в данном случае о квантовом. В данном случае меня интересуют технологи, кто это железо собирается делать.
Есть такие?
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #182 : 17 Декабря 2011, 12:01:23 »

Станислав, Природа-матушка долго его собирала и железо уже сделано, и реальный мир результат работы этого "железа"
делать то, что еще до конца не понято... смысл?
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #183 : 17 Декабря 2011, 15:39:44 »

а до конца никто никогда не поймет.
Осильте хотя бы начало.
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #184 : 17 Декабря 2011, 21:15:46 »

Станислав,  для начала можно осилить процесс вербализации собственных мыслей - пример аналоговых преобразований...
 только не путайте с шаблонными заготовками из личной базы данных, а проведите работу от получения оригинальной мысли к ее осмыслению, т.е. сенсорному ее приятию, и далее к дешифровке в отдельные слова, а не подгонку под имеющиеся клише...
сравните имеющиеся в личной базе данных клише с их оригиналами... возможно, понадобятся уточнения, дополнения, а возможна замена  до наоборот...
ежелить - нет, то для осмысления Вы используете классические приемы, а не квантовые...
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #185 : 18 Декабря 2011, 11:27:32 »

Станислав,  для начала можно осилить процесс вербализации собственных мыслей
понятно, мысль для начала, что среди структур есть наипростейшие, прошла мимо вас, не застав ...
кстати, мысль отнюдь не классическая.
Да и мое участие в теме не в этом пустом препирательстве, а в переходе от словес к железу ...
« Последнее редактирование: 18 Декабря 2011, 11:57:16 от Станислав » Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #186 : 18 Декабря 2011, 23:28:01 »

понятно, мысль для начала, что среди структур есть наипростейшие, прошла мимо вас, не застав ...

упсс... Вы в моих словах не увидели именно этого...
похоже, Вы не пытались вербализировать мысли ни разу, а пользовались готовыми блоками шаблонных заготовок...
смысл "наипростейшие" работает только на определенном уровне, но не вообще...
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #187 : 19 Декабря 2011, 09:57:19 »

смысл "наипростейшие" работает только на определенном уровне, но не вообще...
про" вообще" вы сами свою позицию достаточно четко обозначили:
еще до конца не понято
Ну и чего блажить про "вообще".
Я же еще раз заявляю:
- мое участие в теме не в этом пустом препирательстве, а в переходе от словес к железу ...
Конечно, это удивительно, что конкретное, частное "ноу хау" никого не интересует.
Записан
Владислав
Ветеран
*****
Сообщений: 2486


Просмотр профиля
« Ответ #188 : 19 Декабря 2011, 10:24:36 »

частное "ноу хау" никого не интересует.
Это Ваша добыча. И нет на неё претендентов. Это естественно. И  потому это не может никого интересовать.
Кесарю кесарево.
Записан

Не сторонник "квантовой магии, психологии и прочих "ква-образований"", не исповедую никакой конкретной религии, не разделяю вселенную на материальное и нематериальное. Ни в коей партии или секте не состою.
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #189 : 19 Декабря 2011, 10:47:11 »

  Прошу обсуждения создания "железа" квантового компьютера вести в теме Первый коммерческий квантовый компьютер, а обсуждения квантовых алгоритмов - в теме Квантовые алгоритмы.
  В данная тема предназаначена совершенно для иных целей - проекту расчетов (на обычном компьютере!) моделей квантовой запутанности.
  Игнорирование этой просьбы повлечет за собой необходимость заблокировать эту тему.
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #190 : 19 Декабря 2011, 17:29:14 »

вообще-то в теме вообще нет никакого численного анализа многокубитных систем.
Ни в одном сообщении, в том числе С.И. Доронин, ksv, Pipa ..., этого нет.
И начинается тема совсем с другого:
Есть такая мысль – попытаться разработать удобную для пользователя программу для численного анализа многокубитных систем
Это создание некой пользовательской программы, но никак не "Численный анализ многокубитных систем". Причем, говорится - много материала и самих кодов, но на этом все.
То есть, собственно по теме никто и слова не сказал.
Никто даже не попытался сколько-нибудь осмысленно заявить, что такое многокубитная система и с чем ее едят.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #191 : 19 Декабря 2011, 19:07:32 »

вообще-то в теме вообще нет никакого численного анализа многокубитных систем.
Ни в одном сообщении, в том числе С.И. Доронин, ksv, Pipa ..., этого нет.

   В одной фразе и в самом деле сложно выразить суть проекта. Но как бы то ни было, проект завершен и программа написана. А суть ее работы сводится к моделированию эволюции во времени системы из N кубитов, описанной посредством гамильтониана (разные типы гамильтонианов программа позволяет выбирать из меню). Цель моделирования состояла в проверке разных формул для оценки меры запутанности между отдельными кубитами, так и частями системы.
   А то вот мы говорим: запутанность, запутанность... А ведь и здесь, чтобы не быть пустоловами, нужно иметь какой-то критерий, позволяющий степень этой запутаности оценить. Чтобы не руками разводить, как рыболов :), а привести число, которое меру той запутанности определяет. Скажем, от 0 до 100%.
   Задача выражения меры запутанности через одно скалярное значение интересна уже сама по себе. И Доронин этой задачей долго занимался. До него меру запутанности (другую) предложил какой-то поляк. В ряде случаев их оценки совпадают, а в других случаях сильно разнятся.
   Тем не менее, очень интересно то, что обе оценки изменяются в процессе эволюции системы. Хотя на первый взгляд кажется, что запутанность со временем изменяться не должна.
   Лично мне задача Доронина (эволюция многокубитной системы) сильно напоминает движение планет вокруг единственной звезды. Время от времени возникает, так называемый, "парад планет", когда все или большинство планет оказываются расположенными на одной линии. Или, точнее сказать, центр тяжести планетарной системы занимает положение, наиболее удаленное от звезды. В этот момент мера перекрестной запутанности между планетами оказывается максимальной.
   На многокубитной системе "парад планет" выглядит крайне парадоксально. Когда кубитов много, то система кажется хаотичной или лишь слабо и неравномерно "дышит". Однако периодически хаос внезапно исчезает и система преобретает ... даже не знаю, как это назвать. Типа на дыбы поднимается :), проявляя потрясающую слаженность.
   Как знать, может быть в "первобытном хаосе" когда-то подобным же образом возникла жизнь, а еще раньше и сама Вселенная.
Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #192 : 19 Декабря 2011, 19:41:43 »

Однако периодически хаос внезапно исчезает и система преобретает ... даже не знаю, как это назвать.
Ну что ж, уже не плохо, что вы хотя бы ощущаете предмет.
Надеюсь, однако, понимаете, что между ощущением и численным анализом дистанция гигантская.
Полагаю, выбранный Дорониным параметр запутанности мало подходит.
Обнаглею и скажу - запутанность вообще ничего не дает и совершенно никак не характеризует многокубитную систему.
Вы попытайтесь сами проанализировать ваше же изумительное по чистоте восприятия описание - хаос внезапно исчезает ...
Что это значит математически?
Что значит "хаос" и что значит "приобретает"?
Вот это ваше "хаос ... приобретает" меньше всего имеет отношение к запутанности, как взаимосвязи состояний.
"хаос" понимают как беспорядок, неразбериху, смешение.
Говоря языком математики, под "хаосом" вы понимаете структуру, описать которую вы не в силах. Это совсем не обязательно бесконечно сложная структура, но в любом случае структура более сложная, чем вы способны себе вообразить и описать доступным вам конечным набором утвержденией в доступной вам конечной системе понятий.
А "исчезновение хаоса и ..." опять же на языке математики означает появление такой возможности - описать доступным вам конечным набором утвержденией в доступной вам конечной системе понятий. То есть, структура становится заведомо конечной сложности.
Вот и получается из вашего поэтического образа, что описывать многокубитные системы надо не в терминах взаимозависимости состояний, а терминах структурной сложности.
И, к сожалению, я первый, кто этот вопрос вообще поднимает.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3548


Квантовая инструменталистка


Просмотр профиля WWW
« Ответ #193 : 19 Декабря 2011, 19:58:48 »

Вот это ваше "хаос ... приобретает" меньше всего имеет отношение к запутанности, как взаимосвязи состояний.
"хаос" понимают как беспорядок, неразбериху, смешение.
Говоря языком математики, под "хаосом" вы понимаете структуру, описать которую вы не в силах. Это совсем не обязательно бесконечно сложная структура, но в любом случае структура более сложная, чем вы способны себе вообразить и описать доступным вам конечным набором утвержденией в доступной вам конечной системе понятий.
А "исчезновение хаоса и ..." опять же на языке математики означает появление такой возможности - описать доступным вам конечным набором утвержденией в доступной вам конечной системе понятий. То есть, структура становится заведомо конечной сложности.

    Я сказала "система КАЖЕТСЯ хаотической". На самом же деле хаосом называть это нельзя, поскольку это все-таки вычислительная задача, которую можно прогнать сколько угодно раз с одним и тем же конечным результатом. Уже только то, что результат воспроизводится, свидетельствует о том, что система сильно детерминирована (предсказуема). А раз так, то хаотичной ее назвать нельзя.
   И, тем не менее, основное ее состояние выглядит так, как будто все ее элементы варятся в собственном соку, лениво переворачиваясь с боку на бок. И вдруг в момент "Ч" все взяли и пошли на митинг :) :) :).
Записан
Quangel
Ветеран
*****
Сообщений: 6921


Сaementarius Civitas Solis Aeterna


Просмотр профиля
« Ответ #194 : 19 Декабря 2011, 21:24:19 »

И, тем не менее, основное ее состояние выглядит так, как будто все ее элементы варятся в собственом соку, лениво переворачиваясь с боку на бок. И вдруг в момент "Ч" все взяли и пошли на митинг

Долой оранжевую революцию кубитов!!!  Смеющийся Смеющийся Смеющийся
Записан

"Город кивнул и двинулся по газону, переливчато сияющий и страшный в разноцветных огнях подсветки. От него исходили резкие синтезаторные ритмы."(с)
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #195 : 19 Декабря 2011, 23:23:59 »

Я сказала "система КАЖЕТСЯ хаотической".
разумеется.
Любое конечное множество, к примеру, множество кубитов, которое в любом квантовом компьютере всегда будет конечным, описывается хотя бы перечислением его элементов и их свойств. Но такое описание заведомо не является описанием структуры, тем более такого частного его вида, как система. И из такого описания множества кубитов вообще никак не следует прогноз развития такого множества, типа заявленного Дорониным:
Задача состоит в решении уравнения Лиувилля – фон Неймана для матрицы плотности ρ (ħ=1):
Тем более, что представление о кубите даже в принципе не может быть выражено через представление о квантовой системе в смешанном состоянии. Надеюсь, понятно почему. И пока вы не поймете простую вещь, что исходное состояние всех кубитов любого конкретного квантового компьютера может быть только чистым, вы вообще ничего не поймете. Более того, представление любого простого числа на любом квантовом компьютере должно быть исключительно и только физическим представлением как состояние одной квантовой системы. Тоже надеюсь понятно почему. А представление любого сложного числа наоборот принципиально не может быть описано состоянием одной квантовой системы. Уравнение фон Неймана эти особенности в принципе не "замечает". То есть, подход, предложенный Дорониным, изначально тупиковый. Не статистику надо исследовать, а структуры.
Как пример, если взять любое двоичное число, то в компьютерном представлении его разрядность естественно и обязательно совпадет с числом кубитов. Но количество нулей и единиц в этом кубитном представлении ровным счетом абсолютно ничего не скажет о том, на какие множители оно разлагается, а решении уравнения Лиувилля – фон Неймана для матрицы плотности покажет, куда будут эволюционировать состояния кубитов естественным образом, что принципиально никому не интересно и что всеми силами пытаются в квантовых компьютерах не допустить. Надеюсь, вам это тоже известно.
Записан
valeriy
Глобальный модератор
Ветеран
*****
Сообщений: 4167



Просмотр профиля
« Ответ #196 : 20 Декабря 2011, 09:59:01 »

Тем более, что представление о кубите даже в принципе не может быть выражено через представление о квантовой системе в смешанном состоянии. Надеюсь, понятно почему. И пока вы не поймете простую вещь, что исходное состояние всех кубитов любого конкретного квантового компьютера может быть только чистым, вы вообще ничего не поймете. Более того, представление любого простого числа на любом квантовом компьютере должно быть исключительно и только физическим представлением как состояние одной квантовой системы. Тоже надеюсь понятно почему. А представление любого сложного числа наоборот принципиально не может быть описано состоянием одной квантовой системы. Уравнение фон Неймана эти особенности в принципе не "замечает". То есть, подход, предложенный Дорониным, изначально тупиковый. Не статистику надо исследовать, а структуры.
Мне ровным счетом ничего не понятно из Вашего опуса. Именно потому, что он ни о чем не говорит, кроме общих ничего не значащих фраз. Что Вы понимаете под структурой? Пока не дано четкого определения, разговор бессмыслен. Давайте начнем с того, что поведение спина однозначно описывается представлениями группы SU(2). Эта группа включает множество матриц, комплексных матриц, размерности 2х2. Но эта матрица относится к описанию одного спина. Когда спинов много, скажем N штук, и для каждого спина поставлена в соответствие своя матрица размерности 2х2, то для N спинов требуется уже N штук таких матриц. В общем требуется матрица размерности (2х2)хN = 2Nx2N, где вдоль диагонали располагаются те самые 2х2 матрицы. Все было бы ничего, если бы спины еще не взаимодействовали между собой. Но в общем случае, а посему и наиболее интересном, спины находятся во взаимодействии. А это означает, что 2Nx2N матрица не будет диагональной, но будет содержать ненулевые элементы и в других частях матрицы. Если такое представление неприводимо (т.е., какими-либо стандартными математическими операциями нет возможности найти базис, где 2Nx2N матрица могла бы быть приведена к диагональному виду), то такое состояние спинов является запутанным. Задача заключается в том, чтобы понять как управлять всем этим ансамблем спинов, чтобы на выходе получить результат, приводимый к желаемому вычислению. Но здесь есть неприятная особенность, что наблюдать состояние спина можно только при наличии магнитного поля. И в данном случае можно видеть только проекцию спина на направление этого поля. Принято говорить, что спин ориентирован по полю (spin up), или против поля (spin down). К сожалению, именно на этапе регистрации теряется часть информации о истинном состоянии спинового ансамбля.

Записан
Станислав
Ветеран
*****
Сообщений: 867


Просмотр профиля
« Ответ #197 : 20 Декабря 2011, 11:07:50 »

Мне ровным счетом ничего не понятно из Вашего опуса. И
ну что же тут непонятного?
Смысл элементарен - решения уравнения Лиувилля – фон Неймана ровным счетом никакого отношения не имеют к к решению математических задач квантовым компьютером. Для начала просто прочтите, что такое уравнение Лиувилля – фон Неймана:
http://ru.wikipedia.org/wiki/%D3%F0%E0%E2%ED%E5%ED%E8%E5_%F4%EE%ED_%CD%E5%E9%EC%E0%ED%E0
Уравнение фон Неймана — уравнение квантовой механики, описывающее эволюцию как чистых, так и смешанных состояний квантовых гамильтоновых систем.
1. Естественная эволюция, описываемая уравнениями Лиувилля – фон Нейман, грубо говоря, описывает внутренний распад состояний системы кубитов, потому ровным счетом никакого отношения не имеет к математическим алгоритмам программ квантового компьютера, внешним по отношению с этой системе, ежели таковые когда-нибудь будут. Исследовать кубиты уравнениями Лиувилля – фон Нейман - это все равно, что исследовать шумовое стирание записей на жестком диске обычного компьютера.
2. Считывание информации с кубитов (безразлично к способу) в любом случае есть выход за пределы гамильтоновых систем, которые по определению есть системы без диссипации, то есть без потерь, поскольку любое считывание по любому способу есть открытие якобы закрытой системы, оказание на нее внешнего воздействия. Например - "наблюдать состояние спина можно только при наличии магнитного поля".
3. То самое "наблюдать состояние спина можно только при наличии магнитного поля" и есть не только регистрация структурных отношений между кубитами, но и разрушение этих отношений, поскольку любое действие на квантовую систему, в том числе магнитным полем, есть изменение ее состояния.
Давайте начнем с того, что поведение спина однозначно описывается представлениями группы SU(2).
Вы подумайте над вами написанным. Хотя бы над словом "поведение".
Записан
valeriy
Глобальный модератор
Ветеран
*****
Сообщений: 4167



Просмотр профиля
« Ответ #198 : 20 Декабря 2011, 12:32:02 »