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

+  Квантовый Портал
|-+  Тематические разделы
| |-+  Физика (Модератор: valeriy)
| | |-+  Тестирование программы
0 Пользователей и 16 Гостей смотрят эту тему. « предыдущая тема следующая тема »
Страниц: 1 ... 3 4 [5] 6 7 8  Все Печать
Автор Тема: Тестирование программы  (Прочитано 176558 раз)
Pipa
Администратор
Ветеран
*****
Сообщений: 3658


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


Просмотр профиля WWW
« Ответ #60 : 13 Января 2008, 23:09:27 »

Цитата:
Могу я их ввести, кроме как вручную забивая каждую цифру?

    Пока не можете, но сделаю, чтобы было можно.

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


Просмотр профиля
« Ответ #61 : 13 Января 2008, 23:17:42 »

Правильно понимаю, чтобы увидеть матрицу плотности подсистемы AB (если моделируется система ABCDEFG) в списке запутанностей надо указать "AB<-*" в терминологии программы?

Стрелочка должна быть в другую сторону, т.е. АВ->*. Она направлена в ту сторону, которая "отбрасывается".
Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #62 : 14 Января 2008, 00:15:39 »

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

Еще момент. Вы как-то упоминали, что каждая ячейка таблицы это по сути отдельное окно, поэтому когда выбираешь много кубитов, таблица долго строится и выводится на экран. Возможно этому можно помочь, если использовать другой более подходящий класс Builder'а для отображения данных: какой-нибудь DataGrid или StringGrid?
По примеру того же Excel - у него ячейки таблицы очень сложные, но выводит он листы с 16536*256 ячеек (а в версии 2007 вообще 1 млн на 16 тыс!) почти мгновенно.

Стрелочка должна быть в другую сторону, т.е. АВ->*. Она направлена в ту сторону, которая "отбрасывается".

тогда в файле out.txt заголовки неверные:
если смотреть по AB ->*, то там написано:
"Remained qubits: AB"
а если смотреть по AB <-*, то
"Reduced qubits: AB"
А получается надо наоборот?
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #63 : 14 Января 2008, 00:30:48 »

тогда в файле out.txt заголовки неверные:
если смотреть по AB ->*, то там написано:
"Remained qubits: AB"
а если смотреть по AB <-*, то
"Reduced qubits: AB"
А получается надо наоборот?

Remained, это те кубиты, которые остаются, когда AB ->* остаются АВ, а Reduced - те, по которым делается редукция (они убираются). По размерности редуцированной  МП можно сообразить, что остается.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3658


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


Просмотр профиля WWW
« Ответ #64 : 14 Января 2008, 00:39:09 »

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

   Программой распоряжается С.И.Доронин, я программу не распространяю.

Еще момент. Вы как-то упоминали, что каждая ячейка таблицы это по сути отдельное окно, поэтому когда выбираешь много кубитов, таблица долго строится и выводится на экран. Возможно этому можно помочь, если использовать другой более подходящий класс Builder'а для отображения данных: какой-нибудь DataGrid или StringGrid?
По примеру того же Excel - у него ячейки таблицы очень сложные, но выводит он листы с 16536*256 ячеек (а в версии 2007 вообще 1 млн на 16 тыс!) почти мгновенно.

   DataGrid - это тот же StringGrid, но связанный с базой данных, т.е. проблемы у них будут общие. Excel действительно шире по возможностям, т.к. там только текущее окошко настоящее, а остальные - бутафория. Однако, чтобы использовать Excel, должен быть проинсталлирован Microsoft Office, а он стоит не у всех. А во-вторых (и это хуже всего) - таблица Excel не имеет таких четких границ, как StringGrid. Она велика и по ряду причин неудобна.

тогда в файле out.txt заголовки неверные:
если смотреть по AB ->*, то там написано:
"Remained qubits: AB"
а если смотреть по AB <-*, то
"Reduced qubits: AB"
А получается надо наоборот?

   Заголовки правильные. В каждом случае распечатывается матрица ТОГО, ЧТО ОСТАЛОСЬ ПОСЛЕ редуцирования. Я уже объясняла ранее:
Например, если вам нужна редукция по AB, то пропишите "AB<-*". Затем на форме Matrix нажмите на кнопку Start и сделайте двойной клик мышкой по той строке списка, где стоит ваша комбинация. Тогда выскочит детальный пошаговый расчет, в котором вы без труда найдет строчку "Reduced qubits: AB", после которой будут распечатана отредуцированная матрица. Если же вы хотите, чтобы AB не редуцировались, а остались в остатке, то направьте стрелочку в противоположную сторону.
   Слова "редукция по AB" здесь означают, что кубиты A и B были отредуцированы, т.е. УДАЛЕНЫ. Следовательно распечатываемая после этих слов матрица показывает то, что ОСТАЛОСЬ ПОСЛЕ удаления. Когда же в отчете пишется "Remained qubits: AB", то тут это уже действительно сам остаток, состоящий из кубитов AB.
   Некоторую путаницу вносит само слово "редукция", которое требует после себя указания на список того, что подверглось редукции, т.е. удалению.
Записан
С.И. Доронин
Администратор
Ветеран
*****
Сообщений: 795


Просмотр профиля
« Ответ #65 : 15 Января 2008, 15:24:36 »

April, ksv

Высылаю вам на почту новую версию программы (Qe77).

Сопроводительный текст Пипы с изменениями в программе:

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

2) В меню "Test" появились два новых пункта:
     a) "Hami bitmap" - это вывод тех картинок, где элементы матрицы гамильтониана представлены точками разной степени серости. На форуме я уже публиковала картинки, которые были сделаны таким образом.
     b) "Density bitmap" - это уже серьезнее. Аналогичный способ отображения применен для текущей матрицы плотности! Когда на этом пункте меню стоит галочка, то в вершину списка вставляется поточечная картинка матрицы плотности (при снятии галочки вставка исчезает). Start процесса эволюции в этом режиме позволяет видеть, как запутанность коррелирует с "расплыванием" чисел по матрице. Особенно наглядно при начальной матрице A1.
 Степень черноты для элементов матрицы определяется модулем комплексного числа. Задержка в полсекунды на точку выставлена специально, чтобы можно было успевать наблюдать за процессом.
 Режим "кликни мышкой в точку на кривой" работает и в этом режиме, показывая соответствующие картинки матрицы в указанной точке.

3) В Ini-файле появились секции:
Секция [SET], в которой старый список кубитов + цвета кривых. При ручном редактировании цвета вводить не обязательно - пропущенный цвет будет установлен по умолчанию, как и было раньше.
Секция [CONFIG] - все остальное, что включает в себя большинство установок: число кубитов, вариант матрицы, тип гамильтониана, его константы, шаг (STEP), пользовательский формат (число знаков после запятой) и новый параметр "Tabulator" (в меню формы Matrix), действующий на одновременно открытое окно notepad. Альфы и беты пока в ini-файл не пишутся.
    Запись секции [CONFIG] через меню "File->Save config", а запись секции [SET] - так же, как было раньше - по локальному меню "Save set to INI-file". Меню "File->Reset config" позволяет сбросить запомненные ранее установки на стандартные - 3, A1, MQ, 2950, 1e-05 и т.д. Если нужно, чтобы сброс отразился и в INI-файле, нужно вручную сделать после этого "File->Save config".

4) Окна чуть-чуть увеличены (около 5%). Теперь помещается целиком матрица в режиме отображения "Bitmap density" и кнопка "Major eigenvector" (на вкладке "Amplitude").

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

6) Добавлено меню "Paste", позволяющее загрузить из клипборда матрицу плотности или вектор амплитуд (в зависимости от того, какая закладка в этот момент активна). Механизм работает даже напрямую из Excel, но размеры матриц должны быть одинаковыми. Матрица загружается только целиком на закладке "complex".

7) Теперь меню "Clear" стирает либо матрицу, либо амплитуды (в зависимости от того, какая закладка в этот момент активна), а не обе сразу, как было раньше.

Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #66 : 15 Января 2008, 15:35:51 »

Спасибо.
Записан

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


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


Просмотр профиля WWW
« Ответ #67 : 15 Января 2008, 15:48:49 »

Альфы и беты пока в ini-файл не пишутся.

   Уже пишутся, точнее говоря - бета и гамма. Текущая версия запоминает в ini-файле также и "соседние константы", если таковые были заданы.

8) Вектор амплитуд тоже может быть записан файл или прочитан из него. В этом режиме работают меню "Save" и "Load" на закладке "Amplitude".
Записан
ksv
Новичок
*
Сообщений: 42


Просмотр профиля
« Ответ #68 : 15 Января 2008, 23:15:42 »

April, ksv

Высылаю вам на почту новую версию программы (Qe77).

Большое спасибо!

Цитата:
2) В меню "Test" появились два новых пункта:
     a) "Hami bitmap" - это вывод тех картинок, где элементы матрицы гамильтониана представлены точками разной степени серости. На форуме я уже публиковала картинки, которые были сделаны таким образом.
Цитата:
     b) "Density bitmap" - это уже серьезнее. Аналогичный способ отображения применен для текущей матрицы плотности!
Просто потрясающе! По сути Вы придумали, как сделать наглядной матрицу (любой размерности) и охватить ее одним взглядом! Корреляция меры запутанности и расползания чисел по матрице видна явно. Видны и некоторые другие закономерности: например, при больших размерностях числа в матрице как бы группируются - в процессе динамики возникают определенные кластеры.
А каков алгоритм построения изображений? Каждый пиксель - число из матрицы, чем он чернее - тем число больше. А как отображаются отрицательные и комплексные числа?

Цитата:
6) Добавлено меню "Paste", позволяющее загрузить из клипборда матрицу плотности или вектор амплитуд (в зависимости от того, какая закладка в этот момент активна). Механизм работает даже напрямую из Excel, но размеры матриц должны быть одинаковыми. Матрица загружается только целиком на закладке "complex".
Попробовал загрузить из Excel. Удалось загрузить только действительную часть. В мнимую часть данные не встают.
Чем должны отделяться действительная и мнимая части, чтобы они загрузились?
Кроме того, разделитель целой и дробной части должна быть точка - иначе вставляется только целая часть.
Записан
Pipa
Администратор
Ветеран
*****
Сообщений: 3658


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


Просмотр профиля WWW
« Ответ #69 : 16 Января 2008, 00:25:18 »

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

   Было ясно сказано: "Степень черноты для элементов матрицы определяется модулем комплексного числа". Рассказать, как модуль комплексного числа вычисляют? Пожалуйста. Модуль комплексного числа a+bi равен sqrt(a*a+b*b).
   Элемент матрицы с максимальной величиной модуля принимается за самый густой черный цвет, а остальные элементы имеют степень черноты в процентах от нее.
   Технически не сложно красить положительные и отрицательные значения в разные цвета. Или использовать для отображения комплексных чисел цветовую маску RGB (красный-зеленый-синий). Например, действительную часть отображать красным, а мнимую синим - тогда комплекное число окажется покрашено смесью этих красок, т.к. цвета в маске программируются отдельно. Однако поигравшись с вариантами, я остановилась на самом, казалось бы, примитивном варианте отображения серым цветом, поскольку только это представление отражает истинное распределение плотности, а яркие цвета только красиво выглядят, но затрудняют интерпретацию.

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

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

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

   Это специально было сделано, т.к. русские запятые в качестве десятичного разделителя испортили все нервы :). Кроме того, программа подчеркнуто англоязычная.
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #70 : 16 Января 2008, 08:54:10 »

   Было ясно сказано: "Степень черноты для элементов матрицы определяется модулем комплексного числа". Рассказать, как модуль комплексного числа вычисляют?

Упаси, Боже, нет!  Шокированный
В смысле, привет, Пипа!  Подмигивающий

Спасибо, что добавила в ini-файл цвета кривых и секцию [CONFIG].
И присоединяюсь к похвалам ksv, мне тоже очень понравился тест "Density bitmap" (только не хватает координатной сетки, трудно понять, какая именно клетка матрицы раскрашена). И черно-белое исполнение - самое то Подмигивающий )
Я сравнила картинку со  значениями в матрице, я поняла, что такое матрицы плотности  Смеющийся,  и как можно задать пользовательское начальное состояние. Смеющийся
Вряд ли я смогу расчитать его с точностью до четвертого знака мнимой части комплексного числа  Шокированный, но можно задать примерно, ориентируясь на нужный тон квадратика  :)
Очень полезная вещь, связывающая иллюстративную модель (графики) и теоретическую - матрицы.

Отчет.
1.Я разобралась с вкладкой графиков.
2.На вкладке "матрицы" разобралась с "real", "image" и "complex", пока не разобралась с "amplitude" и "mixer".
3. Сфера Блоха. Не разобралась, что обозначает желтенькая часть конуса (луча или как правильно сказать?), а что красненькая. И еще, как задать, чтобы площать основания конуса стала больше?
Спасибо.

Записан

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


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


Просмотр профиля WWW
« Ответ #71 : 16 Января 2008, 12:19:33 »

Пояснения по программной реализации сфере Блоха



   Реализация сферы Блоха - это мое задание на лето :), которым я занималась, когда Доронин был в отпуске. Никакими инструкциями и пожеланиями это задание не сопровождалось, и потому результат оказался несколько неожиданным. Сразу признаюсь в том, что сделанное балансирует на острие сильнейшего компромисса. Улучшение работы одних элементов приводило к ухудшению или даже разрушению других. Причем этот компромисс имеет место буквально во всех мыслимых случаях, начиная с отображения сферы. Одиннадцать версий программы были выброшены в мусорную корзину, и каждый раз все начинала сначала. Я сама вижу массу недостатков в текущей реализации, но их "исправление" приводит к появлению новых неприятностей, которые оказываются еще хуже.
   Вектор пришлось продолжить до пересечения со сферой другим цветом (красным), и рисовать как расширяющийся столб света, ибо в противном случае оказалось невозможным зрительно представлять его положение. Более короткие, чем радиус, вектора зрительно все равно кажутся вписанными в окружность, что создавало обманчивое представление об их настоящем положении в сфере. Чтобы свести к минимуму такие эффекты была проведена проекция конца вектора на плоскость, а из проекции проведены перпендикуляры к сторонам. Только такая радикальная мера позволила вернуть зрительному восприятию правильные пропорции.
   Очень многое в данной реализации не столь очевидно, как на первый взгляд кажется. В частности, я поставила перед собой задачу не выпускать вектор из сферы единичного радиуса. Это наложило на органы управления сферой определенную долю "несговорчивости". И в первую очередь это касается заданий проекций Px, Py и Pz.
   Таким образом "настоящий" вектор Блоха рисуется желтым цветом, а красный вектор всегда проложен "до упора", т.е. до пересечения с поверхностью сферы. Роль красного "столба света" состоит в указывании направления. Красная часть представляет собой ту длину, до которой вектор Блоха может еще расти. Если не продолжать вектор до пересечения со сферой, то возникает визуальный эффект, что короткий вектор все равно вписан в сферу и касается ее поверхности. Видимо таково наше восприятие, когда мы видим палочку в двумерной проекции сферы. Подсознательно мы каждый раз считаем любую палочку, исходящую из центра сферы, ее радиусом. А укорочение длины относим за счет поворота. А в общем же случае по двумерной картинке никак невозможно определить касается ли вектор сферы или нет, а определить это очень важно. Вот и приходится продолжать, пусть и другим цветом, вектор до величины радиуса, чтобы наше восприятие правильно зафиксировало положение вектора в пространстве. А доля желтого на фоне красного позволяет даже на глаз оценить длину вектора Блоха, т.к. отношение отрезков желтого и красного цвета легко определяется почти при любом варианте поворота.
   Когда красный цвет полностью заменяется на желтый, то это означает, что вектор Блоха достиг своей максимальной длины. После этого вектор перестанет "слушаться руля" при попытках сделать его еще длиннее, увеличивая его проекции. Лимбы сдвинутся, но синяя полоска при этом останется на старом месте, показывая пользователю, что его пожелание принято, но исполнено быть не может. Однако такие пожелания могут сами исполниться после того, как какую-то из проекций (Px, Py или Pz) уменьшат.
Записан
Любовь
Ветеран
*****
Сообщений: 7250



Просмотр профиля
« Ответ #72 : 16 Января 2008, 13:44:25 »

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


Просмотр профиля
« Ответ #73 : 16 Января 2008, 13:50:24 »

April

Цитата:
3. Сфера Блоха. Не разобралась, что обозначает желтенькая часть конуса (луча или как правильно сказать?), а что красненькая.

В дополнение к словам Пипы, если сказать просто, то наличие красного цвета означает, что состояние смешанное и точка, соответствующая данному состоянию (данной матрице плотности) лежит внутри шара (на границе между желтым и красным). В этом случае вектор поляризации не доходит до поверхности самой сферы, точки которой соответствуют чистому состоянию. Чем меньше красная часть вектора, тем ближе состояние к чистому.
Единственное «цветовое» исключение, когда нет красного цвета, но состояние смешанное – это для максимально смешанного состояния (желтая точка в начале координат).
Записан
April
Ветеран
*****
Сообщений: 893


Просмотр профиля WWW
« Ответ #74 : 17 Января 2008, 11:41:16 »

Пояснения по программной реализации сфере Блоха
Спасибо, Пипа!  Подмигивающий
В дополнение к словам Пипы, если сказать просто, то наличие красного цвета означает, что состояние смешанное и точка, соответствующая данному состоянию (данной матрице плотности) лежит внутри шара (на границе между желтым и красным).
Это все мне напомнило вашу дискуссию с Майком про вывернутого наизнанку ежика.  Смеющийся
Если разместить позицию восприятия в центр сферы и выпустить во все стороны множество лучей внимания, доходящих до поверхности, то получится  желтенький, нормальный, ежик (если, конечно, желтеньких ежиков можно назвать нормальными  Смеющийся). А если   восприятие  распределить по поверхности сферы и выпустить лучи внимания внутрь сферы к ее центру, получится вывернутый на изнанку красненький ежик  Смеющийся

Я вчера  задавала различные начальные значения в матрице и рассматривала результаты теста "Density bitmap" для двухкбитовой системы. Нашла ответы еще на несколько своих старых вопросов :).
Но я не об этом.
Вот смотрю это я, смотрю, как пара кубиков меняют свою окраску, туда-сюда, туда-сюда..
И думаю: а если сделать все наоборот? Ну вот как со сферой Блоха? Раскрасить как раз ту часть, которая в данной реализации не раскрашена? Не раскрашенная часть – это значения близкие к нулю. А если считать наоборот? От некоей предельной гипотетической единицы? Тогда это будут очень высокие значения запутанности системы, ведущей себя согласно тому же гамильтониану. И по идее – той же самой системы!
Хотя это только мои предположения, но очень интересно, что это такое будет?
Что скажете?
Записан

Страниц: 1 ... 3 4 [5] 6 7 8  Все Печать 
« предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by SMF 1.1.10 | SMF © 2006-2009, Simple Machines LLC