1,371 research outputs found
Learn Quantum Mechanics with Haskell
To learn quantum mechanics, one must become adept in the use of various
mathematical structures that make up the theory; one must also become familiar
with some basic laboratory experiments that the theory is designed to explain.
The laboratory ideas are naturally expressed in one language, and the
theoretical ideas in another. We present a method for learning quantum
mechanics that begins with a laboratory language for the description and
simulation of simple but essential laboratory experiments, so that students can
gain some intuition about the phenomena that a theory of quantum mechanics
needs to explain. Then, in parallel with the introduction of the mathematical
framework on which quantum mechanics is based, we introduce a calculational
language for describing important mathematical objects and operations, allowing
students to do calculations in quantum mechanics, including calculations that
cannot be done by hand. Finally, we ask students to use the calculational
language to implement a simplified version of the laboratory language, bringing
together the theoretical and laboratory ideas.Comment: In Proceedings TFPIE 2015/6, arXiv:1611.0865
Specific "scientific" data structures, and their processing
Programming physicists use, as all programmers, arrays, lists, tuples,
records, etc., and this requires some change in their thought patterns while
converting their formulae into some code, since the "data structures" operated
upon, while elaborating some theory and its consequences, are rather: power
series and Pad\'e approximants, differential forms and other instances of
differential algebras, functionals (for the variational calculus), trajectories
(solutions of differential equations), Young diagrams and Feynman graphs, etc.
Such data is often used in a [semi-]numerical setting, not necessarily
"symbolic", appropriate for the computer algebra packages. Modules adapted to
such data may be "just libraries", but often they become specific, embedded
sub-languages, typically mapped into object-oriented frameworks, with
overloaded mathematical operations. Here we present a functional approach to
this philosophy. We show how the usage of Haskell datatypes and - fundamental
for our tutorial - the application of lazy evaluation makes it possible to
operate upon such data (in particular: the "infinite" sequences) in a natural
and comfortable manner.Comment: In Proceedings DSL 2011, arXiv:1109.032
Delayed-choice quantum eraser for the undergraduate laboratory
In a delayed-choice quantum eraser, interference fringes are obtained by
erasing which-way information after the interfering particle has already been
irreversibly detected. Following an introductory review of delayed-choice
experiments and quantum erasure, we describe the experimental realization of an
optical delayed-choice quantum eraser, suitable for advanced undergraduates,
based on polarization-entangled pairs of single photons. In our experiment, the
delay of the erasure is implemented using two different setups. The first setup
employs an arrangement of mirrors to increase the optical path length of the
photons carrying which-way information. In the second setup, we use fiber-optic
cables to elongate the path of these photons after their passage through the
polarization analyzer but prior to their arrival at the detector. We compare
our results to data obtained in the absence of a delay and find excellent
agreement. This shows that the timing of the erasure is irrelevant, as also
predicted by quantum mechanics. The experiment can serve as a valuable
pedagogical tool for conveying the fundamentals of quantum mechanics.Comment: 13 pages, 5 figures, identical to published versio
An Exploratory Study on the Usage of Quantum Programming Languages
Tese de mestrado, Engenharia Informática, 2022, Universidade de Lisboa, Faculdade de CiênciasAs in the classical realm, the usage of quantum programming languages in quantum computing allows one to instruct a quantum computer to perform certain tasks. Although several imperative, declarative, and multi-paradigm quantum programming languages with different features and goals have been developed in the last 25 years, no study
has been conducted on who, how, and what for does one use a quantum programming
language. In this thesis, we first identified and described several quantum programming
languages and then surveyed 251 quantum practitioners to answer several questions related to the usage of quantum programming languages. Further, an analysis of the results
obtained is presented and shows that most of the quantum practitioners use the languages
for research and that Qiskit (Python) is the most used one. Finally, we make recommendations for further development of quantum programming languages, such as building on
top of a classical programming language, running in real quantum computers, supporting
language documentation, and consulting developers’ needs
Automated Conjecturing in QuickSpec
A key component of mathematical reasoning is the ability to formulate interesting conjectures about a problem domain at hand. This task has not yet been widely studied by the automated reasoning and AI communities, but we believe interest is growing. In this paper, we give a brief overview of a theory exploration system called QuickSpec, able to automatically discover interesting conjectures about a given set of functions. QuickSpec works by interleaving term generation with random testing to form candidate equational conjectures. This is made tractable by starting from small sizes and ensuring that only terms that are irreducible with respect to already discovered equalities are considered. QuickSpec has been successfully applied to generate lemmas for automated inductive theorem proving as well as to generate specifications of functional programs. We also give a small survey of different approaches to conjecture discovery, and speculate about future directions combining symbolic methods and machine learning
Developments in multiscale ONIOM and fragment methods for complex chemical systems
Multiskalenprobleme werden in der Computerchemie immer allgegenwärtiger und bestimmte Klassen solcher Probleme entziehen sich einer effizienten Beschreibung mit den verfügbaren Berechnungsansätzen. In dieser Arbeit wurden effiziente Erweiterungen der Multilayer-Methode ONIOM und von Fragmentmethoden als Lösungsansätze für derartige Probleme entwickelt. Dabei wurde die Kombination von ONIOM und Fragmentmethoden im Rahmen der Multi-Centre Generalised ONIOM entwickelt sowie die eine Multilayer-Variante der Fragment Combinatio Ranges. Außerdem wurden Schemata für elektronische Einbettung derartiger Multilayer-Systeme entwickelt. Der zweite Teil der Arbeit beschreibt die Implementierung im Haskell-Programm "Spicy" und demonstriert Anwendungen derartiger Multiskalen-Methoden
Towards A Novel Environment for Simulation of Quantum Computing
In this paper, we analyze existing quantum computer simulation techniques and their realizations to minimize the impact of the exponential complexity of simulated quantum computations. As a result of this investigation, we propose a quantum computer simulator with an integrated development environment – QuIDE – supporting the development of algorithms for future quantum computers. The simulator simplifies building and testing quantum circuits and understanding quantum algorithms in an efficient way. The development environment provides flexibility of source code edition and ease of the graphical building of circuit diagrams. We also describe and analyze the complexity of algorithms used for simulation as well as present performance results of the simulator as well as results of its deployment during university classes
- …