Deutsch-Jozsa-algoritmus
Kiejtés
- IPA: [ ˈdɛut͡ʃhjoʒɒɒlɡoritmuʃ]
Főnév
Deutsch–Jozsa-algoritmus
A **Deutsch–Jozsa-algoritmus** az egyik első kvantumalgoritmus, amely megmutatta, hogy a kvantumszámítógépek bizonyos problémákat gyorsabban tudnak megoldani, mint a klasszikus számítógépek. A problémája egy adott függvény tulajdonságainak meghatározása a lehető legkevesebb lekérdezéssel.
Probléma
Adott egy függvény, amely leképezést végez. A függvény:
- **Konstans**, ha minden bemenethez ugyanazt az értéket adja (vagy mindig 0, vagy mindig 1).
- **Kiegyensúlyozott**, ha a kimenetek fele 0, fele pedig 1.
Cél: Meg kell állapítani, hogy konstans vagy kiegyensúlyozott.
Klasszikus algoritmus
A klasszikus algoritmusnak a legrosszabb esetben lekérdezésre van szüksége:
- El kell kérnie több bemenetet, és összehasonlítania kell a kimeneteket.
Kvantumos algoritmus
A Deutsch–Jozsa-algoritmus kvantumszámítógépen garantáltan egyetlen függvényértékeléssel meg tudja oldani a problémát.
Kvantumos működés
- Regiszterek inicializálása:
* Egy -qubites bemeneti regiszter . * Egy további qubit ( ) a függvényérték tárolására.
- Hadamard transzformáció alkalmazása:
* Az összes qubit Hadamard-transzformációja (Hadamard kapu) szuperpozícióba helyezi az állapotot:
- Függvény ( ) alkalmazása:
* A kvantum kapu formájában megvalósított módosítja a qubit állapotát:
- Mérés előkészítése:
* A második regiszteren újabb Hadamard-transzformáció.
- Mérés:
* Ha az első regiszter minden qubitje , akkor konstans. * Egyébként kiegyensúlyozott.
Matematikai részletek
A kvantumállapot az alábbi lépéseken megy keresztül:
- Inicializálás:
- Hadamard alkalmazása:
- Függvény kiértékelése:
- Kimeneti regiszter redukciója:
A függvény hatása szuperpozícióba helyezi az eredményt, és az első regiszterben maradt interferencia határozza meg a konstans vagy kiegyensúlyozott tulajdonságot.
Python implementáció (Qiskit)
from qiskit import QuantumCircuit, Aer, execute
def deutsch_jozsa(is_balanced=True):
n = 1 # Egy qubites függvény
qc = QuantumCircuit(n + 1, n)
# Inicializálás
qc.x(n) # Második regiszter állapota: |1⟩
qc.h(range(n + 1)) # Hadamard minden qubiten
# Fekete doboz függvény implementálása
if is_balanced:
qc.cx(0, 1) # Kiegyensúlyozott
else:
pass # Konstans (nem történik változtatás)
# Hadamard az első regiszteren
qc.h(range(n))
# Mérés
qc.measure(range(n), range(n))
# Szimuláció
simulator = Aer.get_backend('qasm_simulator')
result = execute(qc, backend=simulator, shots=1).result()
counts = result.get_counts()
# Eredmény kiértékelése
return "Balanced" if '1' in counts else "Constant"
# Példa futtatása
print(deutsch_jozsa(is_balanced=True)) # "Balanced"
print(deutsch_jozsa(is_balanced=False)) # "Constant"
Eredmény
- **Konstans függvény esetén**:
Az első regiszter minden qubitje lesz.
- **Kiegyensúlyozott függvény esetén**:
Az első regiszterben legalább egy qubit -t eredményez.
Előnyök
- **Gyorsabb, mint a klasszikus algoritmus**:
* Egyetlen függvényértékeléssel dönthető el a függvény tulajdonsága.
- **Egyszerű kvantumos működés**:
* Demonstrálja a kvantumalgoritmusok előnyét.
Hátrányok
- **Speciális probléma**:
* Csak a konstans/kiegyensúlyozott tulajdonságra korlátozódik.
- **Nem skálázható általános problémákra**:
* Nagyobb, gyakorlati problémákhoz nem használható.
Összefoglalás
A **Deutsch–Jozsa-algoritmus** az első kvantumalgoritmusok egyike, amely megmutatja a kvantumszámítógépek erejét. Bár gyakorlati alkalmazása korlátozott, kiváló példája annak, hogy a kvantummechanikai tulajdonságok hogyan gyorsíthatják fel bizonyos számításokat.
Fordítások
- Deutsch-Jozsa-algoritmus - Értelmező szótár (MEK)
- Deutsch-Jozsa-algoritmus - Etimológiai szótár (UMIL)
- Deutsch-Jozsa-algoritmus - Szótár.net (hu-hu)
- Deutsch-Jozsa-algoritmus - DeepL (hu-de)
- Deutsch-Jozsa-algoritmus - Яндекс (hu-ru)
- Deutsch-Jozsa-algoritmus - Google (hu-en)
- Deutsch-Jozsa-algoritmus - Helyesírási szótár (MTA)
- Deutsch-Jozsa-algoritmus - Wikidata
- Deutsch-Jozsa-algoritmus - Wikipédia (magyar)