KR102696749B1 - A quantum computing simulation method providing software development kit by using quantum library and a server performing thereof - Google Patents
A quantum computing simulation method providing software development kit by using quantum library and a server performing thereof Download PDFInfo
- Publication number
- KR102696749B1 KR102696749B1 KR1020240024876A KR20240024876A KR102696749B1 KR 102696749 B1 KR102696749 B1 KR 102696749B1 KR 1020240024876 A KR1020240024876 A KR 1020240024876A KR 20240024876 A KR20240024876 A KR 20240024876A KR 102696749 B1 KR102696749 B1 KR 102696749B1
- Authority
- KR
- South Korea
- Prior art keywords
- quantum
- simulator
- simulators
- candidate
- gate
- Prior art date
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000002096 quantum dot Substances 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 50
- 238000001914 filtration Methods 0.000 claims description 14
- 238000013461 design Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101100392278 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GDB1 gene Proteins 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- G06N10/80—Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
-
- 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
- G06N10/40—Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
-
- 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
- G06N10/60—Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명의 기술적 사상은 양자 라이브러리를 활용해서 소프트웨어 개발 키트를 제공하는 양자 컴퓨팅 시뮬레이션 방법 및 이를 수행하는 서버에 관한 것이다. 본 개시의 일 실시예에 따른 서버에 의해 수행되는 양자 컴퓨팅 시뮬레이션 방법은, 양자 소자들을 포함하는 양자 라이브러리를 로드하는 단계; 상기 양자 라이브러리에 기초하여 양자 회로를 설계하는 단계; 상기 양자 회로를 분석함으로써 복수의 후보 시뮬레이터 중 시뮬레이터를 선택하는 단계; 선택된 상기 시뮬레이터를 활용하여 상기 양자 회로를 시뮬레이션 한 결과를 획득하는 단계;및 상기 시뮬레이션 결과에 기초하여 양자 컴퓨터에 상기 양자 회로를 전송하는 단계;를 포함할 수 있다.The technical idea of the present invention relates to a quantum computing simulation method for providing a software development kit by utilizing a quantum library, and a server for performing the same. The quantum computing simulation method performed by a server according to one embodiment of the present disclosure may include the steps of: loading a quantum library including quantum devices; designing a quantum circuit based on the quantum library; selecting a simulator among a plurality of candidate simulators by analyzing the quantum circuit; obtaining a result of simulating the quantum circuit using the selected simulator; and transmitting the quantum circuit to a quantum computer based on the simulation result.
Description
본 발명은 양자 라이브러리를 활용하여 소프트웨어 개발 키트를 제공하는 양자 컴퓨팅 시뮬레이션 방법 및 이를 수행하는 서버에 관한 것이다.The present invention relates to a quantum computing simulation method that provides a software development kit utilizing a quantum library and a server that performs the same.
양자 컴퓨터는 양자역학의 원리를 기반으로 하여 정보 처리를 수행하는 컴퓨팅 장치이다. 일반적인 디지털 컴퓨팅과는 달리, 양자 비트 또는 큐비트라고 불리는 양자 상태(superposition)를 활용한다.A quantum computer is a computing device that performs information processing based on the principles of quantum mechanics. Unlike general digital computing, it utilizes quantum states (superpositions) called quantum bits or qubits.
양자 컴퓨터는 얽힘(entanglement) 현상을 활용하여 복수의 큐비트 간 상호작용을 조절하며, 이를 통해 병렬적인 계산을 실행할 수 있다. 이러한 특성은 특정 문제의 해결에 있어 전통적인 컴퓨팅 방식보다 뛰어난 성능을 제공할 수 있다.Quantum computers use the phenomenon of entanglement to control the interaction between multiple qubits, which allows them to perform parallel calculations. This characteristic can provide superior performance than traditional computing methods in solving certain problems.
양자 컴퓨팅 기술의 개발은 여러 기술적인 어려움과 도전에 직면하고 있으며, 현재는 실험실 수준의 연구가 주를 이루고 있다. 이러한 문제점은 양자 컴퓨터를 활용하기 위해서 시간당 수억에 달하는 고가의 비용을 지불해야 하는 점이 가장 주된 원인이라고 할 수 있다. 따라서, 양자 컴퓨터를 활용하기 전에 고전 컴퓨터에서 양자 회로를 설계하고 시뮬레이션 하는 소프트웨어 개발 키트의 필요성이 대두되었다.The development of quantum computing technology is facing various technical difficulties and challenges, and currently, research is mainly conducted at the laboratory level. The main reason for this problem is that it costs hundreds of millions of dollars per hour to utilize a quantum computer. Therefore, the need for a software development kit to design and simulate quantum circuits on a classical computer has arisen before utilizing a quantum computer.
본 발명의 목적은, 양자 라이브러리를 활용하여 사용자에게 양자 회로를 설계하고 시뮬레이션 하기 위한 소프트웨어 개발 키트를 제공하는 양자 시뮬레이션 방법을 제공하는데 있다. An object of the present invention is to provide a quantum simulation method that provides a software development kit for a user to design and simulate quantum circuits by utilizing a quantum library.
본 발명의 또 다른 목적은, 양자 회로에 대한 시뮬레이션을 위해 활용하는 복수의 시뮬레이터들을 제공하고, 복수의 시뮬레이터들 중 최적의 시뮬레이터를 제시하는 양자 시뮬레이션 방법을 제공하는데 있다. Another object of the present invention is to provide a plurality of simulators utilized for simulation of quantum circuits, and to provide a quantum simulation method that suggests an optimal simulator among the plurality of simulators.
본 개시의 일 실시예에 따른 서버에 의해 수행되는 양자 컴퓨팅 시뮬레이션 방법은, 양자 소자들을 포함하는 양자 라이브러리를 로드하는 단계; 상기 양자 라이브러리에 기초하여 양자 회로를 설계하는 단계; 상기 양자 회로를 분석함으로써 복수의 후보 시뮬레이터 중 시뮬레이터를 선택하는 단계; 선택된 상기 시뮬레이터를 활용하여 상기 양자 회로를 시뮬레이션 한 결과를 획득하는 단계;및 상기 시뮬레이션 결과에 기초하여 양자 컴퓨터에 상기 양자 회로를 전송하는 단계;를 포함할 수 있다.A quantum computing simulation method performed by a server according to one embodiment of the present disclosure may include: loading a quantum library including quantum devices; designing a quantum circuit based on the quantum library; selecting a simulator among a plurality of candidate simulators by analyzing the quantum circuit; obtaining a result of simulating the quantum circuit using the selected simulator; and transmitting the quantum circuit to a quantum computer based on the simulation result.
일 실시예에서, 상기 양자 회로는, 제1 큐비트의 양자 상태를 나타내는 제1 양자 선; 제2 큐비트의 양자 상태를 나타내는 제2 양자 선;및 상기 제1 큐비트 및 상기 제2 큐비트 중 적어도 하나에 대한 연산을 수행하는 양자 게이트;를 포함할 수 있다. In one embodiment, the quantum circuit may include a first quantum line representing a quantum state of a first qubit; a second quantum line representing a quantum state of a second qubit; and a quantum gate performing an operation on at least one of the first qubit and the second qubit.
일 실시예에서, 상기 양자 게이트는, 큐비트의 '0'또는'1'에 해당하는 상태 확률을 교환하거나, 확률 진폭 또는 확률 위상을 변경하는 파울리 게이트; 큐비트를 '0'및'1'의 중첩 상태로 고정시키는 아다마르 게이트; 복수의 큐비트들을 얽힘 상태로 만드는 CNOT 게이트; 복수의 큐비트들의 상태를 스왑하는 스왑 게이트; 제1 큐비트 및 제2 큐비트의 상태에 기초하여 제3 큐비트의 상태를 반전시키는 토폴리 게이트;및 제1 큐비트의 상태에 기초하여 제2 큐비트 및 제3 큐비트의 상태를 스왑하는 프레드킨 게이트;를 포함할 수 있다.In one embodiment, the quantum gate may include a Pauli gate that swaps a state probability corresponding to '0' or '1' of a qubit, or changes a probability amplitude or a probability phase; a Hadamard gate that fixes a qubit in a superposition state of '0' and '1'; a CNOT gate that entangles a plurality of qubits; a SWAP gate that swaps states of a plurality of qubits; a Topoli gate that inverts a state of a third qubit based on states of the first qubit and the second qubit; and a Fredkin gate that swaps states of the second qubit and the third qubit based on the state of the first qubit.
일 실시예에서, 상기 시뮬레이터를 선택하는 단계는, 상기 복수의 후보 시뮬레이터들에 대한 정보를 포함하는 시뮬레이터 리스트를 획득하는 단계;및 상기 양자 회로를 기초로 상기 복수의 후보 시뮬레이터 중 최적의 시뮬레이터를 제시하는 단계;를 포함할 수 있다.In one embodiment, the step of selecting a simulator may include the steps of: obtaining a simulator list including information about the plurality of candidate simulators; and suggesting an optimal simulator among the plurality of candidate simulators based on the quantum circuit.
일 실시예에서, 상기 최적의 시뮬레이터를 제시하는 단계는, 상기 양자 회로에 포함된 양자 소자들을 확인하는 단계; 상기 시뮬레이터 리스트를 기초로 상기 확인된 양자 소자를 지원하는 후보 시뮬레이터들을 1차 필터링하는 단계; 상기 양자 회로를 구성하는데 필요한 큐비트 개수를 확인하는 단계; 상기 시뮬레이터 리스트를 기초로 상기 1차 필터링된 후보 시뮬레이터들 중 상기 확인된 큐비트 개수를 지원하는 후보 시뮬레이터들을 2차 필터링하는 단계;및 상기 2차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계;를 포함할 수 있다.In one embodiment, the step of presenting the optimal simulator may include: a step of identifying quantum elements included in the quantum circuit; a step of first filtering candidate simulators supporting the identified quantum elements based on the simulator list; a step of identifying the number of qubits required to configure the quantum circuit; a step of second filtering candidate simulators supporting the identified number of qubits among the first-filtered candidate simulators based on the simulator list; and a step of presenting the second-filtered candidate simulator to the user.
일 실시예에서, 상기 2차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계는, 상기 필터링된 후보 시뮬레이터 별로 제시된 게이트 별 처리 시간 DB를 획득하는 단계; 상기 필터링된 후보 시뮬레이터 각각에 대해, 상기 게이트 별 처리 시간 DB를 이용하여 상기 양자 회로에 포함된 게이트들을 시뮬레이션 하기 위한 시뮬레이션 시간을 계산하는 단계;및 상기 시뮬레이션 시간을 이용하여 상기 사용자에게 최적의 시뮬레이션을 제시하는 단계;를 포함할 수 있다.In one embodiment, the step of presenting the second filtered candidate simulator to the user may include the steps of: obtaining a gate-by-gate processing time DB presented for each of the filtered candidate simulators; calculating a simulation time for simulating gates included in the quantum circuit using the gate-by-gate processing time DB for each of the filtered candidate simulators; and presenting an optimal simulation to the user using the simulation time.
일 실시예에서, 상기 시뮬레이션 시간을 계산하는 단계는, 상기 양자 회로에 포함된 게이트들 중 복수의 양자 선들과 연결되는 게이트를 구별하는 단계; 상기 게이트 별 처리 시간 DB를 이용하여 상기 복수의 양자 선들과 연결되는 게이트들에 대응되는 처리시간의 합을 상기 시뮬레이션 시간으로 결정하는 단계;를 포함할 수 있다.In one embodiment, the step of calculating the simulation time may include the step of distinguishing gates connected to a plurality of quantum lines among the gates included in the quantum circuit; and the step of determining the sum of processing times corresponding to the gates connected to the plurality of quantum lines as the simulation time using the processing time DB for each gate.
일 실시예에서, 상기 시뮬레이션 시간을 계산하는 단계는, 상기 양자 회로를 분석함으로써 병렬로 연결된 양자 소자를 구별하는 단계; 상기 게이트 별 처리 시간 DB를 이용하여 상기 병렬로 연결된 게이트들의 동시 처리 시간을 획득하는 단계;및 상기 병렬로 연결된 게이트들의 동시 처리 시간과 나머지 처리 시간의 합을 상기 시뮬레이션 시간으로 결정하는 단계;를 포함할 수 있다.In one embodiment, the step of calculating the simulation time may include: a step of distinguishing parallel-connected quantum elements by analyzing the quantum circuit; a step of obtaining simultaneous processing times of the parallel-connected gates by using the gate-specific processing time DB; and a step of determining the sum of the simultaneous processing times of the parallel-connected gates and the remaining processing time as the simulation time.
일 실시예에서, 상기 2차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계는, 상기 필터링된 후보 시뮬레이터 별로 제시된 게이트 별 처리 시간 DB를 획득하는 단계; 상기 필터링된 후보 시뮬레이터 각각에 대해, 상기 게이트 별 처리 시간 DB를 이용하여 상기 양자 회로에 포함된 게이트들을 시뮬레이션 하기 위한 시뮬레이션 시간을 계산하는 단계;및 상기 사용자에게 상기 필터링된 후보 시뮬레이터 별 상기 시뮬레이션 시간을 제시하는 단계;를 포함할 수 있다.In one embodiment, the step of presenting the second filtered candidate simulator to the user may include the steps of: obtaining a gate-by-gate processing time DB presented for each of the filtered candidate simulators; calculating a simulation time for simulating gates included in the quantum circuit using the gate-by-gate processing time DB for each of the filtered candidate simulators; and presenting the simulation time for each of the filtered candidate simulators to the user.
일 실시예에서, 상기 최적의 시뮬레이터를 제시하는 단계는, 상기 양자 회로에 포함된 양자 소자들을 확인하는 단계; 상기 시뮬레이터 리스트를 기초로 상기 확인된 양자 소자를 지원하는 후보 시뮬레이터들을 1차 필터링하는 단계; 상기 양자 회로를 구성하는데 필요한 최소한의 큐비트 개수를 확인하는 단계; 상기 시뮬레이터 리스트를 기초로 상기 1차 필터링된 후보 시뮬레이터들 중 상기 확인된 큐비트 개수를 지원하는 후보 시뮬레이터들을 2차 필터링하는 단계; 상기 사용자로부터 시뮬레이션 결과 획득하고자 하는 아웃풋 타입을 획득하는 단계; 상기 시뮬레이터 리스트를 기초로 상기 2차 필터링된 후보 시뮬레이터들 중 상기 아웃풋 타입을 지원하는 후보 시뮬레이터들을 3차 필터링하는 단계;및 상기 3차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계;를 포함할 수 있다.In one embodiment, the step of presenting the optimal simulator may include: a step of confirming quantum elements included in the quantum circuit; a step of first filtering candidate simulators supporting the confirmed quantum elements based on the simulator list; a step of confirming the minimum number of qubits required to configure the quantum circuit; a step of second filtering candidate simulators supporting the confirmed number of qubits among the candidate simulators filtered first based on the simulator list; a step of obtaining an output type for which a simulation result is desired to be obtained from the user; a step of third filtering candidate simulators supporting the output type among the candidate simulators filtered second based on the simulator list; and a step of presenting the candidate simulator filtered third to the user.
본 개시의 일 실시예에 따른 양자 회로를 시뮬레이션하기 위해 사용자에게 소프트웨어 개발 키트를 제공하는 서버는, 상기 소프트웨어 개발 키트를 구성하는 적어도 하나의 명령어를 저장하는 메모리;및 상기 적어도 하나의 명령어를 활용하여 상기 사용자에게 소프트웨어 개발 환경을 제공하는 프로세서;를 포함하고, 상기 프로세서는, 상기 메모리로부터 양자 소자들을 포함하는 양자 라이브러리를 로드하고, 상기 양자 라이브러리에 기초하여 양자 회로를 설계하고, 상기 양자 회로를 분석함으로써 복수의 후보 시뮬레이터 중 시뮬레이터를 선택하고, 선택된 상기 시뮬레이터를 활용하여 상기 양자 회로를 시뮬레이션 한 결과를 획득하고, 상기 시뮬레이션 결과에 기초하여 양자 컴퓨터에 상기 양자 회로를 전송하는 것을 특징으로 할 수 있다.A server for providing a user with a software development kit to simulate a quantum circuit according to one embodiment of the present disclosure includes: a memory storing at least one command constituting the software development kit; and a processor providing the user with a software development environment utilizing the at least one command; wherein the processor may be characterized by loading a quantum library including quantum devices from the memory, designing a quantum circuit based on the quantum library, selecting a simulator among a plurality of candidate simulators by analyzing the quantum circuit, obtaining a result of simulating the quantum circuit using the selected simulator, and transmitting the quantum circuit to a quantum computer based on the result of the simulation.
본 발명의 기술적 사상에 따르면, 양자 회로를 설계하는데 있어서 미리 준비된 양자 라이브러리를 활용하고, 설계한 양자 회로를 복수의 시뮬레이터들 중 최적의 시뮬레이터를 활용하여 시뮬레이션을 수행함으로써 양자 컴퓨터를 활용하기 전에 최적의 양자 회로를 설계할 수 있고, 결과적으로 한정되고 고각의 자원인 양자 컴퓨터를 효율적으로 활용할 수 있다. According to the technical idea of the present invention, by utilizing a quantum library prepared in advance in designing a quantum circuit and performing a simulation of the designed quantum circuit using an optimal simulator among a plurality of simulators, it is possible to design an optimal quantum circuit before utilizing a quantum computer, and as a result, it is possible to efficiently utilize a quantum computer, which is a limited and high-value resource.
도 1은 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다.
도 3은 본 개시의 예시적 실시예에 따른 양자 회로를 나타내는 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다.
도 6은 본 개시의 예시적 실시예에 따른 시뮬레이터 리스트를 나타내는 표이다.
도 7은 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다.
도 8은 본 개시의 예시적 실시예에 따른 게이트 별 처리 시간 DB를 나타내는 표이다.
도 9a는 본 개시의 예시적 실시예에 따른 양자 회로를 나타내는 도면이다.
도 9b는 본 개시의 예시적 실시예에 따른 양자 시뮬레이터 결정 단계를 나타내는 도면이다.
도 10은 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.FIG. 1 is a block diagram illustrating a quantum computing system according to an exemplary embodiment of the present disclosure.
FIG. 2 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure.
FIG. 3 is a diagram illustrating a quantum circuit according to an exemplary embodiment of the present disclosure.
FIG. 4 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure.
FIG. 5 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure.
FIG. 6 is a table showing a list of simulators according to an exemplary embodiment of the present disclosure.
FIG. 7 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure.
FIG. 8 is a table showing a processing time DB per gate according to an exemplary embodiment of the present disclosure.
FIG. 9a is a diagram illustrating a quantum circuit according to an exemplary embodiment of the present disclosure.
FIG. 9b is a diagram illustrating a quantum simulator decision step according to an exemplary embodiment of the present disclosure.
FIG. 10 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure.
FIG. 11 is a block diagram illustrating a computing system according to an exemplary embodiment of the present disclosure.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. The advantages and features of the present invention and the method for achieving them will become clear with reference to the embodiments described in detail below together with the attached drawings. However, the technical idea of the present invention is not limited to the following embodiments, but can be implemented in various different forms, and the following embodiments are provided only to complete the technical idea of the present invention and to fully inform a person having ordinary skill in the art to which the present invention belongs of the scope of the present invention, and the technical idea of the present invention is defined only by the scope of the claims.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.When adding reference signs to components of each drawing, it should be noted that identical components are given the same signs as much as possible even if they are shown on different drawings. In addition, when describing the present invention, if it is determined that a specific description of a related known configuration or function may obscure the gist of the present invention, the detailed description is omitted.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification can be used in a meaning that can be commonly understood by a person of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not to be ideally or excessively interpreted unless explicitly specifically defined. The terminology used in this specification is for the purpose of describing embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated in the phrase.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, when describing components of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only intended to distinguish the components from other components, and the nature, order, or sequence of the components are not limited by the terms. When it is described that a component is "connected," "coupled," or "connected" to another component, it should be understood that the component may be directly connected or connected to the other component, but another component may also be "connected," "coupled," or "connected" between each component.
본 발명에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, the terms "comprises" and/or "comprising" do not exclude the presence or addition of one or more other components, steps, operations and/or elements.
어느 하나의 실시예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성 요소는, 다른 실시예에서 동일한 명칭을 사용하여 설명될 수 있다. 반대되는 기재가 없는 이상, 어느 하나의 실시예에 기재된 설명은 다른 실시예에도 적용될 수 있으며, 중복되는 범위 또는 당해 기술 분야에 속한 통상의 기술자가 자명하게 이해할 수 있는 범위 내에서 구체적인 설명은 생략될 수 있다.Components included in one embodiment and components that include common functions may be described using the same names in other embodiments. Unless otherwise stated, descriptions made in one embodiment may be applied to other embodiments, and specific descriptions may be omitted within the overlapping scope or within the scope that can be clearly understood by a person skilled in the art.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to the attached drawings.
이하, 본 발명의 바람직한 실시예 및 첨부한 도면을 참조하여 본 발명에 대해 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to preferred embodiments of the present invention and the attached drawings.
도 1은 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시스템을 나타내는 블록도이다.FIG. 1 is a block diagram illustrating a quantum computing system according to an exemplary embodiment of the present disclosure.
도 1을 참조하면, 양자 컴퓨팅 시스템(1)은 서버(10), 사용자 단말(20) 및 양자 컴퓨터(30)를 포함할 수 있다. 서버(10)는 양자 SDK 모듈(100) 및 양자 시뮬레이터 모듈(200)을 포함할 수 있다. 양자 SDK 모듈(100) 및 양자 시뮬레이터 모듈(200)은 소프트웨어 모듈 또는 하드웨어 모듈로서 구현될 수 있고, 하나의 서버 또는 두 개 이상의 서버에 의해 운용될 수 있다. 서버(10)는 사용자 단말(20)로부터 수신한 제어 신호(CTRL)에 기초하여 양자 컴퓨팅 시뮬레이션 전반을 수행할 수 있고, 서버(Server) 및 상기 서버를 운용하는 운용 컴퓨터 등을 통칭할 수 있으며, 일 예시에서 클라우드 내에서 구현될 수 있다. 일 실시예에서, 서버(10)는 웹사이트, 어플리케이션(Application) 등의 응용 프로그램을 이용하여 데이터를 사용자 단말(20)에 전송할 수 있다.Referring to FIG. 1, a quantum computing system (1) may include a server (10), a user terminal (20), and a quantum computer (30). The server (10) may include a quantum SDK module (100) and a quantum simulator module (200). The quantum SDK module (100) and the quantum simulator module (200) may be implemented as a software module or a hardware module, and may be operated by one server or two or more servers. The server (10) may perform the entire quantum computing simulation based on a control signal (CTRL) received from the user terminal (20), and may collectively refer to a server and an operating computer that operates the server, and may be implemented in a cloud in one example. In one embodiment, the server (10) may transmit data to the user terminal (20) using an application program such as a website or an application.
사용자 단말(20)은 양자 회로를 설계하고, 설계된 양자 회로를 시뮬레이션 한 이후 실제 양자 컴퓨터(30)를 이용해 연산하고자 하는 사용자에 의해 운용될 수 있고, 셀룰러 폰(Cellular Phone), 스마트 폰(Smart phone), 랩탑(Laptop), PC(Personal Computer), 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트 패드(Smartpad), 타블렛 PC(Tablet PC) 등 통신 가능한 각종 단말 장치를 포함할 수 있다. The user terminal (20) can be operated by a user who designs a quantum circuit, simulates the designed quantum circuit, and then wants to perform calculations using an actual quantum computer (30), and can include various terminal devices capable of communication, such as a cellular phone, a smart phone, a laptop, a personal computer (PC), a navigation system, a personal communication system (PCS), a global system for mobile communications (GSM), a personal digital cellular system (PDC), a personal handyphone system (PHS), a personal digital assistant (PDA), an international mobile telecommunication (IMT)-2000, a code division multiple access (CDMA)-2000, a W-Code Division Multiple Access (W-CDMA), a wireless broadband internet (Wibro) terminal, a smart pad, a tablet PC, etc.
양자 컴퓨팅 시스템(1)의 각 구성은 유무선으로 서로 통신 가능하도록 연결될 수 있고, 유선으로 연결되는 경우에, 양자 컴퓨팅 시스템(1)에 포함되는 각 구성은 시리얼 방식을 이용하여 통신할 수 있고, 무선으로 연결되는 경우에, 양자 컴퓨팅 시스템(1)에 포함되는 각 구성은 무선 통신망을 이용하여 서로 통신할 수 있고, 무선 통신망에는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷(WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망, 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), 5GPP(5th Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), RF(Radio Frequency), 블루투스(Bluetooth) 네트워크, NFC(Near-Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다. Each component of the quantum computing system (1) can be connected to communicate with each other wired or wirelessly, and in the case of being connected wired, each component included in the quantum computing system (1) can communicate using a serial method, and in the case of being connected wirelessly, each component included in the quantum computing system (1) can communicate with each other using a wireless communication network, and the wireless communication network includes a local area network (LAN), a wide area network (WAN), the Internet (WWW: World Wide Web), a wired and wireless data communication network, a telephone network, a wired and wireless television communication network, 3G, 4G, 5G, 3GPP (3rd Generation Partnership Project), 5GPP (5th Generation Partnership Project), LTE (Long Term Evolution), WIMAX (World Interoperability for Microwave Access), Wi-Fi, the Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), RF (Radio Frequency), This includes, but is not limited to, Bluetooth networks, NFC (Near-Field Communication) networks, satellite broadcasting networks, analog broadcasting networks, and DMB (Digital Multimedia Broadcasting) networks.
양자 SDK 모듈(100)은 양자 라이브러리(QL)를 기초로 사용자에게 양자 회로를 설계하기 위한 소프트웨어 개발 키트를 제공할 수 있다. 소프트웨어 개발 키트(Software Development Kit; SDK)는, 양자 회로를 설계하고 시뮬레이션하기 위해 개발된 소프트웨어 개발 도구의 모음이다. SDK는 사용자가 양자 회로를 쉽고 빠르게 개발할 수 있도록 지원하는 API(응용 프로그래밍 인터페이스), 라이브러리, 개발 도구, 문서, 예제 코드 등을 포함한다. 이를 통해 사용자는 플랫폼의 기본적인 설정이나 기능을 깊게 이해하지 않아도 애플리케이션을 구축할 수 있으며, 개발 과정을 단순화하고 가속화할 수 있다.The quantum SDK module (100) can provide a software development kit for designing quantum circuits to users based on the quantum library (QL). The software development kit (SDK) is a collection of software development tools developed to design and simulate quantum circuits. The SDK includes APIs (application programming interfaces), libraries, development tools, documentation, example codes, etc. that support users to easily and quickly develop quantum circuits. This allows users to build applications without having to deeply understand the basic settings or functions of the platform, and simplifies and accelerates the development process.
양자 라이브러리(QL)는 양자 게이트, 양자선 등의 양자 소자들과, 시뮬레이터에 대한 정보 등 양자 회로를 설계하기 위한 각종 정보를 포함할 수 있다. 양자 SDK 모듈(100)은 사용자 단말(20)에게 양자 라이브러리(QL)를 제공하고, 사용자 단말(20)의 제어 하에 설계된 양자 회로(QC)를 양자 시뮬레이터 모듈(200)에 전송하여 시뮬레이션 할 수 있다. A quantum library (QL) may include various types of information for designing quantum circuits, such as quantum elements such as quantum gates, quantum wires, and information about a simulator. A quantum SDK module (100) provides a quantum library (QL) to a user terminal (20), and transmits a quantum circuit (QC) designed under the control of the user terminal (20) to a quantum simulator module (200) for simulation.
양자 시뮬레이터 모듈(200)은 양자 컴퓨팅의 작동원리나 양자 알고리즘을 모사하기 위해 설계된 소프트웨어 또는 하드웨어 시스템으로서 소프트웨어 기반 양자 시뮬레이터 및 하드웨어 기반 양자 시뮬레이터를 포함할 수 있고, 일 예로서, Qasm 시뮬레이터, Statevector 시뮬레이터, Unitary 시뮬레이터, QPlayer 시뮬레이터, 광학 기반 시뮬레이터, 초전도 회로 시뮬레이터 등을 포함할 수 있다. 양자 시뮬레이터 모듈(200)은 복수의 시뮬레이터들을 포함할 수 있고 일 예시로서 제1 시뮬레이터(SM1) 및 제2 시뮬레이터(SM2)를 포함할 수 있다.The quantum simulator module (200) is a software or hardware system designed to simulate the operating principles of quantum computing or quantum algorithms, and may include a software-based quantum simulator and a hardware-based quantum simulator, and may include, for example, a Qasm simulator, a Statevector simulator, a Unitary simulator, a QPlayer simulator, an optical-based simulator, a superconducting circuit simulator, etc. The quantum simulator module (200) may include a plurality of simulators, and may include, for example, a first simulator (SM1) and a second simulator (SM2).
양자 시뮬레이터 모듈(200)은 복수의 시뮬레이터들(SM1, SM2) 중 양자 SDK 모듈(100)에 의해 선택된 시뮬레이터를 활용하여 양자 회로(QC)를 시뮬레이션 하고 결과 값(Res)를 양자 SDK 모듈(100)에 전송할 수 있다. 결과 값(Res)은 다양한 형태의 데이터 타입을 포함할 수 있으며, 일 예시에서, 양자 비트 스트림, 상태 벡터, 기대 값, 파라미터의 기울기 값을 포함할 수 있다. 양자 SDK 모듈(100)은 결과 값(Res)을 사용자 단말(20)에 제시할 수 있고, 사용자 단말(20)은 결과 값(Res)에 기초하여 양자 회로(QC)를 적응적으로 수정할 수 있다. 결과 값(Res)이 적합한 경우, 사용자 단말(20)은 양자 SDK 모듈(100)에 양자 컴퓨터(30)를 활용한 연산을 수행할 것을 요청할 수 있고, 양자 SDK 모듈(100)은 양자 컴퓨터(30)에 양자 회로(QC)를 전송하고, 대응한 결과 값을 사용자 단말(20)에 제공할 수 있다.The quantum simulator module (200) can simulate a quantum circuit (QC) by utilizing a simulator selected by the quantum SDK module (100) among a plurality of simulators (SM1, SM2) and transmit a result value (Res) to the quantum SDK module (100). The result value (Res) can include various types of data, and in one example, can include a quantum bit stream, a state vector, an expected value, and a gradient value of a parameter. The quantum SDK module (100) can present the result value (Res) to the user terminal (20), and the user terminal (20) can adaptively modify the quantum circuit (QC) based on the result value (Res). If the result value (Res) is suitable, the user terminal (20) can request the quantum SDK module (100) to perform a calculation using a quantum computer (30), and the quantum SDK module (100) can transmit a quantum circuit (QC) to the quantum computer (30) and provide the corresponding result value to the user terminal (20).
본 개시의 기술적 사상에 따르면, 양자 SDK 모듈(100)은 양자 라이브러리(QL)를 활용하여 사용자 단말(20)에게 양자 회로(QL)를 설계하기에 용이한 SDK를 제공하고, 복수의 시뮬레이터들 중 양자 회로(QL)에 적합한 시뮬레이터를 이용하여 시뮬레이션을 수행할 수 있고, 결과적으로 사용자는 적합한 결과 값이 획득될 때까지 적응적으로 양자 회로(QL)를 수정함으로써 최적의 양자 회로(QL)를 획득할 수 있다. 또한, 시뮬레이터를 활용하여 최적의 양자 회로(QL)를 설계함으로써 한정적이고 고가의 양자 컴퓨터(30)를 최소한 활용하면서도 원하는 결과값을 획득할 수 있다. According to the technical idea of the present disclosure, a quantum SDK module (100) provides a user terminal (20) with an SDK that makes it easy to design a quantum circuit (QL) by utilizing a quantum library (QL), and can perform a simulation by utilizing a simulator suitable for the quantum circuit (QL) among a plurality of simulators, and as a result, the user can adaptively modify the quantum circuit (QL) until a suitable result value is obtained, thereby obtaining an optimal quantum circuit (QL). In addition, by utilizing a simulator to design an optimal quantum circuit (QL), it is possible to obtain a desired result value while utilizing a limited and expensive quantum computer (30) to a minimum.
본 개시의 일 실시예에 따르면, 양자 SDK 모듈(100)은 서버(10)에 의해 구현됨으로써 사용자가 웹 상에서 SDK를 활용할 수 있고, 이에 따라서 별도의 응용 프로그램 설치 없이 간편하게 사용자가 양자 회로(QC)를 설계할 수 있고, 결과적으로 사용자의 SDK 활용 용이성이 높아질 수 있다. According to one embodiment of the present disclosure, a quantum SDK module (100) is implemented by a server (10), so that a user can utilize the SDK on the web, and thus, a user can easily design a quantum circuit (QC) without installing a separate application program, and as a result, the user's ease of utilizing the SDK can be increased.
본 명세서에서 양자 컴퓨팅 시스템(1) 및 이에 포함된 구성의 동작은 각 구성에 포함된 저장 장치에 저장된 적어도 하나의 명령어를 포함하는 컴퓨터 프로그램에 기초하여, 각 구성에 포함된 프로세서가 수행하는 동작을 의미할 수 있고, 상기 저장 장치는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등을 포함할 수 있다. 또한, 상기 프로세서는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit), 램(RAM), 롬(ROM), 시스템 버스 및 애플리케이션 프로세서 중 적어도 하나를 포함할 수 있다.In this specification, the operation of the quantum computing system (1) and the components included therein may mean an operation performed by a processor included in each component based on a computer program including at least one command stored in a storage device included in each component, and the storage device may include a non-volatile memory, a volatile memory, a flash memory, a hard disk drive (HDD), a solid state drive (SSD), or the like. In addition, the processor may include at least one of a Central Processing Unit (CPU), a Graphic Processing Unit (GPU), a Neural Processing Unit (NPU), a RAM, a ROM, a system bus, and an application processor.
도 2는 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다.FIG. 2 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure.
도 2를 참조하면, 서버(10)는 양자 라이브러리(QL)를 로드하고(S100), 사용자 단말(20)의 제어 신호(CTL)에 대응하여 양자 라이브러리(QL)를 기초로 양자 회로(QC)를 설계할 수 있다(S200).Referring to FIG. 2, the server (10) can load a quantum library (QL) (S100) and design a quantum circuit (QC) based on the quantum library (QL) in response to a control signal (CTL) of a user terminal (20) (S200).
서버(10)는 양자 회로(QC)를 분석하여 복수의 후보 시뮬레이터들 중 하나의 시뮬레이터를 선택할 수 있다(S300). 서버(10)는 선택된 시뮬레이터를 활용하여 양자 회로를 시뮬레이션할 수 있다(S400). 서버(10)는 시뮬레이션 결과에 기초하여 양자 컴퓨터에 양자 회로(QC)를 전송할 수 있다(S500).The server (10) can analyze the quantum circuit (QC) and select one simulator from among multiple candidate simulators (S300). The server (10) can simulate the quantum circuit using the selected simulator (S400). The server (10) can transmit the quantum circuit (QC) to the quantum computer based on the simulation result (S500).
도 3은 본 개시의 예시적 실시예에 따른 양자 회로를 나타내는 도면이다.FIG. 3 is a diagram illustrating a quantum circuit according to an exemplary embodiment of the present disclosure.
도 3을 참조하면, 양자 회로(QC)는 복수의 양자선들(ql0~ql3)과 복수의 양자 게이트들을 포함할 수 있다. 복수의 양자선들(ql0~ql3) 각각은 큐비트들(q0~q3)과 대응되어 양자 게이트에 대한 입력과 출력을 나타낼 수 있다. 양자 게이트는 I 게이트(gi), X 게이트(gx), Y 게이트(gy), Z 게이트(gz)를 포함하는 파울리 게이트를 포함할 수 있다. I 게이트, 또는 항등 게이트(Identity gate)는 양자 컴퓨팅에서 큐비트에 아무런 변화를 주지 않는 게이트이다. 이 게이트는 양자 회로에서 연산을 적용하지 않고자 할 때 사용된다. I 게이트는 2x2 항등 행렬로 표현되며, 이는 큐비트의 상태를 그대로 유지한다. I 게이트의 행렬 표현은 수학식 1과 같다.Referring to FIG. 3, a quantum circuit (QC) may include a plurality of quantum lines (ql0 to ql3) and a plurality of quantum gates. Each of the plurality of quantum lines (ql0 to ql3) may correspond to a qubit (q0 to q3) and represent an input and output for a quantum gate. The quantum gate may include a Pauli gate including an I gate (gi), an X gate (gx), a Y gate (gy), and a Z gate (gz). The I gate, or identity gate, is a gate that does not change a qubit in quantum computing. This gate is used when no operation is to be applied in a quantum circuit. The I gate is expressed as a 2x2 identity matrix, which maintains the state of the qubit as it is. The matrix representation of the I gate is as shown in Mathematical Formula 1.
X 게이트(gx)는 고전적인 NOT 게이트와 유사한 역할을 한다. 이 게이트는 양자 비트의 상태를 뒤집는다. 즉, X 게이트의 행렬 표현은 수학식 2와 같다.The X gate (gx) plays a role similar to the classical NOT gate. This gate flips the state of a quantum bit. That is, the matrix representation of the X gate is as shown in mathematical expression 2.
Y 게이트(gy)는 큐비트에 복소수 위상 변환을 적용한다. Y 게이트(gy)는 X 게이트(gx)와 Z 게이트(gz)의 조합과도 같으며, 이 게이트를 통해 양자 상태의 위상에 변화를 줄 수 있다. Y 게이트의 행렬 표현은 수학식 3과 같다.The Y gate (gy) applies a complex phase transformation to the qubit. The Y gate (gy) is also a combination of the X gate (gx) and the Z gate (gz), and can change the phase of the quantum state through this gate. The matrix representation of the Y gate is as shown in mathematical expression 3.
Z 게이트(gz)는 "1" 상태에 대해서만 위상을 변화시킨다. Z 게이트(gz)는 0" 상태는 그대로 두고, "1" 상태에 π만큼의 위상을 추가한다. 이는 큐비트의 위상을 반전시키는 역할을 한다. Z 게이트(gz)의 행렬 표현은 다음 수학식 4와 같다.The Z gate (gz) changes the phase only for the "1" state. The Z gate (gz) leaves the "0" state as is and adds a phase of π to the "1" state. This acts to invert the phase of the qubit. The matrix representation of the Z gate (gz) is as follows:
아다마르 게이트(gh)는 양자 컴퓨팅에서 사용되는 중요한 단일 큐비트 변환 게이트 중 하나이다. 이 게이트는 큐비트를 중첩 상태로 변환하는 데 사용되며, 양자 병렬성과 얽힘의 기초를 제공한다. 아다마르 게이트(gh)는 다음 수학식 5와 같이 표현될 수 있다.Hadamard gate (gh) is one of the important single-qubit transformation gates used in quantum computing. This gate is used to transform qubits into superposition states, and provides the basis for quantum parallelism and entanglement. Hadamard gate (gh) can be expressed as the following mathematical expression 5.
CNOT(Controlled-NOT) 게이트(gcn)는 2큐비트 게이트 중 하나이다. CNOT 게이트(gcn)는 조건부 게이트로서, 한 큐비트(제어 큐비트)의 상태에 따라 다른 큐비트(대상 큐비트)에 NOT 연산(X 게이트)을 적용한다. 제어 큐비트가 "1"상태일 때만 대상 큐비트의 상태가 반전된다. 제어 큐비트가 "0"상태일 경우, 대상 큐비트는 변경되지 않는다.The CNOT (Controlled-NOT) gate (gcn) is one of the two-qubit gates. The CNOT gate (gcn) is a conditional gate that applies a NOT operation (X gate) to one qubit (target qubit) depending on the state of the other qubit (control qubit). The state of the target qubit is inverted only when the control qubit is in the "1" state. When the control qubit is in the "0" state, the target qubit is not changed.
스왑 게이트(gsw)는 양 두 큐비트의 상태를 서로 교환하는 데 사용되는 2큐비트 게이트이다. 스왑 게이트(gsw)는 두 큐비트 간의 정보를 교환할 때 사용되며, 이를 통해 양자 회로 내에서 큐비트의 위치를 조정할 수 있다. 스왑 게이트는 두 큐비트 시스템에 적용될 때, 첫 번째 큐비트의 상태를 두 번째 큐비트로, 두 번째 큐비트의 상태를 첫 번째 큐비트로 옮긴다. 스왑 게이트(gsw)는 아래 수학식 6과 같이 표현될 수 있다.The swap gate (gsw) is a two-qubit gate used to swap the states of two qubits. The swap gate (gsw) is used to swap information between two qubits, which allows the positions of the qubits to be adjusted within a quantum circuit. When applied to a two-qubit system, the swap gate transfers the state of the first qubit to the second qubit, and the state of the second qubit to the first qubit. The swap gate (gsw) can be expressed as shown in the following mathematical expression (6).
프레드킨 게이트(gfk), 또는 CSWAP(Controlled-SWAP) 게이트는 3큐비트 게이트로, 하나의 제어 큐비트와 두 개의 대상 큐비트로 구성된다. 제어 큐비트가 "1"상태일 때만 두 대상 큐비트의 상태가 서로 교환된다. 제어 큐비트가 "0" 상태인 경우, 대상 큐비트는 변경되지 않습니다. 프레드킨 게이트(gfk)는 특히 양자 컴퓨팅에서 조건부 교환 연산을 수행하는 데 사용됩니다.The Fredkin gate (gfk), or Controlled-SWAP (CSWAP) gate, is a three-qubit gate consisting of a control qubit and two target qubits. The states of the two target qubits are swapped only when the control qubit is in the "1" state. When the control qubit is in the "0" state, the target qubit is not changed. The Fredkin gate (gfk) is used in quantum computing in particular to perform conditional swap operations.
토폴리 게이트(gtf), 또는 CCNOT(Controlled-Controlled-NOT) 게이트는 3큐비트 게이트로, 두 개의 제어 큐비트와 하나의 대상 큐비트로 구성된다. 이 게이트는 두 제어 큐비트 모두 "1" 상태일 때만 대상 큐비트에 NOT 연산을 적용한다. 다른 모든 경우에는 대상 큐비트가 변경되지 않는다. 토폴리 게이트(gtf)는 양자 컴퓨팅에서 고전적인 "AND" 연산을 수행하는 데 사용될 수 있으며, 복잡한 조건부 연산과 양자 알고리즘에 필수적이다.The Toffoli gate (GTF), or Controlled-Controlled-NOT (CCNOT) gate, is a three-qubit gate consisting of two control qubits and one target qubit. It performs a NOT operation on the target qubit only when both control qubits are in the "1" state. In all other cases, the target qubit is left unchanged. The Toffoli gate (GTF) can be used to perform the classical "AND" operation in quantum computing, and is essential for complex conditional operations and quantum algorithms.
측정 게이트(gm)는 해당 양자 선의 큐비트의 상태를 측정하는 게이트이다.The measurement gate (gm) is a gate that measures the state of the qubit of the corresponding quantum line.
본 개시의 기술적 사상에 따르면, 도 3에 도시된 각종 게이트 및 양자 선들은 양자 라이브러리(ql)에 의해 사용자 단말(20)에게 제공될 수 있으며, 사용자 단말은 양자 라이브러리(ql)를 이용하여 원하는 양자 회로(QC)를 설계할 수 있다. 도 3에는 대표적인 게이트가 도시되어 있으나, 이는 일 예시이고 도시된 종류보다 더 다양한 양자 게이트들이 양자 라이브러리(ql)에 포함될 수 있으며, 도시된 큐비트 개수(4개)보다 더 많거나 적은 큐비트가 SDK에 의해 제공될 수 있다.According to the technical idea of the present disclosure, various gates and quantum lines illustrated in FIG. 3 can be provided to a user terminal (20) by a quantum library (ql), and the user terminal can design a desired quantum circuit (QC) by using the quantum library (ql). Although representative gates are illustrated in FIG. 3, this is only an example, and more diverse quantum gates than the illustrated type can be included in the quantum library (ql), and more or less qubits than the illustrated number of qubits (4) can be provided by the SDK.
도 4는 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다. 상세하게는, 도 4는 도 2의 시뮬레이터 선택 단계(S300)를 상세하게 나타낸다.FIG. 4 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure. Specifically, FIG. 4 illustrates the simulator selection step (S300) of FIG. 2 in detail.
도 4를 참조하면, 서버(10)는 후보 시뮬레이터에 대한 정보를 포함하는 시뮬레이터 리스트를 획득할 수 있다(S310). 일 예시에서, 시뮬레이터 리스트는 복수의 시뮬레이터 별 지원 게이트, 지원 큐빗 수, 아웃풋 타입에 대한 정보를 포함할 수 있다.Referring to FIG. 4, the server (10) can obtain a simulator list including information on candidate simulators (S310). In one example, the simulator list can include information on support gates, the number of supported qubits, and output types for each of multiple simulators.
서버(10)는 양자 회로를 기초로 복수의 후보 시뮬레이터를 필터링 할 수 있다(S320). 일 실시예에서, 서버(10)는 양자 회로에 포함되는 게이트, 활용 큐비트 수, 사용자가 원하는 아웃풋 타입에 대한 정보를 기초로 적합한 후보 시뮬레이터를 필터링할 수 있다.The server (10) can filter a plurality of candidate simulators based on the quantum circuit (S320). In one embodiment, the server (10) can filter suitable candidate simulators based on information about the gates included in the quantum circuit, the number of qubits utilized, and the output type desired by the user.
서버(10)는 게이트 별 처리 시간 DB를 활용하여 필터링된 후보 시뮬레이터들에 대한 시뮬레이션 시간을 계산할 수 있다(S330). 일 예시에서, 게이트 별 처리 시간 DB는 시뮬레이터 별로 특정 게이트에 대한 시뮬레이터를 처리하는 처리 시간에 대한 정보를 포함할 수 있고, 서버(10)는 양자 회로에 포함되는 게이트를 확인하여 시뮬레이터 별로 양자 회로를 시뮬레이팅하는데 필요한 시간을 계산할 수 있다.The server (10) can calculate the simulation time for the filtered candidate simulators by utilizing the processing time DB for each gate (S330). In one example, the processing time DB for each gate can include information on the processing time for processing a simulator for a specific gate for each simulator, and the server (10) can check the gates included in the quantum circuit and calculate the time required to simulate the quantum circuit for each simulator.
서버(10)는 시뮬레이션 시간을 활용하여 사용자에게 최적의 시뮬레이터를 제시할 수 있다(S340). 서버(10)는 필터링된 후보 시뮬레이터들에 대한 시뮬레이션 시간을 제시하고, 그중 가장 빠른 시뮬레이터를 최적의 시뮬레이터로 제시할 수 있다.The server (10) can present the optimal simulator to the user by utilizing the simulation time (S340). The server (10) can present simulation times for the filtered candidate simulators and present the fastest simulator among them as the optimal simulator.
양자 회로(QC)를 시뮬레이션 하는데는 시뮬레이션 방법론에 따라서 다양한 시뮬레이터가 활용될 수 있고, 시뮬레이터 별로 지원 게이트, 지원 큐비트, 아웃풋 종류 및 처리 시간이 다양할 수 있다. Depending on the simulation methodology, various simulators can be used to simulate quantum circuits (QC), and each simulator may have different supported gates, supported qubits, output types, and processing times.
본 개시의 일 실시예에 따르면, 서버(10)는 사용자로 하여금 하나의 SDK를 이용하여 복수의 시뮬레이터를 활용할 수 있도록 소프트웨어 개발 환경을 마련할 수 있고, 이에 따라서, 사용자는 여러 개의 시뮬레이터를 활용하기 위해 개별적인 SDK를 활용하는 것이 아니라 하나의 SDK를 활용하여 다양한 시뮬레이션이 가능할 수 있다. According to one embodiment of the present disclosure, the server (10) can provide a software development environment that allows a user to utilize multiple simulators using one SDK, and thus, the user can perform various simulations using one SDK rather than utilizing individual SDKs to utilize multiple simulators.
또한, 본 개시의 일 실시예에 따르면, 서버(10)는 양자 회로를 분석함으로써 시뮬레이션이 가능한 시뮬레이터를 필터링하고, 게이트 별 처리 속도를 기준으로 필터링한 시뮬레이터의 예상 시뮬레이션 시간을 계산함으로써 사용자로 하여금 적합한 시뮬레이터를 제시할 수 있고, 결과적으로 사용자의 SDK 활용 편의성이 증가할 수 있다.In addition, according to one embodiment of the present disclosure, the server (10) can filter simulators capable of simulation by analyzing a quantum circuit, and calculate the expected simulation time of the filtered simulator based on the processing speed per gate, thereby suggesting a suitable simulator to the user, and as a result, the convenience of the user's SDK utilization can be increased.
도 5는 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다. 상세하게는 도 5는 도 4의 복수의 후보 시뮬레이터들을 필터링하는 단계(S320)를 상세하게 나타낸다.FIG. 5 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure. Specifically, FIG. 5 illustrates in detail a step (S320) of filtering a plurality of candidate simulators of FIG. 4.
도 5를 참조하면, 서버(10)는 양자 회로(QC)에 포함된 양자 소자들을 확인할 수 있다(S321). 양자 소자는 양자 게이트 및 큐비트(또는 양자 선)을 포함할 수 있다. 서버(10)는 시뮬레이터 리스트를 기초로 확인된 양자 소자를 지원하는 후보 시뮬레이터를 1차 필터링할 수 있다(S322). 일 예시에서 시뮬레이터 리스트는 시뮬레이터 별 지원하는 양자 소자, 큐비트 개수, 아웃풋 타입 등에 대한 정보를 포함할 수 있다.Referring to FIG. 5, the server (10) can verify quantum elements included in a quantum circuit (QC) (S321). The quantum elements can include quantum gates and qubits (or quantum lines). The server (10) can first filter candidate simulators that support the verified quantum elements based on the simulator list (S322). In one example, the simulator list can include information about the quantum elements, number of qubits, output types, etc. supported by each simulator.
서버(10)는 양자 회로를 구성하는데 필요한 큐비트 개수를 확인할 수 있다(S323). 서버(10)는 시뮬레이터 리스트를 기초로 확인된 큐비트 개수를 지원하는 후보 시뮬레이터를 2차 필터링할 수 있다(S324).The server (10) can check the number of qubits required to configure a quantum circuit (S323). The server (10) can secondarily filter candidate simulators that support the number of qubits confirmed based on the simulator list (S324).
서버(10)는 사용자로부터 시뮬레이션 결과 획득하고자 하는 아웃풋 타입을 획득할 수 있다(S325). 서버(10)는 시뮬레이터 리스트를 기초로 확인된 아웃풋 타입을 지원하는 후보 시뮬레이터를 3차 필터링할 수 있다(S326).The server (10) can obtain the output type desired for obtaining the simulation result from the user (S325). The server (10) can perform a third filtering of candidate simulators that support the output type confirmed based on the simulator list (S326).
본 개시의 일 실시예에 따르면, 서버(10)는 지원 양자 소자, 지원 큐비트 개수, 지원 아웃풋 타입을 기초로 복수의 후보 시뮬레이터들 중 적합한 시뮬레이터를 필터링할 수 있고, 그 결과 양자 회로를 시뮬레이션 할 수 없는 시뮬레이터를 사전에 제거할 수 있고, 사용자가 시뮬레이션이 불가능한 시뮬레이터를 활용함으로써 발생할 수 있는 각종 리소스 낭비를 사전에 차단할 수 있다. According to one embodiment of the present disclosure, the server (10) can filter out a suitable simulator from among a plurality of candidate simulators based on the supported quantum elements, the number of supported qubits, and the supported output type, thereby eliminating simulators that cannot simulate quantum circuits in advance, and preventing various types of resource waste that may occur when a user utilizes a simulator that cannot simulate.
도 6은 본 개시의 예시적 실시예에 따른 시뮬레이터 리스트를 나타내는 표이다.FIG. 6 is a table showing a list of simulators according to an exemplary embodiment of the present disclosure.
도 6을 참조하면, 시뮬레이터 리스트(SL)는 시뮬레이터 별로 지원하는 게이트와 큐비트 수 및 출력 타입에 대한 정보를 포함할 수 있다. Referring to FIG. 6, the simulator list (SL) may include information about the number of gates and qubits supported by each simulator and the output type.
일 예시에서, 제1 시뮬레이터(SM1)는 I 게이트(gi), X 게이트(gx), Y 게이트(gy) 및 토폴리 게이트(gtf)를 지원할 수 있고, 최대 4개의 큐비트 까지 지원하며, 출력은 큐비트의 비트 스트림으로 지원될 수 있다. 비트 스트림 출력은 큐비트 개수 길이의 비트열 또는 동일한 회로를 여러 번 측정하여 측정된 결과의 통계적인 분포를 포함할 수 있다. In one example, the first simulator (SM1) can support I gate (gi), X gate (gx), Y gate (gy) and Topoli gate (gtf), and can support up to four qubits, and the output can be supported as a bit stream of the qubits. The bit stream output can include a bit string of the length of the number of qubits, or a statistical distribution of measured results from multiple measurements of the same circuit.
일 예시에서, 제2 시뮬레이터(SM2)는 아다마르 게이트(gh), CNOT 게이트(gcn), 스왑 게이트(gsw)를 지원할 수 있고, 최대 16개의 큐비트 까지 지원하며, 출력은 상태 벡터로 지원될 수 있다. In one example, the second simulator (SM2) can support Hadamard gate (gh), CNOT gate (gcn), and swap gate (gsw), support up to 16 qubits, and the output can be supported as a state vector.
일 예시에서, 제3 시뮬레이터(SM3)는 프레드킨 게이트(gfk), 토폴리 게이트(gtf)를 지원할 수 있고, 최대 4개의 큐비트 까지 지원하며, 출력은 기대 값으로 지원될 수 있다. 예측 값은 측정 결과의 확률 분포에 대한 평균 값을 나타낼 수 있다.In one example, the third simulator (SM3) can support Fredkin gate (gfk), Toffoli gate (gtf), and can support up to 4 qubits, and the output can be supported as an expected value. The expected value can represent the average value for the probability distribution of the measurement results.
일 예시에서, 제4 시뮬레이터(SM4)는 X 게이트(gx), 아다마르 게이트(gh) 및 CNOT 게이트(gcn)를 지원할 수 있고, 최대 8 개의 큐비트까지 지원하며, 출력은 매개 변수에 대한 기울기 값으로 지원될 수 있다. In one example, the fourth simulator (SM4) can support X gate (gx), Hadamard gate (gh) and CNOT gate (gcn), supports up to 8 qubits, and the output can be supported as a gradient value for the parameter.
도 6에 도시된 시뮬레이터 리스트는 설명의 편의상 지원 게이트와 지원 큐비트 및 아웃풋 타입을 임의로 설정한 예시이며, 지원 게이트, 지원 큐비트, 아웃풋 타입은 시뮬레이터 별로 다양하게 설정될 수 있다.The list of simulators illustrated in Fig. 6 is an example in which the support gates, support qubits, and output types are arbitrarily set for convenience of explanation, and the support gates, support qubits, and output types can be set in various ways for each simulator.
도 7은 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다. 상세하게는, 도 7은 도 4의 시뮬레이션 시간을 계산하는 단계(S330)를 상세하게 나타낸다.Fig. 7 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure. Specifically, Fig. 7 illustrates in detail the step (S330) of calculating the simulation time of Fig. 4.
도 7을 참조하면, 서버(10)는 필터링 된 후보 시뮬레이터 별로 제시된 게이트 별 처리 시간 DB를 획득할 수 있다(S331). 서버(10)는 필터링된 후보 시뮬레이터 각각에 대해 게이트 별 처리시간 DB를 활용하여 양자 회로에 포함된 게이트들을 시뮬레이션 하기 위한 시뮬레이션 시간을 계산할 수 있다(S332). 일 실시예에서, 서버(10)는 게이트 별 처리시간 DB로부터 양자 회로에 포함된 양자 소자 별 처리 시간을 획득하고, 이에 대한 합산을 통해서 시뮬레이션 시간을 계산할 수 있다. Referring to FIG. 7, the server (10) can obtain a processing time DB for each gate presented for each filtered candidate simulator (S331). The server (10) can calculate a simulation time for simulating gates included in a quantum circuit by utilizing the processing time DB for each gate for each filtered candidate simulator (S332). In one embodiment, the server (10) can obtain a processing time for each quantum element included in a quantum circuit from the processing time DB for each gate, and calculate a simulation time by adding them up.
서버(10)는 시뮬레이션 시간을 이용하여 최적의 시뮬레이터를 제시할 수 있다(S333). 일 실시예에서, 서버(10)는 시뮬레이션 시간이 가장 짧은 시뮬레이터를 최적의 시뮬레이터로 제시할 수 있다. 또 다른 실시예에서, 서버(10)는 시뮬레이터 별 시뮬레이션 시간을 사용자에게 제시할 수 있다.The server (10) can present the optimal simulator using the simulation time (S333). In one embodiment, the server (10) can present the simulator with the shortest simulation time as the optimal simulator. In another embodiment, the server (10) can present the simulation time for each simulator to the user.
본 개시의 일 실시예에 따르면, 서버(10)는 다양한 시뮬레이터 가운데 게이트 처리 속도가 가장 빠른 시뮬레이터를 단순한 연산을 통해서 구별해낼 수 있고, 결과적으로 사용자로 하여금 가장 적합한 시뮬레이터를 선택할 수 있도록 유도할 수 있다.According to one embodiment of the present disclosure, the server (10) can distinguish a simulator having the fastest gate processing speed among various simulators through a simple operation, and consequently guide a user to select the most suitable simulator.
도 8은 본 개시의 예시적 실시예에 따른 게이트 별 처리 시간 DB를 나타내는 표이다.FIG. 8 is a table showing a processing time DB per gate according to an exemplary embodiment of the present disclosure.
도 8을 참조하면, 제1 처리 시간 DB(GDB1)는 제1 시뮬레이터(SM1)가 각 게이트 별로 시뮬레이팅 하는데 걸리는 시간을 나타낼 수 있고, 제2 처리 시간 DB(GDB2)는 제2 시뮬레이터(SM2)가 각 게이트 별로 시뮬레이팅 하는데 걸리는 시간을 나타낼 수 있다. Referring to FIG. 8, the first processing time DB (GDB1) may represent the time it takes for the first simulator (SM1) to simulate each gate, and the second processing time DB (GDB2) may represent the time it takes for the second simulator (SM2) to simulate each gate.
도 8의 예시에서, 제1 시뮬레이터(SM1)는 X 게이트를 처리하는 제1 시간(t1)이 걸리고, 아다마르 게이트(gh)를 처리하는데 제2 시간(t2)이 걸리고, 프레드킨 게이트(gfk)를 처리하는데 제3 시간(t3)이 걸리고, 병렬 또는 직렬로 연결된 X 게이트(gx) 및 아다마르 게이트(gh)를 한꺼번에 처리하는데 제4 시간(t4)이 걸릴 수 있다. In the example of Fig. 8, the first simulator (SM1) may take a first time (t1) to process the X gate, a second time (t2) to process the Hadamard gate (gh), a third time (t3) to process the Fredkin gate (gfk), and a fourth time (t4) to process the X gate (gx) and the Hadamard gate (gh) connected in parallel or series at once.
마찬가지로, 제2 시뮬레이터(SM2)는 X 게이트를 처리하는 제5 시간(t5)이 걸리고, 아다마르 게이트(gh)를 처리하는데 제6 시간(t6)이 걸리고, 프레드킨 게이트(gfk)를 처리하는데 제7 시간(t7)이 걸리고, 병렬 또는 직렬로 연결된 X 게이트(gx) 및 아다마르 게이트(gh)를 한꺼번에 처리하는데 제8 시간(t8)이 걸릴 수 있다.Similarly, the second simulator (SM2) may take a fifth time (t5) to process the X gate, a sixth time (t6) to process the Hadamard gate (gh), a seventh time (t7) to process the Fredkin gate (gfk), and an eighth time (t8) to process the X gate (gx) and the Hadamard gate (gh) connected in parallel or in series together.
서버(10)는 양자 회로를 분석함으로써 양자 회로에 포함된 양자 게이트를 확인하고, 확인된 게이트 별 처리 시간을 더함으로써 시뮬레이션 시간을 계산할 수 있다. 본 개시의 일 실시예에 따르면, 양자 회로를 분석하고 그 결과를 기초로 시뮬레이션 시간을 계산함으로써 비교적 간단한 연산을 통해 시뮬레이션 시간을 예측할 수 있고, 결과적으로 사용자에게 가장 빠른 시뮬레이터를 선택할 수 있도록 유도할 수 있다.The server (10) can analyze the quantum circuit to identify the quantum gates included in the quantum circuit, and calculate the simulation time by adding the processing time for each identified gate. According to one embodiment of the present disclosure, by analyzing the quantum circuit and calculating the simulation time based on the result, the simulation time can be predicted through a relatively simple operation, and as a result, the user can be guided to select the fastest simulator.
또한, 본 개시의 일 실시예에 따르면, 병렬로 연결된 게이트들에 대한 시간은 별도로 관리함으로써 실제 시뮬레이션과 가장 유사한 처리 시간을 예측할 수 있다.In addition, according to one embodiment of the present disclosure, by separately managing the time for gates connected in parallel, it is possible to predict a processing time most similar to an actual simulation.
도 9a는 본 개시의 예시적 실시예에 따른 양자 회로를 나타내는 도면이고, 도 9b는 본 개시의 예시적 실시예에 따른 양자 시뮬레이터 결정 단계를 나타내는 도면이다.FIG. 9a is a diagram illustrating a quantum circuit according to an exemplary embodiment of the present disclosure, and FIG. 9b is a diagram illustrating a quantum simulator decision step according to an exemplary embodiment of the present disclosure.
도 9a를 참조하면, 양자 회로(QC)는 병렬로 연결된 X 게이트(gx), 아다마르 게이트(gh)와, CNOT 게이트(gcn), 프레드릭 게이트(gfk)를 포함하고, 4개의 큐비트를 활용하며, 아웃풋 타입으로는 기대 값을 요구한다.Referring to Fig. 9a, the quantum circuit (QC) includes a parallel-connected X gate (gx), a Hadamard gate (gh), a CNOT gate (gcn), and a Frederick gate (gfk), utilizes four qubits, and requires an expected value as an output type.
도 9b를 참조하면, 서버(10)는 시뮬레이터 리스트를 기초로 복수의 후보 시뮬레이터 중(SM1~SM8) 중 X 게이트(gx), 아다마르 게이트(gh), CNOT 게이트(gcn), 프레드릭 게이트(gfk)를 지원하는 후보 시뮬레이터를 1차 필터링할 수 있다. 또한, 서버(10)는 시뮬레이터 리스트를 기초로 4개의 큐비트를 지원하는 후보 시뮬레이터를 2차 필터링할 수 있다. 마지막으로, 서버(10)는 아웃풋 타입으로 기대 값을 지원하는 후보 시뮬레이터를 3차 필터링함으로써 제1 시뮬레이터(SM1)와 제4 시뮬레이터(SM4)를 결정할 수 있다.Referring to FIG. 9b, the server (10) may first filter candidate simulators that support X gate (gx), Hadamard gate (gh), CNOT gate (gcn), and Frederick gate (gfk) among a plurality of candidate simulators (SM1 to SM8) based on the simulator list. In addition, the server (10) may second filter candidate simulators that support four qubits based on the simulator list. Finally, the server (10) may third filter candidate simulators that support expected value as an output type to determine the first simulator (SM1) and the fourth simulator (SM4).
서버(10)는 게이트 별 처리 시간 DB를 이용하여 제1 시뮬레이터(SM1) 및 제4 시뮬레이터(SM4)의 예상 시뮬레이션 시간을 계산할 수 있다. 일 예시에서, 제1 시뮬레이터(SM1)는 병렬로 연결된 X 게이트(gx) 및 아다마르 게이트(gh)를 처리하는데 3분이 소요되고, CNOT 게이트(gcn)를 처리하는데 7분이 소요되고, 프레드릭 게이트(gfk)를 처리하는데 5분이 소요되는 것으로 게이트 별 처리 시간 DB에 기재될 수 있고, 서버(10)는 상기 처리 시간을 합함으로써 예상 시뮬레이션 시간으로 15분을 계산할 수 있다. 유사하게, 제4 시뮬레이터(SM4)는 병렬로 연결된 X 게이트(gx) 및 아다마르 게이트(gh)를 처리하는데 2분이 소요되고, CNOT 게이트(gcn)를 처리하는데 4분이 소요되고, 프레드릭 게이트(gfk)를 처리하는데 3분이 소요되는 것으로 게이트 별 처리 시간 DB에 기재될 수 있고, 서버(10)는 상기 처리 시간을 합함으로써 예상 시뮬레이션 시간으로 9분을 계산할 수 있다. 결과적으로 서버(10)는 가장 빠른 시뮬레이션 시간을 갖는 제4 시뮬레이터(SM4)를 사용자에게 최적의 시뮬레이터로 제시할 수 있다. The server (10) can calculate the expected simulation times of the first simulator (SM1) and the fourth simulator (SM4) using the processing time DB per gate. In one example, the first simulator (SM1) can be recorded in the processing time DB per gate as taking 3 minutes to process the parallel-connected X gate (gx) and the Hadamard gate (gh), taking 7 minutes to process the CNOT gate (gcn), and taking 5 minutes to process the Frederick gate (gfk), and the server (10) can calculate 15 minutes as the expected simulation time by adding the processing times. Similarly, the fourth simulator (SM4) can be recorded in the processing time DB for each gate as taking 2 minutes to process the parallel-connected X gate (gx) and Hadamard gate (gh), 4 minutes to process the CNOT gate (gcn), and 3 minutes to process the Frederick gate (gfk), and the server (10) can calculate 9 minutes as the expected simulation time by adding the processing times. As a result, the server (10) can present the fourth simulator (SM4) with the fastest simulation time as the optimal simulator to the user.
본 개시의 일 실시예에 따르면, 필터링을 통해 시뮬레이션 가능한 시뮬레이터를 확인하고 이에 대한 시뮬레이션 시간을 측정함으로써, 시뮬레이션이 불가능한 시뮬레이터에 대해서 불필요하게 시뮬레이션 시간을 계산함으로써 낭비될 수 있는 리소스를 절약할 수 있다. 또한, 간단하게 시뮬레이션 시간을 계산하고 이를 사용자에게 제시함으로써 사용자로 하여금 불필요하게 여러 개의 시뮬레이터를 활용하는 것이 아니라 최적의 시뮬레이터만을 활용하여 시뮬레이션을 수행할 수 있고 결과적으로 사용자의 SDK 활용 편의성이 증대될 수 있다.According to one embodiment of the present disclosure, by checking a simulator that can be simulated through filtering and measuring the simulation time for the simulator, resources that would otherwise be wasted by unnecessarily calculating simulation times for simulators that cannot be simulated can be saved. In addition, by simply calculating the simulation time and presenting it to the user, the user can perform simulations by utilizing only the optimal simulator instead of unnecessarily utilizing multiple simulators, and as a result, the convenience of utilizing the SDK for the user can be increased.
도 10은 본 개시의 예시적 실시예에 따른 양자 컴퓨팅 시뮬레이션 방법을 나타내는 순서도이다. 상세하게는, 도 10은 도 7의 시뮬레이션 시간 계산 단계(S332)에 대한 일 실시예를 나타낸다.FIG. 10 is a flowchart illustrating a quantum computing simulation method according to an exemplary embodiment of the present disclosure. Specifically, FIG. 10 illustrates one embodiment of a simulation time calculation step (S332) of FIG. 7.
도 10을 참조하면, 서버(10)는 양자 회로에 포함된 게이트들 중 복수의 양자선들과 연결되는 게이트들을 구별할 수 있다(S332_1). 서버(10)는 게이트 별 처리 시간 DB를 이용하여 하나의 양자선에만 연결되는 게이트는 무시하고, 복수의 양자 선들과 연결되는 게이트들에 대응하는 처리 시간의 합 만을 이용하여 시뮬레이션 시간을 결정할 수 있다(S332_2)Referring to Fig. 10, the server (10) can distinguish gates connected to multiple quantum lines among the gates included in the quantum circuit (S332_1). The server (10) can use the processing time DB for each gate to ignore gates connected to only one quantum line and determine the simulation time using only the sum of the processing times corresponding to gates connected to multiple quantum lines (S332_2).
실시예에 따라서, 하나의 양자 선만 연결되는 게이트(예를 들면, X 게이트, Y 게이트, Z 게이트, 아다마르 게이트)에 대한 처리 시간에 비해 복수의 양자 선들에 연결되는 게이트(예를 들면, CNOT 게이트, 스왑 게이트, 프레드킨 게이트, 토폴리 게이트)에 대한 처리속도가 상대적으로 오래 걸릴 수 있다. In some embodiments, the processing speed for gates that connect multiple quantum lines (e.g., CNOT gate, SWAP gate, Fredkin gate, Topoli gate) may take relatively longer than the processing time for gates that connect only one quantum line (e.g., X gate, Y gate, Z gate, Hadamard gate).
본 개시의 일 실시예에 따르면, 상대적으로 편차가 적고 빠른 시간에 처리 가능한 하나의 양자선에 연결되는 게이트는 무시하고, 상대적으로 오래 걸리는 복수의 양자선들에 연결되는 게이트 만을 활용하여 시뮬레이션 시간을 예측함으로써 시뮬레이션 시간을 계산하는 시간을 감소시키고, 적은 리소스를 활용하여 사용자에게 시뮬레이터를 추천할 수 있다.According to one embodiment of the present disclosure, the time for calculating the simulation time is reduced by ignoring the gates connected to a single quantum wire that has relatively little deviation and can be processed in a short time, and only using the gates connected to a plurality of quantum wires that take a relatively long time to predict the simulation time, and the simulator can be recommended to the user by utilizing fewer resources.
도 11은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.FIG. 11 is a block diagram illustrating a computing system according to an exemplary embodiment of the present disclosure.
도 11을 참조하면, 컴퓨팅 시스템(1000)은 서버(10) 또는 사용자 단말(20)를 구성할 수 있고, 프로세서(1100), 메모리 장치(1200), 스토리지 장치(1300), 파워 서플라이(1400) 및 디스플레이 장치(1500)를 포함할 수 있다. 한편, 도 11에는 도시되지 않았지만, 컴퓨팅 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.Referring to FIG. 11, the computing system (1000) may comprise a server (10) or a user terminal (20), and may include a processor (1100), a memory device (1200), a storage device (1300), a power supply (1400), and a display device (1500). Meanwhile, although not shown in FIG. 11, the computing system (1000) may further include ports that may communicate with a video card, a sound card, a memory card, a USB device, or the like, or communicate with other electronic devices.
이와 같이, 컴퓨팅 시스템(1000)에 포함된 프로세서(1100), 메모리 장치(1200), 스토리지 장치(1300), 파워 서플라이(1400) 및 디스플레이 장치(1500)는, 본 발명의 기술적 사상에 의한 실시예들에 따른 서버(10) 중 어느 하나를 구성하여 양자 컴퓨팅 시뮬레이션 방법을 수행할 수 있다. 구체적으로, 프로세서(1100)는 메모리 장치(1200), 스토리지 장치(1300), 파워 서플라이(1400) 및 디스플레이 장치(1500)를 제어함으로써 도 1 내지 도 10b에서 상술한 가상 사설 네트워크 운용 시스템(10)의 동작 방법을 수행할 수 있다. In this way, the processor (1100), the memory device (1200), the storage device (1300), the power supply (1400), and the display device (1500) included in the computing system (1000) can perform a quantum computing simulation method by configuring any one of the servers (10) according to the embodiments of the technical idea of the present invention. Specifically, the processor (1100) can perform the operation method of the virtual private network operation system (10) described above in FIGS. 1 to 10B by controlling the memory device (1200), the storage device (1300), the power supply (1400), and the display device (1500).
프로세서(1100)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(1100)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 프로세서(1100)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(1600)를 통하여 메모리 장치(1200), 스토리지 장치(1300) 및 디스플레이 장치(1500)와 통신을 수행할 수 있다. 실시예에 따라, 프로세서(1100)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.The processor (1100) can perform specific calculations or tasks. According to an embodiment, the processor (1100) can be a microprocessor, a central processing unit (CPU). The processor (1100) can communicate with a memory device (1200), a storage device (1300), and a display device (1500) through a bus (1600), such as an address bus, a control bus, and a data bus. According to an embodiment, the processor (1100) can also be connected to an expansion bus, such as a Peripheral Component Interconnect (PCI) bus.
메모리 장치(1200)는 컴퓨팅 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(1200)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 스토리지 장치(1300)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive), 씨디롬(CD-ROM) 등을 포함할 수 있다. 스토리지 장치(1300)는 도 1 내지 도 10b에서 상술한 양자 컴퓨팅 시뮬레이션 방법에 관한 프로그램, 응용 프로그램 데이터, 시스템 데이터, 운영 체제 데이터 등을 저장할 수 있다.The memory device (1200) can store data required for the operation of the computing system (1000). For example, the memory device (1200) can be implemented as DRAM, mobile DRAM, SRAM, PRAM, FRAM, RRAM, and/or MRAM. The storage device (1300) can include a solid state drive, a hard disk drive, a CD-ROM, etc. The storage device (1300) can store programs, application data, system data, operating system data, etc. related to the quantum computing simulation method described above in FIGS. 1 to 10b.
디스플레이 장치(1500)는 사용자에 대한 알림을 수행하는 출력 수단으로서 양자 컴퓨팅 시뮬레이션 방법에 대한 정보를 사용자 등에게 표시하여 알릴 수 있다. 전원 장치(1400)는 컴퓨팅 시스템(1000)의 동작에 필요한 동작 전압을 공급할 수 있다.The display device (1500) can be used as an output means for notifying a user and can display information about a quantum computing simulation method to the user. The power supply device (1400) can supply an operating voltage necessary for the operation of the computing system (1000).
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 발명되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 발명의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been invented in the drawings and specifications. Although specific terms have been used in this specification to describe the embodiments, these have been used only for the purpose of explaining the technical idea of the present invention and have not been used to limit the meaning or the scope of the present invention described in the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Accordingly, the true technical protection scope of the present invention should be determined by the technical idea of the appended claims.
Claims (11)
양자 소자들을 포함하는 양자 라이브러리를 로드하는 단계;
상기 양자 라이브러리에 기초하여 양자 회로를 설계하는 단계;
상기 양자 회로를 분석함으로써 복수의 후보 시뮬레이터 중 시뮬레이터를 선택하는 단계;
선택된 상기 시뮬레이터를 활용하여 상기 양자 회로를 시뮬레이션 한 결과를 획득하는 단계;
상기 시뮬레이션 결과에 기초하여 양자 컴퓨터에 상기 양자 회로를 전송하는 단계;를 포함하고,
상기 시뮬레이터를 선택하는 단계는,
상기 복수의 후보 시뮬레이터들에 대한 정보를 포함하는 시뮬레이터 리스트를 획득하는 단계;및
상기 양자 회로를 기초로 상기 복수의 후보 시뮬레이터 중 최적의 시뮬레이터를 제시하는 단계;를 포함하고,
상기 최적의 시뮬레이터를 제시하는 단계는,
상기 양자 회로에 포함된 양자 소자들을 확인하는 단계;
상기 시뮬레이터 리스트를 기초로 상기 확인된 양자 소자를 지원하는 후보 시뮬레이터들을 1차 필터링하는 단계;
상기 양자 회로를 구성하는데 필요한 큐비트 개수를 확인하는 단계;
상기 시뮬레이터 리스트를 기초로 상기 1차 필터링된 후보 시뮬레이터들 중 상기 확인된 큐비트 개수를 지원하는 후보 시뮬레이터들을 2차 필터링하는 단계;
사용자로부터 시뮬레이션 결과 획득하고자 하는 아웃풋 타입을 획득하는 단계;
상기 시뮬레이터 리스트를 기초로 상기 2차 필터링된 후보 시뮬레이터들 중 상기 아웃풋 타입을 지원하는 후보 시뮬레이터들을 3차 필터링하는 단계;및
상기 3차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In a quantum computing simulation method performed by a server,
A step of loading a quantum library containing quantum elements;
A step of designing a quantum circuit based on the above quantum library;
A step of selecting a simulator among a plurality of candidate simulators by analyzing the above quantum circuit;
A step of obtaining a result of simulating the quantum circuit by utilizing the selected simulator;
A step of transmitting the quantum circuit to a quantum computer based on the simulation results;
The steps for selecting the above simulator are:
A step of obtaining a simulator list including information on the plurality of candidate simulators; and
A step of presenting an optimal simulator among the plurality of candidate simulators based on the quantum circuit;
The steps of presenting the above optimal simulator are:
A step of verifying quantum elements included in the above quantum circuit;
A step of first filtering candidate simulators supporting the confirmed quantum device based on the above simulator list;
A step of checking the number of qubits required to configure the above quantum circuit;
A step of secondarily filtering candidate simulators that support the confirmed number of qubits among the candidate simulators that have been filtered first based on the above simulator list;
A step for obtaining the output type desired to obtain simulation results from the user;
A step of thirdly filtering candidate simulators that support the output type among the second-filtered candidate simulators based on the above simulator list; and
A quantum computing simulation method, comprising the step of presenting the third filtered candidate simulator to a user.
상기 양자 회로는,
제1 큐비트의 양자 상태를 나타내는 제1 양자 선;
제2 큐비트의 양자 상태를 나타내는 제2 양자 선;및
상기 제1 큐비트 및 상기 제2 큐비트 중 적어도 하나에 대한 연산을 수행하는 양자 게이트;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In the first paragraph,
The above quantum circuit,
A first quantum line representing the quantum state of the first qubit;
a second quantum line representing the quantum state of the second qubit; and
A quantum computing simulation method comprising: a quantum gate performing an operation on at least one of the first qubit and the second qubit.
상기 양자 게이트는,
큐비트의 '0'또는'1'에 해당하는 상태 확률을 교환하거나, 확률 진폭 또는 확률 위상을 변경하는 파울리 게이트;
큐비트를 '0'및'1'의 중첩 상태로 고정시키는 아다마르 게이트;
복수의 큐비트들을 얽힘 상태로 만드는 CNOT 게이트;
복수의 큐비트들의 상태를 스왑하는 스왑 게이트;
제1 큐비트 및 제2 큐비트의 상태에 기초하여 제3 큐비트의 상태를 반전시키는 토폴리 게이트;및
제1 큐비트의 상태에 기초하여 제2 큐비트 및 제3 큐비트의 상태를 스왑하는 프레드킨 게이트;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In the second paragraph,
The above quantum gate is,
Pauli gate, which swaps the state probability corresponding to '0' or '1' of a qubit, or changes the probability amplitude or probability phase;
Hadamard gate, which fixes a qubit in a superposition of '0' and '1';
CNOT gate that entangles multiple qubits;
A swap gate that swaps the states of multiple qubits;
A Topolli gate that inverts the state of the third qubit based on the states of the first and second qubits; and
A quantum computing simulation method comprising a Fredkin gate that swaps the states of a second qubit and a third qubit based on the state of a first qubit.
상기 2차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계는,
상기 필터링된 후보 시뮬레이터 별로 제시된 게이트 별 처리 시간 DB를 획득하는 단계;
상기 필터링된 후보 시뮬레이터 각각에 대해, 상기 게이트 별 처리 시간 DB를 이용하여 상기 양자 회로에 포함된 게이트들을 시뮬레이션 하기 위한 시뮬레이션 시간을 계산하는 단계;및
상기 시뮬레이션 시간을 이용하여 상기 사용자에게 최적의 시뮬레이션을 제시하는 단계;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In the first paragraph,
The step of presenting the above second filtered candidate simulator to the user is:
A step of obtaining a processing time DB for each gate presented for each of the filtered candidate simulators;
For each of the above filtered candidate simulators, a step of calculating a simulation time for simulating gates included in the quantum circuit using the gate-specific processing time DB; and
A quantum computing simulation method, comprising: a step of presenting an optimal simulation to the user by using the above simulation time;
상기 시뮬레이션 시간을 계산하는 단계는,
상기 양자 회로에 포함된 게이트들 중 복수의 양자 선들과 연결되는 게이트를 구별하는 단계;
상기 게이트 별 처리 시간 DB를 이용하여 상기 복수의 양자 선들과 연결되는 게이트들에 대응되는 처리시간의 합을 상기 시뮬레이션 시간으로 결정하는 단계;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In Article 6,
The steps for calculating the above simulation time are:
A step of distinguishing gates connected to multiple quantum lines among the gates included in the quantum circuit;
A quantum computing simulation method, comprising: a step of determining the sum of processing times corresponding to gates connected to the plurality of quantum lines as the simulation time using the processing time DB for each gate;
상기 시뮬레이션 시간을 계산하는 단계는,
상기 양자 회로를 분석함으로써 병렬로 연결된 양자 소자를 구별하는 단계;
상기 게이트 별 처리 시간 DB를 이용하여 상기 병렬로 연결된 게이트들의 동시 처리 시간을 획득하는 단계;및
상기 병렬로 연결된 게이트들의 동시 처리 시간과 나머지 처리 시간의 합을 상기 시뮬레이션 시간으로 결정하는 단계;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In Article 7,
The steps for calculating the above simulation time are:
A step of distinguishing parallel-connected quantum elements by analyzing the above quantum circuit;
A step of obtaining the simultaneous processing time of the parallel-connected gates by using the processing time DB for each gate; and
A quantum computing simulation method, comprising: a step of determining the sum of the simultaneous processing times of the parallel-connected gates and the remaining processing times as the simulation time;
상기 2차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계는,
상기 필터링된 후보 시뮬레이터 별로 제시된 게이트 별 처리 시간 DB를 획득하는 단계;
상기 필터링된 후보 시뮬레이터 각각에 대해, 상기 게이트 별 처리 시간 DB를 이용하여 상기 양자 회로에 포함된 게이트들을 시뮬레이션 하기 위한 시뮬레이션 시간을 계산하는 단계;및
상기 사용자에게 상기 필터링된 후보 시뮬레이터 별 상기 시뮬레이션 시간을 제시하는 단계;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In the first paragraph,
The step of presenting the above second filtered candidate simulator to the user is:
A step of obtaining a processing time DB for each gate presented for each of the filtered candidate simulators;
For each of the above filtered candidate simulators, a step of calculating a simulation time for simulating gates included in the quantum circuit using the gate-specific processing time DB; and
A quantum computing simulation method, comprising: a step of presenting the simulation time for each of the filtered candidate simulators to the user;
상기 최적의 시뮬레이터를 제시하는 단계는,
상기 양자 회로에 포함된 양자 소자들을 확인하는 단계;
상기 시뮬레이터 리스트를 기초로 상기 확인된 양자 소자를 지원하는 후보 시뮬레이터들을 1차 필터링하는 단계;
상기 양자 회로를 구성하는데 필요한 최소한의 큐비트 개수를 확인하는 단계;
상기 시뮬레이터 리스트를 기초로 상기 1차 필터링된 후보 시뮬레이터들 중 상기 확인된 큐비트 개수를 지원하는 후보 시뮬레이터들을 2차 필터링하는 단계;
상기 사용자로부터 시뮬레이션 결과 획득하고자 하는 아웃풋 타입을 획득하는 단계;
상기 시뮬레이터 리스트를 기초로 상기 2차 필터링된 후보 시뮬레이터들 중 상기 아웃풋 타입을 지원하는 후보 시뮬레이터들을 3차 필터링하는 단계;및
상기 3차 필터링된 후보 시뮬레이터를 사용자에게 제시하는 단계;를 포함하는 양자 컴퓨팅 시뮬레이션 방법.
In the first paragraph,
The steps of presenting the above optimal simulator are:
A step of verifying quantum elements included in the above quantum circuit;
A step of first filtering candidate simulators supporting the confirmed quantum device based on the above simulator list;
A step of checking the minimum number of qubits required to configure the above quantum circuit;
A step of secondarily filtering candidate simulators that support the confirmed number of qubits among the candidate simulators that have been filtered first based on the above simulator list;
A step of obtaining an output type for which a simulation result is desired from the above user;
A step of thirdly filtering candidate simulators that support the output type among the second-filtered candidate simulators based on the above simulator list; and
A quantum computing simulation method, comprising the step of presenting the third filtered candidate simulator to a user.
상기 소프트웨어 개발 키트를 구성하는 적어도 하나의 명령어를 저장하는 메모리;및
상기 적어도 하나의 명령어를 활용하여 상기 사용자에게 소프트웨어 개발 환경을 제공하는 프로세서;를 포함하고,
상기 프로세서는,
상기 메모리로부터 양자 소자들을 포함하는 양자 라이브러리를 로드하고,
상기 양자 라이브러리에 기초하여 양자 회로를 설계하고,
상기 양자 회로를 분석함으로써 복수의 후보 시뮬레이터 중 시뮬레이터를 선택하고,
선택된 상기 시뮬레이터를 활용하여 상기 양자 회로를 시뮬레이션 한 결과를 획득하고,
상기 시뮬레이션 결과에 기초하여 양자 컴퓨터에 상기 양자 회로를 전송하고,
상기 복수의 후보 시뮬레이터들에 대한 정보를 포함하는 시뮬레이터 리스트를 획득하고,
상기 양자 회로에 포함된 양자 소자들을 확인하고,
상기 시뮬레이터 리스트를 기초로 상기 확인된 양자 소자를 지원하는 후보 시뮬레이터들을 1차 필터링하고,
상기 양자 회로를 구성하는데 필요한 큐비트 개수를 확인하고,
상기 시뮬레이터 리스트를 기초로 상기 1차 필터링된 후보 시뮬레이터들 중 상기 확인된 큐비트 개수를 지원하는 후보 시뮬레이터들을 2차 필터링하고,
상기 사용자로부터 시뮬레이션 결과 획득하고자 하는 아웃풋 타입을 획득하고,
상기 시뮬레이터 리스트를 기초로 상기 2차 필터링된 후보 시뮬레이터들 중 상기 아웃풋 타입을 지원하는 후보 시뮬레이터들을 3차 필터링하고,
상기 3차 필터링된 후보 시뮬레이터를 사용자에게 최적의 시뮬레이터로 제시하는 것을 특징으로 하는 서버.
For a server that provides users with a software development kit to simulate quantum circuits,
A memory storing at least one command constituting the software development kit; and
A processor providing a software development environment to the user by utilizing at least one of the above instructions;
The above processor,
Load a quantum library containing quantum elements from the above memory,
Design a quantum circuit based on the above quantum library,
By analyzing the above quantum circuit, a simulator is selected from among multiple candidate simulators,
Obtain the results of simulating the quantum circuit using the selected simulator,
Based on the above simulation results, the quantum circuit is transmitted to a quantum computer,
Obtain a list of simulators containing information about the above multiple candidate simulators,
Verify the quantum elements included in the above quantum circuit,
Based on the above simulator list, candidate simulators supporting the above-mentioned confirmed quantum devices are first filtered,
Check the number of qubits required to construct the above quantum circuit,
Based on the above simulator list, candidate simulators that support the above-mentioned number of qubits are secondarily filtered among the candidate simulators that have been first filtered,
Obtain the output type that you want to obtain the simulation results from the above user,
Based on the above simulator list, candidate simulators that support the above output type are filtered out among the candidate simulators that have been filtered out in the second stage, and
A server characterized in that it presents the above 3rd filtered candidate simulator as the optimal simulator to the user.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020240024876A KR102696749B1 (en) | 2024-02-21 | 2024-02-21 | A quantum computing simulation method providing software development kit by using quantum library and a server performing thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020240024876A KR102696749B1 (en) | 2024-02-21 | 2024-02-21 | A quantum computing simulation method providing software development kit by using quantum library and a server performing thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102696749B1 true KR102696749B1 (en) | 2024-08-20 |
Family
ID=92592524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020240024876A KR102696749B1 (en) | 2024-02-21 | 2024-02-21 | A quantum computing simulation method providing software development kit by using quantum library and a server performing thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102696749B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210137772A (en) * | 2020-05-11 | 2021-11-18 | 삼성에스디에스 주식회사 | Apparatus and method for optimizing quantum computation |
KR20220051132A (en) * | 2020-10-14 | 2022-04-26 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | Quantum circuit determination method and apparatus, device, and storage medium |
-
2024
- 2024-02-21 KR KR1020240024876A patent/KR102696749B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210137772A (en) * | 2020-05-11 | 2021-11-18 | 삼성에스디에스 주식회사 | Apparatus and method for optimizing quantum computation |
KR20220051132A (en) * | 2020-10-14 | 2022-04-26 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | Quantum circuit determination method and apparatus, device, and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kazil et al. | Utilizing python for agent-based modeling: The mesa framework | |
Cao et al. | Spatial multi-objective land use optimization: extensions to the non-dominated sorting genetic algorithm-II | |
KR102302609B1 (en) | Neural Network Architecture Optimization | |
Guan et al. | A general-purpose parallel raster processing programming library test application using a geographic cellular automata model | |
Engler et al. | The MIGCLIM R package–seamless integration of dispersal constraints into projections of species distribution models | |
CN104303168B (en) | Certification for the application of flexible resource demand | |
Eldrandaly | A GEP-based spatial decision support system for multisite land use allocation | |
Xia et al. | A high-performance cellular automata model for urban simulation based on vectorization and parallel computing technology | |
Samuelson et al. | Agent-based simulation comes of age: software opens up many new areas of application. | |
Currat et al. | SPLATCHE3: simulation of serial genetic data under spatially explicit evolutionary scenarios including long-distance dispersal | |
CN110516810B (en) | Quantum program processing method and device, storage medium and electronic device | |
Ghasemi et al. | GraphA: An efficient ReRAM-based architecture to accelerate large scale graph processing | |
Elazhary | Cloud computing for big data | |
Lee et al. | Fast graph mining with HBase | |
Del-Pozo-Puñal et al. | A scalable simulator for cloud, fog and edge computing platforms with mobility support | |
Jin et al. | QPlayer: Lightweight, scalable, and fast quantum simulator | |
CN106575286A (en) | Recursive hierarchical process for combinatorial optimization and statistical sampling | |
KR102696749B1 (en) | A quantum computing simulation method providing software development kit by using quantum library and a server performing thereof | |
Liu et al. | Fixation dynamics on hypergraphs | |
Bernaschi et al. | Multi-GPU codes for spin systems simulations | |
KR102696751B1 (en) | A quantum circuit test method obtaining process time by gate using a plurality of the simulators and a server performing thereof | |
Jendrsczok et al. | A scalable configurable architecture for the massively parallel GCA model | |
Morsali et al. | Ima-gnn: In-memory acceleration of centralized and decentralized graph neural networks at the edge | |
CN117151231A (en) | Method, device and medium for solving linear system by using variable component sub-line | |
EP4281911A1 (en) | Quantum processor architecture with compiler support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |