eqc-models 0.9.8__py3-none-any.whl → 0.10.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- eqc_models-0.10.0.data/platlib/compile_extensions.py +67 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/assignment/setpartition.py +8 -29
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polyeval.c +127 -123
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polyeval.cpython-310-darwin.so +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polynomial.py +84 -1
- eqc_models-0.10.0.data/platlib/eqc_models/base.py +115 -0
- eqc_models-0.10.0.data/platlib/eqc_models/combinatorics/setcover.py +93 -0
- eqc_models-0.10.0.data/platlib/eqc_models/communitydetection.py +25 -0
- eqc_models-0.10.0.data/platlib/eqc_models/eqcdirectsolver.py +61 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/base.py +28 -17
- eqc_models-0.10.0.data/platlib/eqc_models/graph/partition.py +148 -0
- eqc_models-0.10.0.data/platlib/eqc_models/graphs.py +28 -0
- eqc_models-0.10.0.data/platlib/eqc_models/maxcut.py +113 -0
- eqc_models-0.10.0.data/platlib/eqc_models/maxkcut.py +185 -0
- eqc_models-0.10.0.data/platlib/eqc_models/ml/classifierqboost.py +628 -0
- eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian.pyx +83 -0
- eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian_c_func.c +68 -0
- eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian_c_func.h +14 -0
- eqc_models-0.10.0.data/platlib/eqc_models/quadraticmodel.py +131 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/sequence/tsp.py +38 -34
- eqc_models-0.10.0.data/platlib/eqc_models/solvers/eqcdirect.py +160 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/solvers/qciclient.py +46 -11
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/polynomial.py +11 -0
- {eqc_models-0.9.8.dist-info → eqc_models-0.10.0.dist-info}/METADATA +3 -2
- eqc_models-0.10.0.dist-info/RECORD +65 -0
- {eqc_models-0.9.8.dist-info → eqc_models-0.10.0.dist-info}/WHEEL +1 -1
- eqc_models-0.9.8.data/platlib/compile_extensions.py +0 -23
- eqc_models-0.9.8.data/platlib/eqc_models/ml/classifierqboost.py +0 -423
- eqc_models-0.9.8.dist-info/RECORD +0 -52
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/base.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/penaltymultiplier.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/allocation.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/portbase.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/portmomentum.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/assignment/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/assignment/qap.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/base.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/constraints.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/operators.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polyeval.pyx +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/quadratic.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/decoding.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/hypergraph.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/maxcut.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/maxkcut.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/classifierbase.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/classifierqsvm.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/clustering.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/clusteringbase.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/decomposition.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/forecast.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/forecastbase.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/regressor.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/regressorbase.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/reservoir.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/sequence/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/solvers/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/__init__.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/fileio.py +0 -0
- {eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/qplib.py +0 -0
- {eqc_models-0.9.8.dist-info → eqc_models-0.10.0.dist-info}/LICENSE.txt +0 -0
- {eqc_models-0.9.8.dist-info → eqc_models-0.10.0.dist-info}/top_level.txt +0 -0
|
@@ -48,22 +48,33 @@ def convert_hamiltonian_to_polynomial(
|
|
|
48
48
|
assert num_vars >= 1, "Invalid number of variables <%d>!" % num_vars
|
|
49
49
|
|
|
50
50
|
if D is not None:
|
|
51
|
+
assert len(D.shape) == 4, "Incorrect shape!"
|
|
51
52
|
assert D.shape[0] == num_vars, "Inconsistent dimensions!"
|
|
52
53
|
assert D.shape[1] == num_vars, "Inconsistent dimensions!"
|
|
53
54
|
assert D.shape[2] == num_vars, "Inconsistent dimensions!"
|
|
54
55
|
assert D.shape[3] == num_vars, "Inconsistent dimensions!"
|
|
55
56
|
poly_order = 4
|
|
56
57
|
elif C is not None:
|
|
58
|
+
assert len(C.shape) == 3, "Incorrect shape!"
|
|
57
59
|
assert C.shape[0] == num_vars, "Inconsistent dimensions!"
|
|
58
60
|
assert C.shape[1] == num_vars, "Inconsistent dimensions!"
|
|
59
61
|
assert C.shape[2] == num_vars, "Inconsistent dimensions!"
|
|
60
62
|
poly_order = 3
|
|
61
63
|
elif B is not None:
|
|
64
|
+
assert len(B.shape) == 2, "Incorrect shape!"
|
|
62
65
|
assert B.shape[0] == num_vars, "Inconsistent dimensions!"
|
|
63
66
|
assert B.shape[1] == num_vars, "Inconsistent dimensions!"
|
|
64
67
|
poly_order = 2
|
|
65
68
|
elif A is not None:
|
|
69
|
+
assert len(A.shape) in [1, 2], "Incorrect shape!"
|
|
70
|
+
if len(A.shape) == 2:
|
|
71
|
+
if A.shape[1] == 1:
|
|
72
|
+
A = A.reshape((A.shape[0]))
|
|
73
|
+
else:
|
|
74
|
+
assert False, "Incorrect shape!"
|
|
75
|
+
|
|
66
76
|
assert A.shape[0] == num_vars, "Inconsistent dimensions!"
|
|
77
|
+
|
|
67
78
|
poly_order = 1
|
|
68
79
|
else:
|
|
69
80
|
assert False, "No hamiltonian provided!"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: eqc-models
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: Optimization and ML modeling package targeting EQC devices
|
|
5
5
|
Author: Quantum Computing Inc.
|
|
6
6
|
Author-email: support@quantumcomputinginc.com
|
|
@@ -13,6 +13,7 @@ License-File: LICENSE.txt
|
|
|
13
13
|
Requires-Dist: numpy<2,>=1.22.1
|
|
14
14
|
Requires-Dist: networkx<3,>=2.6.3
|
|
15
15
|
Requires-Dist: pandas>=2.1.0
|
|
16
|
+
Requires-Dist: scikit-learn>=1.2.1
|
|
16
17
|
Requires-Dist: qci-client<5,>=4.3.0
|
|
17
18
|
Requires-Dist: emucore-direct==1.0.6
|
|
18
19
|
Provides-Extra: direct
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
eqc_models-0.10.0.data/platlib/compile_extensions.py,sha256=ivFZ87WFzBITU7IwK_72C41MDNMortJIF8tKevm2aW4,1946
|
|
2
|
+
eqc_models-0.10.0.data/platlib/eqc_models/__init__.py,sha256=njh-tvfgnAIVBGw9FXFv6XQOAgwrnBG23dU9dipa1Jg,585
|
|
3
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base.py,sha256=YWS9kjmh-ZEZqpByDaik4fLjeGbwKLLlqbVMsHto6Bs,3524
|
|
4
|
+
eqc_models-0.10.0.data/platlib/eqc_models/communitydetection.py,sha256=-zqESm8MFDdaw_a39Kg6Wuu5Tvman3JOeUH4bbPXB48,891
|
|
5
|
+
eqc_models-0.10.0.data/platlib/eqc_models/decoding.py,sha256=G3JgbIFzvZ3DIKW0kZ1JeTMIZmrc8hy9kzdbX2Xv5Og,637
|
|
6
|
+
eqc_models-0.10.0.data/platlib/eqc_models/eqcdirectsolver.py,sha256=zoR8VHD9OFEBxKO9GW8sPLtuqVfWMubg4SDFCQKr3fc,2444
|
|
7
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graphs.py,sha256=8gWGwPKhAFoddYFRiJ770CNHrbudy_UVqgsv2BrHVDA,895
|
|
8
|
+
eqc_models-0.10.0.data/platlib/eqc_models/maxcut.py,sha256=ohD08acRcmDhnxRI5MN1wvY6k81xUs8PRpsAzO5kQXI,2899
|
|
9
|
+
eqc_models-0.10.0.data/platlib/eqc_models/maxkcut.py,sha256=fzittwUftQljSqe9yBS042-SXeyj2AmLTDuW8yc0JFw,5812
|
|
10
|
+
eqc_models-0.10.0.data/platlib/eqc_models/quadraticmodel.py,sha256=vhWMNmKxzxaV6kdb9TTI-SqJMUEvKMLHfAOD6BVYBwc,4242
|
|
11
|
+
eqc_models-0.10.0.data/platlib/eqc_models/algorithms/__init__.py,sha256=lzQoMMSs2QTqp5suEYNvcQaSEN16d0LwIsZ1mRstumU,135
|
|
12
|
+
eqc_models-0.10.0.data/platlib/eqc_models/algorithms/base.py,sha256=qfQQTwuVyewn7Qpg1_SVoD_7TsdA8vdwSKGqOeZSmNI,204
|
|
13
|
+
eqc_models-0.10.0.data/platlib/eqc_models/algorithms/penaltymultiplier.py,sha256=gV48irx3q9yvMsCRqv2fa8DGQEOUkgVNGbZdNzI-3Tc,7057
|
|
14
|
+
eqc_models-0.10.0.data/platlib/eqc_models/allocation/__init__.py,sha256=op_udrapTlWrakTuQId3M0ggo-Y1w4nGJLPcYKOQ-8I,239
|
|
15
|
+
eqc_models-0.10.0.data/platlib/eqc_models/allocation/allocation.py,sha256=PAQn4M75Zegeoy0i6r3hycWs4TKeRglHk05TvwZOoLk,15506
|
|
16
|
+
eqc_models-0.10.0.data/platlib/eqc_models/allocation/portbase.py,sha256=BTnYYduHydPbrE2yQr_Sgv3XJACH_GpIJstuMrfGqCU,3269
|
|
17
|
+
eqc_models-0.10.0.data/platlib/eqc_models/allocation/portmomentum.py,sha256=oMod63rNDC-01dLZjmhUb24SN3_GVgfc6CItgQL_obI,3756
|
|
18
|
+
eqc_models-0.10.0.data/platlib/eqc_models/assignment/__init__.py,sha256=CX_QYl8P1meajV8gcVs6hm07VhoLVe8uu436t7-1XQo,86
|
|
19
|
+
eqc_models-0.10.0.data/platlib/eqc_models/assignment/qap.py,sha256=WMiQQmTORsgi2w7kbmMA1xo-93dESLECWqYTF-zkmTs,2963
|
|
20
|
+
eqc_models-0.10.0.data/platlib/eqc_models/assignment/setpartition.py,sha256=-DJjPgsSMslEjfo3iDdXbKHQ9Lfc3cHlNc-9DtkJnW0,6202
|
|
21
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/__init__.py,sha256=RwZguuucmsuOSVqfPLBqj-wzinBOzcgO-2ifFU-DCqg,2885
|
|
22
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/base.py,sha256=kpnOb1dw0aaQyassIYKNlS6rIH1fNvZMI-NKPosAEMk,4856
|
|
23
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/constraints.py,sha256=KMPyCdt_8GMWLnVEdpzw1T1WqXm2f7Lh629ClUH7XDY,8271
|
|
24
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/operators.py,sha256=9nCeN6fRP-_YBfs-Gm57D-O_376qcOQiqGDuVlSlf00,7392
|
|
25
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/polyeval.c,sha256=4Rbo0snmzpBfk3EL1u5NLsYt_vni5wk_4p9XwsszFkg,445633
|
|
26
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/polyeval.cpython-310-darwin.so,sha256=p9WsRiRpK18WJUHT4-x3s2VPr92_-DF5TLLPOuvwl_o,101024
|
|
27
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/polyeval.pyx,sha256=76Bf99Jt1_rLh5byrZxAjavE2F4_yCysirViqOBFIXw,2547
|
|
28
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/polynomial.py,sha256=dlWqL-PgSzV1UX-1S-MDwEL4sp3vs3h0vdRkv4JYfLo,12981
|
|
29
|
+
eqc_models-0.10.0.data/platlib/eqc_models/base/quadratic.py,sha256=BHZKniUvSq30pZgzguVasdO39BCEYue_wi5AIklPGS8,8062
|
|
30
|
+
eqc_models-0.10.0.data/platlib/eqc_models/combinatorics/setcover.py,sha256=v42_pB2gPF2YkVllCqqjw58t97y5AAddfWITIsESZI8,2730
|
|
31
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graph/__init__.py,sha256=Cpo4jb630U57J0lS_iZddE_W3v9N4ijUb7xZRIYuguo,95
|
|
32
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graph/base.py,sha256=j48OwhorZ5jTlTysTmMiXCeiAdj6jylBREk3NxCpFLI,2072
|
|
33
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graph/hypergraph.py,sha256=ABvutT0NOdIEpUF4TjUzboE4Y_J5iUZyj6-AzKr4R28,13268
|
|
34
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graph/maxcut.py,sha256=o8xVsAwTa9jcpmsIoCQ5z7HSstVdraT8TENomdT519o,4132
|
|
35
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graph/maxkcut.py,sha256=OFZwmC3wWpIJWVHOb9wkUeka0g0bOHrwf-mx0VZvt58,5807
|
|
36
|
+
eqc_models-0.10.0.data/platlib/eqc_models/graph/partition.py,sha256=HMpRRipLp14x8pHucY-g6fU7v0PGoy1pf_KpzbanfD0,5800
|
|
37
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/__init__.py,sha256=CLfraacr0FrD5ynxlNB6cyNy0lpbavcQT45TvkDrNvY,369
|
|
38
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/classifierbase.py,sha256=1yXufiUGpaiBjI2evMiwfYn-Zr-SnWwCnvtREqprtJw,2184
|
|
39
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/classifierqboost.py,sha256=5Dcpd0DjpMmlUULyZFKKWm4UuZpeMaknWKViiIjwc0U,18978
|
|
40
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/classifierqsvm.py,sha256=b6TdwlghR84UoQpfUThwMwNF_wmkABbCqOn6T1uY2dA,6636
|
|
41
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/clustering.py,sha256=yhh6jlgwZiQVn9h2pnYBlzVTCocK7rzsEurSQxCn5FQ,9486
|
|
42
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/clusteringbase.py,sha256=AvQbt6jeocBAGCuAmXHKyr3wLWqYUtBDq9PbsEOSlSc,2632
|
|
43
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian.pyx,sha256=3PMmEJ_xfmmWXGfire0t-WASnmKj6-CblufgQ2NTARo,2111
|
|
44
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian_c_func.c,sha256=ZoKgm_uGjTewhk4W6s-x8QoFuZO0KVkxILIFh6JKsoI,1851
|
|
45
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian_c_func.h,sha256=aOImMG5pziUnZxGpDXyWjLrvcY7ZdsczwwSQ2ay4T88,272
|
|
46
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/decomposition.py,sha256=Nsnq0GmINpbGOszndgCHXqKdECNpiNiampBrHPU_Gjg,8943
|
|
47
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/forecast.py,sha256=fFcBxQK9ZryfEuyvlr9HXicHoZRzLFybimYYttzhI9E,7403
|
|
48
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/forecastbase.py,sha256=s-6nUMvtYqG07r7MmmkFVj8_QqgeGkD-HVoEEDTE2bk,3654
|
|
49
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/regressor.py,sha256=LA1woXCnefG0wfoOxilX1kszgCUmfNcbQgs_WZ4Ai0o,5683
|
|
50
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/regressorbase.py,sha256=H5E8-8pUji1oH5JRdS37LJQoHuKt2JU8eXCZp-ZaEM4,2109
|
|
51
|
+
eqc_models-0.10.0.data/platlib/eqc_models/ml/reservoir.py,sha256=cPRvpCaWLYTBkui35jCssHcOPQgSQZallrG6Ac9djVI,2827
|
|
52
|
+
eqc_models-0.10.0.data/platlib/eqc_models/sequence/__init__.py,sha256=VXlYufO3GYFsM00oii9Cite2WsQEF8XTwRcjLPH_Zlg,92
|
|
53
|
+
eqc_models-0.10.0.data/platlib/eqc_models/sequence/tsp.py,sha256=YM641FTyK5NkgRGxHrU1QmMkEU0gf77nEmIElTqa6Qw,7680
|
|
54
|
+
eqc_models-0.10.0.data/platlib/eqc_models/solvers/__init__.py,sha256=hTjJI4F0FNDgQlK_oRHJxLIkg6of3I1-nEqU_3RL4Gk,542
|
|
55
|
+
eqc_models-0.10.0.data/platlib/eqc_models/solvers/eqcdirect.py,sha256=RzcRz3e3a0nJaR_qZ1td3NRKHT1NKPei_QNYExN3ooI,4898
|
|
56
|
+
eqc_models-0.10.0.data/platlib/eqc_models/solvers/qciclient.py,sha256=Vnfqa1N6JSzigb-mbqXj6g0r-1wOkeYzmEmctId1VCo,26975
|
|
57
|
+
eqc_models-0.10.0.data/platlib/eqc_models/utilities/__init__.py,sha256=SI2U7JKmPWSiq-F1WcSyfd7l9V6nbOZv_p8quMAZaT0,340
|
|
58
|
+
eqc_models-0.10.0.data/platlib/eqc_models/utilities/fileio.py,sha256=alWPTfjGFx6Iio9HZAAWtYcLmZsBBifg6S6_YbFMQhk,1088
|
|
59
|
+
eqc_models-0.10.0.data/platlib/eqc_models/utilities/polynomial.py,sha256=blXfu7Ehz9lT4nEmIinRzJOL27_qUHSbQ57zxmwDJCA,4735
|
|
60
|
+
eqc_models-0.10.0.data/platlib/eqc_models/utilities/qplib.py,sha256=Do-MjmCFdI5HyDOAjfoz4_5lugySLMBlMAWDLUWx2OA,15796
|
|
61
|
+
eqc_models-0.10.0.dist-info/LICENSE.txt,sha256=8eh0oqsNNVR1Jk-13gkqRRSo2axtUU5kp2KzH4f9u3U,11354
|
|
62
|
+
eqc_models-0.10.0.dist-info/METADATA,sha256=vFFt3ENmDo-0sFt3-9V_ffKaZm2y9COhcC0N_AVbUvM,7107
|
|
63
|
+
eqc_models-0.10.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
64
|
+
eqc_models-0.10.0.dist-info/top_level.txt,sha256=9ZfFeKNEvkRlKWoUnfcZ9TzmTdgdsuPEnTPy11Hqf4Q,30
|
|
65
|
+
eqc_models-0.10.0.dist-info/RECORD,,
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
from setuptools import Extension
|
|
2
|
-
from setuptools.command.build_py import build_py as _build_py
|
|
3
|
-
import numpy
|
|
4
|
-
|
|
5
|
-
# Modules to be compiled and include_dirs when necessary
|
|
6
|
-
extensions = [
|
|
7
|
-
Extension(
|
|
8
|
-
"eqc_models.base.polyeval",
|
|
9
|
-
["eqc_models/base/polyeval.pyx"], include_dirs=[numpy.get_include()],
|
|
10
|
-
),
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
class build_py(_build_py):
|
|
14
|
-
def run(self):
|
|
15
|
-
self.run_command("build_ext")
|
|
16
|
-
return super().run()
|
|
17
|
-
|
|
18
|
-
def initialize_options(self):
|
|
19
|
-
super().initialize_options()
|
|
20
|
-
if self.distribution.ext_modules == None:
|
|
21
|
-
self.distribution.ext_modules = []
|
|
22
|
-
|
|
23
|
-
self.distribution.ext_modules.extend(extensions)
|
|
@@ -1,423 +0,0 @@
|
|
|
1
|
-
# (C) Quantum Computing Inc., 2024.
|
|
2
|
-
# Import libs
|
|
3
|
-
import os
|
|
4
|
-
import sys
|
|
5
|
-
import time
|
|
6
|
-
import datetime
|
|
7
|
-
import json
|
|
8
|
-
import warnings
|
|
9
|
-
from functools import wraps
|
|
10
|
-
import numpy as np
|
|
11
|
-
from sklearn.tree import DecisionTreeClassifier
|
|
12
|
-
from sklearn.naive_bayes import GaussianNB
|
|
13
|
-
from sklearn.linear_model import LogisticRegression
|
|
14
|
-
from sklearn.gaussian_process import GaussianProcessClassifier
|
|
15
|
-
from sklearn.gaussian_process.kernels import RBF
|
|
16
|
-
|
|
17
|
-
from eqc_models.ml.classifierbase import ClassifierBase
|
|
18
|
-
|
|
19
|
-
def timer(func):
|
|
20
|
-
@wraps(func)
|
|
21
|
-
def wrapper(*args, **kwargs):
|
|
22
|
-
beg_time = time.time()
|
|
23
|
-
val = func(*args, **kwargs)
|
|
24
|
-
end_time = time.time()
|
|
25
|
-
tot_time = end_time - beg_time
|
|
26
|
-
|
|
27
|
-
print(
|
|
28
|
-
"Runtime of %s: %0.2f seconds!"
|
|
29
|
-
% (
|
|
30
|
-
func.__name__,
|
|
31
|
-
tot_time,
|
|
32
|
-
)
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
return val
|
|
36
|
-
|
|
37
|
-
return wrapper
|
|
38
|
-
|
|
39
|
-
class WeakClassifierDct:
|
|
40
|
-
def __init__(
|
|
41
|
-
self,
|
|
42
|
-
fea_ind_list,
|
|
43
|
-
X_train,
|
|
44
|
-
y_train,
|
|
45
|
-
max_depth=10,
|
|
46
|
-
min_samples_split=100,
|
|
47
|
-
):
|
|
48
|
-
assert X_train.shape[0] == len(y_train)
|
|
49
|
-
|
|
50
|
-
self.fea_ind_list = fea_ind_list
|
|
51
|
-
self.X_train = X_train
|
|
52
|
-
self.y_train = y_train
|
|
53
|
-
self.clf = DecisionTreeClassifier(
|
|
54
|
-
max_depth=max_depth,
|
|
55
|
-
min_samples_split=min_samples_split,
|
|
56
|
-
random_state=0,
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
def train(self):
|
|
60
|
-
X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
|
|
61
|
-
|
|
62
|
-
self.clf.fit(X_tmp, self.y_train)
|
|
63
|
-
|
|
64
|
-
def predict(self, X):
|
|
65
|
-
X_tmp = X.transpose()[self.fea_ind_list].transpose()
|
|
66
|
-
|
|
67
|
-
return self.clf.predict(X_tmp)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
class WeakClassifierNB:
|
|
71
|
-
def __init__(self, fea_ind_list, X_train, y_train):
|
|
72
|
-
assert X_train.shape[0] == len(y_train)
|
|
73
|
-
|
|
74
|
-
self.fea_ind_list = fea_ind_list
|
|
75
|
-
self.X_train = X_train
|
|
76
|
-
self.y_train = y_train
|
|
77
|
-
self.clf = GaussianNB()
|
|
78
|
-
|
|
79
|
-
def train(self):
|
|
80
|
-
X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
|
|
81
|
-
|
|
82
|
-
self.clf.fit(X_tmp, self.y_train)
|
|
83
|
-
|
|
84
|
-
def predict(self, X):
|
|
85
|
-
X_tmp = X.transpose()[self.fea_ind_list].transpose()
|
|
86
|
-
|
|
87
|
-
return self.clf.predict(X_tmp)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
class WeakClassifierLG:
|
|
91
|
-
def __init__(self, fea_ind_list, X_train, y_train):
|
|
92
|
-
assert X_train.shape[0] == len(y_train)
|
|
93
|
-
|
|
94
|
-
self.fea_ind_list = fea_ind_list
|
|
95
|
-
self.X_train = X_train
|
|
96
|
-
self.y_train = y_train
|
|
97
|
-
self.clf = LogisticRegression(random_state=0)
|
|
98
|
-
|
|
99
|
-
def train(self):
|
|
100
|
-
X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
|
|
101
|
-
|
|
102
|
-
self.clf.fit(X_tmp, self.y_train)
|
|
103
|
-
|
|
104
|
-
def predict(self, X):
|
|
105
|
-
X_tmp = X.transpose()[self.fea_ind_list].transpose()
|
|
106
|
-
|
|
107
|
-
return self.clf.predict(X_tmp)
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
class WeakClassifierGP:
|
|
111
|
-
def __init__(self, fea_ind_list, X_train, y_train):
|
|
112
|
-
assert X_train.shape[0] == len(y_train)
|
|
113
|
-
|
|
114
|
-
self.fea_ind_list = fea_ind_list
|
|
115
|
-
self.X_train = X_train
|
|
116
|
-
self.y_train = y_train
|
|
117
|
-
self.clf = GaussianProcessClassifier(
|
|
118
|
-
kernel=1.0 * RBF(1.0),
|
|
119
|
-
random_state=0,
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
def train(self):
|
|
123
|
-
X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
|
|
124
|
-
|
|
125
|
-
self.clf.fit(X_tmp, self.y_train)
|
|
126
|
-
|
|
127
|
-
def predict(self, X):
|
|
128
|
-
X_tmp = X.transpose()[self.fea_ind_list].transpose()
|
|
129
|
-
|
|
130
|
-
return self.clf.predict(X_tmp)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
class QBoostClassifier(ClassifierBase):
|
|
134
|
-
"""An implementation of QBoost classifier that uses QCi's Dirac-3.
|
|
135
|
-
|
|
136
|
-
Parameters
|
|
137
|
-
----------
|
|
138
|
-
relaxation_schedule: Relaxation schedule used by Dirac-3;
|
|
139
|
-
default: 2.
|
|
140
|
-
|
|
141
|
-
num_samples: Number of samples used by Dirac-3; default: 1.
|
|
142
|
-
|
|
143
|
-
lambda_coef: A penalty multiplier; default: 0.
|
|
144
|
-
|
|
145
|
-
weak_cls_schedule: Weak classifier schedule. Is either 1, 2,
|
|
146
|
-
or 3; default: 2.
|
|
147
|
-
|
|
148
|
-
weak_cls_type: Type of weak classifier
|
|
149
|
-
- dct: Decison tree classifier
|
|
150
|
-
- nb: Naive Baysian classifier
|
|
151
|
-
- lg: Logistic regression
|
|
152
|
-
- gp: Gaussian process classifier
|
|
153
|
-
|
|
154
|
-
default: dct.
|
|
155
|
-
|
|
156
|
-
weak_max_depth: Max depth of the tree. Applied only when
|
|
157
|
-
weak_cls_type="dct". Default: 10.
|
|
158
|
-
|
|
159
|
-
weak_min_samples_split: The minimum number of samples required
|
|
160
|
-
to split an internal node. Applied only when
|
|
161
|
-
weak_cls_type="dct". Default: 100.
|
|
162
|
-
|
|
163
|
-
Examples
|
|
164
|
-
-----------
|
|
165
|
-
|
|
166
|
-
>>> from sklearn import datasets
|
|
167
|
-
>>> from sklearn.preprocessing import MinMaxScaler
|
|
168
|
-
>>> from sklearn.model_selection import train_test_split
|
|
169
|
-
>>> iris = datasets.load_iris()
|
|
170
|
-
>>> X = iris.data
|
|
171
|
-
>>> y = iris.target
|
|
172
|
-
>>> scaler = MinMaxScaler()
|
|
173
|
-
>>> X = scaler.fit_transform(X)
|
|
174
|
-
>>> for i in range(len(y)):
|
|
175
|
-
... if y[i] == 0:
|
|
176
|
-
... y[i] = -1
|
|
177
|
-
... elif y[i] == 2:
|
|
178
|
-
... y[i] = 1
|
|
179
|
-
>>> X_train, X_test, y_train, y_test = train_test_split(
|
|
180
|
-
... X,
|
|
181
|
-
... y,
|
|
182
|
-
... test_size=0.2,
|
|
183
|
-
... random_state=42,
|
|
184
|
-
... )
|
|
185
|
-
>>> from eqc_models.ml.classifierqboost import QBoostClassifier
|
|
186
|
-
>>> obj = QBoostClassifier(
|
|
187
|
-
... relaxation_schedule=2,
|
|
188
|
-
... num_samples=1,
|
|
189
|
-
... lambda_coef=0.0,
|
|
190
|
-
... )
|
|
191
|
-
>>> from contextlib import redirect_stdout
|
|
192
|
-
>>> import io
|
|
193
|
-
>>> f = io.StringIO()
|
|
194
|
-
>>> with redirect_stdout(f):
|
|
195
|
-
... obj = obj.fit(X_train, y_train)
|
|
196
|
-
... y_train_prd = obj.predict(X_train)
|
|
197
|
-
... y_test_prd = obj.predict(X_test)
|
|
198
|
-
"""
|
|
199
|
-
def __init__(
|
|
200
|
-
self,
|
|
201
|
-
relaxation_schedule=2,
|
|
202
|
-
num_samples=1,
|
|
203
|
-
lambda_coef=0,
|
|
204
|
-
weak_cls_schedule=2,
|
|
205
|
-
weak_cls_type="lg",
|
|
206
|
-
weak_max_depth=10,
|
|
207
|
-
weak_min_samples_split=100,
|
|
208
|
-
):
|
|
209
|
-
super(QBoostClassifier).__init__()
|
|
210
|
-
|
|
211
|
-
assert weak_cls_schedule in [1, 2, 3]
|
|
212
|
-
assert weak_cls_type in ["dct", "nb", "lg", "gp"]
|
|
213
|
-
|
|
214
|
-
self.relaxation_schedule = relaxation_schedule
|
|
215
|
-
self.num_samples = num_samples
|
|
216
|
-
self.lambda_coef = lambda_coef
|
|
217
|
-
self.weak_cls_schedule = weak_cls_schedule
|
|
218
|
-
self.weak_cls_type = weak_cls_type
|
|
219
|
-
self.weak_max_depth = weak_max_depth
|
|
220
|
-
self.weak_min_samples_split = weak_min_samples_split
|
|
221
|
-
self.h_list = []
|
|
222
|
-
self.classes_ = None
|
|
223
|
-
|
|
224
|
-
@timer
|
|
225
|
-
def _build_weak_classifiers(self, X, y):
|
|
226
|
-
n_records = X.shape[0]
|
|
227
|
-
n_dims = X.shape[1]
|
|
228
|
-
|
|
229
|
-
assert len(y) == n_records
|
|
230
|
-
|
|
231
|
-
self.h_list = []
|
|
232
|
-
|
|
233
|
-
for l in range(n_dims):
|
|
234
|
-
if self.weak_cls_type == "dct":
|
|
235
|
-
weak_classifier = WeakClassifierDct(
|
|
236
|
-
[l],
|
|
237
|
-
X,
|
|
238
|
-
y,
|
|
239
|
-
self.weak_max_depth,
|
|
240
|
-
self.weak_min_samples_split,
|
|
241
|
-
)
|
|
242
|
-
elif self.weak_cls_type == "nb":
|
|
243
|
-
weak_classifier = WeakClassifierNB([l], X, y)
|
|
244
|
-
elif self.weak_cls_type == "lg":
|
|
245
|
-
weak_classifier = WeakClassifierLG([l], X, y)
|
|
246
|
-
elif self.weak_cls_type == "gp":
|
|
247
|
-
weak_classifier = WeakClassifierGP([l], X, y)
|
|
248
|
-
|
|
249
|
-
weak_classifier.train()
|
|
250
|
-
|
|
251
|
-
self.h_list.append(weak_classifier)
|
|
252
|
-
|
|
253
|
-
if self.weak_cls_schedule >= 2:
|
|
254
|
-
for i in range(n_dims):
|
|
255
|
-
for j in range(i + 1, n_dims):
|
|
256
|
-
if self.weak_cls_type == "dct":
|
|
257
|
-
weak_classifier = WeakClassifierDct(
|
|
258
|
-
[i, j],
|
|
259
|
-
X,
|
|
260
|
-
y,
|
|
261
|
-
self.weak_max_depth,
|
|
262
|
-
self.weak_min_samples_split,
|
|
263
|
-
)
|
|
264
|
-
elif self.weak_cls_type == "nb":
|
|
265
|
-
weak_classifier = WeakClassifierNB([i, j], X, y)
|
|
266
|
-
elif self.weak_cls_type == "lg":
|
|
267
|
-
weak_classifier = WeakClassifierLG([i, j], X, y)
|
|
268
|
-
elif self.weak_cls_type == "gp":
|
|
269
|
-
weak_classifier = WeakClassifierGP([i, j], X, y)
|
|
270
|
-
|
|
271
|
-
weak_classifier.train()
|
|
272
|
-
self.h_list.append(weak_classifier)
|
|
273
|
-
|
|
274
|
-
if self.weak_cls_schedule >= 3:
|
|
275
|
-
for i in range(n_dims):
|
|
276
|
-
for j in range(i + 1, n_dims):
|
|
277
|
-
for k in range(j + 1, n_dims):
|
|
278
|
-
if self.weak_cls_type == "dct":
|
|
279
|
-
weak_classifier = WeakClassifierDct(
|
|
280
|
-
[i, j, k],
|
|
281
|
-
X,
|
|
282
|
-
y,
|
|
283
|
-
self.weak_max_depth,
|
|
284
|
-
self.weak_min_samples_split,
|
|
285
|
-
)
|
|
286
|
-
elif self.weak_cls_type == "nb":
|
|
287
|
-
weak_classifier = WeakClassifierNB(
|
|
288
|
-
[i, j, k], X, y
|
|
289
|
-
)
|
|
290
|
-
elif self.weak_cls_type == "lg":
|
|
291
|
-
weak_classifier = WeakClassifierLG(
|
|
292
|
-
[i, j, k], X, y
|
|
293
|
-
)
|
|
294
|
-
elif self.weak_cls_type == "gp":
|
|
295
|
-
weak_classifier = WeakClassifierGP(
|
|
296
|
-
[i, j, k], X, y
|
|
297
|
-
)
|
|
298
|
-
weak_classifier.train()
|
|
299
|
-
self.h_list.append(weak_classifier)
|
|
300
|
-
|
|
301
|
-
return
|
|
302
|
-
|
|
303
|
-
def fit(self, X, y):
|
|
304
|
-
"""
|
|
305
|
-
Build a QBoost classifier from the training set (X, y).
|
|
306
|
-
|
|
307
|
-
Parameters
|
|
308
|
-
----------
|
|
309
|
-
X : {array-like, sparse matrix} of shape (n_samples, n_features)
|
|
310
|
-
The training input samples.
|
|
311
|
-
|
|
312
|
-
y : array-like of shape (n_samples,)
|
|
313
|
-
The target values.
|
|
314
|
-
|
|
315
|
-
Returns
|
|
316
|
-
-------
|
|
317
|
-
Response of Dirac-3 in JSON format.
|
|
318
|
-
"""
|
|
319
|
-
|
|
320
|
-
assert X.shape[0] == y.shape[0], "Inconsistent sizes!"
|
|
321
|
-
|
|
322
|
-
assert set(y) == {-1, 1}, "Target values should be in {-1, 1}"
|
|
323
|
-
|
|
324
|
-
self.classes_ = set(y)
|
|
325
|
-
|
|
326
|
-
J, C, sum_constraint = self.get_hamiltonian(X, y)
|
|
327
|
-
|
|
328
|
-
assert J.shape[0] == J.shape[1], "Inconsistent hamiltonian size!"
|
|
329
|
-
assert J.shape[0] == C.shape[0], "Inconsistent hamiltonian size!"
|
|
330
|
-
|
|
331
|
-
self.set_model(J, C, sum_constraint)
|
|
332
|
-
|
|
333
|
-
sol, response = self.solve()
|
|
334
|
-
|
|
335
|
-
assert len(sol) == C.shape[0], "Inconsistent solution size!"
|
|
336
|
-
|
|
337
|
-
self.params = self.convert_sol_to_params(sol)
|
|
338
|
-
|
|
339
|
-
assert len(self.params) == len(self.h_list), "Inconsistent size!"
|
|
340
|
-
|
|
341
|
-
return response
|
|
342
|
-
|
|
343
|
-
def predict_raw(self, X: np.array):
|
|
344
|
-
"""
|
|
345
|
-
Predict raw output of the classifier for input X.
|
|
346
|
-
|
|
347
|
-
Parameters
|
|
348
|
-
----------
|
|
349
|
-
X : {array-like, sparse matrix} of shape (n_samples, n_features)
|
|
350
|
-
|
|
351
|
-
Returns
|
|
352
|
-
-------
|
|
353
|
-
y : ndarray of shape (n_samples,)
|
|
354
|
-
The predicted raw output of the classifier.
|
|
355
|
-
"""
|
|
356
|
-
|
|
357
|
-
n_records = X.shape[0]
|
|
358
|
-
n_classifiers = len(self.h_list)
|
|
359
|
-
|
|
360
|
-
y = np.zeros(shape=(n_records), dtype=np.float32)
|
|
361
|
-
h_vals = np.array(
|
|
362
|
-
[self.h_list[i].predict(X) for i in range(n_classifiers)]
|
|
363
|
-
)
|
|
364
|
-
|
|
365
|
-
y = np.tensordot(self.params, h_vals, axes=(0, 0))
|
|
366
|
-
|
|
367
|
-
return y
|
|
368
|
-
|
|
369
|
-
def predict(self, X: np.array):
|
|
370
|
-
"""
|
|
371
|
-
Predict classes for X.
|
|
372
|
-
|
|
373
|
-
Parameters
|
|
374
|
-
----------
|
|
375
|
-
X : {array-like, sparse matrix} of shape (n_samples, n_features)
|
|
376
|
-
|
|
377
|
-
Returns
|
|
378
|
-
-------
|
|
379
|
-
y : ndarray of shape (n_samples,)
|
|
380
|
-
The predicted classes.
|
|
381
|
-
"""
|
|
382
|
-
|
|
383
|
-
y = self.predict_raw(X)
|
|
384
|
-
y = np.sign(y)
|
|
385
|
-
|
|
386
|
-
return y
|
|
387
|
-
|
|
388
|
-
@timer
|
|
389
|
-
def get_hamiltonian(
|
|
390
|
-
self,
|
|
391
|
-
X: np.array,
|
|
392
|
-
y: np.array,
|
|
393
|
-
):
|
|
394
|
-
self._build_weak_classifiers(X, y)
|
|
395
|
-
|
|
396
|
-
print("Built %d weak classifiers!" % len(self.h_list))
|
|
397
|
-
|
|
398
|
-
n_classifiers = len(self.h_list)
|
|
399
|
-
n_records = X.shape[0]
|
|
400
|
-
|
|
401
|
-
J = np.zeros(
|
|
402
|
-
shape=(n_classifiers, n_classifiers), dtype=np.float32
|
|
403
|
-
)
|
|
404
|
-
C = np.zeros(shape=(n_classifiers,), dtype=np.float32)
|
|
405
|
-
|
|
406
|
-
h_vals = np.array(
|
|
407
|
-
[self.h_list[i].predict(X) for i in range(n_classifiers)]
|
|
408
|
-
)
|
|
409
|
-
|
|
410
|
-
for i in range(n_classifiers):
|
|
411
|
-
for j in range(n_classifiers):
|
|
412
|
-
J[i][j] = sum(h_vals[i] * h_vals[j])
|
|
413
|
-
if i == j:
|
|
414
|
-
J[i][i] += self.lambda_coef
|
|
415
|
-
|
|
416
|
-
C[i] = -2.0 * sum(y * h_vals[i])
|
|
417
|
-
|
|
418
|
-
C = C.reshape((n_classifiers, 1))
|
|
419
|
-
|
|
420
|
-
return J, C, 1.0
|
|
421
|
-
|
|
422
|
-
def convert_sol_to_params(self, sol):
|
|
423
|
-
return np.array(sol)
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
eqc_models-0.9.8.data/platlib/compile_extensions.py,sha256=GNbNr9Pao2NwFUr29qEGrYSHvIlagnPcUqo3pgB5Trk,660
|
|
2
|
-
eqc_models-0.9.8.data/platlib/eqc_models/__init__.py,sha256=njh-tvfgnAIVBGw9FXFv6XQOAgwrnBG23dU9dipa1Jg,585
|
|
3
|
-
eqc_models-0.9.8.data/platlib/eqc_models/decoding.py,sha256=G3JgbIFzvZ3DIKW0kZ1JeTMIZmrc8hy9kzdbX2Xv5Og,637
|
|
4
|
-
eqc_models-0.9.8.data/platlib/eqc_models/algorithms/__init__.py,sha256=lzQoMMSs2QTqp5suEYNvcQaSEN16d0LwIsZ1mRstumU,135
|
|
5
|
-
eqc_models-0.9.8.data/platlib/eqc_models/algorithms/base.py,sha256=qfQQTwuVyewn7Qpg1_SVoD_7TsdA8vdwSKGqOeZSmNI,204
|
|
6
|
-
eqc_models-0.9.8.data/platlib/eqc_models/algorithms/penaltymultiplier.py,sha256=gV48irx3q9yvMsCRqv2fa8DGQEOUkgVNGbZdNzI-3Tc,7057
|
|
7
|
-
eqc_models-0.9.8.data/platlib/eqc_models/allocation/__init__.py,sha256=op_udrapTlWrakTuQId3M0ggo-Y1w4nGJLPcYKOQ-8I,239
|
|
8
|
-
eqc_models-0.9.8.data/platlib/eqc_models/allocation/allocation.py,sha256=PAQn4M75Zegeoy0i6r3hycWs4TKeRglHk05TvwZOoLk,15506
|
|
9
|
-
eqc_models-0.9.8.data/platlib/eqc_models/allocation/portbase.py,sha256=BTnYYduHydPbrE2yQr_Sgv3XJACH_GpIJstuMrfGqCU,3269
|
|
10
|
-
eqc_models-0.9.8.data/platlib/eqc_models/allocation/portmomentum.py,sha256=oMod63rNDC-01dLZjmhUb24SN3_GVgfc6CItgQL_obI,3756
|
|
11
|
-
eqc_models-0.9.8.data/platlib/eqc_models/assignment/__init__.py,sha256=CX_QYl8P1meajV8gcVs6hm07VhoLVe8uu436t7-1XQo,86
|
|
12
|
-
eqc_models-0.9.8.data/platlib/eqc_models/assignment/qap.py,sha256=WMiQQmTORsgi2w7kbmMA1xo-93dESLECWqYTF-zkmTs,2963
|
|
13
|
-
eqc_models-0.9.8.data/platlib/eqc_models/assignment/setpartition.py,sha256=pP61EFr-Vxk33ucMlyearjIqy8ktfy4hx1tL7JWrJeg,6792
|
|
14
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/__init__.py,sha256=RwZguuucmsuOSVqfPLBqj-wzinBOzcgO-2ifFU-DCqg,2885
|
|
15
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/base.py,sha256=kpnOb1dw0aaQyassIYKNlS6rIH1fNvZMI-NKPosAEMk,4856
|
|
16
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/constraints.py,sha256=KMPyCdt_8GMWLnVEdpzw1T1WqXm2f7Lh629ClUH7XDY,8271
|
|
17
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/operators.py,sha256=9nCeN6fRP-_YBfs-Gm57D-O_376qcOQiqGDuVlSlf00,7392
|
|
18
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/polyeval.c,sha256=ZcQAIL1Zfruop69C4HLjDJAq4TZp4OFkh83Kp8Bw5jk,438291
|
|
19
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/polyeval.cpython-310-darwin.so,sha256=M9cO90peu6w_cFqr5UYqPetgEu_huZH1H4UPpCidJE8,101136
|
|
20
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/polyeval.pyx,sha256=76Bf99Jt1_rLh5byrZxAjavE2F4_yCysirViqOBFIXw,2547
|
|
21
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/polynomial.py,sha256=gfEhkXAgFeRuml4Ufh3tDpgRvO9TwyKseqxHXjsxAGg,9246
|
|
22
|
-
eqc_models-0.9.8.data/platlib/eqc_models/base/quadratic.py,sha256=BHZKniUvSq30pZgzguVasdO39BCEYue_wi5AIklPGS8,8062
|
|
23
|
-
eqc_models-0.9.8.data/platlib/eqc_models/graph/__init__.py,sha256=Cpo4jb630U57J0lS_iZddE_W3v9N4ijUb7xZRIYuguo,95
|
|
24
|
-
eqc_models-0.9.8.data/platlib/eqc_models/graph/base.py,sha256=nYZCSCzshnuJKuc25M2YXcOqOhIa1-0R9rRbtIXDr84,1888
|
|
25
|
-
eqc_models-0.9.8.data/platlib/eqc_models/graph/hypergraph.py,sha256=ABvutT0NOdIEpUF4TjUzboE4Y_J5iUZyj6-AzKr4R28,13268
|
|
26
|
-
eqc_models-0.9.8.data/platlib/eqc_models/graph/maxcut.py,sha256=o8xVsAwTa9jcpmsIoCQ5z7HSstVdraT8TENomdT519o,4132
|
|
27
|
-
eqc_models-0.9.8.data/platlib/eqc_models/graph/maxkcut.py,sha256=OFZwmC3wWpIJWVHOb9wkUeka0g0bOHrwf-mx0VZvt58,5807
|
|
28
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/__init__.py,sha256=CLfraacr0FrD5ynxlNB6cyNy0lpbavcQT45TvkDrNvY,369
|
|
29
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/classifierbase.py,sha256=1yXufiUGpaiBjI2evMiwfYn-Zr-SnWwCnvtREqprtJw,2184
|
|
30
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/classifierqboost.py,sha256=REfAVIWDTDbshObBGoH-9QdOHVnt-OCGjh-lRNwI2HU,12350
|
|
31
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/classifierqsvm.py,sha256=b6TdwlghR84UoQpfUThwMwNF_wmkABbCqOn6T1uY2dA,6636
|
|
32
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/clustering.py,sha256=yhh6jlgwZiQVn9h2pnYBlzVTCocK7rzsEurSQxCn5FQ,9486
|
|
33
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/clusteringbase.py,sha256=AvQbt6jeocBAGCuAmXHKyr3wLWqYUtBDq9PbsEOSlSc,2632
|
|
34
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/decomposition.py,sha256=Nsnq0GmINpbGOszndgCHXqKdECNpiNiampBrHPU_Gjg,8943
|
|
35
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/forecast.py,sha256=fFcBxQK9ZryfEuyvlr9HXicHoZRzLFybimYYttzhI9E,7403
|
|
36
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/forecastbase.py,sha256=s-6nUMvtYqG07r7MmmkFVj8_QqgeGkD-HVoEEDTE2bk,3654
|
|
37
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/regressor.py,sha256=LA1woXCnefG0wfoOxilX1kszgCUmfNcbQgs_WZ4Ai0o,5683
|
|
38
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/regressorbase.py,sha256=H5E8-8pUji1oH5JRdS37LJQoHuKt2JU8eXCZp-ZaEM4,2109
|
|
39
|
-
eqc_models-0.9.8.data/platlib/eqc_models/ml/reservoir.py,sha256=cPRvpCaWLYTBkui35jCssHcOPQgSQZallrG6Ac9djVI,2827
|
|
40
|
-
eqc_models-0.9.8.data/platlib/eqc_models/sequence/__init__.py,sha256=VXlYufO3GYFsM00oii9Cite2WsQEF8XTwRcjLPH_Zlg,92
|
|
41
|
-
eqc_models-0.9.8.data/platlib/eqc_models/sequence/tsp.py,sha256=O3_gcPM-5XDvz9TZ4gJxZBDuSwq_agDTTf-7fCYx2_g,7533
|
|
42
|
-
eqc_models-0.9.8.data/platlib/eqc_models/solvers/__init__.py,sha256=hTjJI4F0FNDgQlK_oRHJxLIkg6of3I1-nEqU_3RL4Gk,542
|
|
43
|
-
eqc_models-0.9.8.data/platlib/eqc_models/solvers/qciclient.py,sha256=BElwvOgyequLIwjHhG-k-pWmPE5Ci1Gl2HJMszVIdMk,25154
|
|
44
|
-
eqc_models-0.9.8.data/platlib/eqc_models/utilities/__init__.py,sha256=SI2U7JKmPWSiq-F1WcSyfd7l9V6nbOZv_p8quMAZaT0,340
|
|
45
|
-
eqc_models-0.9.8.data/platlib/eqc_models/utilities/fileio.py,sha256=alWPTfjGFx6Iio9HZAAWtYcLmZsBBifg6S6_YbFMQhk,1088
|
|
46
|
-
eqc_models-0.9.8.data/platlib/eqc_models/utilities/polynomial.py,sha256=WoEBUAyiYBjwPvFWEjsynfmiBsbNqveKDZjXqiNQ6dk,4283
|
|
47
|
-
eqc_models-0.9.8.data/platlib/eqc_models/utilities/qplib.py,sha256=Do-MjmCFdI5HyDOAjfoz4_5lugySLMBlMAWDLUWx2OA,15796
|
|
48
|
-
eqc_models-0.9.8.dist-info/LICENSE.txt,sha256=8eh0oqsNNVR1Jk-13gkqRRSo2axtUU5kp2KzH4f9u3U,11354
|
|
49
|
-
eqc_models-0.9.8.dist-info/METADATA,sha256=q8NX9Ovrbqltb8VEQxJu_MFT8gLNfd8-2Kn_UxE9bss,7071
|
|
50
|
-
eqc_models-0.9.8.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
51
|
-
eqc_models-0.9.8.dist-info/top_level.txt,sha256=9ZfFeKNEvkRlKWoUnfcZ9TzmTdgdsuPEnTPy11Hqf4Q,30
|
|
52
|
-
eqc_models-0.9.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/penaltymultiplier.py
RENAMED
|
File without changes
|
|
File without changes
|
{eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
{eqc_models-0.9.8.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/portmomentum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|