diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 07:29:19 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 07:29:19 +0000 |
commit | c64a691e1dedcd5b4ae5fccc2d6be03e9c00d541 (patch) | |
tree | 2a2726af6809889caf76261322aea870e3561a5e | |
parent | 57f61d2a0f5fcf60fd533d231e07891c4e91d95e (diff) |
automatic import of python-qiskit-optimization
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-qiskit-optimization.spec | 235 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 237 insertions, 0 deletions
@@ -0,0 +1 @@ +/qiskit-optimization-0.5.0.tar.gz diff --git a/python-qiskit-optimization.spec b/python-qiskit-optimization.spec new file mode 100644 index 0000000..166447c --- /dev/null +++ b/python-qiskit-optimization.spec @@ -0,0 +1,235 @@ +%global _empty_manifest_terminate_build 0 +Name: python-qiskit-optimization +Version: 0.5.0 +Release: 1 +Summary: Qiskit Optimization: A library of quantum computing optimizations +License: Apache-2.0 +URL: https://github.com/Qiskit/qiskit-optimization +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c0/a3/9084490d4fbc79ef84e733ccdc706613f248f12252b574f083dacdd9032a/qiskit-optimization-0.5.0.tar.gz +BuildArch: noarch + +Requires: python3-qiskit-terra +Requires: python3-scipy +Requires: python3-numpy +Requires: python3-docplex +Requires: python3-setuptools +Requires: python3-networkx +Requires: python3-cplex +Requires: python3-cvxpy +Requires: python3-gurobipy +Requires: python3-matplotlib + +%description +### Optional Installs +* **IBM CPLEX** may be installed using `pip install 'qiskit-optimization[cplex]'` to enable the reading of `LP` files and the usage of + the `CplexOptimizer`, wrapper for ``cplex.Cplex``. Currently there is no python 3.9 version of CPLEX. In this case, the CPLEX install + command will have no effect. +* **CVXPY** may be installed using the command `pip install 'qiskit-optimization[cvx]'`. + CVXPY being installed will enable the usage of the Goemans-Williamson algorithm as an optimizer `GoemansWilliamsonOptimizer`. +* **Matplotlib** may be installed using the command `pip install 'qiskit-optimization[matplotlib]'`. + Matplotlib being installed will enable the usage of the `draw` method in the graph optimization application classes. +* **Gurobipy** may be installed using the command `pip install 'qiskit-optimization[gurobi]'`. + Gurobipy being installed will enable the usage of the GurobiOptimizer. +### Creating Your First Optimization Programming Experiment in Qiskit +Now that Qiskit Optimization is installed, it's time to begin working with the optimization module. +Let's try an optimization experiment to compute the solution of a +[Max-Cut](https://en.wikipedia.org/wiki/Maximum_cut). The Max-Cut problem can be formulated as +quadratic program, which can be solved using many several different algorithms in Qiskit. +In this example, the MinimumEigenOptimizer +is employed in combination with the Quantum Approximate Optimization Algorithm (QAOA) as minimum +eigensolver routine. +```python +from docplex.mp.model import Model +from qiskit_optimization.algorithms import MinimumEigenOptimizer +from qiskit_optimization.translators import from_docplex_mp +from qiskit.utils import algorithm_globals +from qiskit.primitives import Sampler +from qiskit.algorithms.minimum_eigensolvers import QAOA +from qiskit.algorithms.optimizers import SPSA +# Generate a graph of 4 nodes +n = 4 +edges = [(0, 1, 1.0), (0, 2, 1.0), (0, 3, 1.0), (1, 2, 1.0), (2, 3, 1.0)] # (node_i, node_j, weight) +# Formulate the problem as a Docplex model +model = Model() +# Create n binary variables +x = model.binary_var_list(n) +# Define the objective function to be maximized +model.maximize(model.sum(w * x[i] * (1 - x[j]) + w * (1 - x[i]) * x[j] for i, j, w in edges)) +# Fix node 0 to be 1 to break the symmetry of the max-cut solution +model.add(x[0] == 1) +# Convert the Docplex model into a `QuadraticProgram` object +problem = from_docplex_mp(model) +# Run quantum algorithm QAOA on qasm simulator +seed = 1234 +algorithm_globals.random_seed = seed +spsa = SPSA(maxiter=250) +sampler = Sampler() +qaoa = QAOA(sampler=sampler, optimizer=spsa, reps=5) +algorithm = MinimumEigenOptimizer(qaoa) +result = algorithm.solve(problem) +print(result.prettyprint()) # prints solution, x=[1, 0, 1, 0], the cost, fval=4 +``` +### Further examples +Learning path notebooks may be found in the +[optimization tutorials](https://qiskit.org/documentation/optimization/tutorials/index.html) section + +%package -n python3-qiskit-optimization +Summary: Qiskit Optimization: A library of quantum computing optimizations +Provides: python-qiskit-optimization +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-qiskit-optimization +### Optional Installs +* **IBM CPLEX** may be installed using `pip install 'qiskit-optimization[cplex]'` to enable the reading of `LP` files and the usage of + the `CplexOptimizer`, wrapper for ``cplex.Cplex``. Currently there is no python 3.9 version of CPLEX. In this case, the CPLEX install + command will have no effect. +* **CVXPY** may be installed using the command `pip install 'qiskit-optimization[cvx]'`. + CVXPY being installed will enable the usage of the Goemans-Williamson algorithm as an optimizer `GoemansWilliamsonOptimizer`. +* **Matplotlib** may be installed using the command `pip install 'qiskit-optimization[matplotlib]'`. + Matplotlib being installed will enable the usage of the `draw` method in the graph optimization application classes. +* **Gurobipy** may be installed using the command `pip install 'qiskit-optimization[gurobi]'`. + Gurobipy being installed will enable the usage of the GurobiOptimizer. +### Creating Your First Optimization Programming Experiment in Qiskit +Now that Qiskit Optimization is installed, it's time to begin working with the optimization module. +Let's try an optimization experiment to compute the solution of a +[Max-Cut](https://en.wikipedia.org/wiki/Maximum_cut). The Max-Cut problem can be formulated as +quadratic program, which can be solved using many several different algorithms in Qiskit. +In this example, the MinimumEigenOptimizer +is employed in combination with the Quantum Approximate Optimization Algorithm (QAOA) as minimum +eigensolver routine. +```python +from docplex.mp.model import Model +from qiskit_optimization.algorithms import MinimumEigenOptimizer +from qiskit_optimization.translators import from_docplex_mp +from qiskit.utils import algorithm_globals +from qiskit.primitives import Sampler +from qiskit.algorithms.minimum_eigensolvers import QAOA +from qiskit.algorithms.optimizers import SPSA +# Generate a graph of 4 nodes +n = 4 +edges = [(0, 1, 1.0), (0, 2, 1.0), (0, 3, 1.0), (1, 2, 1.0), (2, 3, 1.0)] # (node_i, node_j, weight) +# Formulate the problem as a Docplex model +model = Model() +# Create n binary variables +x = model.binary_var_list(n) +# Define the objective function to be maximized +model.maximize(model.sum(w * x[i] * (1 - x[j]) + w * (1 - x[i]) * x[j] for i, j, w in edges)) +# Fix node 0 to be 1 to break the symmetry of the max-cut solution +model.add(x[0] == 1) +# Convert the Docplex model into a `QuadraticProgram` object +problem = from_docplex_mp(model) +# Run quantum algorithm QAOA on qasm simulator +seed = 1234 +algorithm_globals.random_seed = seed +spsa = SPSA(maxiter=250) +sampler = Sampler() +qaoa = QAOA(sampler=sampler, optimizer=spsa, reps=5) +algorithm = MinimumEigenOptimizer(qaoa) +result = algorithm.solve(problem) +print(result.prettyprint()) # prints solution, x=[1, 0, 1, 0], the cost, fval=4 +``` +### Further examples +Learning path notebooks may be found in the +[optimization tutorials](https://qiskit.org/documentation/optimization/tutorials/index.html) section + +%package help +Summary: Development documents and examples for qiskit-optimization +Provides: python3-qiskit-optimization-doc +%description help +### Optional Installs +* **IBM CPLEX** may be installed using `pip install 'qiskit-optimization[cplex]'` to enable the reading of `LP` files and the usage of + the `CplexOptimizer`, wrapper for ``cplex.Cplex``. Currently there is no python 3.9 version of CPLEX. In this case, the CPLEX install + command will have no effect. +* **CVXPY** may be installed using the command `pip install 'qiskit-optimization[cvx]'`. + CVXPY being installed will enable the usage of the Goemans-Williamson algorithm as an optimizer `GoemansWilliamsonOptimizer`. +* **Matplotlib** may be installed using the command `pip install 'qiskit-optimization[matplotlib]'`. + Matplotlib being installed will enable the usage of the `draw` method in the graph optimization application classes. +* **Gurobipy** may be installed using the command `pip install 'qiskit-optimization[gurobi]'`. + Gurobipy being installed will enable the usage of the GurobiOptimizer. +### Creating Your First Optimization Programming Experiment in Qiskit +Now that Qiskit Optimization is installed, it's time to begin working with the optimization module. +Let's try an optimization experiment to compute the solution of a +[Max-Cut](https://en.wikipedia.org/wiki/Maximum_cut). The Max-Cut problem can be formulated as +quadratic program, which can be solved using many several different algorithms in Qiskit. +In this example, the MinimumEigenOptimizer +is employed in combination with the Quantum Approximate Optimization Algorithm (QAOA) as minimum +eigensolver routine. +```python +from docplex.mp.model import Model +from qiskit_optimization.algorithms import MinimumEigenOptimizer +from qiskit_optimization.translators import from_docplex_mp +from qiskit.utils import algorithm_globals +from qiskit.primitives import Sampler +from qiskit.algorithms.minimum_eigensolvers import QAOA +from qiskit.algorithms.optimizers import SPSA +# Generate a graph of 4 nodes +n = 4 +edges = [(0, 1, 1.0), (0, 2, 1.0), (0, 3, 1.0), (1, 2, 1.0), (2, 3, 1.0)] # (node_i, node_j, weight) +# Formulate the problem as a Docplex model +model = Model() +# Create n binary variables +x = model.binary_var_list(n) +# Define the objective function to be maximized +model.maximize(model.sum(w * x[i] * (1 - x[j]) + w * (1 - x[i]) * x[j] for i, j, w in edges)) +# Fix node 0 to be 1 to break the symmetry of the max-cut solution +model.add(x[0] == 1) +# Convert the Docplex model into a `QuadraticProgram` object +problem = from_docplex_mp(model) +# Run quantum algorithm QAOA on qasm simulator +seed = 1234 +algorithm_globals.random_seed = seed +spsa = SPSA(maxiter=250) +sampler = Sampler() +qaoa = QAOA(sampler=sampler, optimizer=spsa, reps=5) +algorithm = MinimumEigenOptimizer(qaoa) +result = algorithm.solve(problem) +print(result.prettyprint()) # prints solution, x=[1, 0, 1, 0], the cost, fval=4 +``` +### Further examples +Learning path notebooks may be found in the +[optimization tutorials](https://qiskit.org/documentation/optimization/tutorials/index.html) section + +%prep +%autosetup -n qiskit-optimization-0.5.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-qiskit-optimization -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1 +- Package Spec generated @@ -0,0 +1 @@ +cbbc49519f9baf68ae1d5b29976bea88 qiskit-optimization-0.5.0.tar.gz |