Algorithm selection program, algorithm selection method, and information processing device

The algorithm selection program efficiently switches between quantum chemical calculation algorithms based on interatomic distance and iteration slope, addressing the trade-off between accuracy and time, resulting in improved energy curve generation.

JP7872499B2Active Publication Date: 2026-06-10FUJITSU LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FUJITSU LTD
Filing Date
2022-09-27
Publication Date
2026-06-10

AI Technical Summary

Technical Problem

There is a trade-off between accuracy and execution time in quantum chemical calculation algorithms, necessitating the selection of an appropriate algorithm for efficient generation of energy curve information.

Method used

An algorithm selection program that dynamically switches between different quantum chemical calculation algorithms based on the slope of the relationship between interatomic distances and the number of iterations, ensuring accurate and efficient generation of energy curve information.

🎯Benefits of technology

This approach allows for more accurate and faster generation of energy curve information by balancing accuracy and execution time, reducing overall computational time and improving energy calculation precision.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007872499000001
    Figure 0007872499000001
  • Figure 0007872499000002
    Figure 0007872499000002
  • Figure 0007872499000003
    Figure 0007872499000003
Patent Text Reader

Abstract

To efficiently generate energy curve information by quantum chemical calculations.SOLUTION: An information processing device 10 calculates molecular energies 16a, 16b, 16c corresponding to interatomic distances 15a, 15b, 15c using an algorithm 13 that iteratively updates a solution until a convergence condition is satisfied. The information processing device 10 identifies interatomic distances 15d, etc., for which molecular energies are calculated using an algorithm 14, on the basis of the inclination of a line segment that indicates the relationship between the interatomic distances 15a, 15b, 15c and the number of iterations 17a, 17b, 17c. The information processing device 10 calculates the molecular energies 16d, etc., that correspond to the identified interatomic distances 15d, etc., using the algorithm 14.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

【Technical Field】 【0001】 The present invention relates to an algorithm selection program, an algorithm selection method, and an information processing device. 【Background Art】 【0002】 A computer may perform molecular simulations that analyze the properties of molecules through numerical calculations. Molecular simulations may be used in industrial fields such as material development and pharmaceutical development. Molecular simulations include quantum chemical calculations that microscopically calculate the energy of a molecule based on the electronic state of the molecule and the Schrödinger equation. 【0003】 Algorithms for quantum chemical calculations include the Full Configuration Interaction (FCI), Coupled Cluster Singles and Doubles (and Triples) (CCSD(T)), Variational Quantum Eigensolver (VQE), etc. Some algorithms may repeatedly calculate the energy of a molecule while changing the electron configuration and search for the electron configuration that minimizes the energy under a given molecular structure. In this case, the algorithm outputs the minimum energy as the ground energy. 【0004】 Note that in the configuration interaction method, a quantum chemical calculation device has been proposed that dynamically selects some of the multiple molecular orbitals of a molecule and calculates the energy of the molecule based on the electron configuration limited to the selected molecular orbitals. 【Prior Art Documents】 【Patent Documents】 【0005】 【Patent Document 1】 International Publication No. 2022 / 097298 【Summary of the Invention】 [Problems that the invention aims to solve] 【0006】 A computer can generate energy curve information showing the relationship between interatomic distance and energy by calculating the energy of a molecule while varying the distance between two atoms of interest. However, there is a trade-off between accuracy and execution time in quantum chemical calculation algorithms. Therefore, from the standpoint of efficiency in quantum chemical calculations, it is important to select the appropriate algorithm for multiple interatomic distances. Thus, in one aspect, the present invention aims to efficiently generate energy curve information using quantum chemical calculations. [Means for solving the problem] 【0007】 In one embodiment, an algorithm selection program is provided that causes a computer to perform the following processes: Calculate each of several first molecular energies corresponding to several first interatomic distances using a first algorithm that iteratively updates the solution until a convergence condition is met. Identify several second interatomic distances for which molecular energies are calculated using a second algorithm different from the first algorithm, based on the slope of a line segment showing the relationship between the several first interatomic distances and the number of iterations of the first algorithm until the convergence condition is met. Calculate several second molecular energies corresponding to the identified several second interatomic distances using the second algorithm. 【0008】 In one embodiment, a method for selecting an algorithm to be executed by a computer is provided. In another embodiment, an information processing device having a storage unit and a processing unit is provided. [Effects of the Invention] 【0009】 One aspect is the efficient generation of energy curve information through quantum chemical calculations. can. [Brief explanation of the drawing] 【0010】 [Figure 1]This is a diagram illustrating the information processing device of the first embodiment. [Figure 2] This figure shows an example of the hardware of the information processing device according to the second embodiment. [Figure 3] This figure shows a comparison of accuracy and execution time between different algorithms. [Figure 4] This figure shows an example of a potential energy curve. [Figure 5] This graph shows an example of the relationship between distance and the number of repetitions. [Figure 6] This graph shows an example of the relationship between distance, error, and slope. [Figure 7] This is a block diagram showing examples of functions of an information processing device. [Figure 8] This figure shows an example of the structure of control data. [Figure 9] This flowchart shows an example of a procedure for quantum chemical calculations. [Figure 10] This flowchart shows an example of the procedure for switching algorithms. [Figure 11] This figure shows an example of piecewise linear regression analysis. [Figure 12] This figure shows another example of piecewise linear regression analysis. [Modes for carrying out the invention] 【0011】 This embodiment will be described below with reference to the drawings. [First Embodiment] A first embodiment will be described. 【0012】 Figure 1 is a diagram illustrating the information processing device of the first embodiment. The information processing apparatus 10 of the first embodiment performs quantum chemical calculations, which are a type of molecular simulation. The information processing apparatus 10 generates energy curve information indicating the relationship between interatomic distances and molecular energy. This energy curve information may be referred to as a potential energy curve (PEC). The information processing apparatus 10 may be a client apparatus or a server apparatus. The information processing apparatus 10 may also be called a computer, a molecular simulation apparatus, a quantum chemical calculation apparatus, or an algorithm selection apparatus. 【0013】 The information processing apparatus 10 includes a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile semiconductor memory such as a RAM (Random Access Memory), or a non-volatile storage such as an HDD (Hard Disk Drive) or a flash memory. The processing unit 12 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). However, the processing unit 12 may include an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). The processor executes a program stored in a memory such as a RAM (which may also be the storage unit 11). A collection of processors may also be called a multiprocessor or simply a "processor". 【0014】 The storage unit 11 stores a plurality of different interatomic distances including interatomic distances 15a, 15b, 15c, and 15d. The interatomic distances 15a, 15b, 15c, and 15d are the distances between specific two atoms included in the molecule, and are the interatomic distances for which the molecular energy is calculated. The interatomic distance 15b is greater than the interatomic distance 15a, the interatomic distance 15c is greater than the interatomic distance 15b, and the interatomic distance 15d is greater than the interatomic distance 15c. 【0015】 Furthermore, the memory unit 11 stores multiple molecular energies, including molecular energies 16a, 16b, 16c, and 16d. The molecular energies 16a, 16b, 16c, and 16d correspond to interatomic distances 15a, 15b, 15c, and 15d, and are calculated by the processing unit 12 using a method described later. The molecular energies 16a, 16b, 16c, and 16d are, for example, the ground energy, which is the minimum energy a molecule possesses under a specified interatomic distance. 【0016】 Molecular energies 16a, 16b, and 16c are calculated using algorithm 13. Molecular energy 16d is calculated using either algorithm 13 or algorithm 14. Algorithm 13 iteratively updates the solution until the convergence condition is met. For example, algorithm 13 repeatedly calculates the molecular energy while changing the electron configuration and searches for the electron configuration that minimizes the molecular energy. The convergence condition is, for example, that the difference between the latest molecular energy and the molecular energy of the previous iteration is less than a threshold. 【0017】 Algorithm 13 is, for example, CCSD (Coupled Cluster Singles and Doubles) or CCSD(T). Algorithm 14 is a different algorithm from algorithm 13. Preferably, algorithm 14 has a longer execution time and higher solution accuracy than algorithm 13. Algorithm 14 is, for example, VQE. The information processing device 10 may have one or both of algorithms 13 and 14 executed by other information processing devices. Algorithm 14 may be executed by a von Neumann-type classical computer or by a gate-type quantum computer. 【0018】 Algorithm 13 may be an approximate algorithm that ignores the effects of higher-order electronic excitations. In that case, the accuracy of the solution obtained by Algorithm 13 may be relatively high when the interatomic distance is small. On the other hand, as the interatomic distance increases, the influence of outer molecular orbitals on molecular energy becomes greater, which may result in a lower accuracy of the solution obtained by Algorithm 13. Furthermore, in Algorithm 13, there may be a negative correlation between the accuracy of the solution and the number of iterations, and the number of iterations may increase as the accuracy of the solution decreases. This is because, when the accuracy of the solution is low, even if the number of iterations is increased, the solution may continue to fluctuate near the correct value and may not converge easily. 【0019】 Furthermore, the memory unit 11 stores multiple iteration counts, including iteration counts 17a, 17b, and 17c. Iteration counts 17a, 17b, and 17c are the number of iterations of algorithm 13 until the convergence condition is satisfied, and correspond to the interatomic distances 15a, 15b, and 15c. Iteration counts 17a, 17b, and 17c are measured when calculating the molecular energies 16a, 16b, and 16c. 【0020】 The processing unit 12 calculates multiple first molecular energies, including molecular energies 16a, 16b, and 16c, corresponding to multiple first interatomic distances, including interatomic distances 15a, 15b, and 15c, using algorithm 13. For example, the processing unit 12 calculates the molecular energies starting from the smallest of the set of interatomic distances. At this time, the processing unit 12 measures multiple iteration counts, including iteration counts 17a, 17b, and 17c, corresponding to multiple first interatomic distances, including interatomic distances 15a, 15b, and 15c. 【0021】 The processing unit 12 determines whether the slope of the line segment representing the relationship between multiple first interatomic distances and multiple iteration counts exceeds a threshold. The slope of the line segment is, for example, the ratio of the change in the number of iterations to the increase in the interatomic distance when the multiple iteration counts are arranged in ascending order of interatomic distance. The processing unit 12 may calculate the line segment from the multiple first interatomic distances and multiple iteration counts using the least squares method. When calculating molecular energy in ascending order of interatomic distances, the processing unit 12 may calculate the slope from a fixed number of interatomic distances (for example, 5) or from all interatomic distances. 【0022】 The threshold is, for example, the slope calculated at the point immediately preceding the most recent interatomic distance among a plurality of first interatomic distances. The processing unit 12 may determine whether the slope has exceeded the threshold a certain number of times consecutively (for example, 3 times). For example, while calculating the molecular energy in ascending order of interatomic distances, the processing unit 12 may determine whether the slope at the most recent interatomic distance has been greater than the slope at the previous interatomic distance a certain number of times consecutively. 【0023】 Furthermore, the threshold is, for example, the slope of the line segment in the interval with small interatomic distances, among the slopes of two line segments calculated from the number of iterations of all interatomic distances. The processing unit 12 may calculate the two line segments from all interatomic distances and all iterations using piecewise regression analysis or the like. For example, the processing unit 12 determines whether the slope of the line segment in the interval with large interatomic distances is greater than the slope of the line segment in the interval with small interatomic distances. In this case, each interatomic distance belonging to the interval with large interatomic distances becomes the second interatomic distance. 【0024】 If the slope of the line segment does not exceed the threshold, the processing unit 12 calculates a second molecular energy corresponding to a second interatomic distance greater than any of the interatomic distances 15a, 15b, and 15c, using algorithm 13. The interatomic distance 15d corresponds to the second interatomic distance, and the molecular energy 16d corresponds to the second molecular energy. The interatomic distance 15d is, for example, one step larger than the interatomic distance 15c within the set of interatomic distances in question. Once the molecular energy 16d is calculated, the processing unit 12 may calculate the slope of the new line segment and compare it with the threshold. 【0025】 On the other hand, if the slope of the line segment exceeds a threshold, the processing unit 12 calculates the molecular energy 16d using algorithm 14. In this case, the processing unit 12 may also use algorithm 14 to calculate the remaining molecular energies corresponding to the remaining interatomic distances that are greater than the interatomic distance 15d in the set of interatomic distances in question. 【0026】 The processing unit 12 outputs energy curve information showing the relationship between interatomic distance and calculated molecular energy. The processing unit 12 may store the energy curve information in non-volatile storage, display it on a display device, or transmit it to another information processing device. 【0027】 As described above, the information processing device 10 of the first embodiment calculates each of the multiple first molecular energies corresponding to the multiple first interatomic distances using algorithm 13. If the slope of the line segment showing the relationship between the multiple first interatomic distances and the number of iterations of algorithm 13 does not exceed a threshold, the information processing device 10 calculates the second molecular energy corresponding to the second interatomic distance that is greater than any of the first interatomic distances using algorithm 13. On the other hand, if the slope exceeds a threshold, the information processing device 10 calculates the second molecular energy using algorithm 14, which is different from algorithm 13. 【0028】 This allows for the selection of an appropriate algorithm based on the interatomic distance, resulting in more accurate and faster generation of energy curve information through quantum chemical calculations. For example, the overall execution time is reduced compared to calculating molecular energies for all interatomic distances using a high-precision algorithm. Furthermore, the accuracy of molecular energies is improved compared to calculating molecular energies for all interatomic distances using an algorithm with a shorter execution time. In addition, algorithm 13 tends to decrease in accuracy as the interatomic distance increases, and the number of iterations tends to increase when the accuracy begins to decline significantly. Therefore, algorithm 13 is changed to algorithm 14 in response to the decrease in accuracy, balancing the accuracy of molecular energies with the execution time. 【0029】 Furthermore, if the slope exceeds a threshold, the information processing device 10 may also calculate the remaining molecular energy corresponding to the remaining interatomic distance greater than the second interatomic distance using algorithm 14. This improves the accuracy of the molecular energy across the entire energy curve information. The threshold compared with the slope of the line segment may be the slope at the time immediately preceding the most recent first interatomic distance, or it may be the slope of the line segment with the smaller interatomic distance among the two line segments. This allows the information processing device 10 to appropriately detect any decrease in the accuracy of the molecular energy calculated by algorithm 13. 【0030】 Furthermore, algorithm 14 may be an algorithm that has a longer execution time and higher solution accuracy than algorithm 13. For example, algorithm 13 may be CCSD(T) and algorithm 14 may be VQE. This allows the information processing device 10 to use algorithm 14 to cover interatomic distances for which algorithm 13 has insufficient accuracy, thereby achieving a balance between accuracy and execution time. 【0031】 Furthermore, the information processing device 10 may determine whether or not to use the third algorithm based on molecular information and the amount of available memory, and may use algorithm 13 if the third algorithm is unavailable. This allows for the consideration of other algorithms from the perspective of memory usage, and a more appropriate algorithm to be selected. In addition, the information processing device 10 may estimate memory usage from at least one of the number of electrons and the number of molecular orbitals of the target molecule, and may determine that the third algorithm is unavailable if the estimated memory usage exceeds the amount of available memory. This ensures that the availability of the third algorithm is appropriately determined. 【0032】 Furthermore, the third algorithm may be one that takes longer to execute than algorithm 14 and has higher solution accuracy than algorithm 14. For example, the third algorithm may be FCI. This improves the accuracy of molecular energy across the entire energy curve information for small molecules that require less memory. 【0033】 [Second Embodiment] Next, a second embodiment will be described. The information processing device 100 of the second embodiment generates a potential energy curve showing the relationship between the distance between two atoms of interest and the ground state energy of the molecule by quantum chemical calculations. The information processing device 100 can execute multiple algorithms for quantum chemical calculations. However, some or all of the algorithms may be executed by other information processing devices. Other information processing devices may include quantum computers. 【0034】 The information processing device 100 may be a client device or a server device. Furthermore, the information processing device 100 may be installed in a data center or be included in a cloud system. The cloud system may receive requests for quantum chemical calculation jobs via a network and return the generated potential energy curves. The information processing device 100 may also be called a computer, a molecular simulation device, or a quantum chemical calculation device. The information processing device 100 corresponds to the information processing device 10 of the first embodiment. 【0035】 Figure 2 shows an example of the hardware of the information processing device according to the second embodiment. The information processing device 100 includes a CPU 101, RAM 102, HDD 103, GPU 104, input interface 105, media reader 106, and communication interface 107 connected to a bus. The CPU 101 corresponds to the processing unit 12 of the first embodiment. The RAM 102 or HDD 103 corresponds to the storage unit 11 of the first embodiment. 【0036】 The CPU 101 is a processor that executes program instructions. The CPU 101 loads the program and data stored in the HDD 103 into the RAM 102 and executes the program. The information processing device 100 may have multiple processors. 【0037】 RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by CPU 101 and data used for calculations by CPU 101. The information processing device 100 may have a type of volatile memory other than RAM. 【0038】 The HDD 103 is a non-volatile storage device that stores software programs such as the operating system (OS), middleware, and application software, as well as data. The information processing device 100 may have other types of non-volatile storage, such as flash memory or an SSD (Solid State Drive). 【0039】 The GPU 104 works in conjunction with the CPU 101 to perform image processing and outputs the image to a display device 111 connected to the information processing device 100. The display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector. Other types of output devices, such as a printer, may be connected to the information processing device 100. The GPU 104 may also be used as a GPGPU (General Purpose Computing on Graphics Processing Unit). The GPU 104 can execute programs in response to instructions from the CPU 101. The information processing device 100 may have volatile semiconductor memory other than RAM 102 as GPU memory. 【0040】 The input interface 105 receives input signals from an input device 112 connected to the information processing device 100. The input device 112 is, for example, a mouse, a touch panel, or a keyboard. Multiple input devices may be connected to the information processing device 100. 【0041】 The media reader 106 is a reading device that reads programs and data recorded on the recording medium 113. The recording medium 113 is, for example, a magnetic disk, an optical disk, or semiconductor memory. Magnetic disks include flexible disks (FD) and HDDs. Optical disks include CDs (Compact Discs) and DVDs (Digital Versatile Discs). The media reader 106 copies the programs and data read from the recording medium 113 to other recording media such as RAM 102 or HDD 103. The read programs may be executed by the CPU 101. 【0042】 The recording medium 113 may be a portable recording medium. The recording medium 113 may be used for distributing programs and data. The recording medium 113 and HDD 103 may also be referred to as computer-readable recording media. 【0043】 The communication interface 107 communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or router, or a wireless communication interface connected to a wireless communication device such as a base station or access point. 【0044】 Next, we will explain quantum chemical calculations and their solution algorithms. Quantum chemical calculations are a type of molecular simulation that analyzes molecular structure and intermolecular interactions from an electronic state perspective. Quantum chemical calculations are sometimes used to support materials development and drug development. While quantum chemical calculations are microscopic molecular simulations with high analytical accuracy, they are computationally intensive. 【0045】 Quantum chemical calculations solve the Schrödinger equation HΨ=EΨ, where H is the Hamiltonian, Ψ is the wave function, and E is the energy. The Hamiltonian H depends on the molecular structure of the sample. The wave function Ψ corresponds to the eigenstates of electrons, and the energy E corresponds to the eigenenergy corresponding to Ψ. Quantum chemical calculations calculate the ground energy when the molecular structure is stable. However, directly solving the Schrödinger equation is difficult. 【0046】 Therefore, quantum chemical calculations express the wave function Ψ using basis functions. Basis functions are linear combinations of known functions. Each of the multiple terms in a basis function corresponds to a molecular orbital. A molecular orbital is a possible location for any one of the electrons in a molecule. Quantum chemical calculations accept molecular information indicating the positions of multiple atoms in the molecule, a solution algorithm, and a specified basis function from the user, and calculate the ground energy based on the specified information. However, in the second embodiment, the solution algorithm does not need to be specified. 【0047】 The information processing device 100 generates a potential energy curve through quantum chemical calculations. The potential energy curve shows the potential energy corresponding to different interatomic distances. Potential energy is the energy a molecule possesses when each atom is assumed to be at rest. The horizontal axis of the potential energy curve represents the distance between two specific atoms of interest. The vertical axis of the potential energy curve represents the ground state energy. 【0048】 The unit of distance is, for example, the angstrom (Å). The unit of energy is, for example, the Hartree. Energy is calculated for each of several discrete distances within a given range. These distances may be equally spaced. For example, energy can be calculated from 0.6 Å to 2.6 Å at 0.1 Å intervals. A potential energy curve is generated by plotting the calculated energies and connecting them with lines. The minimum point of the potential energy curve may represent the most stable state of the molecule. The maximum point of the potential energy curve may represent the transition state of the molecule. 【0049】 Figure 3 shows a comparison of accuracy and execution time between different algorithms. In the second embodiment, algorithms 31, 32, and 33 are used for quantum chemical calculations. Algorithm 31 is FCI. Algorithm 32 is CCSD(T), however, CCSD may be used instead of CCSD(T). Algorithm 33 is VQE. VQE may be executed by a gate-type quantum computer, or it may be executed by a classical computer using software that simulates the operation of a quantum computer. In the second embodiment, the information processing device 100 executes VQE using a quantum simulator implemented on a classical computer. 【0050】 FCI is a classical algorithm designed for execution on classical computers. FCI finds the exact energy solution given the specified molecular information and basis functions. Therefore, while FCI provides highly accurate solutions, it is time-consuming. FCI has a computational complexity on the order of the factorial of the number of molecular orbitals. For this reason, it is difficult to calculate the energy of large molecules using FCI. Due to the nature of FCI, which seeks the exact solution, the energy calculated by FCI is sometimes interpreted as the correct energy. 【0051】 Note that "classical computers" refer to, for example, von Neumann-type computers, which are contrasted with "quantum computers." "Classical algorithms" refer to algorithms, for example, which are contrasted with "quantum algorithms" (described later), and do not use quantum circuits. Also, the molecules being simulated are sometimes called "systems." Furthermore, execution time has a positive correlation with resource usage and may be proportional to resource usage. Hardware resources used in quantum chemistry calculations may include processor processing time and memory storage space. 【0052】 CCSD(T) is a classical algorithm intended for execution on classical computers. CCSD(T) finds an approximate energy solution given given molecular information and basis functions. Therefore, CCSD(T) has lower solution accuracy and shorter execution time than FCI. CCSD(T) has a computational complexity on the order of the seventh power of the number of molecular orbitals. Note that CCSD has even lower solution accuracy and shorter execution time than CCSD(T). 【0053】 CCSD(T) precisely calculates the effects of one-electron and two-electron excitations on energy as electronic states, and determines the effect of three-electron excitations on energy from perturbations. CCSD(T) ignores the effects of higher-order electronic excitations of four electrons or more. CCSD(T) iteratively calculates the energy while changing the electron configuration and searches for the minimum energy. CCSD(T) performs iterative calculations until the calculated energy converges. For example, CCSD(T) compares the latest energy with the energy calculated in the previous iteration, and stops the iterative calculation when the difference between the two falls below a threshold. 【0054】 CCSD(T) often yields relatively good approximate solutions for FCI when interatomic distances are small. On the other hand, CCSD(T) may yield less accurate approximate solutions when interatomic distances are large. This is because, when interatomic distances are large, the influence of outer molecular orbitals on energy is significant, and CCSD(T), which ignores the effects of higher-order electronic excitations of 4 electrons or more, experiences a large error in its approximate solution. Furthermore, with CCSD(T), if the accuracy of the final output energy is low, the number of iterations required for convergence tends to increase. This is because even with repeated calculations, the approximate solution may continue to fluctuate near the correct value, and may not stably converge towards the correct value. 【0055】 VQE is a quantum algorithm intended for execution on gate-type quantum computers. VQE can be executed using NISQ (Noisy Intermediate Scale Quantum) computers. However, as mentioned above, it is also possible to execute VQE on classical computers using quantum simulators. In that case, the memory usage and computational complexity on a classical computer double for each increase in the number of qubits. The precision and execution time of VQE solutions are intermediate between FCI and CCSD(T). That is, the precision of the solutions is lower than FCI but higher than CCSD(T). The execution time is shorter than FCI but longer than CCSD(T). 【0056】 VQE forms quantum circuits that generate quantum states using multiple qubits based on a specified basis function. These quantum circuits are sometimes called Ansatz circuits. VQE also forms quantum circuits that measure energy from quantum states based on a Hamiltonian corresponding to specified molecular information. These quantum circuits are sometimes called measurement circuits. A quantum circuit is a quantum computing model described by a combination of quantum gates. In a quantum computer, quantum circuits are implemented using physical qubits. In a quantum simulator, pseudo-qubit data is stored in memory, and pseudo-quantum gate operations are implemented using classical programs. 【0057】 VQE generates quantum states using an Ansatz circuit and measures their energy using a measurement circuit. Each measurement is affected by noise and fluctuations. VQE generates quantum states and measures their energy multiple times for the same electron configuration and calculates the average value as the expected energy. VQE modifies the parameter values ​​used to generate the quantum states so that the expected energy becomes smaller. Changing the parameter values ​​corresponds to changing the electron configuration. VQE searches for the ground energy by repeating the above process. For example, VQE repeats the above process until the expected energy converges. 【0058】 Figure 4 shows an example of a potential energy curve. Curve 41 shows the energy calculated by FCI. Here, curve 41 is interpreted as the correct potential energy curve. Curve 42 shows the energy calculated by CCSD(T). Curve 43 shows the energy calculated by VQE. 【0059】 As mentioned above, when the distance is small, the accuracy of both CCSD(T) and VQE is sufficiently good. However, when the distance is large, the accuracy of VQE is relatively good, while the accuracy of CCSD(T) decreases significantly. Also, only molecules of small size can be subjected to FCI. Furthermore, the execution time of VQE is longer than that of CCSD(T). Considering the above characteristics of FCI, CCSD(T), and VQE, the information processing device 100 automatically uses FCI, CCSD(T), and VQE as follows. 【0060】 First, the information processing device 100 determines, from the perspective of hardware resources, whether or not it can perform FCI on the molecule to be simulated. If the hardware resources required to perform FCI are available, the information processing device 100 calculates the energy corresponding to all distances using FCI. On the other hand, if the hardware resources required to perform FCI are not available, the information processing device 100 calculates the energy using CCSD(T) and VQE, depending on the distance. 【0061】 For example, the information processing device 100 estimates the memory usage of the FCI based on specified molecular information and basis functions. The estimated memory usage is Nstrings 2 ×Narrays×B. Nstrings is the total number of different electron configurations. Norb C NelectNorb is the number of molecular orbitals, and Nelect is the number of electrons. Therefore, Nstrings is the number of combinations of selecting molecular orbitals from the set of molecular orbitals, equal to the number of electrons. The number of electrons is determined by the specified type of molecule. The number of molecular orbitals is determined by the specified basis set. Narrays is the number of arrays used in FCI, for example, 33. B is the number of bytes to represent one floating-point number, for example, 8 bytes. 【0062】 The information processing device 100 compares the estimated memory usage with the current amount of available memory. The amount of available memory is the size of the RAM area that can be used for FCI, for example, the current amount of free memory obtained from the operating system. The information processing device 100 determines that FCI can be executed if the estimated memory usage does not exceed the amount of available memory. On the other hand, the information processing device 100 determines that FCI cannot be executed if the estimated memory usage exceeds the amount of available memory. 【0063】 If FCI is determined to be unexecutable, the information processing device 100 calculates the energy in ascending order of distance. The information processing device 100 executes CCSD(T) when the distance is small, and switches the algorithm from CCSD(T) to VQE when the distance increases. At this time, the distance at which the accuracy of CCSD(T) begins to deteriorate varies depending on the molecule being simulated. Therefore, the information processing device 100 monitors the execution result of CCSD(T) at the most recent distance and dynamically decides, based on that result, whether to keep the algorithm as CCSD(T) or change it to VQE for the next distance. 【0064】 Figure 5 is a graph showing an example of the relationship between distance and the number of repetitions. Curve 44 shows the relationship between the distance between atoms and the number of iterations of CCSD(T). As mentioned above, the greater the distance, the lower the accuracy of the CCSD(T) solution, and the lower the accuracy of the solution, the greater the number of iterations of CCSD(T). Therefore, as shown in curve 44, the number of iterations of CCSD(T) increases with increasing distance. When the accuracy of the CCSD(T) solution begins to deteriorate, the number of iterations of CCSD(T) increases significantly. 【0065】 Therefore, the information processing device 100 measures and records the number of iterations of CCSD(T) when CCSD(T) outputs energy. The information processing device 100 monitors the number of iterations at the most recent distance, and when it detects a significant increase in the number of iterations, it determines that the accuracy of the CCSD(T) solution has begun to deteriorate and switches the algorithm. 【0066】 For example, the information processing device 100 calculates the slope of a line segment by fitting it using the least squares method based on a fixed number of recent distances and iterations (for example, the last 5 distances and iterations). The information processing device 100 records the calculated slope. The information processing device 100 determines whether the latest slope is greater than the slope calculated at the time of the previous distance. If the slope increases a fixed number of times consecutively (for example, if the slope increases three times consecutively), the information processing device 100 switches the algorithm to VQE from the next distance. 【0067】 Line segment 44a represents the slope in the interval 1.0 Å to 1.4 Å and can be determined when CCSD(T) calculates the energy at a distance of 1.4 Å. Line segment 44b represents the slope in the interval 1.1 Å to 1.5 Å and can be determined when CCSD(T) calculates the energy at a distance of 1.5 Å. The slope of line segment 44b is greater than that of line segment 44a. Line segment 44c represents the slope in the interval 1.2 Å to 1.6 Å and can be determined when CCSD(T) calculates the energy at a distance of 1.6 Å. The slope of line segment 44c is greater than that of line segment 44b. Line segment 44d represents the slope in the interval 1.3 Å to 1.7 Å and can be determined when CCSD(T) calculates the energy at a distance of 1.7 Å. The slope of line segment 44d is greater than that of line segment 44c. 【0068】 The information processing device 100 detects that the slope of line segments 44a, 44b, 44c, and 44d has increased three times in a row. Then, the information processing device 100 calculates the energy of each distance from 1.8 Å onward using VQE instead of CCSD(T). 【0069】 Figure 6 is a graph showing an example of the relationship between distance, error, and slope. Curve 45 shows the absolute value of the error between the energy calculated by CCSD(T) and the energy calculated by FCI. As shown in curve 45, the error in CCSD(T) increases sharply from a distance of 1.5 Å to a distance of 2.0 Å. Curve 46 shows the slope of the last 5 iteration counts. As shown in curve 46, the slope of the CCSD(T) iteration count increases from a distance of 1.5 Å to a distance of 2.0 Å. Therefore, the information processing device 100 can detect that the error has begun to increase significantly by monitoring the slope of the iteration count. 【0070】 Next, the functions and processing procedures of the information processing device 100 will be described. Figure 7 is a block diagram showing an example of the functions of an information processing device. The information processing device 100 includes a molecular information storage unit 121, a control data storage unit 122, an FCI execution unit 123, a CCSD execution unit 124, a VQE execution unit 125, an algorithm control unit 126, and an energy visualization unit 127. The molecular information storage unit 121 and the control data storage unit 122 are implemented using, for example, RAM 102 or HDD 103. The FCI execution unit 123, CCSD execution unit 124, VQE execution unit 125, algorithm control unit 126, and energy visualization unit 127 are implemented using, for example, a CPU 101 and a program. Note that some or all of the FCI execution unit 123, CCSD execution unit 124, and VQE execution unit 125 may be separated into other information processing devices. 【0071】 The molecular information storage unit 121 stores molecular information. This molecular information includes the types and position coordinates of atoms contained in the molecule being simulated. The molecular information storage unit 121 also stores basis functions specified by the user. The basis functions are usually selected by the user from a set of known basis functions, depending on the type of molecule and the purpose of the molecular simulation. The control data storage unit 122 stores the energy calculated for each of the multiple distances. The control data storage unit 122 also stores control data used for algorithm selection. 【0072】 The FCI execution unit 123 performs FCI based on the specified molecular information and basis functions in response to instructions from the algorithm control unit 126. The specified molecular information reflects a change in the distance between two specific atoms. For each piece of molecular information corresponding to a distance, the FCI execution unit 123 calculates the ground energy and outputs it to the algorithm control unit 126. 【0073】 The CCSD execution unit 124 executes CCSD(T) based on the specified molecular information and basis functions in response to instructions from the algorithm control unit 126. However, the CCSD execution unit 124 may also execute CCSD. The CCSD execution unit 124 calculates the ground energy for each piece of molecular information corresponding to a distance and outputs it to the algorithm control unit 126. The CCSD execution unit 124 also measures the number of iterations and notifies the algorithm control unit 126 of this. 【0074】 The VQE execution unit 125 performs VQE based on the specified molecular information and basis functions in response to instructions from the algorithm control unit 126. The VQE execution unit 125 repeatedly generates quantum circuits and measures energy based on the molecular information and basis functions. For each piece of molecular information corresponding to a distance, the VQE execution unit 125 calculates the ground energy and outputs it to the algorithm control unit 126. 【0075】 The algorithm control unit 126 selects a quantum chemical calculation algorithm for each of the multiple distances. The set of distances for which energy is calculated may be specified by the user or may be fixed in advance. The algorithm control unit 126 estimates the memory usage of FCI based on molecular information and basis functions, and determines whether FCI can be executed based on the estimated memory usage and the amount of available memory. If FCI can be executed, the algorithm control unit 126 calls the FCI execution unit 123 for all distances. 【0076】 If FCI is not executable, the algorithm control unit 126 calls the CCSD execution unit 124 in ascending order of distance. The algorithm control unit 126 monitors the slope of the number of iterations measured by the CCSD execution unit 124, and if the slope increases for a certain number of consecutive times, it calls the VQE execution unit 125 for all remaining distances. The algorithm control unit 126 also stores the energy corresponding to all distances collected from the FCI execution unit 123, CCSD execution unit 124, and VQE execution unit 125 in the control data storage unit 122. 【0077】 The energy visualization unit 127 reads multiple energies corresponding to multiple distances from the control data storage unit 122 and generates a potential energy curve by plotting the read energies. The energy visualization unit 127 may store the generated potential energy curve in non-volatile storage, display it on the display device 111, or transmit it to another information processing device. The energy visualization unit 127 may also output the numerical data itself that represents the multiple energies that have been calculated. 【0078】 Figure 8 shows an example of the structure of control data. The control data storage unit 122 stores a distance list 131, an energy list 132, an iteration list 133, and a slope list 134. The distance list 131 is a list of distances for which energy has not yet been calculated. The energy list 132 is a list of calculated energies listed in ascending order of distance. The iteration list 133 is a list of the number of iterations of CCSD(T) for a fixed number of recent distances. The iteration counts are sorted in ascending order of distance. The slope list 134 is a list of slopes calculated from the iteration list 133, listed in ascending order of distance. 【0079】 Figure 9 is a flowchart showing an example of a quantum chemical calculation procedure. (S10) The algorithm control unit 126 identifies the number of electrons from the molecular information and the number of molecular orbitals from the basis function. The algorithm control unit 126 estimates the memory usage of the FCI by inputting the number of electrons and the number of molecular orbitals into the estimation formula. 【0080】 (S11) The algorithm control unit 126 obtains the available memory capacity of the system performing the quantum chemical calculation. The system may be the information processing device 100 or another information processing device. The available memory capacity is obtained, for example, from the operating system. 【0081】 (S12) The algorithm control unit 126 determines whether the memory usage estimated in step S10 is less than or equal to the free memory capacity obtained in step S11. If the memory usage is less than or equal to the free memory capacity, the process proceeds to step S13. If the memory usage exceeds the free memory capacity, the process proceeds to step S14. 【0082】 (S13) The FCI execution unit 123 calculates the energy for all distances using FCI. The algorithm control unit 126 records the calculated energies in ascending order of distance in the energy list 132. Then the process proceeds to step S15. 【0083】 (S14) The algorithm control unit 126 performs an algorithm switch, switching between CCSD(T) and VQE. Details of the algorithm switch will be described later. (S15) The energy visualization unit 127 reads the energy recorded in the energy list 132 in step S13 or step S14, and generates a potential energy curve by plotting the read energy. The energy visualization unit 127 displays the generated potential energy curve on the display device 111. 【0084】 Figure 10 is a flowchart showing an example of the procedure for switching algorithms. The algorithm switch is performed in step S14 above. (S20) The algorithm control unit 126 determines whether the distance list 131 is empty. In the initial state, the distance list 131 lists the distances for which energy is calculated in ascending order. If the distance list is empty, the algorithm switching is terminated. If the distance list is not empty, the process proceeds to step S21. 【0085】 (S21) The algorithm control unit 126 extracts the minimum distance at the present time from the beginning of the distance list 131. The extracted distance is removed from the distance list 131. (S22) The CCSD execution unit 124 calculates the energy corresponding to the distance extracted in step S21 using CCSD(T). The CCSD execution unit 124 also measures the number of iterations required for this energy to converge. 【0086】 (S23) The algorithm control unit 126 adds the energy calculated in step S22 to the end of the energy list 132. The algorithm control unit 126 also adds the number of iterations measured in step S22 to the end of the iteration list 133. 【0087】 (S24) The algorithm control unit 126 determines whether the length of the iteration list 133 is equal to a certain window width W. For example, W = 5. If the length of the iteration list 133 is equal to the window width W, the process proceeds to step S25. If the length of the iteration list 133 is less than the window width W, the process returns to step S20. 【0088】 (S25) The algorithm control unit 126 fits the line segment to the W iteration counts included in the iteration list 133 using the least squares method. The algorithm control unit 126 calculates the slope of the line segment and adds the slope to the end of the slope list 134. 【0089】 (S26) The algorithm control unit 126 removes one iteration count from the beginning of the iteration list 133. As a result, the length of the iteration list 133 becomes W-1. (S27) The algorithm control unit 126 determines whether the length of the slope list 134 exceeds the threshold T. For example, T = 3. If the length of the slope list 134 exceeds the threshold T, the process proceeds to step S28. If the length of the slope list 134 is less than or equal to the threshold T, the process returns to step S20. 【0090】 (S28) The algorithm control unit 126 scans the T+1 slopes at the end of the slope list 134 and determines whether the slope has increased T times consecutively. If the slope has increased T times consecutively, the process proceeds to step S29. Otherwise, the process returns to step S20. 【0091】 (S29) The VQE execution unit 125 calculates the energy corresponding to all remaining distances in the distance list 131 using VQE. The algorithm control unit 126 adds the calculated energy to the end of the energy list 132. The algorithm control unit 126 also clears the distance list 131. Then the algorithm switching is completed. 【0092】 Next, we will discuss other methods for selecting the distance to which VQE will be performed. First, the information processing device 100 performs CCSD(T) for each of the multiple distances for which it wants to calculate the energy. However, the information processing device 100 may perform other classical algorithms with lower computational complexity, such as CCSD, instead of CCSD(T). Then, based on the number of iterations of CCSD(T) for those multiple distances, the information processing device 100 selects from those multiple distances to perform VQE on additionally. The information processing device 100 performs VQE on the selected distances. However, the information processing device 100 may choose not to select any distances for which to perform VQE. 【0093】 When generating the potential energy curve, the information processing device 100 uses the energy calculated by CCSD(T) for distances where VQE was not performed. On the other hand, for distances where VQE was performed, the information processing device 100 uses the energy calculated by VQE from the standpoint of calculation accuracy. 【0094】 To select the distance for performing VQE, the information processing device 100 plots points corresponding to distance and the number of iterations, and performs piecewise linear regression analysis on the set of plotted points. The piecewise linear regression analysis detects division points and calculates different line segments before and after the division points in a manner that maximizes the fitting accuracy for the set of points. 【0095】 Here, the information processing device 100 selects a distance to be used as a division point and calculates line segments using the least squares method for both distance intervals smaller than the division point and distance intervals larger than the division point. The information processing device 100 evaluates the residuals, which indicate the fitting accuracy of the two line segments. The information processing device 100 repeatedly performs regression analysis and residual evaluation while changing the division point, searching for the division point that yields the highest fitting accuracy (smallest residuals). As a result, two line segments are calculated with the distance at which the trend of change in the number of iterations changes as the boundary. 【0096】 The information processing device 100 compares the slopes of two line segments. If the slope of the larger distance interval is greater than the slope of the smaller distance interval, the information processing device 100 decides to perform VQE for each distance belonging to the larger distance interval. In this case, VQE is performed for the distance from the division point onward. On the other hand, if the slope of the larger distance interval is less than or equal to the slope of the smaller distance interval, the information processing device 100 decides not to perform VQE for any distance. As a result, the information processing device 100 can accurately detect the distance at which a significant increase in the number of iterations for each increase in distance begins. 【0097】 Figure 11 shows an example of piecewise linear regression analysis. Here, the information processing device 100 performs CCSD(T) for each distance from 0.5 Å to 2.8 Å and measures the number of iterations. The information processing device 100 performs piecewise linear regression analysis on the measured number of iterations and calculates line segments 51 and 52. 【0098】 The division point is between 1.0 Å and 1.1 Å. The interval before the division point is from 0.5 Å to 1.0 Å. Line segment 51 is calculated from the points included in this interval. The interval after the division point is from 1.1 Å to 2.8 Å. Line segment 52 is calculated from the points included in this interval. As shown in Figure 11, the trend of variation in the number of iterations is clearly different before and after the division point. The slope of line segment 52 is greater than the slope of line segment 51. Therefore, the information processing device 100 additionally performs VQE for each distance from 1.1 Å to 2.8 Å corresponding to line segment 52. 【0099】 Figure 12 shows another example of piecewise linear regression analysis. Here, the information processing device 100 performs CCSD(T) for each distance from 0.5 Å to 2.8 Å and measures the number of iterations. The information processing device 100 performs piecewise linear regression analysis on the measured number of iterations and calculates line segments 53 and 54. 【0100】 The division point is between 2.4 Å and 2.5 Å. The interval before the division point is from 0.5 Å to 2.4 Å. Line segment 53 is calculated from the points included in this interval. The interval after the division point is from 2.5 Å to 2.8 Å. Line segment 54 is calculated from the points included in this interval. Unlike in Figure 11, the number of iterations tends to increase continuously throughout the entire distance. The slope of line segment 54 is smaller than that of line segment 53. Therefore, the information processing device 100 does not perform additional VQE for any distance from 0.5 Å to 2.8 Å. 【0101】 As described above, the information processing device 100 of the second embodiment generates a potential energy curve showing the relationship between interatomic distance and the ground state energy of the molecule through quantum chemical calculations. This allows the information processing device 100 to provide useful information about the properties of molecules, supporting research and development in areas such as materials development and pharmaceutical development. Furthermore, the information processing device 100 automatically selects which algorithm to use to calculate the energy for each interatomic distance, considering accuracy and execution time. This eliminates the need for the user to specify an algorithm for each interatomic distance, reducing the user's burden. Additionally, a highly accurate potential energy curve is generated efficiently in a short time. 【0102】 Furthermore, the information processing device 100 estimates the amount of hardware resources required for FCI from molecular information and basis functions to determine whether FCI can be performed. If FCI is feasible, it calculates the energy of all interatomic distances using FCI. This generates highly accurate potential energy curves for small molecules. 【0103】 Furthermore, if FCI is not feasible, the information processing device 100 calculates the energy for small interatomic distances using CCSD(T) and the energy for large interatomic distances using VQE. This balances accuracy and execution time. The information processing device 100 also determines the timing for switching the algorithm from CCSD(T) to VQE based on the increase in the slope of the number of iterations until the energy converges in CCSD(T). This allows for the detection of a decrease in the accuracy of CCSD(T) and changes the algorithm at an appropriate timing according to the molecule being simulated. [Explanation of symbols] 【0104】 10 Information Processing Devices 11 Storage section 12 Processing Units 13,14 Algorithms 15a,15b,15c,15d Interatomic distance 16a, 16b, 16c, 16d Molecular energy 17a, 17b, 17c Number of repetitions

Claims

[Claim 1] Each of the multiple first molecular energies corresponding to multiple first interatomic distances is calculated using a first algorithm that iteratively updates the solution until the convergence condition is satisfied. Based on the slope of the line segment showing the relationship between the plurality of first interatomic distances and the number of iterations of the first algorithm until the convergence condition is satisfied, a plurality of second interatomic distances are identified for which the molecular energy is calculated using a second algorithm different from the first algorithm. The plurality of second molecular energies corresponding to the plurality of specified second interatomic distances are calculated using the second algorithm. A program that selects an algorithm to execute a process on a computer. [Claim 2] The determination of the plurality of second interatomic distances is performed based on whether the slope exceeds a threshold. The algorithm selection program according to claim 1. [Claim 3] The computer is further instructed to perform a process to generate a potential energy curve based on the calculated plurality of first molecular energies and the plurality of second molecular energies. The algorithm selection program according to claim 1. [Claim 4] Multiple interatomic distances are stored to calculate molecular energy. The plurality of second interatomic distances are interatomic distances that are greater than any of the first interatomic distances among the plurality of stored interatomic distances. The algorithm selection program according to claim 1. [Claim 5] The plurality of first molecular energies are calculated in ascending order of the plurality of first interatomic distances, The threshold is the slope of the line segment obtained at the point immediately preceding the most recent first interatomic distance, or the slope of the line segment of the interval with the smaller interatomic distance among two intervals obtained from the number of iterations of the plurality of first interatomic distances. The algorithm selection program according to claim 1. [Claim 6] The second algorithm has a longer execution time and higher solution accuracy than the first algorithm. The algorithm selection program according to claim 1. [Claim 7] The first algorithm is CCSD(T) (Coupled Cluster Singles and Doubles (and Triples)), and the second algorithm is a variational quantum eigenvalue solver. An algorithm selection program according to any one of claims 1 to 6. [Claim 8] The computer is further instructed to perform a process to determine whether a third algorithm, which is different from the first and second algorithms, can be used, based on molecular information indicating the target molecule and the amount of available memory. The first algorithm is used in place of the third algorithm if the third algorithm is determined to be unavailable. The algorithm selection program according to claim 1. [Claim 9] The determination of whether the third algorithm can be used includes a process of estimating the memory usage from at least one of the number of electrons and molecular orbitals of the target molecule, and determining that the third algorithm cannot be used if the estimated memory usage exceeds the amount of available memory. The algorithm selection program according to claim 8. [Claim 10] The third algorithm has a longer execution time and higher solution accuracy than the second algorithm. The algorithm selection program according to claim 8. [Claim 11] The third algorithm described above is FCI (Full Configuration Interaction). An algorithm selection program according to any one of claims 8 to 10. [Claim 12] Each of the multiple first molecular energies corresponding to multiple first interatomic distances is calculated using a first algorithm that iteratively updates the solution until the convergence condition is satisfied. Based on the slope of the line segment showing the relationship between the plurality of first interatomic distances and the number of iterations of the first algorithm until the convergence condition is satisfied, a plurality of second interatomic distances are identified for which the molecular energy is calculated using a second algorithm different from the first algorithm. The plurality of second molecular energies corresponding to the plurality of specified second interatomic distances are calculated using the second algorithm. A method for selecting an algorithm that a computer uses to perform a process. [Claim 13] A storage unit that stores the number of iterations of the first algorithm until the convergence condition is satisfied, when each of the multiple first molecular energies corresponding to multiple first interatomic distances is calculated using a first algorithm that iteratively updates the solution until the convergence condition is satisfied, A processing unit that identifies a plurality of second interatomic distances for which molecular energy is calculated using a second algorithm different from the first algorithm, based on the slope of a line segment showing the relationship between the plurality of first interatomic distances and the number of iterations, and calculates a plurality of second molecular energies corresponding to the identified plurality of second interatomic distances using the second algorithm, An information processing device having