testing1 / app.py
stevafernandes's picture
Update app.py
c5b8c8c verified
import gradio as gr
from qiskit import QuantumCircuit, transpile
from qiskit_aer import Aer
from qiskit.visualization import plot_histogram
import matplotlib.pyplot as plt
import ast
def apply_cnot(initial_state_str):
# Convert input string to actual Python list
initial_state = ast.literal_eval(initial_state_str)
# Create Quantum Circuit
qc = QuantumCircuit(2, 2)
qc.initialize(initial_state, [0, 1])
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# Simulation
simulator = Aer.get_backend('qasm_simulator')
transpiled_circuit = transpile(qc, simulator)
result = simulator.run(transpiled_circuit, shots=1024).result()
counts = result.get_counts()
# Plot results
fig, ax = plt.subplots()
plot_histogram(counts, ax=ax)
return fig
# Gradio Interface
interface = gr.Interface(
fn=apply_cnot,
inputs=gr.Radio(["[1,0,0,0]", "[0,1,0,0]", "[0,0,1,0]", "[0,0,0,1]"], label="Initial State"),
outputs=gr.Plot(),
title="Quantum CNOT Gate Simulation",
description="Select an initial state to apply a CNOT gate in a quantum circuit and view the measurement results."
)
if __name__ == "__main__":
interface.launch()