Wolfram Language Paclet Repository
Community-contributed installable additions to the Wolfram Language
Numeric one-dimensional quantum block cellular automata with compact plotting utilities
Contributed by: Deniz Yoldas
[init, u, steps] evolves a one-dimensional quantum block cellular automaton using a two-qubit local update rule. [evo] visualizes the association returned by .
To install this paclet in your Wolfram Language environment,
evaluate this code:
PacletInstall["DenizYoldas/QuantumBlockCellularAutomata"]
To load the code after installation, evaluate this code:
Needs["DenizYoldas`QuantumBlockCellularAutomata`"]
Run a controlled-Hadamard automaton from a bit-list initial layer:
| In[1]:= |
| Out[1]= | ![]() |
Visualize the result:
| In[2]:= | ![]() |
| Out[2]= | ![]() |
Use a QuantumState initial condition and a named QuantumOperator rule:
| In[3]:= |
| Out[3]= |
Use the explicit global state vector for |1001〉 and a raw unitary matrix:
| In[4]:= | ![]() |
| Out[4]= |
Define the two-qubit state vector |00〉 before passing it to the automaton:
| In[5]:= |
| Out[5]= |
Compare an exact qubit string with a machine-real amplitude vector of the same printed values:
| In[6]:= | ![]() |
| Out[6]= |
Evolve a coherent superposition instead of a computational-basis state:
| In[7]:= |
| Out[7]= |
Supply the Margolus phase as the fourth positional argument:
| In[8]:= |
| Out[8]= |
Compare the one-block circuit diagrams produced by the two Margolus phases:
| In[9]:= | ![]() |
| Out[9]= | ![]() |
Force the general tensor backend while changing the initial phase:
| In[10]:= |
| Out[10]= | ![]() |
Use a tighter numerical tolerance with automatic backend selection:
| In[11]:= |
| Out[11]= |
Combine plot views while hiding the matrix and retaining backend metadata:
| In[12]:= | ![]() |
| Out[12]= | ![]() |
Visualize the spreading of a local excitation under a controlled-Hadamard rule:
| In[13]:= | ![]() |
| Out[13]= | ![]() |
Extract the final site purities from the reduced Bloch-vector lengths:
| In[14]:= |
| Out[14]= |
Each requested step contributes two Margolus substeps and two stored state transitions:
| In[15]:= |
| Out[15]= | ![]() |
The automatically selected classical backend agrees with the general tensor backend:
| In[16]:= | ![]() |
| Out[16]= |
The returned circuit always represents one complete Margolus block:
| In[17]:= |
| Out[17]= | ![]() |
Mixed-state QuantumState objects are not accepted because density-matrix evolution is not implemented.
| In[18]:= | ![]() |
| Out[18]= |
The state-vector dimension grows exponentially with the number of qubits:
| In[19]:= |
| Out[19]= | ![]() |
Bit-list initial conditions must contain an even number of binary entries:
| In[20]:= |
| Out[20]= |
Compare phase-zero and phase-one controlled-Hadamard evolutions side by side:
| In[21]:= | ![]() |
| Out[21]= | ![]() |
Wolfram Language Version 14.0