Обновление переменных связи в калибровочной теории решетки SU(N)SU(N)SU(N)

В настоящее время я пишу базовую программу на питоне для моделирования 1 + 1-мерной калибровочной теории Ян Миллса с группой симметрии С U ( 2 ) .

На решетке вы работаете с переменными связи, которые С U ( Н ) матрицы, определенные формально как U ты ( Икс ) "=" е я г а А ты ( Икс ) , где А ты ( Икс ) "=" я "=" 0 Н 2 1 ( А ты я Т я ) и где Т я это я т час генератор С U ( Н ) группа. Действие решетки связано с плакетками на решетке, где плакетка — это наименьшее замкнутое произведение переменных связи на решетке. Чтобы было ясно: U ты ( Икс ) является вектором С U ( Н ) матрицы: у вас будет одна С U ( Н ) матрица для каждого ты . Так U Икс ( Икс ) является матрицей SU (N), как и U т ( Икс ) .

Алгоритм обновления Монте-Карло выглядит следующим образом. Мы смотрим на ссылку в решетке индивидуально и предлагаем изменить указанную переменную ссылки, U ты ( Икс ) U ты ( Икс ) (где u — направление ссылки; в измерениях 1 + 1 это либо Икс или т ) Затем мы вычисляем изменение действия, которое произошло бы, если бы мы приняли это изменение. U ты ( Икс ) U ты ( Икс ) . Если изменение действия, г С , отрицательно, то мы принимаем изменение. Если изменение действия, г С положительно, то мы принимаем изменение с вероятностью е г С . Мы делаем этот процесс для каждой переменной связи в решетке.

Так; вот мой вопрос. Как предложить достаточно небольшие изменения в SU(N)-матрице, чтобы средняя вероятность принятия не была абсурдно малой? Я не думаю, что могу предложить изменения формы U ты ( Икс ) U ты ( Икс ) + U ты ( Икс ) , где U ты ( Икс ) является «маленькой» матрицей SU (N) (если вообще существует такая вещь), поскольку я не думаю, что сумма двух матриц SU (N) обычно равна SU (N). Я мог бы просто сгенерировать К случайные SU(N)-матрицы, а затем случайным образом выбрать одну из этих К С U ( Н ) матрицы, которые будут моей предложенной переменной ссылки U ты ( Икс ) . Однако, когда я реализую это, я получаю г С с большими величинами, что означает низкую вероятность принятия. Это означает, что необходимо выполнить большое количество итераций, чтобы получить конфигурацию, независимую от исходной.

Извините за длину. Если кому-то нужен мой код в данный момент, дайте мне знать. Он написан на питоне и имеет только итератор и способ генерации К случайные SU(2)-матрицы.

РЕДАКТИРОВАТЬ: я думаю, что нашел источник несоответствия между моими первоначальными результатами и моими текущими результатами. Допустим, я генерирую 1000 случайных матриц su(2), используя некоторый алгоритм. Чтобы обновить переменные ссылки, я предлагаю U ты ( Икс ) М U ты ( Икс ) , где M — одна из моих 1000 случайных su(2)-матриц. Я не уверен, что вы можете на самом деле построить все пространство su(2), многократно перемножая эти 1000 случайных матриц. Даже когда я изменил свой код на 2+1 D su(2) yang mills, у меня все еще возникает проблема, связанная с изменением ожидаемого значения плакетки при изменении размера шага. В частности, ожидаемое значение плакетки увеличивается, когда я уменьшаю размер шага. Только когда я генерирую полностью случайные матрицы su(2) M для обновления U ты ( Икс ) М U ты ( Икс ) я получаю минимальный размер плакетки.

EDIT2: может быть, я обновляю сразу всю решетку? Что я делаю, так это просматриваю решетку один раз, не меняя никаких ссылок, а затем меняю все ссылки в конце каждой итерации.

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

Похоже, ни у кого нет ответов. Простым способом было бы определить матрицы SU (2) в экспоненциальной форме, используя 3 генератора группы SU (2). Затем я мог бы предложить небольшие изменения в трех «углах», но это значительно увеличило бы требуемую вычислительную мощность, поскольку вычисление матричной экспоненты требует значительных вычислительных ресурсов.
Напомним, что
е я в я о я "=" ( потому что в + я в 3 в грех в ( в 2 + я в 1 ) в грех в я ( в 1 + я в 2 ) в грех в потому что в я в 3 в грех в )
с в "=" в 1 2 + в 2 2 + в 3 2 .
Я также знаю, что любая матрица SU (2) может быть представлена ​​​​в виде б 0 * я + я * б Дж * о Дж , Дж "=" 1 , 2 , 3 , где б 0 2 + б 1 2 + б 2 2 + б 3 2 "=" 1 , я - единичная матрица 2 на 2, и где о Дж , Дж "=" 1 , 2 , 3 три матрицы Паули. Я сейчас изучаю алгоритм нагревания (вероятно, алгоритм CKP)
1000 случайно выбранных С U ( 2 ) элементы почти наверняка генерируют С U ( 2 ) . (Для того чтобы создать подгруппу, им потребуются чудесные совпадения.) Но они могут делать это неэффективно . Возможно, вам придется рассмотреть довольно большие их мощности, прежде чем вы получите достаточную плотность в С U ( 2 ) .

Ответы (2)

Для обновления переменных ссылки вы хотите воспользоваться тем фактом, что С U ( 2 ) это группа. Так что найдите "маленькую" матрицу М "=" е Икс п ( я ϵ ЧАС ) е С U ( 2 ) , и обновить в соответствии с U мю ( Икс ) М U мю ( Икс ) .

Я рекомендую взглянуть на "Lattice QCD for Novices" Ле Пейджа. Там есть несколько советов, которые вы найдете полезными.

Также полезно, если вы не знаете об этом: КХД ​​с двумерной решеткой точно решаема, поэтому вы можете проверить свои результаты на работоспособность.

Не беспокойтесь о C и Python для 2d. Питон в порядке.

О, классно. Я понятия не имел, что это было точно решаемо. Я сделал поиск в Google, но не смог найти его. Есть ли шанс, что у вас есть ссылка на документ/лекцию, посвященную решению? Кроме того: я на самом деле пытался реализовать это, но обнаружил, что размер шага влияет на ожидаемое значение плакетки, поэтому я, должно быть, делаю что-то не так.
Что касается точного решения: я должен был сказать, что это 2d Янга-Миллса, а не 2d КХД. Добавление фермионов портит разрешимость. Первоначальная идея принадлежит Мигдалу, но лучшее объяснение, которое я знаю, принадлежит Виттену. Взгляните на раздел 2.3 его книги «О квантовых калибровочных теориях в двух измерениях».
Вопрос: Если у меня есть два алгоритма обновления, один из которых U ты ( Икс ) М где M(x) — случайная SU(2)-матрица, и матрица, где U ты ( Икс ) М U ты ( Икс ) , где M - матрица SU (2) около единицы, должен ли я получить тот же результат для ожидаемого значения плакетки? Также; в вашем примере, должно ли математическое ожидание плакетки зависеть от параметра ϵ ? Спасибо
Я не думаю, что первый рецепт даст результаты, которые можно использовать на практике. Частота отклонений должна быть довольно высокой, поэтому время автокорреляции цепочки Монте-Карло будет очень большим, что не позволит вам эффективно выбрать распределение Янга-Миллса. Я бы не ожидал получить те же значения ожидания.
ϵ не предназначался как параметр; это просто для того, чтобы указать, что матрицы должны быть близки к идентичности. Попробуйте предварительно сгенерировать несколько сотен из них с разными значениями ϵ взято из нормального распределения Н ( 0 , ж ) ширины ж . Затем случайным образом выберите одну из предварительно сгенерированных матриц при обновлении. Ширина ж повлияет на автокорреляцию цепочки Монте-Карло, но не повлияет на ваши окончательные результаты.
На самом деле я получаю те же результаты, ЕСЛИ M в моем примере является полностью случайной матрицей su (2), но не в том случае, если она близка к единичной матрице. Странный.
Я добавил алгоритм обновления, при котором 10 000 случайных матриц su(2) относительно единицы генерируются в соответствии с методом AccidentalFourierTransforms. Проблема в том, что для размеров шагов, сгруппированных вокруг 0 ​​(маленькие размеры шагов), плакетка значительно увеличивается. Я не уверен, почему. Я могу опубликовать свой код, если кто-то хочет.

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

  1. Масштабируется ли ваше изменение в действии с временным шагом вашего интегратора n-го порядка, например Δ С ( Δ т ) н ?
  2. Следующее, что нужно проверить, — является ли ваш U бесследным в конце стадии эволюции. Сделайте в коде подпрограмму для реунитаризации (т.е. снова сделайте унитарной), если это не так. Одним из эффективных способов реунитаризации является использование SVD (разложение по сингулярным значениям).
  3. Попробуйте сгенерировать одно случайное число для всей решетки при попытке принять/отклонить.
  4. Кроме того, создайте процедуру, в которой она выдает случайные SU( Н ) матрица, это может быть полезно.

Если в будущем вы планируете усложняться, я предлагаю вам попытаться написать код на C/C++ (это код QCD на основе MILC, http://www.physics.utah.edu/~detar/milc/milcv7 ). .pdf использует)

Также вот очень полезная ссылка, которая поможет понять недостающие ссылки: https://arxiv.org/pdf/1506.02567.pdf .

Есть и другие тесты, о которых я не упомянул, например е Δ С "=" 1 и т.д.