RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
FAQ - Quanten-Verschränkung, spukhafte Fernwirkung etc.
 
Neue Frage »
Antworten »
    Foren-Übersicht -> FAQ
Autor Nachricht
TomS
Moderator


Anmeldungsdatum: 20.03.2009
Beiträge: 18083

Beitrag TomS Verfasst am: 19. Dez 2023 17:44    Titel: FAQ - Quanten-Verschränkung, spukhafte Fernwirkung etc. Antworten mit Zitat

Im Folgenden geht es um Quanten-Verschränkung, spukhafte Fernwirkung, Bell-Zustände etc. Dabei möchte ich nicht auf die Bellsche Ungleichung hinaus, sondern auf neuere Ergebnisse, die keine stochastische Interpretation benötigen, d.h. je einzelnem Quantensystem und je Einzelmessung gelten. Außerdem ist die notwendige mathematische Argumentation m.E. deutlich einfacher als zu durchschauen als die Bellsche Ungleichung.

Einstieg in Form eines Rätsels:

Drei magische Objekte, nummeriert als



werden gefunden. An jedem der drei Artefakte können zwei Eigenschaften



jeweils entweder vorliegen (+1) oder nicht vorliegen (-1); d.h. es existiert eine Test-Funktion



die für jede Kombination der Eingaben entweder +1, d.h. "Eigenschaft e am Objekt n liegt vor" oder -1, d.h. "Eigenschaft e am Objekt n liegt nicht vor" liefert.

Man betrachtet nun vier Gesamteigenschaften



die aus Kombinationen der Einzeleigenschaften x bzw. y der drei Objekte "zusammengesetzt" sind. Wiederum haben wir eine Test-Funktion



die für die Eingabe E entweder +1, d.h. "Gesamteigenschaft E liegt am System der drei Objekte vor" oder -1, d.h. " Gesamteigenschaft E liegt am System der drei Objekte nicht vor" liefert.

Das Vorliegen der Gesamteigenschaften ist wie folgt definiert: Eine dieser vier Gesamteigenschaften liegt genau dann vor, wenn entweder alle drei zugehörigen Einzeleigenschaften vorliegen, oder genau eine.

D.h. z.B. für yxy:



Die Definition "entweder alle drei oder genau eine" erlaubt eine sehr kompakte Berechnung mittels der Multiplikation des Ergebnisses der Einzeleigenschaften



wobei n die Objekte nummeriert, und e_n die am n-ten Objekt zu prüfende Eigenschaften bezeichnet. Diese Berechnung ist der Grund, warum ich +1 und -1 wähle, nicht +1, 0 wie bei Bits oder QBits.

Zum Rätsel: Nehmen wir an, wir führen (wiederholt) folgendes Experiment an den drei Objekten durch: Man bringt die Objekte in Kontakt, trennt sie anschließend voneinander, und prüft das Vorliegen einer (zufällig ausgewählten) der vier Gesamteigenschaften anhand von zeitgleichen Beobachtungen der Einzeleigenschaften x, y, an den drei einzelnen Objekten. Man beachte, dass je Durchführung der Messung nie sowohl x als auch y am selben Objekt gemessen werden.

Es stellt sich heraus, dass für jede Durchführung des Experimentes gilt









d.h. xyy, yxy und yyx liegen immer vor, xxx dagegen nie.

Was erscheint an diesem Verhalten paradox?
Wie können die drei Objekte sowie das Gesamtsystem dennoch konstruiert werden?
Wo und warum ist meine Erklärung bei diesem real konstruierten System dann unzutreffend?

… es geht dann weiter mit der Auflösung …

_________________
Niels Bohr brainwashed a whole generation of theorists into thinking that the job (interpreting quantum theory) was done 50 years ago.
TomS
Moderator


Anmeldungsdatum: 20.03.2009
Beiträge: 18083

Beitrag TomS Verfasst am: 20. Dez 2023 13:06    Titel: Antworten mit Zitat

Zunächst nochmal die zentralen Punkte:

Eine dieser vier Gesamteigenschaften liegt genau dann vor, wenn entweder alle drei zugehörigen Einzeleigenschaften vorliegen, oder genau eine.

Diese Definition erlaubt eine sehr kompakte Berechnung



Wir wissen, dass gilt







Damit gilt auch für das Produkt



Nun kommt aber in diesem Produkt aus insgesamt neun Termen jeder y-Term für ein Objekt genau zweimal vor, d.h. quadratisch. Unabhängig vom tatsächlichen Wert y = +1 oder y = -1 ergibt das Quadrat immer +1, die Terme fallen also sämtlich weg. Jeder x-Term steht genau einmal da, d.h.



Letztlich legen die Ergebnisse der ersten drei Messungen xyy, yxy und yyx das der vierten Messung xxx automatisch fest, und zwar auf dem Wert +1; und das ist ein Widerspruch zum oben genannten Ergebnis der Messungen, nämlich -1.

… später folgt eine einfache Konstruktion im Rahmen der Quantenmechanik, die auf -1 führt …

_________________
Niels Bohr brainwashed a whole generation of theorists into thinking that the job (interpreting quantum theory) was done 50 years ago.
TomS
Moderator


Anmeldungsdatum: 20.03.2009
Beiträge: 18083

Beitrag TomS Verfasst am: 20. Dez 2023 13:21    Titel: Antworten mit Zitat

Hier eine explizite Implementierung in Python

Code:
 # imports --------------------

import functools as ft
import itertools as it
import numpy as np
import scipy as sci


# 1. purely classical --------------------
# all purely classical representations for three objects with two distinct properties are constructed
# filter to first three of four properties is applied; for remaining objects all properties are displayed

print('\n   1. purely classical \n')

# indices for x- and y-properties in property vectors
sel_xyy = [0, 1, 1]
sel_yxy = [1, 0, 1]
sel_yyx = [1, 1, 0]
sel_xxx = [0, 0, 0]

# all four pairs of x- and y-properties of one object
prop_xy_pp = [+1, +1]
prop_xy_pm = [+1, -1]
prop_xy_mp = [-1, +1]
prop_xy_mm = [-1, -1]


# value of system property for three objects as product over individual properties
def get_property(s, p):
    # product over all properties p[i] selected by s[i]; complies with # return p[0][s[0]] * p[1][s[1]] * p[2][s[2]]
    return np.prod(np.array(p)[np.arange(len(s)), s])


def has_property(s, p):
    return get_property(s, p) == +1


def has_all_properties(sels, props):
    return all(has_property(s, props) for s in sels)


# generates all combinations of all individual properties over all three objects
def prop_123_gen():
     # loop over all property vectors for 1st, 2nd and 3rd object   
    for props in it.product((prop_xy_pp, prop_xy_pm, prop_xy_mp, prop_xy_mm), repeat=3):
        yield list(props)

   
# generates all combinations passing filter on first three properties xyy, xyx, yxx
def three_props_123_fil_gen():
    for props in prop_123_gen():
        if has_all_properties([sel_xyy, sel_yxy, sel_yyx], props) is True:
            yield props


# driver code --------------------

# loop over all states fulfilling first three conditions
for props_123 in three_props_123_fil_gen():
    e_vals = []
    for sel in (sel_xyy, sel_yxy, sel_yyx, sel_xxx):
        e_vals.append(get_property(sel, props_123))
    print('properties =', e_vals, ';  ', 'state =', props_123)


mit dem Ergebnis

Code:
 1. purely classical

properties = [1, 1, 1, 1] ;   state = [[1, 1], [1, 1], [1, 1]]
properties = [1, 1, 1, 1] ;   state = [[1, 1], [-1, -1], [-1, -1]]
properties = [1, 1, 1, 1] ;   state = [[1, -1], [1, -1], [1, -1]]
properties = [1, 1, 1, 1] ;   state = [[1, -1], [-1, 1], [-1, 1]]
properties = [1, 1, 1, 1] ;   state = [[-1, 1], [1, -1], [-1, 1]]
properties = [1, 1, 1, 1] ;   state = [[-1, 1], [-1, 1], [1, -1]]
properties = [1, 1, 1, 1] ;   state = [[-1, -1], [1, 1], [-1, -1]]
properties = [1, 1, 1, 1] ;   state = [[-1, -1], [-1, -1], [1, 1]]


Der interessante Punkt ist diese Funktion:

Code:
 # generates all combinations passing filter on first three properties xyy, xyx, yxx
def three_props_123_fil_gen():
    for props in prop_123_gen():
        if has_all_properties([sel_xyy, sel_yxy, sel_yyx], props) is True:
            yield props


Es werden zunächst alle möglichen Zustände erzeugt, in dieser Funktion dann bzgl. des Vorliegens der ersten drei Gesamteigenschaften gefiltert; nur diese zulässigen Zustände werden zurück geliefert; wie man dem Output jedoch entnimmt, liefert der Filter für die ersten drei Gesamteigenschaften automatisch einen Filter für die vierten Eigenschaft, so dass nur das Ergebnis +1 zulässig ist.

Natürlich erscheint das zunächst unnötig aufwändig, da ich ja oben gezeigt habe, dass die selbe Argumentation letztlich in einer einzigen Gleichung steckt. Die Idee hinter dem Code besteht darin, die Zustände sozusagen mittels klassischer Logik explizit zu konstruieren. Später folgt dann die mathematische Konstruktion der quantenmechanischen Zustände, sowie wiederum deren Implementierung.

Als Ausblick: der zentrale Unterschied zwischen der klassischen und der Quantenmechanik besteht darin, dass man in der klassischen Mechanik implizit immer den Zustand eines Objektes mit einer Menge von Eigenschaften gleichsetzt, die man auch direkt messen kann; im Code stehen die Werte für die Einzeleigenschaften x und y je Objekt da. In der Quantenmechanik ist dieser Bezug deutlich flexibler: der Zustand eines Objektes wird nicht mittels beobachtbarer Eigenschaften kodiert.

_________________
Niels Bohr brainwashed a whole generation of theorists into thinking that the job (interpreting quantum theory) was done 50 years ago.
TomS
Moderator


Anmeldungsdatum: 20.03.2009
Beiträge: 18083

Beitrag TomS Verfasst am: 21. Dez 2023 13:00    Titel: Antworten mit Zitat

In der Quantenmechanik betrachtet man zunächst einen einzelnen Spin. Für diesen können mittels der drei Pauli-Matrizen *) Quanten-Eigenschaften definiert werden (das bedeutet zunächst Spin ½, also Fermionen; ähnliche Überlegungen gelten jedoch auch für Photonen mit Spin 1).

Zur Definition: Eine Quanten-Eigenschaft an einem Quanten-Objekt liegt genau dann vor, wenn der zugehörige Zustandsvektor ein Eigenzustand des Operators ist, der dieser Eigenschaft zugeordnet ist (dies kann völlig äquivalent auch mittels Projektoren formuliert werden).

Jede Pauli-Matrix a=x,y,z hat die Eigenwerte +1 und -1. Ein Objekt hat also genau dann die Quanten-Eigenschaft e, wenn es im entsprechenden Eigenzustand ist, d.h.



Wichtig ist, dass



d.h. es kann nicht ein gemeinsamer Eigenzustand zu zwei verschiedenen Pauli-Matrizen a ungleich b vorliegen.

Liegt kein Eigenzustand vor, so sprechen wir nicht davon, dass diese Eigenschaft +1 oder -1 nicht vorliegt, sondern dass es sinnlos ist, bzgl. einer definierten Eigenschaft irgendeine Aussage treffen zu wollen; das System befindet sich in einer Superposition, wobei beide Eigenschaften +1 und -1 beitragen.

Als nächstens müssen wir drei Objekte betrachten. Dazu verwenden wir sogenannte Tensorproduktzustände **) in der Reihenfolge erstes, zweites, drittes Objekt; das ersetzt die Nummerierung n=1,2,3. Interessieren wir uns beispielsweise für die Eigenschaft y des dritten Objektes, so wird daraus der Operator



Wichtig ist, dass Eigenschaften x und y im Folgenden nie am selben Objekt sondern immer an zwei verschiedenen Objekten betrachtet werden, z.B. die Eigenschaft x am ersten und y am dritten Objekt



Nun betrachtet man wieder die vier Eigenschaften xyy, yxy, yyx und xxx sowie die zugehörigen Operatoren l



(alle weiteren analog)

Interessanterweise vertauschen diese vier Operatoren untereinander, obwohl die einzelnen Operatoren je einzelnem Objekt i.A. nicht vertauschen. Am Beispiel xyy und xxx



Nun ist jedoch





und somit



(alle weiteren analog)

Witzigerweise vertauschen die vier Gesamteigenschaften des Systems, d.h. mehrere können gleichzeitig vorliegen, obwohl dies für die Einzeleigenschaften je Objekt nicht gilt.

Die Zielsetzung ist klar: Gesucht ist ein gemeinsamer Eigenzustand der vier Operatoren zu xyy, yxy, yyx und xxx, mit den vier Eigenwerten +1, +1, +1, -1.

Das leistet der Zustand ***)



wobei ich







verwende, also Eigenzustände bzgl. der z-Pauli-Matrix.

Dieser GZH-Zustand liefert tatsächlich für xyy, yxy, yyx, xxx die Eigenwerte +1, +1, +1, -1. Exemplarisch die Berechnung für xyy und den ersten Term im GZH_Zustand:



(Rest analog)

Es liegt jedoch kein x-Eigenzustand für das dritte Objekt vor, denn



(Rest analog)

D.h. wir haben diese vier Quanten-Eigenschaft für ein geeignetes Quantensystem mathematisch konstruiert (und es wäre wohl kaum 2022 ein Nobelpreis dafür verliehen worden, wenn dies nicht auch experimentell präpariert und gemessen worden wäre) so dass dies explizit nicht klassisch funktionieren kann: jeder Versuch, einen Zustand als Menge aller bekannten klassischen Eigenschaften aufzufassen, scheitert; umgekehrt bietet die Quantenmechanik einen erweiterten Zustandsbegriff, in dem Zustand und (durch Messungen bestimmbare) Eigenschaften nicht unmittelbar miteinander identifiziert werden.

Der Nachweis dieser Quanten-Eigenschaften ist deswegen besonders interessant, weil er im Gegensatz zu anderen Tests an verschränkten bzw. Bell-Zuständen ohne Rückgriff auf stochastische Überlegungen auskommt; es ist ausreichend, dies experimentell an einem einzelnen System nachzuweisen.

Der GHZ-Zustand ist ein Beispiel für die Widerlegung des lokalen Realismus: dem Gesamtsystem kommen sicher Eigenschaften wie xyy, yxy, yyx und xxx zu, wobei gleichzeitig das Vorliegen einzelner, an den jeweiligen Objekten lokalisierbarer Eigenschaften x und y ausgeschlossen ist.

*) https://en.wikipedia.org/wiki/Pauli_matrices
**) https://en.wikipedia.org/wiki/Tensor_product_of_Hilbert_spaces
***) https://www.physics.smu.edu/scalise/P5382fa15/Mermin1990a.pdf

_________________
Niels Bohr brainwashed a whole generation of theorists into thinking that the job (interpreting quantum theory) was done 50 years ago.
TomS
Moderator


Anmeldungsdatum: 20.03.2009
Beiträge: 18083

Beitrag TomS Verfasst am: 26. Dez 2023 16:04    Titel: Antworten mit Zitat

Hier wieder die explizite Implementierung:

Code:
 # 2. quantum mechanical; appropriate states as simultaneous eigenstates --------------------
# all quantum mechanical representations for three entangled objects with quantum mechanical spins are constructed
# filter to first three of four properties is applied; for remaining objects all properties are displayed

# Pauli matrices --------------------

print('\n   2. quantum mechanical \n')

# Pauli matrices
# https://en.wikipedia.org/wiki/Pauli_matrices
sigma_0 = np.matrix([[1, 0], [0, 1]])
sigma_x = np.matrix([[0, 1], [1, 0]])
sigma_y = np.matrix([[0, -1j], [1j, 0]])
sigma_z = np.matrix([[1, 0], [0, -1]])

# eigenvectors (not normalized!) for eigenvalues +1, -1 of the Pauli matrices
# https://en.wikipedia.org/wiki/Pauli_matrices#Eigenvectors_and_eigenvalues
e_ket_z_p = np.array([1, 0])
e_ket_z_m = np.array([0, 1])


# tensor product for list of orguments, either all operators or all vectors
# https://en.wikipedia.org/wiki/Tensor_product_of_Hilbert_spaces
def tens_prod(*elems):
    return ft.reduce(lambda x, y: np.kron(x, y), elems)


# operators for system properties
Sigma_xyy = tens_prod(sigma_x, sigma_y, sigma_y)
Sigma_yxy = tens_prod(sigma_y, sigma_x, sigma_y)
Sigma_yyx = tens_prod(sigma_y, sigma_y, sigma_x)
Sigma_xxx = tens_prod(sigma_x, sigma_x, sigma_x)

# GHZ eigenstates
ghz_pppm_ket = tens_prod(e_ket_z_p, e_ket_z_p, e_ket_z_p) - tens_prod(e_ket_z_m, e_ket_z_m, e_ket_z_m)
ghz_mmmp_ket = tens_prod(e_ket_z_p, e_ket_z_p, e_ket_z_p) + tens_prod(e_ket_z_m, e_ket_z_m, e_ket_z_m)


# handling eigenvalues and -vectors --------------------

# returns all simultaneous eigenkets for a given list of operators
# commutator [.,.] == 0 is not checked!!
def simul_eigen_ket_generator(ops):
    rands = np.random.randint(1, 100, len(ops))
    # diagonalize a random linear combination of the operators
    rnd_lin_ops = np.sum(rands[:, np.newaxis, np.newaxis] * ops, axis=0)
    _, e_kets = sci.linalg.eig(rnd_lin_ops)
    for k in range(rnd_lin_ops.shape[0]):
        e_ket = e_kets[:, k:k+1].T[0]
        yield e_ket


# checks if valid pair of eigenvalue and eigenket for operator op
def is_eigen_ket(op, val, ket):
    return np.allclose(np.matmul(op, ket), np.multiply(val, ket))


# checks if valid pair i.e. simultaneous eigenvalue and eigenket for all operators in ops
def is_sim_eigen_ket(ops, vals, ket):
    return all(is_eigen_ket(op, val, ket) for op, val in zip(ops, vals))


# given one eigenket, for each op in ops the eigenvalues in e_list are checked and returned
def get_eigen_vals(ops, e_ket, e_val_list=(-1, +1)):
    e_vals = []
    for op in ops:
        e_vals.extend([e for e in e_val_list if is_eigen_ket(op, e, e_ket)])
    return np.array(e_vals)


# generates all simultaneous eigenkets for the four system properties
def ket_123_fil_gen():
    for ket_123 in simul_eigen_ket_generator([Sigma_xyy, Sigma_yxy, Sigma_xyy, Sigma_xxx]):
        if (is_sim_eigen_ket([Sigma_xyy, Sigma_yxy, Sigma_yyx], [+1, +1, +1], ket_123) is True):
            yield ket_123
        elif (is_sim_eigen_ket([Sigma_xyy, Sigma_yxy, Sigma_yyx], [-1, -1, -1], ket_123) is True):
            yield ket_123


# driver code --------------------

# loop over all states fulfilling first three conditions

print('search over all states')
for e_ket in ket_123_fil_gen():
    e_ket = np.sqrt(2.) * e_ket
    e_vals = get_eigen_vals([Sigma_xyy, Sigma_yxy, Sigma_yyx, Sigma_xxx], e_ket)
    print('properties =', e_vals.tolist(), ';  ', 'state =', np.round(e_ket, 2).tolist())

print()

print('check GHZ states directly')
print('properties =', get_eigen_vals([Sigma_xyy, Sigma_yxy, Sigma_yyx, Sigma_xxx], ghz_pppm_ket).tolist(), ';  ', 'state = ', ghz_pppm_ket.tolist())
print('properties =', get_eigen_vals([Sigma_xyy, Sigma_yxy, Sigma_yyx, Sigma_xxx], ghz_mmmp_ket).tolist(), ';  ', 'state = ', ghz_mmmp_ket.tolist())

_________________
Niels Bohr brainwashed a whole generation of theorists into thinking that the job (interpreting quantum theory) was done 50 years ago.
Neue Frage »
Antworten »
    Foren-Übersicht -> FAQ