US7376547B2 - Systems and methods that facilitate quantum computer simulation - Google Patents
Systems and methods that facilitate quantum computer simulation Download PDFInfo
- Publication number
- US7376547B2 US7376547B2 US10/903,205 US90320504A US7376547B2 US 7376547 B2 US7376547 B2 US 7376547B2 US 90320504 A US90320504 A US 90320504A US 7376547 B2 US7376547 B2 US 7376547B2
- Authority
- US
- United States
- Prior art keywords
- computer
- quantum
- instructions
- rho
- calculus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B82—NANOTECHNOLOGY
- B82Y—SPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
- B82Y10/00—Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
Definitions
- the present invention generally relates to quantum computing, and more particularly to systems and methods that generate computer readable instructions that can be executed by a classical physics based computer to simulate a quantum computer.
- quantum computer leverages physical phenomenon unique to quantum mechanics to render a new paradigm of information processing.
- the fundamental unit of information is a quantum bit, or qubit.
- qubits are manipulated by executing a series of quantum gates, which are each a unitary transformation acting on a single qubit or pair of qubits.
- quantum gates By applying quantum gates in succession, a quantum computer can perform a computationally complicated unitary transformation to a set of qubits in some initial state.
- the qubit is not binary, but rather more quaternary in nature.
- a qubit can exist not only in a state corresponding to a logical state of “0” or “1,” like a classical bit, but additionally in states corresponding to a superposition of the classical states.
- a qubit can exist as “0,” “1,” or simultaneously as both “0” and “1,” with a numerical coefficient representing a probability for each state.
- the present invention relates to systems and methods that facilitate simulating quantum computing and/or provide a language to program a quantum computer.
- the present invention provides a novel technique, wherein quantum computing can be simulated via a classical (physics based) computer.
- the systems and methods translate computer readable instructions (e.g., quantum computer based instructions) to a process algebra representation that can be executed by a classical computer to produce a result indicative of a quantum computer; examples of suitable process algebra include rho ( ⁇ ) and pi ( ⁇ ) calculus.
- the systems and methods of the present invention can transform a classical computer into a quantum computer simulator that can compute within and leverage the benefits of the quantum physics domain.
- the process algebra representation can be executed on a quantum computer; thus, the representation can additionally be utilized as a computer language to program a quantum computer.
- a system comprising a simulator that translates instructions into computer readable representations that can be executed by a classical computer to simulate a quantum computer.
- the system accepts computer instruction generated via essentially any programming language such as machine language, assembly language, C and derivatives of C, Visual Basic, Pascal, FORTRAN, quantum mechanics, etc. These instructions can be utilized to generate a representation of the instructions that can be executed by a classical computer.
- the simulator can generate a process algebra (e.g., rho and/or pi calculus) representation, which is executable by a classical computer.
- the system can additionally employ an instruction translator, an instruction mapping component, and/or an instruction converting look up table to facilitate generating the representation.
- the representation can be utilized to program a quantum computer.
- instructions can be converted to the representation, wherein the representation can be edited to modify an instruction and/or utilized to program the quantum computer.
- the representation can be generated and converted to quantum mechanics instructions via a mapping, wherein the quantum mechanics instructions are utilized to program the quantum computer.
- Quantum computing simulation can be performed by translating quantum mechanics based instructions to a process algebra form that can be executed by a classical computer.
- Such mapping can include translations between vectors, scalars, dual vector and operators in Hilbert space to processes, named processes (quoted names) and quote maps in rho calculus space.
- This process algebra form can additionally be utilized to program a quantum computer.
- the process algebra form can be executed by the quantum computer or the process algebra form can be mapped to quantum mechanics instructions, wherein the quantum mechanics instructions are executed by the quantum computer.
- FIG. 1 illustrates an exemplary system that facilitates quantum computing.
- FIG. 2 illustrates an exemplary system that employs a translator to generate a computer readable representation that can execute in a classical computer to produce results indicative of a quantum computer.
- FIG. 3 illustrates an exemplary system that generates a process algebra representation of computer readable instructions for a classical computer.
- FIG. 4 illustrates an exemplary system that utilizes a mapping between quantum mechanics and rho calculus to facilitate simulating quantum computing.
- FIG. 5 illustrates an exemplary classical computing entity that utilizes a simulator to generate executable representations of quantum mechanics instructions.
- FIG. 6 illustrates an exemplary distributed quantum computer simulator.
- FIG. 7 illustrates an exemplary methodology that facilitates quantum computing simulation.
- FIG. 8 illustrates an exemplary methodology for simulating a quantum computer with a classical computer via process algebra.
- FIG. 9 illustrates an exemplary methodology for programming a quantum computer with process algebra.
- FIG. 10 illustrates an exemplary networking environment, wherein the novel aspects of the present invention can be employed.
- FIG. 11 illustrates an exemplary operating environment, wherein the novel aspects of the present invention can be employed.
- the present invention provides systems and methods that simulate quantum computing and/or provide a quantum computer programming language.
- the present invention provides a novel technique that translates quantum computer based instructions to a representation (e.g., in process algebra) that can be executed on a classical computer to produce a result indicative of a quantum computer.
- a representation e.g., in process algebra
- the systems and methods of the present invention can transform a classical physics based computer into a quantum computer simulator that can operate in the quantum physics domain.
- the representation can be utilized as a computer language to program a quantum computer.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a server and the server can be a component.
- One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers.
- FIG. 1 illustrates a system 100 that facilitates quantum computing.
- the system 100 can be employed in connection with a classical (physics based) computer to simulate a quantum computer.
- the system 100 comprises a simulator component (hereafter simulator) 110 that can receive computer readable instructions (e.g., generated via machine language, assembly language, higher-level languages, quantum mechanics, etc.) and generate a representation that can be executed by a classical computer.
- simulator computer readable instructions
- the simulator 110 can receive such instructions through an input component 120 .
- computer (readable/executable) instructions can be generated via essentially any programming language (e.g., machine, assembly, C, derivatives of C, Visual Basic, Pascal, Fortran, quantum mechanics, etc.) and/or model and conveyed through the input component 120 to the simulator 110 .
- the input component 120 can be essentially any interface that can couple the simulator 110 with transmission medium through which instructions sets (e.g., one or more instructions) can be transmitted.
- the input component 120 can be utilized to couple the simulator 110 with a data bus over which instruction sets can be transmitted.
- the input component 120 can be utilized to couple the simulator 110 with an address bus.
- This bus can be utilized to convey an address to a reference or pointer to the simulator 110 , wherein the reference or pointer can facilitate locating the instruction set.
- the simulator 110 can utilize the reference or pointer to retrieve the instruction set.
- the data and/or address buses can be electrical and/or optical.
- the buses can be local or common to the system (e.g., a backplane).
- these buses can provide access to storage medium residing in the machine employing the system 100 .
- At least one computer readable instruction can reside within storage medium of the computer (e.g., classical or quantum) employing the system 100 .
- This instruction can be stored in essentially any storage medium, including volatile memory such as Random Access Memory (RAM) and variations thereof (e.g., Dynamic RAM (DRAM), Static RAM (SRAM), Synchronous DRAM (SDRAM), Fast Page RAM (FP RAM), Extended Data Out DRAM (EDO DRAM), Burst EDO RAM (BEDO RAM), etc.).
- RAM Random Access Memory
- DRAM Dynamic RAM
- SRAM Static RAM
- SDRAM Synchronous DRAM
- FP RAM Fast Page RAM
- EDO DRAM Extended Data Out DRAM
- BEDO RAM Burst EDO RAM
- the instruction can be stored in non-volatile memory such as hard disk, CD, DVD, Optical disk, Read Only Memory (ROM) and variations thereof (e.g., Programmable ROM (PROM), Erasable Programmable ROM (EPROM), and Electrically Erasable Programmable PROM (EEPROM)), Basic Input/Output System (BIOS), etc.
- non-volatile memory such as hard disk, CD, DVD, Optical disk, Read Only Memory (ROM) and variations thereof (e.g., Programmable ROM (PROM), Erasable Programmable ROM (EPROM), and Electrically Erasable Programmable PROM (EEPROM)), Basic Input/Output System (BIOS), etc.
- At least one computer readable instruction can reside remotely from the quantum computer simulator 110 .
- Such instruction can be conveyed to the simulator 110 via portable storage (e.g., Flash, CD, DVD, optical disk, floppy disc, etc.) and/or over a network.
- portable storage e.g., Flash, CD, DVD, optical disk, floppy disc, etc.
- Utilizing a network can provide instruction conveyance with a remote system.
- networks that can be employed in accordance with aspects of the present invention include wire and/or wireless Large Area Networks (LANs), Wide Area Networks (WANs), and emerging specialized networks such as Campus Area Networks (CAN), Metropolitan Area Networks (MANs), and a Home Area Network (HAN), for example.
- LANs Large Area Networks
- WANs Wide Area Networks
- CAN Campus Area Networks
- MANs Metropolitan Area Networks
- HAN Home Area Network
- a LAN typically couples workstations, personal computers, printers, copiers, scanners, etc.
- a CAN generally is a dedicated network for a limited geographic area, such as a campus or military base; a MAN typically is designed for a town or city; and a HAN commonly is associated with a network within a user's home.
- the simulator 110 can generate a representation of the instruction.
- the received instruction set can include computer readable instructions.
- the instruction set can be packaged in a form that is not executable by a classical computer.
- the instruction set can include quantum mechanics-based instructions. Such instructions can require hardware that typically is not present in a classical computer; classical computers generally are designed around hardware based on the laws of classical physics and not quantum mechanics.
- the simulator 110 can generate a representation of the instruction set that can be executed (e.g., after a build) by a classical computer.
- the simulator 110 can generate a process algebra based representation.
- the simulator can generate a rho and/or pi calculus representation. It is to be appreciated that one of ordinary skill in the art would understand that essentially any process algebra can be utilized in accordance with aspects of the present invention.
- the generated representation can be conveyed by the simulator 110 through an output component 130 to virtually any component for further processing.
- the representation can be provided to a processing unit (e.g., a digital signal processor (DSP), a microprocessor (CPU), etc.), wherein respective instructions can be executed.
- DSP digital signal processor
- CPU microprocessor
- processing unit e.g., a digital signal processor (DSP), a microprocessor (CPU), etc.
- DSP digital signal processor
- CPU microprocessor
- the output component 130 can be essentially any interface that can couple the simulator 110 with a transmission medium.
- the output component 130 can be utilized to couple the simulator 110 with a data and/or address bus and/or network as described above.
- the output component 130 can be utilized to convey the representation to a processor and/or other processing resources of the classical computer for storage and/or execution.
- the output component 130 can be utilized to convey the representation to a processor and/or other processing resources of the quantum computer for storage and/or execution.
- the representation can be transformed to a quantum mechanics form prior to execution.
- the simulator 110 , the input component 120 and/or output component 130 can implemented in software, hardware and/or firmware.
- the system 100 provides a novel approach to quantum computing.
- Contemporary quantum computers generally are not realizable in a form that can compete with classical computers.
- the present invention can be utilized to represent quantum computers as well as other instructions in a form that can be read and executed by a classical computer.
- the present invention can transform a classical computer into a quantum computer and leverage the benefits of quantum computing while utilizing classical physics based hardware.
- the generated representation can be executed on a quantum computer and, thus, the representation can be utilized as a computer language to program quantum computers.
- FIG. 2 illustrates a system 200 that employs a translator to convert instructions to a computer readable representation that can execute in a classical computer to produce results indicative of a quantum computer.
- the system 200 comprises the simulator 110 , the input component 120 , the output component 130 , and a translator component (hereafter translator) 210 .
- the simulator 110 can receive various computer related instruction sets (e.g., quantum mechanics based instructions) through the input component 120 .
- Such instructions can be processed by the simulator 110 to generate a representation that can be read and/or executed by a classical computer, which can facilitate transforming the classical computer into a virtual quantum computer, or quantum computer simulator.
- the simulator 110 can employ the translator 210 to facilitate generating the representation.
- the translator 210 can be utilized to identify a current syntax of the instruction set. For example, the translator 210 can facilitate determining whether the instruction set includes instructions based on a particular programming language and/or model.
- the translator 210 can interpret the instruction set to produce a form (e.g., a phraseology, syntax, grammar, etc.) that can be utilized to generate the computer readable/executable representation or directly to yield the computer readable/executable representation.
- the translator 210 can convert, transform, map, etc. the instruction set to the computer readable/executable representation.
- the translator 210 can transform the representation or other representation to quantum mechanics based instructions. For example, when utilizing the representation to program a quantum computer, the representation or a translation of the representation to quantum mechanics can be utilized to program the quantum computer.
- the translator 210 can optionally include testing and/or debugging capabilities. Thus, after generating the representation, the translator 210 can scrutinize the representation and facilitate resolving any discrepancies.
- the translator 210 can include an interface (not shown) that can be utilized to interact with a user. For example, an Application Program Interface (API) can be utilized to provide the user with a visual display of the received instruction sets and/or the representation. The user can utilize the interface to provide information to the translator 210 , manually change the representation, override a decision by the translator 210 , invoke testing and/or debugging, and/or request the translator 210 attempt a subsequent translation of the received instruction set.
- the user can utilize the API to create, modify, and/or delete one or more instructions and/or the representation.
- the generated representation can be conveyed through the output component 130 for execution and/or further processing, wherein execution can provide a result substantially similar to a result generated by a quantum computer and/or predicted through quantum mechanics, thereby simulating a quantum computer.
- FIG. 3 illustrates a system 300 that maps instructions to a process algebra representation that can be executed by a classical computer to simulate quantum computing.
- the system 300 comprises the simulator 110 , the input component 120 , the output component 130 , the translator 210 , a mapping component 310 and a look up table (hereafter LUT) 320 .
- LUT look up table
- the simulator 110 can invoke the translator 210 to generate a representation of the instruction set that can be executed by a classical computer to simulate a quantum computer.
- the translator 210 can employ the mapping component 310 to map the instructions in the received instruction set to the representation.
- the mapping 310 component can search the LUT 320 for information that maps the format of the received instructions to a representation with a desirable format.
- the representation format can be based on process algebra such as rho, pi, join, ambient, etc. calculus.
- the mapping component 310 can search the LUT 320 for information that maps the format of the received instructions to the desired process algebra.
- this mapping can include mapping quantum physics based instructions in Hilbert space to process algebra space.
- the look up table can provide mappings from Hilbert space vectors (including dual), scalars, and/or operators to rho calculus processes, names, quote maps, sum of triples, etc. as described in detail below.
- FIG. 4 illustrates an exemplary system 400 that facilitates simulating quantum computing.
- the system 400 comprises the input and output components 120 and 130 , respectively, and a simulator 410 that is configured to translate quantum mechanics based instructions to rho calculus instructions that can be read and/or executed on a classical and/or quantum computer.
- the simulator 410 can include a mapping algorithm(s) between quantum mechanics and rho calculus.
- the mapping algorithm(s) can be utilized by the simulator 410 to facilitate translating received quantum mechanics base computer instructions and/or models to a rho calculus based computer readable and/or executable representation that can be executed by a classical computer to simulate a quantum computer.
- the following provides a sample of exemplary mapping between rho calculus and Hilbert space (quantum mechanics space) that can be employed in various aspects of the invention to translate quantum mechanics instructions to a form of rho calculus that is executable by a classical computer and can program a quantum computer.
- the samples include grammar that can translate vectors, scalars, dual vectors and operators in Hilbert space to processes, names (quoted processes) and quote maps in the rho calculus domain.
- the symbol ⁇ > can be defined to represent a quote map.
- This quote map can be utilized to generate a name from a PROC, wherein a PROC can be defined as a set of processes generated by process algebra grammar.
- the foregoing quote map is only one of an essentially infinite family of maps, for example, of the form ⁇ > K : PROC ⁇ PROC>.
- a set of contexts (K) can be described through the following syntax:
- K can define an associated quote map ⁇ > K :Proc ⁇ Proc> by utilizing ⁇ P> K ⁇ K[P]>.
- the following can then be employed to render an algebra on this family of maps: ⁇ > K1 ⁇ > K2 ⁇ > K2°K1 , which can be represented as PROC*.
- Vectors can be defined through the following notation:
- Vector addition can be defined through the following:
- an operation I:PROC* x PROC ⁇ PROC> is defined by I( ⁇ P
- Q>) ⁇ Q> P ⁇ . Dirac notation can be utilized, wherein duals are referred to as bras and vectors are referred to as kets, and the inner product can be expressed as ⁇ P
- the vectors described above can additionally be multiplied by scalars as follows: ⁇ R>
- Q>) ⁇ R>
- P>) ( ⁇ R 1 > ⁇ R 2 >)
- P>
- ⁇ is defined to be a process such that for all P ⁇ PROC>, ⁇ simulates P.
- P ⁇ .
- ⁇ >/x ⁇ >0 because it shares no name with any other process in ⁇ PROC> ⁇ for any ⁇ . If ⁇ > is defined as zero, this becomes a second ordering.
- an operator on a physical state is any map, A, of type A: PROC ⁇ PROC that respects process structure. Duality extends operators so that if A is an operator, then A*:PROC ⁇ PROC*.
- Dyads are a special class of operators of the form,
- a projector is a dyad of the form
- Orthogonal vectors P, Q can be defined as P ⁇ Q, if ⁇ P
- Q> ⁇ >.
- P ⁇ > ⁇ form an orthonormal basis if P ⁇ ⁇ Q ⁇ when ⁇ .
- Every operator A can be expressed as a linear combination of the projectors
- . For example, A ⁇ ⁇ ⁇ R ⁇ >
- a type T is a physical property when there exists a
- is a mechanism for verifying the physical property T. For example, for a state
- Q> ( ⁇ P ⁇
- the foregoing provides a sample of exemplary mapping between rho calculus and Hilbert space (quantum mechanics space) that can be employed in various aspects of the invention to translate quantum mechanics instructions to a form of rho calculus that is executable by a classical computer and can program a quantum computer.
- Hilbert space quantum mechanics space
- the foregoing mapping between Hilbert space and rho calculus space can be utilized with the systems 100 - 300 described in connection with FIGS. 1-3 described in detail above.
- this mapping can be utilized with subsequently described systems and methods.
- PROC can denote a set of processes (as described above), wherein structural equivalence can be defined by: ⁇ ⁇ PROC x PROC, which is the smallest equivalence relation respecting: P
- ⁇ PROC> can denote a set of names (as described above), wherein name equivalence can be defined by: ⁇ N ⁇ ⁇ PROC>x ⁇ PROC>, which is the smallest equivalence relation respecting: x ⁇ N ⁇ >x ⁇ >.
- Substitution generally is a map, s: ⁇ PROC> ⁇ PROC>, and ⁇ Q>/ ⁇ P> ⁇ can denote a map that sends ⁇ P> to ⁇ Q> and is identity elsewhere.
- x ⁇ Q>/ ⁇ P> ⁇ ⁇ Q> if x ⁇ N ⁇ P>, x otherwise.
- a substitution, s can be uniquely extended to a map, >s ⁇ :PROC ⁇ PROC by the following recursive definition: 0 > ⁇ Q>/ ⁇ P> ⁇ 0 ( R
- Operational semantics can be defined by a reduction relation, ⁇ ⁇ PROC x PROC, recursively specified by the following rules:
- Recursion can be inter-definable with !, and choice can be implemented with par (e.g., with pairing).
- a symmetric version of rho calculus can be defined with the following grammar:
- Operational semantics for the symmetric version can be defined by a reduction relation, ⁇ ⁇ PROC x PROC, recursively specified by the following rules:
- the transpose of P (P ⁇ ) can be defined recursively by the following: 0 ⁇ 0 ( ⁇ x.P) ⁇ ⁇ x.(P ⁇ ) (lift ⁇ .P) ⁇ lift ⁇ .(P ⁇ ) (P
- FIG. 5 illustrates an exemplary classical computing entity 500 that utilizes a simulator to generate executable representations of quantum mechanics instructions.
- the classical computing entity (hereafter entity) 500 comprises a simulator 510 , which can be substantially similar to the simulators described herein.
- the entity 500 can receive quantum mechanics based as well as other instructions through various mechanisms.
- a user of the entity 500 can deploy a programming environment (e.g., editing, debugging, compiling, etc.) that utilizes the processing resources of the entity 500 . From this environment, the user can generate, test, debug, etc. instructions (e.g., machine, assembly, C, derivatives of C, Visual Basic, Pascal, Fortran, etc.). In another exanple, such instructions can be downloaded, uploaded, and/or transferred to the entity 500 .
- a programming environment e.g., editing, debugging, compiling, etc.
- instructions e.g., machine, assembly, C, derivatives of C, Visual Basic, Pascal, Fortran, etc.
- the instructions can be conveyed over a network (e.g., a wire or wireless LAN, WAN, CAN, MAN, HAN, etc.) or bus from a server, a client, Flash memory, CD, DVD, optical disk, floppy disc, etc.
- a network e.g., a wire or wireless LAN, WAN, CAN, MAN, HAN, etc.
- server e.g., a wire or wireless LAN, WAN, CAN, MAN, HAN, etc.
- Flash memory e.g., CD, DVD, optical disk, floppy disc, etc.
- the entity 500 can store such instructions in the memory 520 . It is to be appreciated that the memory 520 can be volatile and/or non-volatile memory as described herein. Additionally or alternatively, the entity can provide the instructions to the simulator 510 to generate a computer readable representation that is executed by a processor of the classical computer to simulate a quantum computer. As described in detail above, the simulator 510 can optionally employ a translator (not shown), mapping component (not shown) and/or a LUT (not shown) to facilitate generating the representation.
- a translator not shown
- mapping component not shown
- LUT not shown
- the simulator 510 can facilitate determining the present configuration of the instructions.
- the instructions can be provided as quantum physics based instructions.
- the simulator 510 can utilize this information to obtain a suitable mapping from quantum mechanics to process algebra (e.g., rho, pi, join, ambient, etc.).
- the simulator 510 can locate a suitable mapping algorithm or look up table and employ the algorithm or look up table to translate the instructions into a process algebra representation of the instructions.
- Such algorithm can provide a translation from Hilbert space as utilized with quantum mechanics to rho calculus space, for example.
- the algorithm or look up table can provide a translation between Hilbert space vectors, scalars, and/or operators to rho calculus processes, names, quote maps, sum of triples, etc.
- Generated representations can be conveyed from the simulator to the memory 520 wherein the representations can be stored for subsequent execution by a processor(s) 530 . Additionally or alternatively, the representations can be provided to the processor(s) 530 for execution.
- the processor can be essentially any processing unit such as a microprocessor, a dedicated digital signal processor (DSP), a system CPU, etc. It is to be appreciated that such processing can provide a result substantially similar to a result generated by a quantum computer and/or predicted through quantum mechanics.
- the present invention can transform a classical computer to a quantum computer simulator.
- FIG. 6 illustrates an exemplary distributed quantum computing system 600 .
- the distributed quantum computing system (hereafter system) 600 employs a simulator 610 as described herein.
- the simulator 610 can reside outside of a distributed computer network 620 and communicate with distributed computing entities 630 1 -630 N (where N is an integer greater than or equal to one) associated with the distributed computer network 620 via communication channel(s) 640 .
- the simulator 610 can receive instructions (e.g., quantum physics based instructions), generate a process algebra (e.g., rho calculus) based representation of the instructions, and provide the representation to one of more of the computing entities 630 1 -630 N (hereafter collectively referred to as computing entities 630 ).
- the representation can be delineated across computing entities 630 for simulated distributed quantum processing.
- the representation can be provided to the computing entity with suitable processing resources, with the least present load, as specified by a user, based on an availability basis, etc.
- the simulator 610 can reside within a computing entity such as one of the computing entities 630 or other entity/machine/server. In addition, it is to be appreciated that more than one simulator 610 can be utilized in connection with the system 600 . When multiple simulators 610 are employed, respective simulators can service a subset of the computing entities 630 . For example, the computing entities 630 can be delineated across simulators 610 . In another example, the simulators 610 can concurrently service one of the computing entities 630 . Thus, two simulators 610 can translate disparate sets of instructions or portions of a similar set of instructions for a similar computing entity.
- FIGS. 7-9 illustrate methodologies in accordance with the present invention.
- the methodologies are depicted and described as a series of acts. It is to be understood and appreciated that the present invention is not limited by the acts illustrated and/or by the order of acts, for example acts can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts may be required to implement the methodologies in accordance with the present invention. In addition, those skilled in the art will understand and appreciate that the methodologies could alternatively be represented as a series of interrelated states via a state diagram or events.
- FIG. 7 illustrates a methodology 700 that facilitates quantum computing simulation.
- the methodology 700 can be implemented in connection with a classical computer to simulate a quantum computer.
- computer readable instructions such as instructions generated via machine language, assembly language, higher-level languages, quantum mechanics, etc. can be received.
- Such instructions can be received over a bus or network, depending on the source of the instructions.
- instructions stored within a classical computer e.g., in memory
- the instructions can be uploaded, downloaded from various storage medium such as CD, DVD, optical disc, floppy disk, etc.
- the instructions can be created via a programming studio that includes an editor, debugger, compiler, etc.
- the instructions can be located remotely from the classical computer and conveyed to the classical computer over a network such as a LAN, a WAN, a CAN, a MAN, a HAN, etc. from a quantum computer, a quantum computer simulator, a client, a server, a database, a web page, a web service, etc.
- a network such as a LAN, a WAN, a CAN, a MAN, a HAN, etc.
- a quantum computer a quantum computer simulator, a client, a server, a database, a web page, a web service, etc.
- the format of the instructions can be identified. For example, it can be determined whether the instructions are based on quantum physics, C, machine language, etc.
- the instructions can be translated to a computer readable and/or executable representation that can execute on a classical computer to simulate a quantum computer.
- the representation can be based on process algebra such as rho or pi calculus.
- the generated representation can be conveyed for further processing such as execution by a processor of the classical computer, for example. It is to be appreciated that such processing can provide a result substantially similar to a result generated by a quantum computer and/or predicted through quantum mechanics.
- FIG. 8 illustrates a methodology 800 for simulating a quantum computer with a classical computer.
- quantum physics based instructions are received.
- a mapping between quantum physics (Hilbert space) and rho calculus is obtained. Such mapping can include translations between vectors, scalars, dual vector and operators in Hilbert space to processes, named processes (quoted names) and quote maps in process algebra space.
- the mapping is utilized to map the quantum mechanics based instructions to rho calculus based instructions.
- the rho calculus based instructions are executed by a classical computer. Such execution provides results similar to results executed on a quantum computer and/or predicted with quantum physics.
- FIG. 9 illustrates a methodology 900 for programming a quantum computer.
- computer instructions can be obtained. Such instructions can be quantum mechanics based, for example. As such, these instructions can execute on the quantum computer. However, these instructions can be converted to an efficient and user-friendly programming language that can be utilized to program the quantum computer. Alternatively, these instructions can be initially generated in the efficient and user-friendly programming language.
- the instructions can be converted to process algebra (e.g., rho calculus) based instructions, if not already in a process algebra form.
- the process algebra instructions can be modified. For example, a user can add, delete, alter, modify, etc.
- the process algebra based instructions can be utilized to program a quantum computer.
- the process algebra instructions can be executed by the quantum computer or the process algebra instructions can be translated to quantum mechanics instructions, wherein the quantum mechanics instructions are executed by the quantum computer.
- FIGS. 10-11 and the following discussion is intended to provide a brief, general description of a suitable computing environment in which the various aspects of the present invention may be implemented. While the invention has been described above in the general context of computer-executable instructions of a computer program that runs on a local computer and/or remote computer, those skilled in the art will recognize that the invention also may be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks and/or implement particular abstract data types.
- inventive methods may be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based and/or programmable consumer electronics, and the like, each of which may operatively communicate with one or more associated devices.
- the illustrated aspects of the invention may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all, aspects of the invention may be practiced on stand-alone computers.
- program modules may be located in local and/or remote memory storage devices.
- FIG. 10 is a schematic block diagram of a sample-computing environment 1000 with which the present invention can interact.
- the system 1000 includes one or more client(s) 1010 .
- the client(s) 1010 can be hardware and/or software (e.g., threads, processes, computing devices).
- the system 1000 also includes one or more server(s) 1020 .
- the server(s) 1020 can be hardware and/or software (e.g., threads, processes, computing devices).
- the servers 1020 can house threads to perform transformations by employing the present invention, for example.
- One possible communication between a client 1010 and a server 1020 can be in the form of a data packet adapted to be transmitted between two or more computer processes.
- the system 1000 includes a communication framework 1040 that can be employed to facilitate communications between the client(s) 1010 and the server(s) 1020 .
- the client(s) 1010 are operably connected to one or more client data store(s) 1050 that can be employed to store information local to the client(s) 1010 .
- the server(s) 1020 are operably connected to one or more server data store(s) 1030 that can be employed to store information local to the servers 1040 .
- an exemplary environment 1100 for implementing various aspects of the invention includes a computer 1112 .
- the computer 1112 includes a processing unit 1114 , a system memory 1116 , and a system bus 1118 .
- the system bus 1118 couples system components including, but not limited to, the system memory 1116 to the processing unit 1114 .
- the processing unit 1114 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 1114 .
- the system bus 1118 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI).
- ISA Industrial Standard Architecture
- MSA Micro-Channel Architecture
- EISA Extended ISA
- IDE Intelligent Drive Electronics
- VLB VESA Local Bus
- PCI Peripheral Component Interconnect
- Card Bus Universal Serial Bus
- USB Universal Serial Bus
- AGP Advanced Graphics Port
- PCMCIA Personal Computer Memory Card International Association bus
- Firewire IEEE 1394
- SCSI Small Computer Systems Interface
- the system memory 1116 includes volatile memory 1120 and nonvolatile memory 1122 .
- the basic input/output system (BIOS) containing the basic routines to transfer information between elements within the computer 1112 , such as during start-up, is stored in nonvolatile memory 1122 .
- nonvolatile memory 1122 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory.
- Volatile memory 1120 includes random access memory (RAM), which acts as external cache memory.
- RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
- SRAM synchronous RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM Synchlink DRAM
- DRRAM direct Rambus RAM
- Computer 1112 also includes removable/non-removable, volatile/non-volatile computer storage media.
- FIG. 11 illustrates, for example a disk storage 1124 .
- Disk storage 1124 includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memory stick.
- disk storage 1124 can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM).
- CD-ROM compact disk ROM device
- CD-R Drive CD recordable drive
- CD-RW Drive CD rewritable drive
- DVD-ROM digital versatile disk ROM drive
- a removable or non-removable interface is typically used such as interface 1126 .
- FIG. 11 describes software that acts as an intermediary between users and the basic computer resources described in the suitable operating environment 1100 .
- Such software includes an operating system 1128 .
- Operating system 1128 which can be stored on disk storage 1124 , acts to control and allocate resources of the computer system 1112 .
- System applications 1130 take advantage of the management of resources by operating system 1128 through program modules 1132 and program data 1134 stored either in system memory 1116 or on disk storage 1124 . It is to be appreciated that the present invention can be implemented with various operating systems or combinations of operating systems.
- Input devices 1136 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 1114 through the system bus 1118 via interface port(s) 1138 .
- Interface port(s) 1138 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB).
- Output device(s) 1140 use some of the same type of ports as input device(s) 1136 .
- a USB port may be used to provide input to computer 1112 , and to output information from computer 1112 to an output device 1140 .
- Output adapter 1142 is provided to illustrate that there are some output devices 1140 like monitors, speakers, and printers, among other output devices 1140 , which require special adapters.
- the output adapters 1142 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 1140 and the system bus 1118 . It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1144 .
- Computer 1112 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1144 .
- the remote computer(s) 1144 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 1112 .
- only a memory storage device 1146 is illustrated with remote computer(s) 1144 .
- Remote computer(s) 1144 is logically connected to computer 1112 through a network interface 1148 and then physically connected via communication connection 1150 .
- Network interface 1148 encompasses wire and/or wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN).
- LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like.
- WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
- ISDN Integrated Services Digital Networks
- DSL Digital Subscriber Lines
- Communication connection(s) 1150 refers to the hardware/software employed to connect the network interface 1148 to the bus 1118 . While communication connection 1150 is shown for illustrative clarity inside computer 1112 , it can also be external to computer 1112 .
- the hardware/software necessary for connection to the network interface 1148 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
- the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the invention.
- the invention includes a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods of the invention.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Nanotechnology (AREA)
- Chemical & Material Sciences (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Crystallography & Structural Chemistry (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
-
- K::=□, where □ represents a hole;
- x(x).K (αx.K for the symmetric case);
- lift x.K (lift α.K for the symmetric case);
- K|P
which can be derived by replacing P with K in the following rho calculus:
- P::=0;
- x(x).P;
- lift x.P;
- P|P
- K::=□, where □ represents a hole;
-
- P::=0
- x[x]
- x(x).P
- lift x.P
- P|P
- >x<
- X::=<P>
- P::=0
FN(0)=0
FN(x[y])={x,y}
FN(x(y).P)={x}∪(FN(P)\{y})
FN(lift x.P)={x}∪FN(P)
FN(P|Q)=FN(P)∪FN(Q)
FN(>x<)={x}
P|0≡P≡0|P
P 0 |P 1 ≡P 1 |P 0
(P 0 |P 1)|P 2 ≡P 0|(P 1|P2)
0>{<Q>/<P>}< 0
(R|S)>{<Q>/<P>}< (R){<Q>/<P>}<)|(S>{<Q>/<P>}<)
(x(y).R)>{<Q>/<P>}< x{<Q>/<P>}(z). (R>{z/y, <Q>/<P>}<)
(x[y])>{<Q>/<P>}< x{<Q>/<P>}[y>{<Q>/<P>}]
(lift x.R)>{<Q>/<P>}< lift x {<Q>/<P>}. (R>{<Q>/<P>}<)
(>x<)>{<Q>/<P>}< Q if x≡ N <P>, >x< otherwise
wherein (x) {<Q>/<P>} <Q> if x≡ N <P>, x otherwise
and z can be chosen distinct from the names in R, <P> and <Q>.
-
- P::=0
- x[z]
- x(y).P
- lift x.P
- P|P
- >x<
- x::=<P>
- y::=<P> such that P:T and T is a type in a system that selects for pattern matchers
- z::=<P> such that P:U and U is a type in a system that selects for values
- P::=0
-
- P::=0
- αx.P
- lift α.P
- P|P
- >x<
- x=x
- α::=x
- −x
- x::=<P>
- P::=0
-
- comm.: xy.P|−xz.Q→P|y=z|Q
- lift: lift α.P→α[<P>]
- par: P→P′
P|Q→P′|Q - equiv: P≡P′, P′→Q′, Q═→Q
P→Q.
0⊥ 0
(αx.P)⊥ −αx.(P⊥)
(lift α.P)⊥ lift −α.(P⊥)
(P|Q)⊥ P⊥|Q⊥
(><P><)⊥ ><P⊥><
(x=y)⊥ x=y
−−x x.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/903,205 US7376547B2 (en) | 2004-02-12 | 2004-07-30 | Systems and methods that facilitate quantum computer simulation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54411404P | 2004-02-12 | 2004-02-12 | |
US10/903,205 US7376547B2 (en) | 2004-02-12 | 2004-07-30 | Systems and methods that facilitate quantum computer simulation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20050182614A1 US20050182614A1 (en) | 2005-08-18 |
US7376547B2 true US7376547B2 (en) | 2008-05-20 |
Family
ID=34841155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/903,205 Expired - Fee Related US7376547B2 (en) | 2004-02-12 | 2004-07-30 | Systems and methods that facilitate quantum computer simulation |
Country Status (1)
Country | Link |
---|---|
US (1) | US7376547B2 (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080271000A1 (en) * | 2007-04-25 | 2008-10-30 | Microsoft Corporation | Predicting Conflicts in a Pervasive System |
US20080313430A1 (en) * | 2007-06-12 | 2008-12-18 | Bunyk Paul I | Method and system for increasing quantum computer processing speed using digital co-processor |
US20110142242A1 (en) * | 2009-12-16 | 2011-06-16 | Sony Corporation | Quantum public key encryption system, key generation apparatus, encryption apparatus, decryption apparatus, key generation method, encryption method, and decryption method |
US8972237B2 (en) | 2012-08-06 | 2015-03-03 | Microsoft Technology Licensing, Llc | Optimizing quantum simulations by intelligent permutation |
US9064067B2 (en) | 2012-08-06 | 2015-06-23 | Microsoft Technology Licensing, Llc | Quantum gate optimizations |
US20160267043A1 (en) * | 2013-10-21 | 2016-09-15 | International Business Machines Corporation | Coupling parallel event-driven computation with serial computation |
US20190102690A1 (en) * | 2017-09-29 | 2019-04-04 | International Business Machines Corporation | Debugging quantum circuits by circuit rewriting |
US10592216B1 (en) | 2017-11-15 | 2020-03-17 | Amazon Technologies, Inc. | Development environment for programming quantum computing resources |
US10817337B1 (en) | 2017-11-15 | 2020-10-27 | Amazon Technologies, Inc. | Cloud-based access to quantum computing resources |
US11079790B2 (en) | 2018-08-28 | 2021-08-03 | Synopsys, Inc. | Semiconductor digital logic circuitry for non-quantum enablement of quantum algorithms |
US11170137B1 (en) | 2017-11-15 | 2021-11-09 | Amazon Technologies, Inc. | Cloud-based simulation of quantum computing resources |
US11270220B1 (en) | 2017-11-15 | 2022-03-08 | Amazon Technologies, Inc. | Service for managing quantum computing resources |
US11514209B1 (en) | 2019-08-28 | 2022-11-29 | Synopsys, Inc. | Semiconductor digital logic circuitry for non-quantum enablement of quantum algorithms |
US11605033B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing task translation supporting multiple quantum computing technologies |
US11605016B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing service supporting local execution of hybrid algorithms |
US11704715B2 (en) | 2019-11-27 | 2023-07-18 | Amazon Technologies, Inc. | Quantum computing service supporting multiple quantum computing technologies |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
US20230367657A1 (en) * | 2022-05-12 | 2023-11-16 | Red Hat, Inc. | Automatically switching between quantum services and classical services based on detected events |
US11907092B2 (en) | 2021-11-12 | 2024-02-20 | Amazon Technologies, Inc. | Quantum computing monitoring system |
US11995485B2 (en) * | 2022-05-12 | 2024-05-28 | Red Hat, Inc. | Automatically switching between quantum services and classical services based on detected events |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156472B2 (en) * | 2004-02-12 | 2012-04-10 | Microsoft Corporation | Process language for microprocessors with finite resources |
US8407728B2 (en) * | 2008-06-02 | 2013-03-26 | Microsoft Corporation | Data flow network |
US10127499B1 (en) | 2014-08-11 | 2018-11-13 | Rigetti & Co, Inc. | Operating a quantum processor in a heterogeneous computing architecture |
US11797641B2 (en) | 2015-02-03 | 2023-10-24 | 1Qb Information Technologies Inc. | Method and system for solving the lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer |
CA2881033C (en) | 2015-02-03 | 2016-03-15 | 1Qb Information Technologies Inc. | Method and system for solving lagrangian dual of a constrained binary quadratic programming problem |
CN108025911B (en) * | 2015-09-11 | 2022-04-19 | 扎卡里·B·沃尔特斯 | System and method for solving 3SAT using quantum computer |
EP3226461A1 (en) * | 2016-03-30 | 2017-10-04 | Universität Wien | Secure probabilistic one-time program by quantum state distribution |
US20210334692A1 (en) * | 2016-03-30 | 2021-10-28 | Universität Wien | Secure probabilistic one-time program by quantum state distribution |
WO2018064535A1 (en) | 2016-09-30 | 2018-04-05 | Rigetti & Co., Inc. | Simulating quantum systems with quantum computation |
US10909286B2 (en) * | 2017-01-26 | 2021-02-02 | PsiQuantum Corp. | Optimization techniques for quantum computing device simulation |
SE542716C2 (en) | 2017-04-20 | 2020-06-30 | Larsson Jan Aake | Arrangement, System, Method and Computer Program for Simulating a Quantum Toffoli Gate |
AU2018270115B2 (en) * | 2017-05-19 | 2021-07-22 | Google Llc | Plane wave dual basis for quantum simulation |
US11074382B2 (en) * | 2018-01-30 | 2021-07-27 | International Business Machines Corporation | Quantum computing device design |
US11586966B2 (en) * | 2018-09-27 | 2023-02-21 | International Business Machines Corporation | Development and analysis of quantum computing programs |
US10592626B1 (en) | 2018-10-09 | 2020-03-17 | International Business Machines Corporation | Visualizing or interacting with a quantum processor |
WO2020255076A1 (en) | 2019-06-19 | 2020-12-24 | 1Qb Information Technologies Inc. | Method and system for mapping a dataset from a hilbert space of a given dimension to a hilbert space of a different dimension |
JP2023504281A (en) * | 2019-12-03 | 2023-02-02 | 1キュービー インフォメーション テクノロジーズ インコーポレイテッド | Systems and methods for enabling access to physics-inspired computers and physics-inspired computer simulators |
US20220309374A1 (en) * | 2020-02-18 | 2022-09-29 | Jpmorgan Chase Bank, N.A. | Systems and methods for using distributed quantum computing simulators |
CN113420883B (en) * | 2021-06-28 | 2022-11-22 | 山东浪潮科学研究院有限公司 | Method and equipment for quantum programming frame to adapt to quantum computer |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530263A (en) | 1994-08-16 | 1996-06-25 | International Business Machines Corporation | Three dot computing elements |
US5793091A (en) | 1996-12-13 | 1998-08-11 | International Business Machines Corporation | Parallel architecture for quantum computers using ion trap arrays |
US6218832B1 (en) | 1999-02-16 | 2001-04-17 | International Business Machines Corporation | Nuclear magnetic resonance quantum computing method with improved solvents |
US6495854B1 (en) | 1999-12-30 | 2002-12-17 | International Business Machines Corporation | Quantum computing with d-wave superconductors |
US6578018B1 (en) * | 1999-07-27 | 2003-06-10 | Yamaha Hatsudoki Kabushiki Kaisha | System and method for control using quantum soft computing |
US20050166193A1 (en) * | 2003-12-05 | 2005-07-28 | The University Of North Carolina | Methods, systems, and computer program products for identifying computer program source code constructs |
US20050273306A1 (en) * | 2001-12-22 | 2005-12-08 | Hilton Jeremy P | Hybrid classical-quantum computer architecture for molecular modeling |
US20060224547A1 (en) * | 2005-03-24 | 2006-10-05 | Ulyanov Sergey V | Efficient simulation system of quantum algorithm gates on classical computer based on fast algorithm |
-
2004
- 2004-07-30 US US10/903,205 patent/US7376547B2/en not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530263A (en) | 1994-08-16 | 1996-06-25 | International Business Machines Corporation | Three dot computing elements |
US5793091A (en) | 1996-12-13 | 1998-08-11 | International Business Machines Corporation | Parallel architecture for quantum computers using ion trap arrays |
US6218832B1 (en) | 1999-02-16 | 2001-04-17 | International Business Machines Corporation | Nuclear magnetic resonance quantum computing method with improved solvents |
US6578018B1 (en) * | 1999-07-27 | 2003-06-10 | Yamaha Hatsudoki Kabushiki Kaisha | System and method for control using quantum soft computing |
US6495854B1 (en) | 1999-12-30 | 2002-12-17 | International Business Machines Corporation | Quantum computing with d-wave superconductors |
US6649929B2 (en) | 1999-12-30 | 2003-11-18 | International Business Machines Corporation | Quantum computing with d-wave superconductors |
US20050273306A1 (en) * | 2001-12-22 | 2005-12-08 | Hilton Jeremy P | Hybrid classical-quantum computer architecture for molecular modeling |
US20050166193A1 (en) * | 2003-12-05 | 2005-07-28 | The University Of North Carolina | Methods, systems, and computer program products for identifying computer program source code constructs |
US20060224547A1 (en) * | 2005-03-24 | 2006-10-05 | Ulyanov Sergey V | Efficient simulation system of quantum algorithm gates on classical computer based on fast algorithm |
Non-Patent Citations (7)
Title |
---|
"QCE: A Simulator for Quantum Computer Hardware", Kristel Michielsen, Hans De Raedt, Aug. 28, 2003. * |
IBM's Test-Tube Quantum Computer Makes History. IBM Research News, Dec. 19, 2001. 4 pages. http://www.research.ibm.com/resources/news/20011219<SUB>-</SUB>quantum.shtml. |
J. Wallace. Quantum Computing: A Review Version 2.0. University of Exeter Department of Computer Science Technical Report 387, Oct. 1999. 18 pages. |
J. West. The Quantum Computer: An Introduction. 5 pages. Last Modified on May 31, 2000. http://www.cs.caltech.edu/~westside/quantum-intro.html. |
K. Bonsor. How Quantum Computers Will Work. 3 pages. Last Viewed on Aug. 17, 2004. http://computer.howstuffworks.com/quantum-computer.htm/printable. |
K. Obenland and A. Despain. Models to Reduce the Complexity of Simulating a Quantum Computer. Information Sciences Institute Tech. Report, Nov. 1997. 26 pages. |
S.L. Braunstein. Quantum Computation: A Tutorial. 26 pages. Last modified on Aug. 23, 1995. http://www-users.cs.york.ac.uk/~schmuel/comp/comp.html. |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080271000A1 (en) * | 2007-04-25 | 2008-10-30 | Microsoft Corporation | Predicting Conflicts in a Pervasive System |
US20080313430A1 (en) * | 2007-06-12 | 2008-12-18 | Bunyk Paul I | Method and system for increasing quantum computer processing speed using digital co-processor |
US20110142242A1 (en) * | 2009-12-16 | 2011-06-16 | Sony Corporation | Quantum public key encryption system, key generation apparatus, encryption apparatus, decryption apparatus, key generation method, encryption method, and decryption method |
US8744075B2 (en) * | 2009-12-16 | 2014-06-03 | Sony Corporation | Quantum public key encryption system |
US8972237B2 (en) | 2012-08-06 | 2015-03-03 | Microsoft Technology Licensing, Llc | Optimizing quantum simulations by intelligent permutation |
US9064067B2 (en) | 2012-08-06 | 2015-06-23 | Microsoft Technology Licensing, Llc | Quantum gate optimizations |
US20160267043A1 (en) * | 2013-10-21 | 2016-09-15 | International Business Machines Corporation | Coupling parallel event-driven computation with serial computation |
US20160267376A1 (en) * | 2013-10-21 | 2016-09-15 | International Business Machines Corporation | Coupling parallel event-driven computation with serial computation |
US10678741B2 (en) * | 2013-10-21 | 2020-06-09 | International Business Machines Corporation | Coupling parallel event-driven computation with serial computation |
US20190102690A1 (en) * | 2017-09-29 | 2019-04-04 | International Business Machines Corporation | Debugging quantum circuits by circuit rewriting |
US11809962B2 (en) | 2017-09-29 | 2023-11-07 | International Business Machines Corporation | Debugging quantum circuits by circuit rewriting |
US10614371B2 (en) * | 2017-09-29 | 2020-04-07 | International Business Machines Corporation | Debugging quantum circuits by circuit rewriting |
US11210603B2 (en) | 2017-09-29 | 2021-12-28 | International Business Machines Corporation | Debugging quantum circuits by circuit rewriting |
US10817337B1 (en) | 2017-11-15 | 2020-10-27 | Amazon Technologies, Inc. | Cloud-based access to quantum computing resources |
US11775855B2 (en) | 2017-11-15 | 2023-10-03 | Amazon Technologies, Inc. | Service for managing quantum computing resources |
US11270220B1 (en) | 2017-11-15 | 2022-03-08 | Amazon Technologies, Inc. | Service for managing quantum computing resources |
US11170137B1 (en) | 2017-11-15 | 2021-11-09 | Amazon Technologies, Inc. | Cloud-based simulation of quantum computing resources |
US10592216B1 (en) | 2017-11-15 | 2020-03-17 | Amazon Technologies, Inc. | Development environment for programming quantum computing resources |
US11079790B2 (en) | 2018-08-28 | 2021-08-03 | Synopsys, Inc. | Semiconductor digital logic circuitry for non-quantum enablement of quantum algorithms |
US11514209B1 (en) | 2019-08-28 | 2022-11-29 | Synopsys, Inc. | Semiconductor digital logic circuitry for non-quantum enablement of quantum algorithms |
US11704715B2 (en) | 2019-11-27 | 2023-07-18 | Amazon Technologies, Inc. | Quantum computing service supporting multiple quantum computing technologies |
US11605016B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing service supporting local execution of hybrid algorithms |
US11605033B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing task translation supporting multiple quantum computing technologies |
US11907092B2 (en) | 2021-11-12 | 2024-02-20 | Amazon Technologies, Inc. | Quantum computing monitoring system |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
US20230367657A1 (en) * | 2022-05-12 | 2023-11-16 | Red Hat, Inc. | Automatically switching between quantum services and classical services based on detected events |
US11995485B2 (en) * | 2022-05-12 | 2024-05-28 | Red Hat, Inc. | Automatically switching between quantum services and classical services based on detected events |
Also Published As
Publication number | Publication date |
---|---|
US20050182614A1 (en) | 2005-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7376547B2 (en) | Systems and methods that facilitate quantum computer simulation | |
US20230367954A1 (en) | Systems and methods of a script generation engine | |
US8225276B1 (en) | Shared code management | |
CA3099575A1 (en) | Automated api code generation | |
CN114841326B (en) | Operator processing method, device, equipment and storage medium of deep learning framework | |
Lang et al. | Partial model checking using networks of labelled transition systems and boole an equation systems | |
CN113255258B (en) | Logic synthesis method and device, electronic equipment and storage medium | |
CN111324833A (en) | Page display method, device, electronic design and computer readable medium | |
CN113238740B (en) | Code generation method, code generation device, storage medium and electronic device | |
Emoto et al. | Think like a vertex, behave like a function! A functional DSL for vertex-centric big graph processing | |
CN113614752A (en) | Verification and estimated run time of quantum algorithms | |
WO2024041301A1 (en) | Method and apparatus for generating unified abstract syntax tree, and program analysis method and apparatus | |
EP3005087A1 (en) | Declarative configuration elements | |
CN112579151A (en) | Method and device for generating model file | |
US20220261662A1 (en) | Extensible information systems and methods | |
Noll et al. | Modeling erlang in the pi-calculus | |
Doan et al. | An environment for specifying and model checking mobile ring robot algorithms | |
Shikunov et al. | Graph-capsule construction toolset for data-flow computer architecture | |
Wells et al. | A tuple space web service for distributed programming-Simplifying distributed web services applications | |
Ebeid et al. | UML-based modeling and simulation of environmental effects in networked embedded systems | |
Kulakov et al. | An Approach to Generating Ontology-Based Object Model for Smart-M3 platform | |
Christensen | Framework and Model for Interactive Spatiotemporal Data Analysis and Visualization Systems | |
KR20230128567A (en) | Operator processing method, device, electronic device, storage medium and computer program of deep learning framework | |
US10241904B2 (en) | Test components factorization in a build system | |
Zieliński et al. | Ultra-Lightweight RPC Protocol Framework with Variadic Templates in C++ 11 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MEREDITH, LUCIUS G.;REEL/FRAME:015644/0582 Effective date: 20040730 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477 Effective date: 20141014 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20160520 |