Update decoherence.py

This commit is contained in:
blackboxprogramming
2025-08-08 13:50:06 -07:00
committed by GitHub
parent 50269976bb
commit 29d42e2188

View File

@@ -1 +1,64 @@
print("Hello World")
from __future__ import annotations
from dataclasses import dataclass
from typing import List
@dataclass
class QuantumState:
"""
Represents a single-qubit state with amplitudes for the |0> and |1> basis states.
"""
alpha: complex
beta: complex
def apply_decoherence(self, rate: float) -> "QuantumState":
"""
Apply a simple exponential decoherence to the amplitudes.
Parameters
----------
rate : float
A value between 0 and 1 controlling how quickly coherence decays.
Returns
-------
QuantumState
A new state with scaled amplitudes.
"""
# Ensure rate is within [0, 1]
rate = max(0.0, min(1.0, rate))
factor = (1.0 - rate) ** 0.5
return QuantumState(alpha=self.alpha * factor, beta=self.beta * factor)
def simulate_decoherence(state: QuantumState, rate: float, steps: int) -> List[QuantumState]:
"""
Simulate decoherence by repeatedly applying a decoherence model to a state.
Parameters
----------
state : QuantumState
Initial qubit state.
rate : float
Decoherence rate between 0 and 1.
steps : int
Number of iterations to simulate.
Returns
-------
List[QuantumState]
Sequence of states after each step.
"""
results: List[QuantumState] = []
current = state
for _ in range(steps):
current = current.apply_decoherence(rate)
results.append(current)
return results
if __name__ == "__main__":
# Demonstration: start in an equal superposition and simulate decoherence
initial = QuantumState(alpha=1+0j, beta=1+0j)
trajectory = simulate_decoherence(initial, rate=0.2, steps=5)
for idx, st in enumerate(trajectory, 1):
print(f"Step {idx}: {st}")