Closed ajrazander closed 5 years ago
Hi, when you say 'new to contributing' are you looking for some overall information on how to contribute as a developer within Aqua? Now this was done as a tutorial https://github.com/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aqua/Aqua_how_to_build_a_pluggable_algorithm_components.ipynb and we had more as documentation for developers as guidance for new algorithm and component design within Aqua. The latter though is currently unavailable as the documentation is being restructured.
Or are you looking from the viewpoint of an user that wishes to use an algorithm? Aqua really is a collection of diverse algorithms. Many of these are are text book ones and well known such as Shor, QAOA etc. These algorithms exist as a collection since these are expected/proven to have quantum advantage. As such quantum advantage is really the overall theme with the algorithms solving diverse problems. This is why you see them presented in their own tutorials.
I am not sure what a 'top-down' tutorial would be to cover this diversity. Now we have this https://github.com/Qiskit/qiskit-community-tutorials/blob/master/aqua/algorithm_introduction_with_vqe.ipynb While it is written around VQE the same approach applies to all the other algorithms. Of course the inputs and parameters, and what components an algorithm might rely on differ, as well the problem it might solve, but the approach to using them in Aqua is the same.
can not find digestible (meaning not searching through source code) top-down information on aqua. Information like what are all the available algorithms on qiskit?
There is API documentation available https://qiskit.org/documentation/apidoc/aqua/algorithms/algorithms.html - and all the algorithms are the algorithms folder.
This could be solved by providing top-down information in the docs page.
Aqua had much more than the API documentation but as I explained above that is currently unavailable as the documentation is being restructured.
Finally, if you feel you have some good idea specifically how what you ask for might be addressed please let us know. Perhaps you would also like to contribute in this regard? Contributions do not only have to be code, but can be documentation and tutorials too.
Hi, thank you for the thorough reply!
The introductory tutorial you mentioned is exactly the kind of information I was suggesting be added to aqua. I guess I just couldn't find it when searching around!
I'd be happy to contribute tutorials! Right now, I don't have any specific documentation or tutorials to contribute. But, that will change in the future!
Thank you!
What is the expected enhancement?
Hi, I'm new to contributing, and I have a concern about an overarching inadequacy in the aqua tutorials. If this is not the right place with these comments, please let me know and I'll express my enhancement idea elsewhere.
The current qiskit aqua tutorials are specific to particular problems solved by one particular problem. These problems are interesting, and it's generating momentum for quantum computers. However, there are no top-down tutorials for qiskit aqua.
For example, terra has great general information about quantum computing in its tutorials. It's informative about what qiskit terra can do--sprinkled with specific examples. It gives the reader tools to construct circuits because of it's top-down vantage point.
Qiskit aqua has the opposite feel. The tutorials use specific syntax to solve one problem with one algo leaving the reader trying to extrapolate aqua's overarching abilities, hyper parameter syntax, available optimizers, and even available quantum algorithms. Aqua's current tutorials are a great showcase for quantum computing, but they aren't a great learning tool--which a tutorial should be. I can not find digestible (meaning not searching through source code) top-down information on aqua. Information like what are all the available algorithms on qiskit? What is the general execute of an algorithm. For what algorithms are what hyper parameters important? Or what quantum algorithms go best with what classical optimizers for hybrid algorithms? And maybe even a touch of why one might want to use one algorithm over another.
This could be solved by providing top-down information in the docs page. The Terra, Aer, and Ignis subsections of the docs page look informative but aqua does not.