Comments (2)
Hi,
Thank you for your question.
FullPeepholeOptimise applies a combination of passes which are mentioned in the Compilation section of the user manual under "predefined sequences"
You can also define passes of your own using SequencePass
.
If you are not concerned about routing then perhaps a good sequence of passes to apply is the following.
seq_pass=SequencePass([FullPeepholeOptimise(), RemoveRedundancies(), my_Rebase])
Here my_Rebase can be a user defined rebase which you can define using RebaseCustom
Depending on the structure of your circuits you may also see improved results by including OptimisePhaseGadgets
and PauliSimp
at the beginning of your sequence. However these compilation passes are application specific and may not be the way to go if you want to define a generic optimisation pass.
After FullPeepholeOptimise is applied the circuit will be in the {TK1,CX} gate set. Performing a rebase after this optimisation will introduce new gates as the TK1 gates need to be decomposed into {Rz,X,H}.
If your Rebase is the last pass in your sequence it should be applied to the optimised circuit. The RebaseCustom pass itself should automatically apply some light optimisations post conversion to remove some redundant gates.
I hope this helps. If anything I said is unclear then please let me know.
from pytket-docs.
Thanks!
from pytket-docs.
Related Issues (20)
- ImportError: cannot import name 'ToffoliBox' from 'pytket.circuit' (/usr/local/lib/python3.7/dist-packages/pytket/circuit/__init__.py) HOT 2
- Mention `EmpiricalDistribution` and `ProbabilityDistribution` in the user manual
- [CI] [examples] Investigate excessive time taken to run some notebooks
- [CI] New workflow for updating pre-commit hooks HOT 1
- pytket 1.1.0 depends on networkx~=2.4 HOT 1
- enable qsharp backend in comparing_simulators.py
- remove `pre-commit == 3.0.0` from manual page HOT 1
- update to sphinx 6.2 HOT 5
- `optimisation_level=2` bug HOT 1
- `ImportError` with pytket>=1.20 and Python 3.11 HOT 2
- missing `ipykernel` requirement HOT 5
- Manual build failing HOT 2
- Re-enable warning-as-error for `sphinx-build` HOT 1
- BackendResult incorrect return types for strict type checking HOT 1
- Remove mention of retired IBM devices from user manual and examples HOT 2
- Fix manual and examples to be compatible with pytket-qiskit 0.49 HOT 1
- Latest pytket-qiskit incompatible with pytket-pyquil HOT 4
- Remove scipy version pin in manual build after next pytket release
- Add section on circuit visualisation to the user manual
- TEST pytket-docs issue HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pytket-docs.