Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iqcc ilc solver fork #179

Merged
merged 20 commits into from
Aug 12, 2022
Merged

iqcc ilc solver fork #179

merged 20 commits into from
Aug 12, 2022

Conversation

MPCoons
Copy link
Collaborator

@MPCoons MPCoons commented Jul 23, 2022

No description provided.

github-actions bot and others added 7 commits February 15, 2022 15:50
* Sphinx docs (#76)
* Fixing CCSDSolver.get_rdm() with frozen orbitals and energy from RDMs (#81)
* small fixes to allow initial density matrix for faster noisy sampling with cirq (#84)
* Branding (Tangelo, Good Chemistry Company) (#87)
* Name change: backendbuddy -> linq (#93)
* added multi-controls multi-targets, extra gates (#88)
* Add QMF and QCC capabilities and tests (#91)
* JKMN mapping implementation  (#95)
* added inverse function to Circuit (#78)
* added pycodestyle tests (#96)
* Circuit methods (repetition operator, equality, trim and split methods) (#101)
* Staged controlled time (#100)
* Support for name attribute in Circuit class (#110)
* Derandomized + Adaptive Classical Shadows (#111)
* added vsqs ansatz (#109)
* Staged richardson (#99)
* Majorana pool for ADAPT (#114)
* Copy gate data instead of referencing it when instantiation Circuit object (#118)
* Fixed QEMIST Cloud QPU connection ctrl-c in job_result. (#121)
* Estimate QPU cost with QEMIST Cloud API. (#120)
* Improvements for handling exp data with ClassicalShadow (#124)
* Qulacs operator build changed to fix memory leak (#122)


Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>
Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>
Co-authored-by: James Brown <james.brown@1qbit.com>
Co-authored-by: JamesB-1qbit <84878946+JamesB-1qbit@users.noreply.github.com>
Co-authored-by: MPCoons <84400409+MPCoons@users.noreply.github.com>
Co-authored-by: elloyd-1qbit <58313607+elloyd-1qbit@users.noreply.github.com>
Co-authored-by: KrzysztofB-1qbit <86750444+KrzysztofB-1qbit@users.noreply.github.com>
Co-authored-by: Rudi Plesch <rudi.plesch@1qbit.com>
Co-authored-by: GitHub Actions <noreply@github.com>
* Bump develop to v0.3.0 (#127) (#128)

* v0.3.0 into main (#127)

* Sphinx docs (#76)
* Fixing CCSDSolver.get_rdm() with frozen orbitals and energy from RDMs (#81)
* small fixes to allow initial density matrix for faster noisy sampling with cirq (#84)
* Branding (Tangelo, Good Chemistry Company) (#87)
* Name change: backendbuddy -> linq (#93)
* added multi-controls multi-targets, extra gates (#88)
* Add QMF and QCC capabilities and tests (#91)
* JKMN mapping implementation  (#95)
* added inverse function to Circuit (#78)
* added pycodestyle tests (#96)
* Circuit methods (repetition operator, equality, trim and split methods) (#101)
* Staged controlled time (#100)
* Support for name attribute in Circuit class (#110)
* Derandomized + Adaptive Classical Shadows (#111)
* added vsqs ansatz (#109)
* Staged richardson (#99)
* Majorana pool for ADAPT (#114)
* Copy gate data instead of referencing it when instantiation Circuit object (#118)
* Fixed QEMIST Cloud QPU connection ctrl-c in job_result. (#121)
* Estimate QPU cost with QEMIST Cloud API. (#120)
* Improvements for handling exp data with ClassicalShadow (#124)
* Qulacs operator build changed to fix memory leak (#122)


Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>
Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>
Co-authored-by: James Brown <james.brown@1qbit.com>
Co-authored-by: JamesB-1qbit <84878946+JamesB-1qbit@users.noreply.github.com>
Co-authored-by: MPCoons <84400409+MPCoons@users.noreply.github.com>
Co-authored-by: elloyd-1qbit <58313607+elloyd-1qbit@users.noreply.github.com>
Co-authored-by: KrzysztofB-1qbit <86750444+KrzysztofB-1qbit@users.noreply.github.com>
Co-authored-by: Rudi Plesch <rudi.plesch@1qbit.com>
Co-authored-by: GitHub Actions <noreply@github.com>

* Recomputing MF when working with atom indices in DMET (#130)

* Recomputing and testing MF when working with atom indexes. Change Localization import level.

* More gates for openqasm translator (#129)

* Added CZ, CY, CRz, CP, CSWAP and SWAP to openqasm translator

* fixed return for return_phase=False in trotterize (#133)

* fixed return for return_phase=False in trotterize

* ONIOM problem reformulation (#119)

* Updated ONIOM notebook use case

* QubitHamiltonian get_operators bug (#131)

* Fixed get_operators bug + added a test.

* Measurement map (#134)

* Measurement map + extending qwc partioning with repetition

* Working state, cleaning is wip.

* Givens gate (#135)

* added givens gate decomposition

Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>

* Notebook classical shadow (#123)

Classical shadows notebook. It has been added to tests as well

Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>

* added class to prepare or decompute an arbitrary statevector (#137)


* Many small todos (#138)
* Add an explanation how Circuit.reindex_qubits method is working.
* ClassicalShadows.simulate only unique circuit (massive speedup).
* Better management of backend options in VQESolver.
* CS notebook update.
* Comment fix for new return.
* No need of n_electrons with ref_state==zero.
* Change method for simulate (noisy?).

* Diag coulomb (#136)

* diagonalizing circuits implemented and tested

* improvements to jkmn leaf->majorana selection (#139)

* improvements to jkmn leaf->majorana selection

* Use of get_vector function.

* Change constructors -> classmethod.

* Change interface + working state.

* Stage where I have to write tests.

* Test for HybridOperator and Z2 tapering.

* Conformance tests + typos.

* Moved file + typos.

* Added tests for matrix manip.

* Full path of load_operator in tests.

* Permit all active orbitals partially occupied (#146)

* ONIOM capping with chemical groups (#141)

* Implementation for other chemical groups capping in ONIOM. Tests, docs.

* uccgd ansatz (#144)

* uccgd ansatz for use in SA-OO-VQE

* First round + added spin=\=0 fix.

* Support for symmetry, now call pyscf directly (#147)

* call pyscf directly, symmetry now supported

* Rotosolve implementation as an optimizer for parameterized circuits (#142)

* rotosolve implementation and tests

* ONIOM multisolvers (#143)

* Multisolver support in ONIOM
* Added others solvers to ONIOM, added tests and ROHF support (RHF->HF).

* sa_vqe_solver from sa-oo-vqe branch

* added import to __init__

* fixes for PR

* clearer documentation

* change statevector jkmn

* replaced jkmn_prep_circuit with jkmn_prep_vector

* Fixed error message.

* Some reviews.

* JKMN z2 tapering tests.

* Docstrings in tests.

* Speed improvement + bitwise operations + moved collapse function.

* Passing conformance tests.

* added state averaged orbital optimized files

* merged molecule symmetry changes

* Update test_hybridoperator.py

aligning.

* Hybrid -> Multiform.

* Small fixes.

* PR changes

* support for reading in xyz files (#151)

* support for reading in xyz files

* Update z2_tapering.py

* Update sa_oo_vqe_solver.py

* Ilc ansatz (#132)

* Add ILC ansatz class
* updates to qmf, qcc, and ilc ansatz classes
* enable QMF and ILC classes to read-in and process data from OpenFermion *.hdf5 files and other small fixes.

Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>

* Updating information, and adding Windows install comment (#155)

* Quantum deflation (#152)

* added deflation
* added ref_states as circuit and to VQESolver
* added ref_state and deflation to adapt vqe

Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>

* changed default basis to crenbl in pyscf, added ecp option (#156)

* changed default basis to crenbl for pyscf to retrieve number of electrons & atoms, added ecp option

* Cancel redundant gates (#153)

* Functions / methods to remove small rotations, and remove gates that cancel each other

* Circuit depth (#159)

* Depth method for Circuit class

* MI-FNO link (#157)

* MI-FNO helper class. Added tests + reconstruction of MI energy, support for building sermonic operators for fragments

* Iqcc solver (#154)

* iQCC solver, frobenius norm compression method on QubitOperator

Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>

* MIFNO notebook (#161)

* MIFNO notebook. Added to tests and sphinx docs

Co-authored-by: Valentin Senicourt <valentin.senicourt@1qbit.com>
Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>

* Docs fix + tutorials removal from sphinx docs (#162)

* Docs: requirements.txt no longer needed. Tutorials removed from generated docs (redundant with Github, issues with latex, looks better on github and will display images once repo is public

Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>

* readme upgrade (#164)

* readme upgrade and images, contributions.rst for code of conduct mention

* Fixes for docs and readme, files for Pypi (#166)

* Docs and readme fixed with feedback. Pypi file removed as it hinders the installation from source process: a guide will be provided to maintainer team for pypi update.

Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>

* Version number and changelogs bumped

Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>
Co-authored-by: James Brown <james.brown@1qbit.com>
Co-authored-by: JamesB-1qbit <84878946+JamesB-1qbit@users.noreply.github.com>
Co-authored-by: MPCoons <84400409+MPCoons@users.noreply.github.com>
Co-authored-by: elloyd-1qbit <58313607+elloyd-1qbit@users.noreply.github.com>
Co-authored-by: KrzysztofB-1qbit <86750444+KrzysztofB-1qbit@users.noreply.github.com>
Co-authored-by: Rudi Plesch <rudi.plesch@1qbit.com>
Co-authored-by: GitHub Actions <noreply@github.com>
Copy link
Contributor

@alexfleury-sb alexfleury-sb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only small comments (mostly typos). I focused on the unittests; I did not see something missing and I think there is a good code overage. I let @JamesB-1qbit and @ValentinS4t1qbit approve the general design since I am a bit out of the loop on this.

tangelo/algorithms/variational/iqcc_ilc_solver.py Outdated Show resolved Hide resolved
tangelo/algorithms/variational/iqcc_ilc_solver.py Outdated Show resolved Hide resolved
tangelo/algorithms/variational/iqcc_ilc_solver.py Outdated Show resolved Hide resolved
tangelo/toolboxes/ansatz_generator/_qubit_ilc.py Outdated Show resolved Hide resolved
tangelo/toolboxes/ansatz_generator/_qubit_ilc.py Outdated Show resolved Hide resolved
Copy link
Contributor

@JamesB-1qbit JamesB-1qbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. One small suggestion.

Copy link
Contributor

@ValentinS4t1qbit ValentinS4t1qbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work, a few comments mostly on the A*x = b in Z/2Z

tangelo/toolboxes/ansatz_generator/_qubit_cc.py Outdated Show resolved Hide resolved
tangelo/toolboxes/ansatz_generator/_qubit_ilc.py Outdated Show resolved Hide resolved
tangelo/toolboxes/ansatz_generator/_qubit_ilc.py Outdated Show resolved Hide resolved
tangelo/toolboxes/ansatz_generator/ilc.py Outdated Show resolved Hide resolved
tangelo/toolboxes/ansatz_generator/qcc.py Outdated Show resolved Hide resolved
tangelo/toolboxes/operators/operators.py Outdated Show resolved Hide resolved
Copy link
Contributor

@ValentinS4t1qbit ValentinS4t1qbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I misclicked earlier, my comments need to be addressed with changes

github-actions bot and others added 9 commits August 8, 2022 13:36
* pyscf.semiemprical import not required unless needed at runtime (#170)
* Hea init bug (#171)
* Fix MI-FNO link after QEMIST Cloud update (#169)
* New logo (#172)
* Update to follow QEMIST Cloud interface (#173)
* Updated qemist_client monitor_problem_status args. (#175)
* Fix the need for spin with a qubit operator + pool of fermion operators (#174)
* Added restrictions for the frozen orbitals + FCISolver active space selection (#177)
* Fix scbk reference state (#176)
* Check for the number of target qubits (#180)
* Attempt at fixing issue #149. Checks for appropriate number of target qubits.
* Improve usability of MIFNOHelper (#181)
* Ionq connection (#182)
* Linear Combination of Unitaries (LCU) implementation (#178)
* Release prep (#185) (workflow bumps version number)

Co-authored-by: ValentinS4t1qbit <41597680+ValentinS4t1qbit@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>
Co-authored-by: James Brown <james.brown@1qbit.com>
Co-authored-by: JamesB-1qbit <84878946+JamesB-1qbit@users.noreply.github.com>
Co-authored-by: MPCoons <84400409+MPCoons@users.noreply.github.com>
Co-authored-by: elloyd-1qbit <58313607+elloyd-1qbit@users.noreply.github.com>
Co-authored-by: KrzysztofB-1qbit <86750444+KrzysztofB-1qbit@users.noreply.github.com>
Co-authored-by: Rudi Plesch <rudi.plesch@1qbit.com>
Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Valentin Senicourt <valentin.senicourt@1qbit.com>
Copy link
Contributor

@ValentinS4t1qbit ValentinS4t1qbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems everytime the ILC class is instantiated, multiple warning messages coming from the gf2solve will be printed. If this is acceptable behavior according to Marc, and the number of prints is reasonable, I'm ok with that

tangelo/toolboxes/ansatz_generator/_qubit_ilc.py Outdated Show resolved Hide resolved
@ValentinS4t1qbit ValentinS4t1qbit merged commit 201b3be into goodchemistryco:develop Aug 12, 2022
ValentinS4t1qbit added a commit that referenced this pull request Aug 25, 2022
* Formula for estimating n_measurements for exp value to given accuracy updated with simpler form. (#192)
* Fix operator_expectation bug qith qubit operator / hamiltonian. (#191)
* iqcc ilc solver fork (#179)
* Make circuit iterable (#194)
* copy method for circuits + get_resources adjusted for some variations of VQE + invertible swap gate fix (#193)
* get_resources methods adjusted (VQE, SA-VQE)
* Release guide for project maintainers + version string (#195)
* Notebook: Important aspects of QChem modelling for QComputing (#199)
* Notebooks enabled for Google colab ("No local install") (#198)
* Docker fix (#200)
* Excited states notebook (#197)
* Translation function for qiskit qubit operators (paulisumop) (#196)

Co-authored-by: Valentin Senicourt <valentin.senicourt@1qbit.com>
Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>
Co-authored-by: JamesB-1qbit <84878946+JamesB-1qbit@users.noreply.github.com>
Co-authored-by: MPCoons <84400409+MPCoons@users.noreply.github.com>
ValentinS4t1qbit added a commit that referenced this pull request Nov 9, 2022
* Formula for estimating n_measurements for exp value to given accuracy updated with simpler form. (#192)
* Fix operator_expectation bug qith qubit operator / hamiltonian. (#191)
* iqcc ilc solver fork (#179)
* Make circuit iterable (#194)
* copy method for circuits + get_resources adjusted for some variations of VQE + invertible swap gate fix (#193)
* Release guide for project maintainers + version string (#195)
* Notebook: Important aspects of QChem modelling for QComputing (#199)
* Notebooks enabled for Google colab ("No local install" needed) (#198)
* Docker fix (#200)
* Excited states (#197)
* Translation function for qubit operators (#196)
* c2v axis definition changed (#205)
* Bidirectional conversion for Qiskit quantum circuits (#203)
* QEMISTClientConnection class (#207)
* Add n_qubits option to MultiformOperator compress function (#209)
* Quantum Signal Processing time-evolution (#204)
* added even trotter order > 2 (#210)
* Fixed number of qubits with scBK in ADAPT. (#214)
* Export coverage output file in github actions (#158)
* JKMN vector prep should return np array of int. (#215)
* Support for additional IonQ gates (#212)
* Remove unused n_min_orbitals attribute. (#218)
* Change JKMN Majorana definition so mapped Hamiltonian is real (#219)
* Relaxing condition fot iQCC-ILC test. (#221)
* Histogram class (#217)
* Compute energy from RDMs with FermionOperator (#220)
* IonQConnection: control update prints / verbosity. (#225)
* Refactor simulator (#213)
* added __repr__ method to Gate (#229)
* New bidirectional circuit translation functions and interface (#223)
* Add circuit.depth() in get_resources methods (#235)
* Variance and standard error of an expectation value (#238)
* VQESolver cleanup (#230)
* TETRIS-ADAPT-VQE (#241)
* TETRISADAPTSolver implementation + #224 fix
* Trotter order and active electrons for (i)QCC (#234)
* Symmetry post-selection (#232)
* Qiskit runtime integration (IBM quantum only) (#222)
* Add multi-control support for trotterization (#244)
* Compatibility with new QCloud outputs. (#246)
* Deprecate Simulator, introduce get_backend as replacement (#245)
* compute_rdms function (#228)
* Expanded FermionOperator attributes, defined logical and mathematical operations on it (add, mul, eq, etc)
* Bumping Tangelo version number in _version.py
* Update CHANGELOG.md

Co-authored-by: Valentin Senicourt <41597680+ValentinS4t1qbit@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: AlexandreF-1qbit <76115575+AlexandreF-1qbit@users.noreply.github.com>
Co-authored-by: James Brown <james.brown@1qbit.com>
Co-authored-by: JamesB-1qbit <84878946+JamesB-1qbit@users.noreply.github.com>
Co-authored-by: MPCoons <84400409+MPCoons@users.noreply.github.com>
Co-authored-by: elloyd-1qbit <58313607+elloyd-1qbit@users.noreply.github.com>
Co-authored-by: KrzysztofB-1qbit <86750444+KrzysztofB-1qbit@users.noreply.github.com>
Co-authored-by: Rudi Plesch <rudi.plesch@1qbit.com>
Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Valentin Senicourt <valentin.senicourt@1qbit.com>
Co-authored-by: Joshua Goings <3915169+jjgoings@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants