eaglelandsonce commited on
Commit
1017d26
·
verified ·
1 Parent(s): 51875e0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -1
app.py CHANGED
@@ -110,7 +110,66 @@ result = simulator.run(compiled_circuit, shots=1024).result()
110
  counts = result.get_counts()
111
  print(counts)
112
  """,
113
- "8. DNA Sequence Matching with Grover's Algorithm": """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  from qiskit import QuantumCircuit, transpile
115
  from qiskit_aer import AerSimulator
116
  from qiskit.circuit.library import GroverOperator
 
110
  counts = result.get_counts()
111
  print(counts)
112
  """,
113
+ "8. QUBO": """
114
+
115
+ import numpy as np
116
+
117
+ # Qiskit / Qiskit Optimization imports
118
+ from qiskit import Aer
119
+ from qiskit.utils import QuantumInstance
120
+ from qiskit.algorithms import QAOA
121
+ from qiskit.algorithms.optimizers import SPSA
122
+ from qiskit_optimization import QuadraticProgram
123
+ from qiskit_optimization.algorithms import MinimumEigenOptimizer
124
+
125
+ # 1) Define a small QUBO with two binary variables
126
+ problem = QuadraticProgram("my_qubo")
127
+ problem.binary_var("x0")
128
+ problem.binary_var("x1")
129
+
130
+ # Objective: minimize H = x0 + 2*x1 + (1)*x0*x1
131
+ # - linear coefficients => x0: 1, x1: 2
132
+ # - quadratic coefficient => (x0, x1): 1
133
+ problem.minimize(
134
+ linear={"x0": 1, "x1": 2},
135
+ quadratic={("x0", "x1"): 1}
136
+ )
137
+
138
+ # Print to confirm the problem is not empty
139
+ print("\n--- Quadratic Program ---")
140
+ print(problem.export_as_lp_string())
141
+
142
+ # 2) Set up a QAOA solver on the qasm_simulator
143
+ backend = Aer.get_backend('qasm_simulator')
144
+
145
+ # Configure the quantum instance
146
+ quantum_instance = QuantumInstance(
147
+ backend=backend,
148
+ shots=512,
149
+ seed_simulator=42,
150
+ seed_transpiler=42
151
+ )
152
+
153
+ # Create a QAOA instance
154
+ qaoa = QAOA(
155
+ optimizer=SPSA(maxiter=50), # or COBYLA(), NFT(), etc.
156
+ reps=2, # Number of QAOA layers
157
+ quantum_instance=quantum_instance
158
+ )
159
+
160
+ # Wrap QAOA in a MinimumEigenOptimizer
161
+ solver = MinimumEigenOptimizer(qaoa)
162
+
163
+ # 3) Solve the QUBO
164
+ result = solver.solve(problem)
165
+
166
+ # Print results
167
+ print("\n--- QAOA Results ---")
168
+ print("Optimal solution:", result.x)
169
+ print("Objective value:", result.fval)
170
+
171
+ """,
172
+ "9. DNA Sequence Matching with Grover's Algorithm": """
173
  from qiskit import QuantumCircuit, transpile
174
  from qiskit_aer import AerSimulator
175
  from qiskit.circuit.library import GroverOperator