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

New implementation of a general graph mapper for ProjectQ #340

Open
wants to merge 25 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
30f82ad
First implementation of the general graph mapper
Takishima Dec 20, 2018
b7d3238
Add unit tests for GraphMapper
Takishima Jan 4, 2019
946bcb9
Add caching option to GraphMapper
Takishima Jan 8, 2019
c8f2b5c
Fix pytest.ini file
Takishima Jan 11, 2019
33dbd35
Introduce path container to handle intersections between paths
Takishima Jan 22, 2019
2f5bf8f
Add paths statistics and string representation to the GraphMapper
Takishima Jan 22, 2019
6854ff3
Various minor fixes
Takishima Jan 30, 2019
d3fa5e7
Rename PathContainer to PathManager + solve intersections on-the-fly
Takishima Feb 4, 2019
77711be
Improve initial qubit placement
Takishima Mar 4, 2019
e7b2363
Refactor __str__ methods for GraphMapper and PathManager
Takishima Mar 18, 2019
64c266a
Fill gaps in test coverage + cleanup code + fix Python 2.7 issue
Takishima May 6, 2019
970253c
Replace path manager with cost-function metrics for GraphMapper
Takishima Oct 9, 2019
a6edcc4
New implementation of the GraphMapper (SABRE-like algorithm)
Takishima Oct 9, 2019
76e0e9e
Store all gates in MultiQubitGateManager
Takishima Oct 11, 2019
c5a35c8
Remove CommandList and replace it with MultiQubitGateManager
Takishima Oct 16, 2019
0aef111
Fix some linting-related issues
Takishima Oct 17, 2019
3748c00
Fix some more bugs and linting issues and increase test coverage
Takishima Oct 21, 2019
091df8b
Rename MultiQubitGateManager to GateManager and update docstrings
Takishima Oct 22, 2019
477a217
Fix node order in layers for consistency accross Python versions
Takishima Oct 22, 2019
a264747
Fix default options for GraphMapper
Takishima Oct 24, 2019
c9a64f6
Fix error in statistics and adjust tests
Takishima Oct 24, 2019
65cf486
Add missing public function to cengines
Takishima Oct 24, 2019
5b2a96e
Fix issue with Python2 and class functions
Takishima Oct 24, 2019
33952a9
Fix some more issues
Takishima Oct 24, 2019
9a3eab8
Fix typo
Takishima Nov 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions docs/projectq.cengines.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ The ProjectQ compiler engines package.
.. autosummary::
projectq.cengines.AutoReplacer
projectq.cengines.BasicEngine
projectq.cengines.BasicMapper
projectq.cengines.BasicMapperEngine
projectq.cengines.CommandModifier
projectq.cengines.CompareEngine
projectq.cengines.DecompositionRule
projectq.cengines.DecompositionRuleSet
projectq.cengines.DummyEngine
projectq.cengines.ForwarderEngine
projectq.cengines.GridMapper
projectq.cengines.GraphMapper
projectq.cengines.InstructionFilter
projectq.cengines.IBM5QubitMapper
projectq.cengines.LinearMapper
projectq.cengines.LocalOptimizer
projectq.cengines.ManualMapper
projectq.cengines.MainEngine
projectq.cengines.SwapAndCNOTFlipper
projectq.cengines.SwapAndCNOTFlipper
projectq.cengines.TagRemover


Expand All @@ -31,3 +32,14 @@ Module contents
:members:
:special-members: __init__
:imported-members:


Helper sub-modules
------------------

Gate manager sub-module
^^^^^^^^^^^^^^^^^^^^^^^

.. automodule:: projectq.cengines._gate_manager
:members:
:imported-members:
3 changes: 3 additions & 0 deletions projectq/cengines/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@
from ._tagremover import TagRemover
from ._testengine import CompareEngine, DummyEngine
from ._twodmapper import GridMapper
from ._graphmapper import GraphMapper
from ._gate_manager import (nearest_neighbours_cost_fun,
look_ahead_parallelism_cost_fun)
Loading