WO2022158104A1 - 乱数生成器、乱数生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 - Google Patents

乱数生成器、乱数生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 Download PDF

Info

Publication number
WO2022158104A1
WO2022158104A1 PCT/JP2021/042759 JP2021042759W WO2022158104A1 WO 2022158104 A1 WO2022158104 A1 WO 2022158104A1 JP 2021042759 W JP2021042759 W JP 2021042759W WO 2022158104 A1 WO2022158104 A1 WO 2022158104A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
value
number generator
model
annealing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2021/042759
Other languages
English (en)
French (fr)
Inventor
暢達 中村
慎司 橋本
玲央 高原
将 柴田
英憲 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
NEC Solution Innovators Ltd
Original Assignee
NEC Corp
NEC Solution Innovators Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, NEC Solution Innovators Ltd filed Critical NEC Corp
Priority to JP2022577000A priority Critical patent/JP7468938B2/ja
Priority to DE112021006880.6T priority patent/DE112021006880T5/de
Priority to US18/272,744 priority patent/US20240303042A1/en
Publication of WO2022158104A1 publication Critical patent/WO2022158104A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Definitions

  • the present invention relates to random number generators, random number generation methods, and programs.
  • random numbers obtained by function calls in ordinary computers have periodicity. Random numbers generated by a random number generator using physical noise can be predicted by observing and reproducing physical phenomena. Therefore, these random numbers cannot guarantee high security.
  • Quantum computer technology is still under development, but a quantum computer called a quantum annealing method (hereinafter referred to as a quantum annealing machine) is available.
  • a quantum annealing machine is a computer specialized for solving a formulated problem called an Ising model, and is used for solving combinatorial optimization problems (see Patent Document 1).
  • a stable combination of qubits (0, 1) in a system represented by the Ising model can be obtained by a quantum annealing machine.
  • quantum fluctuation due to a property called quantum fluctuation, the same combination is not always obtained, and various combinations of qubits near the stable state are obtained.
  • the occurrence probabilities of various combinations of qubits follow the Boltzmann distribution. Therefore, when a quantum annealing machine is used, it is possible to obtain a solution near the optimal solution of the optimization problem, but it is not possible to obtain a solution (numerical value) that follows any distribution specified by the user other than the Boltzmann distribution. For this reason, quantum annealing machines cannot be used to generate random numbers that follow arbitrary distributions specified by users.
  • Patent Document 2 there is a technique disclosed in Patent Document 2 regarding a technique for obtaining random numbers that follow a distribution specified by a user.
  • the technique described in this document obtains random numbers that follow a predetermined distribution by performing predetermined processing on numerical values generated by a pseudo-random number generator. Due to the periodicity of pseudo-random numbers, the random numbers obtained by this technique are not of high quality.
  • one of the objects to be achieved by the embodiments disclosed in this specification is to provide a random number generator, a random number generation method, and a program capable of generating high-quality random numbers according to a desired distribution. is.
  • a random number generator includes: an input reception unit that receives an input specifying a probability distribution of random numbers; a model generation unit that generates, based on the probability distribution, an Ising model using n binary variables assigned to each of n (n is an integer equal to or greater than 2) subintervals obtained by dividing the numerical range of random numbers; , An annealing result acquisition unit that acquires the values of the n binary variables that are the execution results of quantum annealing for the Ising model; a random number output unit configured to output, as a random number, a value included in the partial interval assigned to the binary variable whose value obtained as the execution result is a predetermined value.
  • a random number generator accepts input specifying the probability distribution of random numbers, generating an Ising model using n binary variables assigned to each of n (n is an integer equal to or greater than 2) subintervals obtained by dividing the numerical range of random numbers based on the probability distribution; Obtaining the values of the n binary variables that are the result of performing quantum annealing on the Ising model; A value included in the partial interval assigned to the binary variable whose value obtained as the execution result is a predetermined value is output as a random number.
  • a program for receiving an input specifying a probability distribution of random numbers; a model generation step of generating, based on the probability distribution, an Ising model using n binary variables assigned to each of n (n is an integer equal to or greater than 2) subintervals obtained by dividing the numerical range of random numbers; , an annealing result obtaining step of obtaining the values of the n binary variables that are the execution results of quantum annealing for the Ising model; and a random number output step of outputting, as a random number, a value included in the partial interval assigned to the binary variable whose value obtained as the execution result is a predetermined value.
  • FIG. 1 is a block diagram showing an example of a configuration of a random number generator according to an outline of an embodiment
  • FIG. 1 is a block diagram showing an example of a configuration of a random number generation system according to Embodiment 1
  • FIG. 2 is a block diagram showing an example of a hardware configuration of a random number generator according to Embodiment 1
  • FIG. 4 is a flow chart showing an example of the operation of the random number generator according to the first exemplary embodiment
  • FIG. 11 is a block diagram showing an example of the configuration of a random number generation system according to a second embodiment
  • FIG. 9 is a flow chart showing an example of the operation of the random number generator according to the second embodiment
  • FIG. 11 is a block diagram showing an example of the configuration of a random number generation system according to a third embodiment
  • FIG. FIG. 11 is a flow chart showing an example of the operation of the random number generator according to the third embodiment
  • FIG. 1 is a block diagram showing an example of the configuration of a random number generator 1 according to the outline of the embodiment.
  • the random number generator 1 is a device that generates random numbers using the results of quantum annealing, and as shown in FIG. .
  • the input reception unit 2 receives input specifying the probability distribution of random numbers.
  • a user or the like gives an input designating a desired probability distribution to the random number generator 1 in order to cause the random number generator 1 to output random numbers according to the desired probability distribution.
  • the input reception unit 2 receives an Ising model using n binary variables assigned to each of n (n is an integer equal to or greater than 2) partial intervals obtained by dividing the numerical range of random numbers. generated based on a probability distribution.
  • the numerical range of random numbers means the range determined by the minimum and maximum values of random numbers that can be generated. That is, the random number generator 1 generates random numbers belonging to this numerical range.
  • the value of the binary variable described above indicates whether or not to select a subsection belonging to this numerical range. In other words, this binary variable indicates whether or not the values included in the sub-interval to which the binary variable is assigned are adopted as random numbers.
  • the annealing result acquisition unit 4 acquires the values of n binary variables that are the execution results of quantum annealing for the Ising model generated by the model generation unit 3 . That is, the annealing result acquisition unit 4 causes the quantum annealing machine to perform quantum annealing on the Ising model generated by the model generation unit 3, and acquires the execution result from the quantum annealing machine.
  • the random number output unit 5 outputs, as a random number, a value included in a partial interval assigned to a binary variable whose value obtained as an execution result is a predetermined value (eg, 1).
  • the random number generator 1 generates an Ising model based on the specified probability distribution, and outputs random numbers according to the result of quantum annealing for this Ising model. Since it is difficult to predict the execution result of quantum annealing, it is also difficult to predict the random number output by the random number generator 1 . Therefore, the random number generator 1 can generate high-quality random numbers that follow a desired distribution.
  • FIG. 2 is a block diagram showing an example configuration of the random number generation system 10 according to the first embodiment.
  • random number generation system 10 includes random number generator 100 and quantum annealing machine 200 .
  • the random number generator 100 and the quantum annealing machine 200 are communicably connected to each other via a wired or wireless network, for example.
  • quantum annealing machine 200 is shown as a separate device from random number generator 100, but may be included in random number generator 100.
  • FIG. 1 is a block diagram showing an example configuration of the random number generation system 10 according to the first embodiment.
  • random number generation system 10 includes random number generator 100 and quantum annealing machine 200 .
  • the random number generator 100 and the quantum annealing machine 200 are communicably connected to each other via a wired or wireless network, for example.
  • quantum annealing machine 200 is shown as a separate device from random number generator 100, but may be included in random number generator 100.
  • FIG. 1 is a block diagram showing an example configuration of the random number generation system 10 according
  • the random number generator 100 corresponds to the random number generator 1 shown in FIG.
  • Quantum annealing machine 200 includes a quantum chip that realizes quantum bits and coupling between quantum bits, and performs quantum annealing on the Ising model to determine the value of each quantum bit.
  • a quantum chip is a chip that operates using quantum states in quantum mechanics. Since a known machine can be used as the quantum annealing machine 200 of the random number generation system 10, detailed description of its specific configuration and processing will be omitted.
  • the random number generator 100 includes a processing control unit 101, an input reception unit 102, a model generation unit 103, an annealing result acquisition unit 104, a pseudorandom number generation unit 105, and a random number output unit 106, as shown in FIG.
  • the processing control unit 101 controls the processing of the components of the random number generator 100 described above. Particularly in this embodiment, the processing control unit 101 controls the number of times the annealing result acquisition unit 104 and the pseudorandom number generation unit 105 execute the processing according to the number of random numbers to be generated.
  • the input reception unit 102 corresponds to the input reception unit 2 in FIG. 1, and receives input specifying the probability distribution of random numbers.
  • the input reception unit 102 may, for example, receive a probability distribution input by a user via an input interface provided in the random number generator 100, or read the probability distribution from a storage device such as a memory provided in the random number generator 100. , may be accepted. Further, the input accepting unit 102 may accept the probability distribution by receiving it from another device.
  • the input accepting unit 102 accepts a probability setting value for each partial interval as an input specifying the probability distribution of random numbers.
  • This sub-interval divides the domain of the random variable, but can also be said to divide the numerical range of the random number. For example, let R MIN be the minimum value of the random number to be generated by the random number generator 100 and R MAX be the maximum value. That is, the case where the random number generator 100 generates a random number equal to or greater than R MIN and equal to or less than R MAX will be described as an example.
  • the random number generator 100 sets the set value of the probability for each of n subintervals obtained by equally dividing the numerical range having RMIN as the lower limit and RMAX as the upper limit by n (n is an integer equal to or greater than 2).
  • the suffix i is the identification number of the partial section and is an integer of 1 or more and n or less. For example, when it is desired that a numerical value belonging to a certain subinterval is most likely to be output as a random number, the value of the probability pi of the subinterval should be set to a value greater than the value of the probability pi of the other subintervals. becomes. Note that the sum of p1 to pn is one .
  • n, R MIN , and R MAX described above may be determined in advance, or may be received by the input receiving unit 102 .
  • n, R MIN , and R MAX may be specified in this way, the convenience in operation of the random number generator 100 can be improved.
  • input accepting unit 102 accepts the set value of probability for each partial interval, but the input specifying the probability distribution is not limited to this.
  • the input receiving unit 102 may receive information specifying the type of probability distribution (for example, normal distribution, etc.) and distribution parameters (mean, variance, etc.) as inputs specifying the probability distribution of random numbers. and may accept a mathematical expression representing the probability distribution. Note that the input reception unit 102 may further receive designation of the number of random numbers to be generated.
  • the model generation unit 103 corresponds to the model generation unit 3 in FIG. 102 based on the received probability distribution.
  • n binary variables (qubit variables) be x 1 , x 2 , . . . , x n . That is, the i-th subinterval is assigned the binary variable x i . Therefore, the i-th subinterval is associated with a probability p i and a binary variable x i .
  • the model generation unit 103 generates, for example, a model H(x) represented by the following formula (1).
  • i is a number that identifies n partial intervals.
  • x i is a binary variable assigned to the i-th subinterval and takes a value of 0 or 1;
  • p i is the value of the probability distribution in the subinterval to which x i is assigned.
  • the function represented by the first term on the right side (also referred to as the first function) is the objective function.
  • Quantum annealing machine 200 provides an approximate solution (that is, binary variables x 1 , x 2 , x 2 , . . , x n value combinations) are searched.
  • the function H Onehot represented by the second term on the right side is such that any one of n binary variables x 1 , x 2 , . , which is a constraint term for making other binary variables take values other than the predetermined value (specifically, 0).
  • the function H Onehot is specifically represented by the following formula (2). Note that w is a coefficient representing weight, and the model generation unit 103 sets a positive predetermined value as the value of w.
  • the model generation unit 103 determines the value of pi of the model represented by the above formula according to the specification of the probability distribution of the random numbers received by the input reception unit 102, thereby generating random numbers according to the probability distribution.
  • the model generating unit 103 uses, for example, the average value, the minimum value, or the maximum value of the probability distribution value in the partial interval to calculate the probability p i may be determined.
  • the model generation unit 103 generates the following Ising model.
  • the model generation unit 103 generates an Ising model expressed using a first function for the binary variable x i and a second function for the binary variable x i .
  • the first function is the product of the value of the function whose value decreases as the value p i of the probability distribution in the subinterval to which the binary variable x i is assigned increases and the value of the binary variable x i It is a function represented by summation.
  • the second function is a function that takes a minimum value when any one of n binary variables x 1 , x 2 , . otherwise, it takes a positive value depending on the weight w.
  • An annealing result acquisition unit 104 corresponds to the annealing result acquisition unit 4 in FIG . , . . . , x n are obtained.
  • the annealing result acquisition unit 104 sets conditions for executing quantum annealing by the quantum annealing machine 200 in order to cause the quantum annealing machine 200 to execute processing.
  • the annealing result acquiring unit 104 sets the quantum bits corresponding to the binary variables and the strength of interaction between the quantum bits based on the Ising model generated by the model generating unit 103 . Then, the annealing result acquisition unit 104 instructs the quantum annealing machine 200 to perform quantum annealing on the Ising model.
  • the quantum annealing machine 200 outputs the execution result of quantum annealing, that is, each value of n binary variables x 1 , x 2 , .
  • the annealing result acquisition unit 104 acquires this.
  • Quantum annealing machine 200 outputs an approximate solution that minimizes H(x) shown in equation (1) as a result of quantum annealing.
  • the annealing result acquisition unit 104 acquires the following execution result as the execution result of quantum annealing on the Ising model represented by Equation (1). That is, the annealing result acquisition unit 104 determines that the value of one of the n binary variables x 1 , x 2 , . , to obtain execution results in which the values of other binary variables are other values (specifically, 0).
  • the random number generator 100 outputs, as random numbers, values belonging to the sub-interval corresponding to the binary variable xi having a predetermined value (specifically, 1), thereby generating random numbers according to the specified probability distribution. can generate random numbers.
  • Random number generator 100 may output a predetermined value within a sub-interval corresponding to binary variable x i having a predetermined value as a random number.
  • the random number generator 100 has a pseudorandom number generator 105 .
  • the predetermined value within the partial interval is, for example, the central value, maximum value, minimum value, or the like of the partial interval.
  • the pseudorandom number generation unit 105 generates a pseudorandom number (uniform random number ). That is, a pseudorandom number is generated in which the minimum value of the partial interval is set as the minimum value of the pseudorandom number, and the maximum value of the partial interval is set as the maximum value of the pseudorandom numbers.
  • Pseudorandom number generator 105 generates a pseudorandom number using a known function for generating a pseudorandom number. For example, the pseudorandom number generator 105 may obtain pseudorandom numbers by calling built-in functions that return random numbers.
  • the random number output unit 106 corresponds to the random number output unit 5 in FIG. 1, and outputs the value included in the partial interval selected according to the execution result of quantum annealing as a random number.
  • a pseudorandom number generated by the pseudorandom number generator 105 is output as a value included in the selected partial interval.
  • random number output unit 106 outputs a pseudo-random number in a sub-interval selected according to the execution result of quantum annealing. can be output.
  • the random number generator 100 may not have the pseudorandom number generator 105 .
  • a random number output unit 106 outputs a random number to an arbitrary output destination.
  • the random number output unit 106 may, for example, output the random number to a display, or transmit the random number to a device or processing unit that performs predetermined processing such as encryption processing.
  • the random number generator 100 may generate multiple random numbers, and in this case, the random number output unit 106 outputs the generated multiple random numbers.
  • the processing control unit 101 controls the number of times the annealing result acquisition unit 104 and the pseudorandom number generation unit 105 execute processes according to the number of random numbers to be generated. As described above, one random number can be generated each time quantum annealing is performed for the Ising model represented by equation (1). Therefore, for example, when generating m (m is a positive integer) random numbers, the processing control unit 101 controls the processing to repeat the processing of the annealing result acquisition unit 104 and the pseudorandom number generation unit 105 m times. Note that the value of m may be determined in advance, or may be received by the input receiving unit 102 . In this way, the random number generator 100 outputs multiple random numbers by acquiring the execution results of quantum annealing multiple times for the same Ising model. As a result, an arbitrary number of random numbers can be obtained.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the random number generator 100.
  • random number generator 100 includes network interface 150 , memory 151 and processor 152 .
  • the network interface 150, memory 151, and processor 152 are interconnected via a data bus or the like.
  • the network interface 150 is used to communicate with any other device, including the quantum annealing machine 200.
  • Network interface 150 may include, for example, a network interface card (NIC).
  • NIC network interface card
  • the memory 151 is configured by, for example, a combination of volatile memory and nonvolatile memory.
  • the memory 151 is used to store software (computer program) including one or more instructions executed by the processor 152, data used for various processes of the random number generator 100, and the like.
  • the processor 152 reads and executes software (computer program) from the memory 151 to process each component shown in FIG.
  • the processor 152 may be a microprocessor, an MPU (Micro Processor Unit), a CPU (Central Processing Unit), or the like. Processor 152 may include multiple processors.
  • the random number generator 100 is a device that functions as a computer and is also called an information processing device.
  • Non-transitory computer-readable media include various types of tangible storage media.
  • Examples of non-transitory computer-readable media include magnetic recording media (eg, flexible discs, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical discs), CD-ROM (Read Only Memory) CD-R, CD - R/W, including semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)).
  • the program may also be supplied to the computer on various types of transitory computer readable medium. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. Transitory computer-readable media can deliver the program to the computer via wired channels, such as wires and optical fibers, or wireless channels.
  • FIG. 4 is a flow chart showing an example of the operation of the random number generator 100. As shown in FIG. The random number generation operation by the random number generator 100 will be described below with reference to FIG.
  • the input receiving unit 102 receives input of setting information for outputting random numbers. Specifically, the input accepting unit 102 accepts an input designating the probability distribution of random numbers. Further, as described above, the input receiving unit 102 further receives an input specifying any or all of the number of divisions n, the minimum random number value R MIN , the maximum random number value R MAX , and the number m of random numbers to be generated. may be accepted.
  • step S101 the model generation unit 103 generates an Ising model based on the probability distribution specified in step S100.
  • step S102 the annealing result acquisition unit 104 acquires from the quantum annealing machine 200 the execution result of quantum annealing for the Ising model generated in step S101. That is, the annealing result acquisition unit 104 acquires values of n binary variables x 1 , x 2 , . . . , x n .
  • step S103 the pseudorandom number generation unit 105 generates a pseudorandom number within the partial interval selected based on the execution result obtained in step S102. That is, the pseudorandom number generation unit 105 generates a pseudorandom number that fits in the partial interval corresponding to x i with a value of 1.
  • step S104 the processing control unit 101 determines whether or not the designated number of random numbers has been obtained. If the specified number of random numbers has not been obtained, the processing control unit 101 performs control to repeat the processing of steps S102 and S103. On the other hand, if the specified number of random numbers are obtained, the process proceeds to step S105.
  • step S105 the random number output unit 106 outputs the random number obtained by the processing in steps S102 and S103.
  • subintervals are selected based on the results of quantum annealing. This makes it difficult to predict which sub-intervals will be selected. Also, the probability that each subinterval is selected follows a specified probability distribution. Therefore, according to this embodiment, it is possible to generate high-quality random numbers that follow a desired distribution.
  • Embodiment 2 will be described.
  • k be the number of quantum bits provided in the quantum annealing machine 200 (k is an integer equal to or greater than 2).
  • the selection of the sub-interval using the quantum characteristics that is, the selection of the difficult-to-predict sub-interval is performed from at most k sub-intervals. It will happen. That is, the number of subintervals that can be set depends on the number of qubits.
  • by hierarchically repeating the selection of partial sections a partial section is selected from a larger number of partial sections. As a result, even if the quantum annealing machine 200 has a limited number of quantum bits, it is possible to output random numbers selected from a larger number of subintervals.
  • FIG. 5 is a block diagram showing an example of the configuration of the random number generation system 10a according to the second embodiment.
  • the random number generation system 10a according to the second embodiment differs from the random number generation system 10 according to the first embodiment in that the random number generator 100 is replaced with a random number generator 100a.
  • Configurations and processes that are different from those of the first embodiment will be described below, and descriptions of configurations and processes that are the same as those of the first embodiment will be omitted as appropriate.
  • the random number generator 100a according to the second embodiment differs from the random number generator 100 according to the first embodiment mainly in that the process control unit 101 is replaced with a process control unit 101a. ing. Further, the pseudo-random number generator 105 is omitted in the configuration example shown in FIG. However, the random number generator 100a may include the pseudorandom number generator 105 in this embodiment as well. That is, when outputting the numerical value included in the finally selected partial interval as a random number in the present embodiment, the random number generated by the pseudo-random number generation unit 105 is output instead of the predetermined value included in this partial interval. may
  • the quantum annealing machine 200 is shown as a separate device from the random number generator 100a, but may be included in the random number generator 100a.
  • the processing control unit 101a controls the processing of each component of the random number generator 100a shown in FIG.
  • the processing control unit 101a controls the processing of the model generation unit 103 and the annealing result acquisition unit 104 so that partial sections are hierarchically selected a predetermined number of times.
  • the hierarchical selection of subintervals means selecting a subinterval from n subintervals according to the result of quantum annealing, and then n finer subintervals set to the selected subintervals. Further selecting a subinterval from among according to the result of quantum annealing.
  • the processing control unit 101a performs control so that the hierarchical selection of subsections by quantum annealing is repeated q times (where q is an integer).
  • q 0
  • a random number is output without performing hierarchical selection of partial intervals, that is, reselection of partial intervals.
  • the value of q may be determined in advance, or may be received by the input receiving unit 102 .
  • the model generation unit 103 of the present embodiment performs the following processing under the control of the processing control unit 101a. After the model generation, the model generation unit 103 further divides the sub-interval selected by executing the quantum annealing to create a new Ising model using n binary variables assigned to each of n new sub-intervals. based on the specified probability distribution. Specifically, the model generation unit 103 newly generates the Ising model shown in Equation (1) in order to hierarchically select partial sections. However, in the new Ising model, the n binary variables x i are variables assigned to n new subintervals obtained by further dividing the selected subinterval. Also, the probability p i is the value of the probability distribution in the new subinterval.
  • the model generating unit 103 determines the number of divisions n and the range of the selected partial interval. to identify the new subinterval probabilities p i .
  • the model generation unit 103 uses, for example, the average value, minimum value, or maximum value of the probability distribution value in the partial interval, A new subinterval probability p i may be determined.
  • the input receiving unit 102 may receive an input designating each set value of the probability p i of the new partial interval. Note that, if the sum of the probabilities p i of the new partial interval is not 1, the model generation unit 103 normalizes the values of the probabilities p i so that the sum becomes 1, and then generates a new Ising model. do.
  • the annealing result acquisition unit 104 of the present embodiment performs the following processing under the control of the processing control unit 101a.
  • the annealing result acquisition unit 104 acquires the values of n binary variables that are the execution results of quantum annealing for this new Ising model.
  • the values of n binary variables obtained indicate which sub-interval should be selected from among the sub-divided sub-intervals.
  • the random number output unit 106 outputs a value included in the finally selected partial section as a random number when the hierarchical selection of partial sections is completed. That is, the random number output unit 106 generates a new portion assigned to the binary variable xi having a predetermined value (specifically, 1) obtained as a result of quantum annealing for the new Ising model. Output the values contained in the interval as random numbers. In this embodiment, the random number output unit 106 outputs a predetermined value within the selected partial interval (for example, the central value, maximum value, or minimum value of the partial interval) as a random number. A value generated by the generation unit 105 may be output.
  • FIG. 6 is a flow chart showing an example of the operation of the random number generator 100a.
  • the random number generation operation by the random number generator 100a will be described below with reference to FIG.
  • step S200 as in step S100 of FIG. 4, the input reception unit 102 receives input of setting information regarding the output of random numbers.
  • step S201 the model generation unit 103 generates an Ising model based on the probability distribution specified in step S200, as in step S101 of FIG.
  • step S202 the annealing result acquisition unit 104 acquires the execution result of quantum annealing for the Ising model generated in step S201 from the quantum annealing machine 200, as in step S102 of FIG.
  • step S203 the processing control unit 101a determines whether or not the subdivision of the partial section has been performed a predetermined number of times. That is, the processing control unit 101a determines whether or not the partial section has been hierarchically selected q times. If subdivision into partial intervals has not been performed a predetermined number of times, the processing control unit 101a performs control to generate an Ising model and perform quantum annealing again. That is, in this case, the process proceeds to step S204. On the other hand, if the subdivision of the partial section has been performed the predetermined number of times, the process proceeds to step S205.
  • step S204 the model generation unit 103 generates an Ising model for the new partial section in order to hierarchically select the partial section. That is, the model generating unit 103 generates n new subintervals obtained by further dividing the subinterval assigned to the binary variable xi whose value obtained as a result of quantum annealing in step S202 is a predetermined value. Generate an Ising model for After the process of step S204, the process returns to step S202, and the annealing result acquisition unit 104 acquires from the quantum annealing machine 200 the execution result of quantum annealing for the Ising model generated in step S204. After that, the determination process of step S203 is performed again.
  • step S205 the processing control unit 101a determines whether or not the specified number of random numbers has been obtained. If the designated number of random numbers has not been obtained, the processing control unit 101a performs control to repeat the processing from step S202 to step S204. At this time, in step S202, the annealing result acquisition unit 104 acquires the execution result of quantum annealing for the Ising model using the binary variables xi assigned to the subintervals in the undivided initial state. That is, in subsequent processing, hierarchical selection of partial sections is newly repeated. On the other hand, if the specified number of random numbers are obtained, the process proceeds to step S206.
  • the random number output unit 106 outputs the random number obtained by the processing from step S202 to step S204.
  • the second embodiment has been described above.
  • a partial section is selected from a larger number of partial sections.
  • the quantum annealing machine 200 has a limited number of quantum bits, it is possible to output random numbers selected from a larger number of subintervals.
  • Embodiment 3 differs from the above-described embodiments in that quantum annealing machine 200 simultaneously performs quantum annealing on a plurality of Ising models for generating random numbers. If the quantum annealing machine 200 has enough qubits, the quantum annealing machine 200 can obtain solutions for a plurality of Ising models. Therefore, in the present embodiment, a random number generator 100b capable of efficiently obtaining a plurality of random numbers by performing one quantum annealing on a plurality of Ising models will be described.
  • FIG. 7 is a block diagram showing an example of the configuration of the random number generation system 10b according to the third embodiment.
  • the random number generation system 10b according to the third embodiment differs from the random number generation system 10 according to the first embodiment in that the random number generator 100 is replaced with a random number generator 100b.
  • the random number generator 100b includes the pseudorandom number generator 105.
  • the pseudorandom number generator 105 may be omitted. Configurations and processes that are different from those of the first embodiment will be described below, and descriptions of configurations and processes that are the same as those of the first embodiment will be omitted as appropriate.
  • the random number generator 100b mainly has the model generation unit 103 replaced with the model generation unit 103b and the annealing result acquisition unit 104 replaced with the annealing result acquisition unit 104b. This is different from the random number generator 100 according to the first embodiment.
  • the quantum annealing machine 200 is also shown as a separate device from the random number generator 100b, but may be included in the random number generator 100b.
  • the model generation unit 103b Like the model generation unit 103, the model generation unit 103b generates an Ising model based on the probability distribution received by the input reception unit 102.
  • FIG. Also in the present embodiment, the model generator 103b generates the model H(x) represented by Equation (1).
  • the model generation unit 103b generates a plurality of Ising models for which quantum annealing is performed at the same time.
  • the number of Ising models for which quantum annealing is simultaneously performed is s (s is an integer of 2 or more). That is, the model generating unit 103b generates s Ising models.
  • the s Ising models may be the same or different.
  • each Ising model may have a different number of binary variables x i (that is, the value of n), a different value of probability values pi (that is, a probability distribution), or a binary
  • the subintervals assigned to variables x i may be different.
  • Each of a total of t binary variables x i of the s Ising models generated by the model generation unit 103b is associated with a different quantum bit. Therefore, if the number of quantum bits provided in the quantum annealing machine 200 is k, the value of t is k or less.
  • the annealing result acquisition unit 104 b associates t binary variables x i , which are a set of binary variables x i in s Ising models, with t quantum bits of the same quantum annealing machine 200 .
  • Quantum annealing machine 200 simultaneously performs quantum annealing on s Ising models to obtain solutions of s Ising models.
  • the annealing result acquiring unit 104b acquires the values of t binary variables xi , which are the execution results of quantum annealing for s Ising models.
  • FIG. 8 is a flow chart showing an example of the operation of the random number generator 100b.
  • the random number generation operation by the random number generator 100b will be described below with reference to FIG.
  • step S300 as in step S100 of FIG. 4, the input reception unit 102 receives input of setting information regarding the output of random numbers. In this step, the input receiving unit 102 receives information necessary to generate each of the plurality of Ising models.
  • step S301 the model generation unit 103b generates multiple Ising models based on the probability distribution specified in step S300.
  • the annealing result acquisition unit 104b acquires, from the quantum annealing machine 200, the results of quantum annealing performed simultaneously for the plurality of Ising models generated in step S301. That is, the annealing result acquisition unit 104b acquires the value of the binary variable xi of each Ising model. This enables selection of a partial section in each Ising model.
  • step S303 the pseudorandom number generation unit 105 generates a pseudorandom number within the partial section selected based on the execution result obtained in step S302.
  • the pseudorandom number generator 105 generates a pseudorandom number for each generated Ising model.
  • step S304 the processing control unit 101 determines whether or not the specified number of random numbers has been obtained.
  • a plurality of random numbers can be obtained by performing the processing of steps S302 and S303 only once. However, if the number of random numbers obtained still does not reach the designated number, quantum annealing is performed again. Therefore, when the designated number of random numbers has not been obtained, the processing control unit 101 controls to perform the processing of steps S302 and S303 again. On the other hand, if the specified number of random numbers are obtained, the process proceeds to step S305.
  • step S305 the random number output unit 106 outputs the random number obtained by the processing in steps S302 and S303.
  • the third embodiment has been described above.
  • random numbers are generated using the results of quantum annealing performed simultaneously for a plurality of Ising models. Therefore, efficient generation of random numbers using the quantum annealing machine 200 is possible.
  • this embodiment can be combined with the second embodiment. That is, in the present embodiment, selection of partial sections may be hierarchically repeated as in the second embodiment.
  • the model generating unit 103b generates a new Ising model using a binary variable assigned to a new partial interval obtained by subdividing the partial interval, one for each of s existing Ising models.
  • the annealing result acquiring unit 104b further acquires the values of t binary variables, which are the execution results of quantum annealing for s new Ising models.
  • the information processing apparatus including the random number generator described above may have a processing unit that performs predetermined processing using the generated random numbers.
  • the processing unit may perform known predetermined encryption processing using random numbers, or may perform simulation processing using random numbers such as Monte Carlo simulation.
  • this processing unit may also be realized by, for example, a processor executing a program stored in a memory.
  • random numbers are generated using the execution result of quantum annealing for the Ising model, but the execution result of simulated annealing may be used instead of quantum annealing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

所望の分布に従う高品質な乱数を生成することができる乱数生成器、乱数生成方法、及びプログラムを提供する。乱数生成器(1)は、乱数の確率分布を指定する入力を受付ける入力受付部(2)と、乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成するモデル生成部(3)と、前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得するアニーリング結果取得部(4)と、前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する乱数出力部(5)とを有する。

Description

乱数生成器、乱数生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
 本発明は乱数生成器、乱数生成方法、及びプログラムに関する。
 セキュアなデータ通信などにおいて、高品質な乱数を得ることは重要である。しかし、通常の計算機において関数呼び出しで得られる乱数は周期性がある。また、物理的なノイズを利用した乱数生成器により生成された乱数は、物理現象を観察及び再現することで、予測が可能である。したがって、これらの乱数では高いセキュリティを担保できない。
 近年、量子コンピュータの利用が広まりつつあり、インターネットを介して、一般の利用者でも、量子コンピュータにアクセスし、利用可能となっている。量子コンピュータ技術は発展途上であるが、量子アニーリング方式と呼ばれる量子コンピュータ(以下、量子アニーリングマシンと称す)は利用可能となっている。量子アニーリングマシンは、イジングモデルと呼ばれる定式化された問題を求解することに特化した計算機であり、組合せ最適化問題の求解などに使われている(特許文献1参照)。
 イジングモデルで表現された系における、安定した状態の量子ビット(0,1)の組合せを量子アニーリングマシンにより得ることができる。ただし、量子ゆらぎと呼ばれる特性のため、常に同じ組み合わせが得られるわけではなく、安定した状態近辺の量子ビットの様々な組合せが得られる。量子ビットの様々な組合せの発生確率は、原理的にはボルツマン分布に従う。そのため、量子アニーリングマシンを用いた場合、最適化問題の最適解近辺の解を得ることはできるが、ボルツマン分布以外の利用者が指定する任意の分布に従う解(数値)を得ることはできない。このため、利用者が指定する任意の分布に従う乱数の生成には量子アニーリングマシンを利用することができなかった。
 一方、利用者が指定する分布に従う乱数を得るための技術に関して、特許文献2に開示された技術がある。この文献に記載された技術では、疑似乱数生成器により生成された数値に所定の処理を行うことにより所定の分布に従う乱数を得ている。疑似乱数には周期性があるため、この技術により得られる乱数は、高品質の乱数とならない。
特表2008-525873号公報 特開2019-79523号公報
 上述した通り、所望の分布に従う高品質な乱数を生成する技術の提供が求められている。
 そこで、本明細書に開示される実施形態が達成しようとする目的の1つは、所望の分布に従う高品質な乱数を生成することができる乱数生成器、乱数生成方法、及びプログラムを提供することである。
 本開示の第1の態様にかかる乱数生成器は、
 乱数の確率分布を指定する入力を受付ける入力受付部と、
 乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成するモデル生成部と、
 前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得するアニーリング結果取得部と、
 前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する乱数出力部と
 を有する。
 本開示の第2の態様にかかる乱数生成方法では、
 乱数生成器が、
 乱数の確率分布を指定する入力を受付け、
 乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成し、
 前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得し、
 前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する。
 本開示の第3の態様にかかるプログラムは、
 乱数の確率分布を指定する入力を受付ける入力受付ステップと、
 乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成するモデル生成ステップと、
 前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得するアニーリング結果取得ステップと、
 前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する乱数出力ステップと
 をコンピュータに実行させる。
 上述の態様によれば、所望の分布に従う高品質な乱数を生成することができる乱数生成器、乱数生成方法、及びプログラムを提供することができる。
実施形態の概要にかかる乱数生成器の構成の一例を示すブロック図である。 実施の形態1にかかる乱数生成システムの構成の一例を示すブロック図である。 実施の形態1にかかる乱数生成器のハードウェア構成の一例を示すブロック図である。 実施の形態1にかかる乱数生成器の動作の一例を示すフローチャートである。 実施の形態2にかかる乱数生成システムの構成の一例を示すブロック図である。 実施の形態2にかかる乱数生成器の動作の一例を示すフローチャートである。 実施の形態3にかかる乱数生成システムの構成の一例を示すブロック図である。 実施の形態3にかかる乱数生成器の動作の一例を示すフローチャートである。
<実施の形態の概要>
 実施形態の詳細を説明する前に、まず、実施形態の概要について説明する。
 図1は、実施形態の概要にかかる乱数生成器1の構成の一例を示すブロック図である。乱数生成器1は、量子アニーリングの結果を用いて乱数を生成する装置であり、図1に示すように入力受付部2、モデル生成部3、アニーリング結果取得部4、及び乱数出力部5を有する。
 入力受付部2は、乱数の確率分布を指定する入力を受付ける。ユーザ等は、所望の確率分布に従う乱数を乱数生成器1に出力させるために、この所望の確率分布を指定する入力を乱数生成器1に与える。
 モデル生成部3は、乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、入力受付部2が受付けた確率分布に基づいて生成する。ここで、乱数の数値範囲とは、生成されうる乱数の最小値と最大値により定まる範囲をいう。すなわち、乱数生成器1は、この数値範囲に属する乱数を生成する。また、上述した二値変数の値は、この数値範囲に属する部分区間を選択するか否かを表す。換言すると、この二値変数は、当該二値変数が割り当てられた部分区間に含まれる値を乱数として採用するか否かを表す。
 アニーリング結果取得部4は、モデル生成部3が生成したイジングモデルについての量子アニーリングの実行結果であるn個の二値変数の値を取得する。すなわち、アニーリング結果取得部4は、量子アニーリングマシンに、モデル生成部3が生成したイジングモデルについての量子アニーリングを実行させ、その実行結果を量子アニーリングマシンから取得する。
 乱数出力部5は、実行結果として得られた値が所定の値(例えば、1)である二値変数に割り当てられている部分区間に含まれる値を乱数として出力する。
 このように、乱数生成器1は、指定された確率分布に基づいてイジングモデルを生成し、このイジングモデルについての量子アニーリングの結果にしたがって、乱数を出力する。量子アニーリングの実行結果は、予測が困難であるため、乱数生成器1が出力する乱数の予測も困難である。このため、乱数生成器1によれば、所望の分布に従う高品質な乱数を生成することができる。
<実施の形態1>
 次に、実施の形態1について説明する。
 図2は、実施の形態1にかかる乱数生成システム10の構成の一例を示すブロック図である。図2に示すように、乱数生成システム10は、乱数生成器100と量子アニーリングマシン200とを備える。乱数生成器100と量子アニーリングマシン200とは、例えば、有線又は無線のネットワークを介して、相互に通信可能に接続されている。なお、図2に示した構成では、量子アニーリングマシン200は、乱数生成器100とは別の装置として図示されているが、乱数生成器100に含まれてもよい。
 乱数生成器100は、図1に示した乱数生成器1に対応している。量子アニーリングマシン200は、量子ビットと量子ビット間の結合とを実現する量子チップを備え、イジングモデルについての量子アニーリングを行ない各量子ビットの値を決定する。なお、量子チップは、量子力学における量子状態を用いて動作するチップである。なお、乱数生成システム10の量子アニーリングマシン200としては、公知のマシンを用いることができるため、その具体的な構成及び処理についての詳細な説明は割愛する。
 以下、乱数生成器100の具体的な構成及び処理について説明する。
 乱数生成器100は、図2に示すように、処理制御部101、入力受付部102、モデル生成部103、アニーリング結果取得部104、疑似乱数生成部105、及び乱数出力部106を有する。
 処理制御部101は、乱数生成器100の上述した構成要素の処理を制御する。本実施の形態では、特に、処理制御部101は、生成すべき乱数の個数に応じて、アニーリング結果取得部104及び疑似乱数生成部105の処理の実行回数を制御する。
 入力受付部102は、図1の入力受付部2に対応しており、乱数の確率分布を指定する入力を受付ける。入力受付部102は、例えば、乱数生成器100が備える入力インタフェースを介してユーザが入力した確率分布を受付けてもよいし、乱数生成器100が備えるメモリなどの記憶装置から確率分布を読み出すことにより、これを受付けてもよい。また、入力受付部102は、他の装置から送信された確率分布を受信することにより、これを受付けてもよい。
 本実施の形態では、入力受付部102は、乱数の確率分布を指定する入力として、部分区間ごとの確率の設定値を受付ける。この部分区間は、確率変数の定義域を区分したものであるが、乱数の数値範囲を分割したものとも言うことができる。例えば、乱数生成器100により生成したい乱数の最小値をRMIN、最大値をRMAXとする。すなわち、乱数生成器100により、RMIN以上、RMAX以下の乱数を生成する場合を例に説明する。この場合、乱数生成器100は、RMINを下限としRMAXを上限とする数値範囲をn(nは2以上の整数)等分して得られるn個の部分区間ごとの確率の設定値を受付ける。つまり、入力受付部102は、部分区間ごとの確率pの指定を受付ける。ここで、添え字iは、部分区間の識別番号であり、1以上n以下の整数である。例えば、ある部分区間に属する数値が最も乱数として出力されやすいようにしたい場合、当該部分区間の確率pの値は、他の部分区間の確率pの値よりも大きい値が設定されることとなる。なお、pからpの総和は1となる。
 上述したn、RMIN、及びRMAXのそれぞれの値は、予め定められていてもよいし、入力受付部102が受付けてもよい。このように、n、RMIN、及びRMAXの指定も可能とすることにより、乱数生成器100の運用における利便性を向上することができる。
 なお、本実施の形態では、入力受付部102は、部分区間ごとの確率の設定値を受付けるが、確率分布を指定する入力はこれに限られない。例えば、入力受付部102は、乱数の確率分布を指定する入力として、確率分布の種類(例えば、正規分布など)を指定する情報と、分布のパラメータ(平均及び分散など)とを受付けてもよいし、確率分布を表す数式を受付けてもよい。
 なお、入力受付部102は、さらに、生成すべき乱数の個数の指定を受付けてもよい。
 モデル生成部103は、図1のモデル生成部3に対応しており、n個の部分区間のそれぞれに割り当てられるn個の二値変数(量子ビット変数)を用いたイジングモデルを、入力受付部102が受付けた確率分布に基づいて生成する。ここでは、n個の二値変数(量子ビット変数)をx、x、・・・、xとする。すなわち、i番目の部分区間には、二値変数xが割り当てられる。したがって、i番目の部分区間には、確率pと二値変数xが関連づけられる。
 モデル生成部103は、具体的には、例えば以下の式(1)で表されるモデルH(x)を生成する。
<式(1)>
Figure JPOXMLDOC01-appb-I000001
 ここで、上述の通り、iは、n個の部分区間を識別する番号である。xは、i番目の部分区間に割り当てられた二値変数であり、0または1の値をとる。pは、xが割り当てられた部分区間における確率分布の値である。
 式(1)において、右辺の第一項で表される関数(第一の関数とも称す)は、目的関数である。量子アニーリングマシン200によって、関数HOnehot(第二の関数とも称す)で表される制約を満たしつつこの目的関数の値が最小となるような近似解(すなわち、二値変数x、x、・・・、xの値の組み合わせ)が探索される。また、右辺の第二項で表される関数HOnehotは、n個の二値変数x、x、・・・、xのいずれか一つが所定の値(具体的には、1)となり、それ以外の二値変数が当該所定の値以外の値(具体的には、0)となるようにするための制約項である。関数HOnehotは、具体的には、以下の式(2)で表される。なお、wは、重みを表す係数であり、モデル生成部103は、wの値として正の所定値を設定する。
<式(2)>
Figure JPOXMLDOC01-appb-I000002
 モデル生成部103は、上記数式で表されるモデルのpの値を入力受付部102が受付けた乱数の確率分布の指定にしたがって決定することにより、当該確率分布にしたがった乱数を生成するためのイジングモデルを生成する。なお、入力受付部102が、部分区間ごとの確率pの設定値ではなく、確率分布を表す数式を受付けた場合及び確率分布の種類及びパラメータを受付けた場合には、モデル生成部103は、次のように上記のイジングモデルを生成する。この場合、モデル生成部103は、n、RMIN、及びRMAXを用いて、各部分区間の確率pを特定することにより、上記のイジングモデルを生成する。このとき、部分区間において確率分布の値が一定でない場合には、モデル生成部103は、例えば、当該部分区間における確率分布の値の平均値、最小値、又は最大値などを用いて、確率pを決定してもよい。
 上記数式からわかるように、モデル生成部103は、次のようなイジングモデルを生成すると説明することもできる。モデル生成部103は、二値変数xについての第一の関数と二値変数xについての第二の関数とを用いて表されるイジングモデルを生成する。ここで、第一の関数は、二値変数xが割り当てられた部分区間における確率分布の値pが大きいほど値が小さくなる関数の値と当該二値変数xの値との積の総和で表される関数である。また、第二の関数は、n個の二値変数x、x、・・・、xのいずれか一つが所定の値である場合に最小値となる関数であり、この条件が満たされない場合、重みwに依存した正の値をとる。
 アニーリング結果取得部104は、図1のアニーリング結果取得部4に対応しており、モデル生成部103が生成したイジングモデルについての量子アニーリングの実行結果であるn個の二値変数x、x、・・・、xのそれぞれの値を取得する。アニーリング結果取得部104は、量子アニーリングマシン200に処理を実行させるために、モデル生成部103が生成したイジングモデルに基づいて、量子アニーリングマシン200による量子アニーリングの実行条件を設定する。具体的には、アニーリング結果取得部104は、モデル生成部103が生成したイジングモデルに基づいて、二値変数に対応する量子ビットと、量子ビット間の相互作用の強さを設定する。そして、アニーリング結果取得部104は、量子アニーリングマシン200に当該イジングモデルについての量子アニーリングの実行を指示する。
 これに対し、量子アニーリングマシン200は、量子アニーリングの実行結果、すなわちn個の二値変数x、x、・・・、xのそれぞれの値を乱数生成器100に対して出力し、アニーリング結果取得部104がこれを取得する。量子アニーリングマシン200は、式(1)で示したH(x)を最小にする近似解を量子アニーリングの実行結果として出力する。具体的には、アニーリング結果取得部104は、式(1)で表されるイジングモデルに対する量子アニーリングの実行結果として、次のような実行結果を取得する。すなわち、アニーリング結果取得部104は、n個の二値変数x、x、・・・、xのうちの一つの二値変数の値が所定の値(具体的には1)であり、他の二値変数の値が他の値(具体的には0)である実行結果を取得する。
 ここで、二値変数xの値が1となる確率は、pである。したがって、乱数生成器100は、値が所定の値(具体的には1)である二値変数xに対応する部分区間に属する値を乱数として出力することで、指定された確率分布にしたがった乱数を生成することができる。乱数生成器100は、値が所定の値である二値変数xに対応する部分区間内の所定値を乱数として出力してもよいが、本実施の形態では、より様々な値を乱数として出力できるように、乱数生成器100は疑似乱数生成部105を備えている。なお、部分区間内の所定値とは、例えば、当該部分区間の中央の値、最大値、又は最小値などである。
 疑似乱数生成部105は、量子アニーリングの実行結果として得られた値が所定の値(具体的には1)である二値変数xに割り当てられている部分区間に収まる疑似乱数(一様乱数)を生成する。すなわち、当該部分区間の最小値を疑似乱数の最小値とし、当該部分区間の最大値を疑似乱数の最大値とする疑似乱数を生成する。疑似乱数生成部105は、疑似乱数を生成する公知の関数を用いて疑似乱数を生成する。例えば、疑似乱数生成部105は、乱数値を返す組み込み関数の呼び出しにより、疑似乱数を得てもよい。
 乱数出力部106は、図1の乱数出力部5に対応しており、量子アニーリングの実行結果にしたがって選択された部分区間に含まれる値を乱数として出力する。本実施の形態では、選択された部分区間に含まれる値として、疑似乱数生成部105により生成された疑似乱数を出力する。なお、このように、本実施の形態では、乱数出力部106は、量子アニーリングの実行結果にしたがって選択された部分区間における疑似乱数を出力するが、上述の通り、当該部分区間内の所定値を出力してもよい。この場合、乱数生成器100は、疑似乱数生成部105を有さなくてもよい。乱数出力部106は、任意の出力先に乱数を出力する。乱数出力部106は、例えば、乱数をディスプレイに出力してもよいし、暗号化処理などの所定の処理を行う装置又は処理部などに乱数を送信してもよい。
 乱数生成器100は、複数の乱数を生成してもよく、この場合、乱数出力部106は、生成された複数の乱数を出力する。処理制御部101は、生成する乱数の数に応じて、アニーリング結果取得部104及び疑似乱数生成部105の処理の実行回数を制御する。上述の通り、式(1)で表されるイジングモデルについて量子アニーリングを実行するたびに、1つの乱数を生成することができる。したがって、例えば、処理制御部101は、m(mは正整数)個の乱数を生成する場合、アニーリング結果取得部104及び疑似乱数生成部105の処理をm回繰り返すよう処理を制御する。なお、mの値は、予め定められていてもよいし、入力受付部102が受付けてもよい。このように、乱数生成器100は、同一のイジングモデルについての複数回の量子アニーリングの実行結果を取得することにより、複数の乱数を出力する。これにより、任意の個数の乱数を得ることができる。
 図3は、乱数生成器100のハードウェア構成の一例を示すブロック図である。図3に示すように、乱数生成器100は、ネットワークインタフェース150、メモリ151、及びプロセッサ152を含む。ネットワークインタフェース150、メモリ151、及びプロセッサ152は、データバスなどを介して相互に接続されている。
 ネットワークインタフェース150は、量子アニーリングマシン200を含む他の任意の装置と通信するために使用される。ネットワークインタフェース150は、例えば、ネットワークインタフェースカード(NIC)を含んでもよい。
 メモリ151は、例えば、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ151は、プロセッサ152により実行される、1以上の命令を含むソフトウェア(コンピュータプログラム)、及び乱数生成器100の各種処理に用いるデータなどを格納するために使用される。
 プロセッサ152は、メモリ151からソフトウェア(コンピュータプログラム)を読み出して実行することで、図2に示した各構成要素の処理を行う。
 プロセッサ152は、マイクロプロセッサ、MPU(Micro Processor Unit)、又はCPU(Central Processing Unit)などであってもよい。プロセッサ152は、複数のプロセッサを含んでもよい。
 このように、乱数生成器100は、コンピュータとして機能する装置であり、情報処理装置とも称される。
 なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 次に、乱数生成器100の動作の流れについて説明する。
 図4は、乱数生成器100の動作の一例を示すフローチャートである。以下、図4を参照しつつ、乱数生成器100による乱数の生成動作について説明する。
 ステップS100において、入力受付部102は、乱数の出力についての設定情報の入力を受付ける。具体的には、入力受付部102は、乱数の確率分布を指定する入力を受付ける。また、上述の通り、入力受付部102は、さらに、分割数n、乱数の最小値RMIN、乱数の最大値RMAX、及び生成すべき乱数の個数mのいずれかまたは全てについて指定する入力を受付けてもよい。
 次に、ステップS101において、モデル生成部103は、ステップS100で指定された確率分布に基づいて、イジングモデルを生成する。
 次に、ステップS102において、アニーリング結果取得部104は、ステップS101で生成したイジングモデルについての量子アニーリングの実行結果を量子アニーリングマシン200から取得する。すなわち、アニーリング結果取得部104は、n個の二値変数x、x、・・・、xのそれぞれの値を取得する。
 次に、ステップS103において、疑似乱数生成部105は、ステップS102で取得した実行結果に基づいて選択される部分区間内で、疑似乱数を生成する。すなわち、疑似乱数生成部105は、値が1であるxに対応する部分区間に収まる疑似乱数を生成する。
 次に、ステップS104において、処理制御部101は、指定された個数の乱数が得られたか否かを判定する。指定された個数の乱数が得られていない場合には、処理制御部101は、ステップS102及びステップS103の処理を再度行うよう制御する。これに対し、指定された個数の乱数が得られた場合には、処理はステップS105へ移行する。
 ステップS105において、乱数出力部106は、ステップS102及びステップS103の処理により得られた乱数を出力する。
 以上、実施の形態1について説明した。本実施の形態では、量子アニーリングの結果に基づいて部分区間が選択される。このため、選択される部分区間の予測は困難である。また、各部分区間が選択される確率は、指定された確率分布にしたがう。このため、本実施の形態によれば、所望の分布に従う高品質な乱数を生成することができる。
<実施の形態2>
 次に、実施の形態2について説明する。
 量子アニーリングマシン200が備える量子ビットの数をk(kは2以上の整数)とする。この場合、実施の形態1で示した乱数生成器100では、量子の特性を利用した部分区間の選択、すなわち予測が困難な部分区間の選択は、最大でもk個の部分区間の中から行われることとなる。すなわち、設定可能な部分区間の数が量子ビットの数に依存してしまう。本実施の形態では、部分区間の選択を階層的に繰り返すことにより、より多くの部分区間の中から部分区間を選択する。これにより、量子アニーリングマシン200の量子ビット数が限られていても、より多くの部分区間の中から選択した乱数を出力することができる。
 図5は、実施の形態2にかかる乱数生成システム10aの構成の一例を示すブロック図である。図5に示すように、実施の形態2にかかる乱数生成システム10aは、乱数生成器100が乱数生成器100aに置き換わった点で、実施の形態1にかかる乱数生成システム10と異なっている。
 以下、実施の形態1と異なる構成及び処理について説明し、実施の形態1と同様な構成及び処理については適宜説明を省略する。
 図5に示されるように、実施の形態2にかかる乱数生成器100aは、主に、処理制御部101が処理制御部101aに置き換わった点で、実施の形態1にかかる乱数生成器100と異なっている。また、図5に示した構成例では疑似乱数生成部105が省略されている。ただし、本実施の形態でも、乱数生成器100aは、疑似乱数生成部105を備えていてもよい。すなわち、本実施の形態において最終的に選択された部分区間に含まれる数値を乱数として出力する際に、この部分区間に含まれる所定値ではなく、疑似乱数生成部105により生成した乱数を出力してもよい。
 なお、図5に示した構成においても、量子アニーリングマシン200は、乱数生成器100aとは別の装置として図示されているが、乱数生成器100aに含まれてもよい。
 処理制御部101aは、処理制御部101と同様、図5に示した乱数生成器100aの各構成要素の処理を制御する。特に、処理制御部101aは、所定の回数だけ、部分区間の階層的な選択を行うよう、モデル生成部103及びアニーリング結果取得部104の処理を制御する。ここで、部分区間の階層的な選択とは、n個の部分区間の中から量子アニーリング結果にしたがって部分区間を選択し、その後、選択された部分区間に設定されたn個のより細かい部分区間の中から量子アニーリング結果にしたがって部分区間をさらに選択することをいう。処理制御部101aは、量子アニーリングによる部分区間の階層的な選択をq回(qは整数)繰り返すよう制御する。なお、q=0の場合、実施の形態1と同様、部分区間の階層的な選択、すなわち部分区間の再選択を行わずに乱数を出力することとなる。なお、このqの値は、予め定められていてもよいし、入力受付部102が受付けてもよい。
 部分区間の階層的な選択を行うために、本実施の形態のモデル生成部103は、処理制御部101aの制御にしたがい、次のような処理を行う。モデル生成部103は、モデル生成後にさらに、量子アニーリングの実行により選択された部分区間をさらに分割したn個の新たな部分区間のそれぞれに割り当てられるn個の二値変数を用いた新たなイジングモデルを、指定された確率分布に基づいて生成する。具体的には、モデル生成部103は、部分区間の階層的な選択を行うために、式(1)で示したイジングモデルを新たに生成する。ただし、新たなイジングモデルにおいて、n個の二値変数xは、選択された部分区間をさらに分割したn個の新たな部分区間のそれぞれに割り当てられた変数である。また、確率pは、新たな部分区間における確率分布の値である。
 例えば、入力受付部102が、確率分布を表す数式を受付けた場合及び確率分布の種類及びパラメータを受付けた場合には、モデル生成部103は、分割数n、及び、選択された部分区間の範囲を用いて、新たな部分区間の確率pを特定する。このとき、新たな部分区間において確率分布の値が一定でない場合には、モデル生成部103は、例えば、当該部分区間における確率分布の値の平均値、最小値、又は最大値などを用いて、新たな部分区間の確率pを決定してもよい。また、入力受付部102は、新たな部分区間の確率pの設定値をそれぞれ指定する入力を受付けてもよい。なお、モデル生成部103は、新たな部分区間の確率pの総和が1でない場合には、総和が1となるように確率pの値を正規化した上で、新たなイジングモデルを生成する。
 部分区間の階層的な選択を行うために、本実施の形態のアニーリング結果取得部104は、処理制御部101aの制御にしたがい、次のような処理を行う。アニーリング結果取得部104は、モデル生成部103が、上述した新たなイジングモデルを生成した場合、この新たなイジングモデルについての量子アニーリングの実行結果であるn個の二値変数の値を取得する。取得されるn個の二値変数の値は、細分化された部分区間のうちどの部分区間を選択するべきかを示す。
 本実施の形態の乱数出力部106は、部分区間の階層的な選択が終了すると、最終的に選択された部分区間に含まれる値を乱数として出力する。すなわち、乱数出力部106は、新たなイジングモデルについての量子アニーリングの実行結果として得られた値が所定の値(具体的には1)である二値変数xに割り当てられている新たな部分区間に含まれる値を乱数として出力する。なお、本実施の形態では乱数出力部106は、選択された部分区間内の所定値(例えば、当該部分区間の中央の値、最大値、又は最小値など)を乱数として出力するが、疑似乱数生成部105が生成した値を出力してもよい。
 次に、乱数生成器100aの動作の流れについて説明する。
 図6は、乱数生成器100aの動作の一例を示すフローチャートである。以下、図6を参照しつつ、乱数生成器100aによる乱数の生成動作について説明する。
 ステップS200において、図4のステップS100と同様、入力受付部102は、乱数の出力についての設定情報の入力を受付ける。
 次に、ステップS201において、図4のステップS101と同様、モデル生成部103は、ステップS200で指定された確率分布に基づいて、イジングモデルを生成する。
 次に、ステップS202において、図4のステップS102と同様、アニーリング結果取得部104は、ステップS201で生成したイジングモデルについての量子アニーリングの実行結果を量子アニーリングマシン200から取得する。
 次に、ステップS203において、処理制御部101aは、部分区間の細分化を所定の回数行ったか否かを判定する。すなわち、処理制御部101aは、部分区間の階層的な選択をq回行ったか否かを判定する。部分区間の細分化が所定の回数行われていない場合には、処理制御部101aは、イジングモデルの生成及び量子アニーリングの実行を再度行うよう制御する。すなわち、この場合、処理はステップS204へ移行する。これに対し、部分区間の細分化が所定の回数行われた場合には、処理はステップS205へ移行する。
 ステップS204において、部分区間の階層的な選択を行うために、モデル生成部103は、新たな部分区間についてのイジングモデルを生成する。すなわち、モデル生成部103は、ステップS202において量子アニーリングの実行結果として得られた値が所定の値である二値変数xに割り当てられている部分区間をさらに分割したn個の新たな部分区間についてのイジングモデルを生成する。ステップS204の処理の後、処理は、ステップS202に戻り、アニーリング結果取得部104は、ステップS204で生成されたイジングモデルについての量子アニーリングの実行結果を量子アニーリングマシン200から取得する。その後、再びステップS203の判定処理が行われる。
 部分区間の細分化が所定の回数行われると、一つの乱数が得られる。ステップS205では、処理制御部101aは、指定された個数の乱数が得られたか否かを判定する。指定された個数の乱数が得られていない場合には、処理制御部101aは、ステップS202からステップS204の処理を再度行うよう制御する。このとき、ステップS202では、アニーリング結果取得部104は、細分化されていない初期状態の部分区間に割り当てられた二値変数xを用いたイジングモデルについての量子アニーリングの実行結果を取得する。すなわち、以降の処理において、部分区間の階層的な選択が新規に繰り返されることとなる。これに対し、指定された個数の乱数が得られた場合には、処理はステップS206へ移行する。
 ステップS206において、乱数出力部106は、ステップS202からステップS204の処理により得られた乱数を出力する。
 以上、実施の形態2について説明した。本実施の形態では、部分区間の選択を階層的に繰り返すことにより、より多くの部分区間の中から部分区間が選択される。これにより、量子アニーリングマシン200の量子ビット数が限られていても、より多くの部分区間の中から選択した乱数を出力することができる。
<実施の形態3>
 次に、実施の形態3について説明する。
 本実施の形態は、量子アニーリングマシン200が、乱数を生成するための複数のイジングモデルについて同時に量子アニーリングを行う点で、上述した実施の形態と異なっている。量子アニーリングマシン200が備える量子ビット数に余裕があれば、量子アニーリングマシン200は、複数のイジングモデルについての解を得ることが可能である。そこで、本実施の形態では、複数のイジングモデルに対する1回の量子アニーリングの実行により、効率的に複数の乱数を得ることができる乱数生成器100bについて説明する。
 図7は、実施の形態3にかかる乱数生成システム10bの構成の一例を示すブロック図である。図7に示すように、実施の形態3にかかる乱数生成システム10bは、乱数生成器100が乱数生成器100bに置き換わった点で、実施の形態1にかかる乱数生成システム10と異なっている。なお、図7に示した構成では、乱数生成器100bは、疑似乱数生成部105を備えるが、乱数生成器100bが部分区間内の所定値を乱数として出力する場合には、疑似乱数生成部105が省略されてもよい。
 以下、実施の形態1と異なる構成及び処理について説明し、実施の形態1と同様な構成及び処理については適宜説明を省略する。
 図7に示されるように、実施の形態3にかかる乱数生成器100bは、主に、モデル生成部103がモデル生成部103bに置き換わり、アニーリング結果取得部104がアニーリング結果取得部104bに置き換わった点で、実施の形態1にかかる乱数生成器100と異なっている。なお、図7に示した構成においても、量子アニーリングマシン200は、乱数生成器100bとは別の装置として図示されているが、乱数生成器100bに含まれてもよい。
 モデル生成部103bは、モデル生成部103と同様、入力受付部102が受付けた確率分布に基づいてイジングモデルを生成する。本実施の形態においても、モデル生成部103bは、式(1)で表されるモデルH(x)を生成する。ただし、モデル生成部103bは、同時に量子アニーリングが実行される複数のイジングモデルを生成する。ここでは、同時に量子アニーリングが実行されるイジングモデルの数をs(sは2以上の整数)とする。つまり、モデル生成部103bは、s個のイジングモデルを生成する。ここで、s個のイジングモデルは同一であってもよいし、異なってもよい。このため、各イジングモデルは、二値変数xの数(つまり、nの値)が異なってもよいし、確率値pの値(つまり、確率分布)が異なってもよいし、二値変数xに割り当てられる部分区間が異なってもよい。説明のため、s個のイジングモデルにおける二値変数xの総数をtとする。なお、それぞれのイジングモデルにおける二値変数の数xをn、n、・・・、nとすると、t=n+n+・・・+nとなる。ここで、n、n、・・・、nがいずれも2以上の整数であるとすると、sが2以上の整数であることを考慮すると、tは4以上の整数である。
 モデル生成部103bが生成したs個のイジングモデルの合計t個の二値変数xのそれぞれは、異なる量子ビットに対応付けられることとなる。このため、量子アニーリングマシン200が備える量子ビットの数をkとすると、tの値はk以下である。
 アニーリング結果取得部104bは、s個のイジングモデルにおける二値変数xの集合であるt個の二値変数xを同一の量子アニーリングマシン200のt個の量子ビットに対応させる。量子アニーリングマシン200は、s個のイジングモデルについての量子アニーリングを同時に実行し、s個のイジングモデルの解を得る。これにより、アニーリング結果取得部104bは、s個のイジングモデルについての量子アニーリングの実行結果であるt個の二値変数xの値を取得する。
 次に、乱数生成器100bの動作の流れについて説明する。
 図8は、乱数生成器100bの動作の一例を示すフローチャートである。以下、図8を参照しつつ、乱数生成器100bによる乱数の生成動作について説明する。
 ステップS300において、図4のステップS100と同様、入力受付部102は、乱数の出力についての設定情報の入力を受付ける。本ステップにおいて、入力受付部102は、複数のイジングモデルそれぞれを生成するために必要な情報を受付ける。
 次に、ステップS301において、モデル生成部103bは、ステップS300で指定された確率分布に基づいて、複数のイジングモデルを生成する。
 次に、ステップS302において、アニーリング結果取得部104bは、ステップS301で生成した複数のイジングモデルについての同時に実行された量子アニーリングの結果を量子アニーリングマシン200から取得する。すなわち、アニーリング結果取得部104bは、各イジングモデルの二値変数xの値を取得する。これにより、各イジングモデルにおいて、部分区間の選択が可能となる。
 次に、ステップS303において、疑似乱数生成部105は、ステップS302で取得した実行結果に基づいて選択される部分区間内で、疑似乱数を生成する。疑似乱数生成部105は、生成したイジングモデル毎に疑似乱数を生成する。
 次に、ステップS304において、処理制御部101は、指定された個数の乱数が得られたか否かを判定する。本実施の形態では、複数のイジングモデルについての量子アニーリングを同時に行っているため、ステップS302及びステップS303の処理を1回行うだけで、複数の乱数を得ることができる。しかしながら、それでも得られた乱数の数が指定された個数に達していない場合には、再度、量子アニーリングを行う。このため、指定された個数の乱数が得られていない場合には、処理制御部101は、ステップS302及びステップS303の処理を再度行うよう制御する。これに対し、指定された個数の乱数が得られた場合には、処理はステップS305へ移行する。
 ステップS305において、乱数出力部106は、ステップS302及びステップS303の処理により得られた乱数を出力する。
 以上、実施の形態3について説明した。本実施の形態では、複数のイジングモデルについて同時に実行された量子アニーリングの結果を用いて乱数が生成される。このため、量子アニーリングマシン200を用いた効率的な乱数の生成が可能となる。
 なお、本実施の形態は、実施の形態2と組み合わせることができる。すなわち、本実施の形態において、実施の形態2と同様に、部分区間の選択を階層的に繰り返してもよい。この場合、モデル生成部103bは、部分区間を細分化した新たな部分区間に割り当てられる二値変数を用いた新たなイジングモデルを、s個の既存のイジングモデル毎に1つずつ生成する。そして、アニーリング結果取得部104bは、さらにs個の新たなイジングモデルについての量子アニーリングの実行結果であるt個の二値変数の値を取得する。
 なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した乱数生成器を含む情報処理装置は、生成した乱数を用いた所定の処理を行う処理部を有してもよい。例えば、処理部は、乱数を用いる公知の所定の暗号化処理を行ってもよいし、モンテカルロシミュレーションなどの乱数を用いるシミュレーション処理を行ってもよい。なお、この処理部も、例えば、プロセッサがメモリに格納されたプログラムを実行することにより実現されてもよい。
 なお、上述した実施の形態では、イジングモデルに対する量子アニーリングの実行結果を用いて乱数の生成を行ったが、量子アニーリングの代わりにシミュレーティッドアニーリングの実行結果が用いられてもよい。
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2021年1月22日に出願された日本出願特願2021-008663を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1  乱数生成器
2  入力受付部
3  モデル生成部
4  アニーリング結果取得部
5  乱数出力部
10  乱数生成システム
10a  乱数生成システム
10b  乱数生成システム
100  乱数生成器
100a  乱数生成器
100b  乱数生成器
101  処理制御部
101a  処理制御部
102  入力受付部
103  モデル生成部
103b  モデル生成部
104  アニーリング結果取得部
104b  アニーリング結果取得部
105  疑似乱数生成部
106  乱数出力部
150  ネットワークインタフェース
151  メモリ
152  プロセッサ
200  量子アニーリングマシン

Claims (9)

  1.  乱数の確率分布を指定する入力を受付ける入力受付手段と、
     乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成するモデル生成手段と、
     前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得するアニーリング結果取得手段と、
     前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する乱数出力手段と
     を有する乱数生成器。
  2.  前記イジングモデルは、前記二値変数についての第一の関数と前記二値変数についての第二の関数とを用いて表されるモデルであり、
     前記第一の関数は、前記二値変数が割り当てられた前記部分区間における前記確率分布の値が大きいほど値が小さくなる関数の値と当該二値変数の値との積の総和で表される関数であり、
     前記第二の関数は、n個の前記二値変数のいずれか一つが前記所定の値である場合に最小値となる関数である
     請求項1に記載の乱数生成器。
  3.  前記モデル生成手段は、さらに、前記実行結果として得られた値が前記所定の値である前記二値変数に割り当てられている前記部分区間をさらに分割したn個の新たな部分区間のそれぞれに割り当てられるn個の二値変数を用いた新たなイジングモデルを、前記確率分布に基づいて生成し、
     前記アニーリング結果取得手段は、さらに前記新たなイジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得し、
     前記乱数出力手段は、前記新たなイジングモデルについての量子アニーリングの前記実行結果として得られた値が前記所定の値である前記二値変数に割り当てられている前記新たな部分区間に含まれる値を乱数として出力する
     請求項1又は2に記載の乱数生成器。
  4.  同一の前記イジングモデルについての複数回の量子アニーリングの実行結果を取得することにより、複数の乱数を出力する
     請求項1乃至3のいずれか一項に記載の乱数生成器。
  5.  前記モデル生成手段は、s個(sは2以上の整数)の前記イジングモデルを生成し、
     前記アニーリング結果取得手段は、s個の前記イジングモデルにおける前記二値変数の集合であるt個(tは4以上の整数)の前記二値変数を同一の量子アニーリングマシンのt個の量子ビットに対応させることにより、s個の前記イジングモデルについての量子アニーリングの実行結果であるt個の前記二値変数の値を取得する
     請求項1乃至4のいずれか一項に記載の乱数生成器。
  6.  前記実行結果として得られた値が前記所定の値である前記二値変数に割り当てられている前記部分区間に収まる疑似乱数を生成する疑似乱数生成手段をさらに有し、
     前記乱数出力手段は、前記実行結果にしたがって選択された前記部分区間における前記疑似乱数を出力する
     請求項1乃至5のいずれか一項に記載の乱数生成器。
  7.  前記部分区間を指定する入力を受付ける
     請求項1乃至6のいずれか一項に記載の乱数生成器。
  8.  乱数生成器が、
     乱数の確率分布を指定する入力を受付け、
     乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成し、
     前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得し、
     前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する
     乱数生成方法。
  9.  乱数の確率分布を指定する入力を受付ける入力受付ステップと、
     乱数の数値範囲を分割したn(nは2以上の整数)個の部分区間のそれぞれに割り当てられるn個の二値変数を用いたイジングモデルを、前記確率分布に基づいて生成するモデル生成ステップと、
     前記イジングモデルについての量子アニーリングの実行結果であるn個の前記二値変数の値を取得するアニーリング結果取得ステップと、
     前記実行結果として得られた値が所定の値である前記二値変数に割り当てられている前記部分区間に含まれる値を乱数として出力する乱数出力ステップと
     をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
PCT/JP2021/042759 2021-01-22 2021-11-22 乱数生成器、乱数生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 Ceased WO2022158104A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022577000A JP7468938B2 (ja) 2021-01-22 2021-11-22 乱数生成器、乱数生成方法、及びプログラム
DE112021006880.6T DE112021006880T5 (de) 2021-01-22 2021-11-22 Zufallszahlengenerator, Zufallszahlen-Erzeugungsverfahren und nichtflüchtiges, computerlesbares Medium das ein Programm speichert
US18/272,744 US20240303042A1 (en) 2021-01-22 2021-11-22 Random number generator, random number generation method, and non-transitory computer readable medium storing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-008663 2021-01-22
JP2021008663 2021-01-22

Publications (1)

Publication Number Publication Date
WO2022158104A1 true WO2022158104A1 (ja) 2022-07-28

Family

ID=82548710

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/042759 Ceased WO2022158104A1 (ja) 2021-01-22 2021-11-22 乱数生成器、乱数生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Country Status (4)

Country Link
US (1) US20240303042A1 (ja)
JP (1) JP7468938B2 (ja)
DE (1) DE112021006880T5 (ja)
WO (1) WO2022158104A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323292A (ja) * 2002-04-30 2003-11-14 Ntt Docomo Inc 乱数列生成装置及び乱数列生成方法、並びに伝搬モデルシミュレーション装置及び方法
WO2020170410A1 (ja) * 2019-02-22 2020-08-27 株式会社 東芝 情報処理システム、情報処理方法およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533068B2 (en) 2004-12-23 2009-05-12 D-Wave Systems, Inc. Analog processor comprising quantum devices
WO2009137227A2 (en) * 2008-04-11 2009-11-12 Massachusetts Institute Of Technology Analog logic automata
GB2568660B (en) 2017-10-20 2020-10-14 Graphcore Ltd Generating Random Numbers Based on a Predetermined Probaility Distribution in an Execution Unit
JP7323519B2 (ja) * 2018-06-22 2023-08-08 株式会社リクルート データ管理システム、データ管理装置、データ管理方法及びデータ管理プログラム
JP7024807B2 (ja) 2019-06-28 2022-02-24 Jfeスチール株式会社 缶用鋼板およびその製造方法
CN112650472A (zh) * 2020-12-15 2021-04-13 中国科学院上海微系统与信息技术研究所 构造赝自旋的装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323292A (ja) * 2002-04-30 2003-11-14 Ntt Docomo Inc 乱数列生成装置及び乱数列生成方法、並びに伝搬モデルシミュレーション装置及び方法
WO2020170410A1 (ja) * 2019-02-22 2020-08-27 株式会社 東芝 情報処理システム、情報処理方法およびプログラム

Also Published As

Publication number Publication date
DE112021006880T5 (de) 2023-11-16
JP7468938B2 (ja) 2024-04-16
US20240303042A1 (en) 2024-09-12
JPWO2022158104A1 (ja) 2022-07-28

Similar Documents

Publication Publication Date Title
JP6922945B2 (ja) 情報処理方法
US20170083873A1 (en) Infeasible schedules in a quantum annealing optimization process
JP6888737B2 (ja) 学習装置、学習方法、及びプログラム
JP2018173890A (ja) 情報処理装置、情報処理方法、及びプログラム
JP7396505B2 (ja) モデル生成プログラム、モデル生成方法及びモデル生成装置
US20240232574A9 (en) Method and apparatus for predicting recipe property reflecting similarity between chemical materials
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
US10248462B2 (en) Management server which constructs a request load model for an object system, load estimation method thereof and storage medium for storing program
JP2022125725A (ja) 情報処理システム、情報処理方法及びプログラム
US9841990B2 (en) Encoding of a schedule into a binary structure
WO2022158104A1 (ja) 乱数生成器、乱数生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
CN114611143A (zh) 一种数据的脱密共享方法、装置、设备及介质
Schmidt et al. Load-balanced parallel constraint-based causal structure learning on multi-core systems for high-dimensional data
JP2020052813A (ja) ニューラルネットワーク、情報付加装置、学習方法、情報付加方法、およびプログラム
JPWO2022249373A5 (ja)
Rigoni et al. Metamodels for fast multi-objective optimization: trading off global exploration and local exploitation
WO2022249373A1 (ja) 情報処理装置、情報処理方法及びプログラム
Reese Random number generators in genetic algorithms for unconstrained and constrained optimization
JP7388566B2 (ja) データ生成プログラム、方法及び装置
JP2016207072A (ja) 生成装置、生成方法、及び生成プログラム
US10503475B1 (en) Forensically reproducible random number generator and associated method of use
JPWO2023058184A5 (ja)
KR20220084391A (ko) 분기 형태들 합성
JP2022164162A (ja) 情報処理システム、情報処理方法及びプログラム
JP7754320B2 (ja) ログデータ解析装置、ログデータ解析方法、及びログデータ解析プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21921207

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022577000

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18272744

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112021006880

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21921207

Country of ref document: EP

Kind code of ref document: A1