Statistical sampling using rejection-free parallel trial markov chain monte carlo processes

A rejection-free parallel trial Markov Chain Monte Carlo process using temperature-swapped replicas improves computational efficiency and accuracy in sampling large state spaces, addressing the inefficiencies of digital annealers and traditional MCMC processes.

JP2025105525APending Publication Date: 2025-07-10FUJITSU LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024224650
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-28
Filing Date
2024-12-20
Publication Date
2025-07-10

AI Technical Summary

Technical Problem

Digital annealers require large computational resources and distort the distribution of state spaces, leading to inaccurate representations, while traditional Markov Chain Monte Carlo processes can be invalid.

Method used

A rejection-free parallel trial Markov Chain Monte Carlo process using replicas with different temperatures, where replicas are swapped to improve sampling efficiency and accuracy, reducing computational overhead by recording intermediate states.

Benefits of technology

The method enhances computational efficiency and accuracy by reducing sample repetition and processing time, enabling effective detection of local minima/maxima in state spaces.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025105525000001_ABST
    Figure 2025105525000001_ABST
Patent Text Reader

Abstract

To provide statistical sampling using rejection-free parallel trial Markov Chain Monte Carlo processes.SOLUTION: A method may include obtaining replicas that represent estimated states of a system. A first replica having the lowest temperature in a first set of temperatures may be identified and written to a first state of a memory. The method may include performing a first Markov Chain Monte Carlo (MCMC) trial on each replica to simulate the effects of a change in the temperature of each replica. A second replica having the lowest temperature in a second set of temperatures may be identified and written to a second state of the memory. First and second multiplicities of the first and second replicas may be calculated, the multiplicities representing estimations of the quantities of MCMC trials which would result in rejection. A representation of an end state of the system may be generated based on the first replica, the second replica, the first multiplicity, and the second multiplicity.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments described herein relate to statistical sampling using rejection-free parallel trial Markov Chain Monte Carlo processes.

Background Art

[0002] Sampling techniques may be used to obtain a representation of a state space. In some cases, digital annealers have been used as samplers, but they require relatively large computational resources. Further, digital annealers may distort the distribution of the state space, and thus the resulting representation may be inaccurate. Additionally or alternatively, traditional digital annealer operations may perform operations in a manner that results in an invalid Markov Chain Monte Carlo (MCMC) process that can be used to sample the state space.

[0003] The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in the environments described above. Rather, this background is provided only to illustrate one exemplary technical area in which some of the embodiments described herein may be implemented.

Summary of the Invention

Means for Solving the Problems

[0004] According to one aspect of an embodiment, the method may include obtaining replicas, each replica including a plurality of bits representing a respective estimated state of the system. The method may include assigning each respective replica to a different corresponding temperature of a first set of temperatures and identifying a first replica having a first temperature lower than any other temperature within the first set of temperatures. The first replica may be written to a first state of the memory. The method may also include performing a first Markov Chain Monte Carlo (MCMC) trial on each respective replica, where each random bit representing a change in the state of the system is inverted in each respective replica. Inverting the random bits may affect the change in the corresponding temperature of each respective replica. A second replica having a second temperature lower than any other temperature within a second set of temperatures may be identified, where the second set of temperatures includes the temperatures corresponding to each respective replica after performing the first MCMC trial. The second replica may be written to a second state of the memory. The method may include generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica. The method may also include calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that result in rejection when performed on the first replica at the first temperature. The method may further include calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that result in rejection when performed on the second replica at the second temperature. The first multiplicity and the second multiplicity may be applied to the representation of the system, and parallel swapping may be performed with respect to the replicas by swapping adjacent temperatures of the first set of temperatures and the second set of temperatures. The second MCMC trial may be performed on each respective replica based on the second set of temperatures, and a representation of the end state of the system may be generated based on the first replica, the second replica, the first multiplicity, and the second multiplicity.

[0005] The objectives and advantages of the embodiments are realized and achieved at least by the elements, features, and combinations specifically pointed out in the claims. It is to be understood that the foregoing general description and the following detailed description are explanatory and not restrictive of the claimed invention.

Brief Description of the Drawings

[0006] Exemplary embodiments are described and explained with further specificity and detail through the use of the accompanying drawings.

[0007]

Figure 1

[0008]

Figure 2

[0009]

Figure 3

[0010]

Figure 4

[0011]

Figure 5A

Figure 5B

[0012]

Figure 6

Best Mode for Carrying Out the Invention

[0013] A large state space may be too large to be sampled exhaustively to obtain a representation of such a state space. Stochastic sampling methods allow for an approximation of a system that is too large to sample. Such a process involves sampling a random state of the system and then randomly varying the parameters of the state of the system to obtain another sample. By combining several samples, a probability distribution can be constructed that gives an estimate of the overall system. These probabilistic processes can include various algorithms for determining how the random next step is determined and how points of interest should be handled.

[0014] For example, a Markov Chain Monte Carlo (MCMC) process can be used. The MCMC process involves generating a representation of the system using neurons that represent the parameters of the system. During an MCMC trial, random changes to the neurons are proposed. These changes are either accepted or rejected depending on whether they bring the representation closer to or farther from the target result. This process is improved by performing MCMC trials on many different replicas of the representation. Here, each replica has its own weighting factor for whether a proposed change is accepted. This weighting factor is generally called the "temperature" of the replica and is also referred to as such herein. When MCMC trials are performed on multiple replicas, replicas with different temperatures may be exchanged so that the replicas can receive MCMC trials at multiple different temperatures. Over time, the temperature of the replicas can be slowly decreased in a manner similar to how a metal is slowly cooled during annealing.

[0015] The MCMC process typically involves accepting or rejecting a proposed move that represents a proposed change to the state of the system. Each proposed move is compared to a known function that is proportional to a probability distribution. The proposed move is accepted or rejected based on its similarity to the known function. Thus, the MCMC process may tend to sample states that follow the known function. This means that the MCMC process can sample more states with higher probability density. Some MCMC processes are rejection-free, which can speed up the sampling process by reducing the repetition of samples. The MCMC process can also be sped up by performing several parallel trials on the same state space.

[0016] According to one or more embodiments of the present disclosure, a "digital sampler" can be configured to sample a state space. The digital sampler can utilize a rejection-free MCMC process and calculate a multiplicity for each trial. The multiplicity can represent an estimate of how many MCMC trials will lead to rejection. This can be an estimate of how many iterations of the state space will occur in a rejection MCMC process, even if a rejection-free MCMC process can be employed.

[0017] For example, when a replica representing the state of the system reaches a local minimum in a minimization problem, any move away from the local minimum will seem to move away from the target solution, so the proposed changes in the MCMC trial are likely to be rejected. Thus, when at a local minimum, a larger number of MCMC trials may lead to rejection. Therefore, the calculated multiplicity can indicate whether a particular encountered state may correspond to a local minimum in a rejection-free MCMC process. In contrast, if a rejection MCMC process is used, more iteration steps can be performed in recognizing and exiting the local extremum.

[0018] Therefore, the advantage of calculating multiplicity is that it can use a rejection-free MCMC process instead of a rejection-based MCMC process, and thus it may be possible to reduce the sample repetition and processing time while retaining information related to local extrema. Multiplicity allows for the detection of local minima or maxima by determining where the multiplicity is high. This enables the computing system to more efficiently form an accurate estimate of the state space. Thus, this can improve the functionality of a computing device configured to execute an MCMC process.

[0019] For example, embodiments of the present disclosure may be used to implement a digital sampler that is computationally more efficient than both a normal MCMC trial and a digital annealer that functions as a sampler. For example, the digital sampler of the present disclosure may have a lower overhead than a digital annealer used as a sampler. For example, the digital sampler may not need to re-route the final output as input for a new run as a digital annealer requires. For example, unlike a digital annealer that outputs only the final state, the digital sampler can record intermediate steps and create a map of the sampled states. The digital sampler can utilize a plurality of replicas, each representing an estimated value of the state of the system. Each of those replicas can undergo an MCMC trial with parallel swapping. The digital sampler can record the energy and state of one or more replicas after each probabilistic trial. Thus, one or more samples are recorded after each trial. The digital sampler constructs a representation of the system when an MCMC trial is performed. This may consume fewer overhead computing resources than recording the final states of several trials and then re-routing that state as input for the next round of trials, as done by a digital annealer. This reduced overhead can thus improve the functionality of a computing system configured to implement a digital sampler compared to others that may perform sampling using a digital annealer.

[0020] Embodiments of the present invention will be described with reference to the drawings.

[0021] FIG. 1 shows an exemplary digital sampler 100 configured to sample a system using a rejection-free MCMC process according to at least one embodiment of the present disclosure. The digital sampler 100 includes a replica exchange block 110, a random number (RND) block 120, an MCMC block 130, and a DRAM block 140. In some embodiments, the replica exchange block 110 includes a parallel tempering (PT) kernel configured to perform replica swaps as well as temperature adjustment and removal. The PT kernel includes instructions for performing steps of parallel tempering. Parallel tempering involves assigning a range of temperatures to a number of replicas representing states or systems. When probabilistic trials are performed on those replicas, the temperatures assigned to the individual replicas act as weighting factors that affect which moves the MCMC process accepts or rejects. For example, a high temperature corresponds to a high probability of moving away from a local minimum in a minimization problem.

[0022] Parallel tempering (annealing) involves changing the temperature of replicas while randomly exchanging replicas between temperatures. Replicas may be added or removed. This replica swapping allows states that exist at low temperatures to be exposed to high temperatures and states that exist at high temperatures to be exposed to low temperatures. This helps to cover a wider array of states of the system. For example, in a minimization problem, a replica trapped in a local minimum can escape the local minimum by being exposed to a higher temperature. As another example, a high-temperature replica may reach a state that is very unlikely to occur at low temperature and then stay there and be able to move with higher accuracy by being exposed to low temperature. In sampling, parallel tempering is beneficial because it causes replicas to sample a wide array of the system at high temperature and then focus on the points of interest at low temperature. Annealing and replica swapping increase the probability of sampling the points of interest.

[0023] The replica exchange block 110 receives inputs from the RND block 120 and the MCMC block 130. The replica exchange block 110 receives the energy of all or some of the replicas from the MCMC block 130 and receives random numbers for each replica swap from the RND block 120. The energy of the replicas may be used, together with the temperature of the replicas and one or more random numbers, to determine whether a swap is to be performed. The replica exchange block 110 sends a decision as to whether a swap is to be performed to the MCMC block 130. The replica exchange block 110 sends the PT replica index and a set of adjusted temperatures to the MCMC block 130. In some embodiments, the replica exchange block 110 may perform a replica exchange process as described in U.S. Patent Application No. 17 / 142, filed on January 5, 2021, which is hereby incorporated by reference in its entirety.

[0024] The MCMC block 130 may include an MCMC kernel configured to perform probabilistic trials, perform parallel updates, sum regular trials for multiplicity, calculate the multiplicity, determine a minimum delta energy in each sequential iteration, and control the execution of one or more other kernels. Probabilistic sampling is a method of determining a state change by random changes that may be accepted or rejected in some cases. As an example, in some embodiments, the MCMC block 130 may use a shift register that uses the output of a first bit flip (e.g., the first probabilistic sample) as an input for a second bit flip (e.g., the second probabilistic sample) to perform probabilistic trials for a number of replicas, which may facilitate the conversion between serial and parallel sampling of replicas. For example, in an exemplary implementation, the MCMC block 130 may be configured to perform probabilistic trials using a shift register for up to 32 replicas, each replica including up to 1024 neurons, and the output of the bit flip associated with the neurons for the first replica is used as an input for the bit flip associated with the neurons for the second replica.

[0025] Each trial performed for each replica may involve randomly proposing a change to the neurons of the replica, and the change may or may not be made. For example, the proposed change to the neurons may be weighted by the temperature of the replica and may be accepted or rejected based on whether the proposed change decreases or increases the energy of the replica. As outlined above, higher temperatures tend to cause greater acceptance of changes and lower temperatures tend to cause lower acceptance of changes. As another example, in probabilistic trials without rejection (e.g., digital annealing), several proposed changes to the neurons may be proposed and made.

[0026] In some embodiments, by determining and analyzing the multiplicity of the MCMC chain, the number of samples to be analyzed to estimate the state of a particular system can be reduced. Determining the multiplicity of the MCMC chain can facilitate generating a rejection-free MCMC chain as described above such that the probabilistic sampling of the MCMC chain can more easily escape from local extrema between samples. An example of the multiplicity of a rejection-free MCMC chain can be described as shown in FIG. 4. FIG. 4 shows an example of an original MCMC chain 400, along with a corresponding rejection-free MCMC chain 410 and a corresponding multiplicity 420, according to at least one embodiment of the present disclosure. The original MCMC chain 400 includes three replicas a, b, and c, each representing its respective state. Any iteration of these replicas indicates that a particular proposed move has been rejected (e.g., because that particular proposed move does not move the state of the system towards some target solution).

[0027] In some embodiments, the multiplicity of a particular replica can be determined by performing a normal MCMC trial for each bit of that particular replica and finding the total number of accepted proposed moves. Each inverted bit corresponding to an accepted move may be identified as a flag bit, where the total energy p of a particular replica and the total number of flag bits are determined according to equations (1) and (2), respectively.

Equation

Equation

[0028] Based on the total number of flag bits, the multiplicity of a particular replica can be calculated according to equation (3) based on the reciprocal of the sum of the flag bits.

Number

Number

[0029] In some embodiments, the situation where the sum of the flag bits is equal to 0 can be avoided by adjusting Equation (2) for the sum of the flag bits using an offset value that can be equal to the energy difference caused by the inverted bits, as shown in Equation (5) below.

Number

Number

[0030] In some embodiments, the multiplicity of a particular replica can be determined by calculating the minimum energy change and counting the number of coefficient terms related to the minimum energy change in Equation (7) below.

Number

[0031] In some embodiments, the multiplicity 420 can be expressed in terms of the probability that a proposed move is accepted or rejected, as shown in the following equations (8) and (9). [Number] [Number] In equation (8), the probability of escape α(x) can be determined based on the number of bits N included in that particular replica and the individual probabilities determined for each bit according to the function A i (x).

[0032] The MCMC chain 410 without rejection can include non-repeated instances of the replicas included in the original MCMC chain 400. Thus, the MCMC chain 410 without rejection includes four terms a, b, c, b in the sequence. The multiplicity 420 may be calculated based on the number of iterations of a particular replica before a proposed move is accepted, and thus the multiplicity 420 corresponding to the original MCMC chain 400 includes the following sequence {3, 7, 2, 3,...}. In some embodiments, the multiplicity 420 and the average value of the multiplicity 420 can be estimated according to the following equations (10) and (11), respectively. [Number] [Number] In equations (10) and (11), the multiplicity M s can be estimated based on the stochastic value t s and the probability of escape determined based on equation (8). The average value of the multiplicity 〈M(x)〉 can be determined based on the reciprocal of the probability of escape α(x).

[0033] Based on the MCMC chain 410 without rejection and the average value of the multiplicity 420, the expected value 〈f〉 of the system corresponding to the original MCMC chain 400 can be determined according to the following equation (12).

Number

[0034] Additionally or alternatively, the multiplicity 420 can be calculated by identifying and summing one or more flag bits that represent the bits of the replica that are inverted to induce an accepted move during a particular MCMC trial. In these and other embodiments, the minimum energy difference may be determined based on the change in energy corresponding to each replica that could occur if each bit corresponding to the replica were inverted. In some embodiments, the change in energy can be the determined minimum amount by which the energy would change for the corresponding replica. An energy offset value can be subtracted from each of the minimum energy differences corresponding to each replica. The multiplicity 420 can be calculated based on the summed flag bits and the energy offset values.

[0035] Returning to the description of FIG. 1, the MCMC block 130 can perform a rejection-free stochastic trial in which one of many proposed changes is enacted, based on the change in energy, the temperature of the replica, and a random number, as described in the description of FIG. 2.

[0036] The MCMC block 130 may perform an update with respect to the replica. The update with respect to the replica represents the accepted state change of the replica that is enacted on the replica. The updates can be performed in parallel, sequentially, or a combination thereof.

[0037] The MCMC block 130 can be configured to receive, as inputs from the replica exchange block 110, a set of PT replica indices and adjusted temperatures. The MCMC block 130 can also receive, as an input from the RND block 120, random numbers for calculating multiplicities and for probabilistic trials. The MCMC block 130 can send, to the DRAM block 140, outputs regarding data for each replica in each iteration step, including state data for each replica, the sum of flag bits, and the minimum energy difference. The MCMC block 130 can sequentially send data for each replica. Additionally or alternatively, the MCMC block 130 may send multiplicity data to the DRAM block 140.

[0038] The DRAM block 140 can receive data from the MCMC block 130 and transfer the data to the DRAM. The DRAM block 140 can transfer to the DRAM data such as the intermediate states of binary neurons for each replica, the sum of flag bits, and the minimum energy difference, for each iteration step executed in the MCMC block 130. Additionally or alternatively, data may be transferred from the MCMC block 130 to the DRAM block 140 and then to the DRAM during a parallel swapping process, such that while some replicas are being sampled in the MCMC block 130, other samples are transferred to the DRAM simultaneously. In some embodiments, the DRAM block 140 may transfer multiplicity data from the MCMC block 130 to the DRAM to store information regarding one or more intermediate states of the replicas, which may be less computationally costly than determining the final states of the replicas via digital annealing. Intermediate samples of the system stored in the DRAM can represent each intermediate state of the system. By being stored in the DRAM, the intermediate samples can be retrieved more quickly, and a particular final state of the system can be determined more quickly or with fewer computational resources expended.

[0039] Without departing from the scope of the present disclosure, modifications, additions, or omissions may be made to the digital sampler 100. For example, the designation of different elements in the described manner is intended to assist in explaining the concepts described herein and is not limiting. For example, in some embodiments, the replica exchange block 110, RND block 120, MCMC block 130, and DRAM block 140 are depicted in a particular manner described to assist in explaining the concepts described herein, but such a depiction is not intended to be limiting. Further, the digital sampler 100 may include any number of other elements or may be implemented in other systems or contexts other than those described.

[0040] FIG. 2 shows an exemplary hardware architecture according to at least one embodiment of the present disclosure. The arithmetic unit (AU) 200 may include a random number generator 210 and / or may receive random numbers from the RND block 120 of FIG. 1. The AU 200 may be part of the MCMC block 130 of FIG. 1 and may perform probabilistic trials on replicas. In some embodiments, the AU 200 may perform probabilistic trials in the following manner. The random number generator 210 may generate random numbers for each neuron in the replica. In some embodiments, the random numbers generated for each neuron may be different from the random numbers generated for each other neuron. In these and other embodiments, the random number generator 210 may be part of the RND block 120 of FIG. 1.

[0041] The AU 200 may include a calculation block 220. The calculation block 220 may receive an input including the temperature of the replica and the change in energy of each neuron. "Temperature" determines the relative probability of accepting a change in the state of the system. Temperature can be used as a scaling factor when performing a simulated or digital annealing process such as parallel tempering of replicas. In some embodiments, the calculation block 220 is the vector d as shown in Equation (13)i The minimum index may be determined by calculating

Number

[0042] In Equation (13), T represents the temperature of the replica, r represents a random number from the random number generator 210, and ΔE i represents the change in energy contemplated by the proposed bit flip of neuron i. The index of the minimum value means the index corresponding to neuron i that satisfies the condition of the following mathematical formula (14), where i is the index of the neuron including the minimum value of the vector d i

Number

[0043] The AU 200 may include an update block 230 that updates the state of the neurons within the replica. The update block 230 may receive the index of neuron i that satisfies Equation (14). In some embodiments, the update block 230 may update the replica corresponding to neuron i to include the bit flip of neuron i. In these and other embodiments, the update block 230 may update multiple different neurons corresponding to multiple different replicas in parallel.

[0044] Modifications, additions, or omissions may be made to AU 200 without departing from the scope of the present disclosure. For example, the designation of different elements in the described manner is intended to assist in explaining the concepts described herein and is not limiting. For example, in some embodiments, the random number generator 210, the calculation block 220, and the update block 230 are depicted in a specific manner described to assist in explaining the concepts described herein, but such depiction is not intended to be limiting. Further, AU 200 may include any number of other elements or may be implemented within other systems or contexts other than those described.

[0045] FIG. 3 shows an exemplary noise generator 300 according to at least one embodiment of the present disclosure. The exemplary noise generator 300 may include an RND block 310, an output 315, a replica exchange block 320, and an MCMC block 330. The RND block 310 can generate random numbers as the output 315, which can include random numbers of independent and identical distributions such that each random number has the same probability distribution and each selection of the random numbers is mutually independent of each other. In some embodiments, the output 315 is sent to the replica exchange block 320 and / or the MCMC block 330.

[0046] The output 315 can be sent to the replica exchange block 320 such that random numbers can be included in the replica exchange process, as described respectively in connection with the digital sampler 100 and AU 200 of FIGS. 1 and 2. Additionally or alternatively, the output 315 can be sent to the MCMC block 330 to facilitate generating one or more probabilistic samples for a particular MCMC chain.

[0047] Modifications, additions, or omissions may be made to the noise generator 300 without departing from the scope of the present disclosure. For example, the designation of different elements in the described manner is intended to assist in explaining the concepts described herein and is not limiting. For example, in some embodiments, the RND block 310, output 315, replica exchange 320, and MCMC block 330 are depicted in a particular manner described to assist in explaining the concepts described herein, but such depiction is not intended to be limiting. Further, the noise generator 300 may include any number of other elements or may be implemented within other systems or contexts other than those described.

[0048] Figures 5A and 5B show flowcharts of an exemplary method 500 of statistical sampling according to at least one embodiment of the present disclosure. Method 500 may be performed by any suitable system, apparatus, or device. For example, a computing system configured to align with and perform one or more operations described in relation to the replica exchange block 110 or MCMC block 130 of FIG. 1 may be configured to perform one or more operations associated with method 500. Although shown as discrete blocks, the steps and operations associated with one or more of the blocks of method 500 may be divided into additional blocks, combined into fewer blocks, or omitted, depending on the particular implementation.

[0049] Method 500 may begin at block 502, where a replica representing an estimated state of the system is obtained. In some embodiments, each of the replicas may represent different estimated states of the system using a plurality of bits, and a change to one or more of the plurality of bits corresponds to a change in the estimated state of the system.

[0050] In block 504, each respective replica may be assigned each temperature of a first set of temperatures representing the weighting factor of each respective replica. Replicas including relatively high temperatures can represent replicas that are more likely to include state changes (i.e., those replicas are more volatile, similar to physical objects at high temperatures), which improves the ability of replicas including high temperatures to escape local extrema (e.g., local minima or local maxima) during MCMC trials. Conversely, replicas including relatively low temperatures represent replicas that are more likely to reject the movements proposed during MCMC trials. In other words, low-temperature replicas include replicas that are more resistant to changes during probabilistic sampling. In some embodiments, the low-temperature replicas may include replicas representing local extrema of the system.

[0051] In block 506, a first replica having the lowest temperature among the first set of temperatures may be identified. In some embodiments, the first replica may represent a particular first intermediate state of a particular system, which may be a local or absolute extremum of the particular system.

[0052] In block 508, the first replica may be written to a first state of the memory. In some embodiments, the first replica may be written to a DRAM, as described in connection with FIG. 1.

[0053] In block 510, a first MCMC trial may be performed for each of the replicas. In some embodiments, the first MCMC trial may involve inverting one or more random bits among a plurality of bits corresponding to each of the replicas. Inverting the random bits associated with a replica may simulate a change in the system represented by the replica, which may also affect the change in temperature of each replica. After performing the first MCMC trial for each of the replicas, since the inverted bits have brought about various temperature changes, the temperature of the replicas may be represented by a second set of temperatures.

[0054] In block 512, a second replica having the lowest temperature of a second set of temperatures can be identified. In some embodiments, the second replica can represent a particular second intermediate state of a particular system that previously included the first replica.

[0055] In block 514, the second replica may be written to a second state of the memory. In some embodiments, the second replica may be written to a DRAM as described in connection with FIG. 1.

[0056] In block 516, a representation of the system can be generated based on the first replica and the second replica stored as the first state and the second state of the memory, respectively, as described in connection with FIG. 1.

[0057] In block 518, a first multiplicity corresponding to the first replica can be calculated, where the first multiplicity represents an estimate of a first number of MCMC trials that may include some rejected moves if the MCMC trials were performed on the first replica at the first temperature. In some embodiments, the first multiplicity may be calculated using equations (1)-(4) described in connection with FIG. 4.

[0058] In block 520, a second multiplicity corresponding to the second replica can be calculated. The second multiplicity can represent an estimate of a second number of MCMC trials that may include some rejected moves if the MCMC trials were performed on the second replica at the second temperature. In some embodiments, the second multiplicity may be calculated using equations (1)-(4) described in connection with FIG. 4.

[0059] In block 522, the first multiplicity and the second multiplicity can be applied to the representation of the system generated in block 516. As described in connection with FIGS. 1 and 4, associating the original MCMC sample chain, such as any of the representations of the system described by the first replica, the second replica, or any other replica, with the multiplicity may facilitate representing the system as a rejection-free sample chain, which can identify extreme values included in the represented system or improve the accuracy of the estimated states associated with the represented system.

[0060] In block 524, parallel swapping can be performed on the replicas based on a first set of temperatures and a second set of temperatures. In some embodiments, parallel swapping can include randomly swapping replicas between temperatures, such as the temperatures included in the first set of temperatures and the second set of temperatures, as described with respect to the PT kernel of FIG. 1.

[0061] In block 526, a second MCMC trial can be performed on the replicas based on the second set of temperatures. In some embodiments, the second MCMC trial can be performed using the parallel swapping process of block 524 so as to be more resistant to the probability sampling of the second MCMC trial getting stuck at local extrema. Additionally or alternatively, a third MCMC trial, a fourth MCMC trial, or any other number of MCMC trials can be performed on the replicas, and each third replica, fourth replica, or any other number of replicas can be written to memory to facilitate further sampling of intermediate states before determining the final state of the system.

[0062] Modifications, additions, or omissions may be made to method 500 without departing from the scope of the present disclosure. For example, the designation of different elements in the described manner is intended to assist in explaining the concepts described herein and is not limiting. Further, method 500 may include any number of other elements or may be implemented in other systems or contexts other than those described.

[0063] FIG. 6 shows an exemplary computing system 600 according to at least one embodiment described in the present disclosure. Computing system 600 may include a processor 610, a memory 620, a data storage 630, and / or a communication unit 640, all of which may be communicatively coupled. Any one or all of the digital sampler 100 of FIG. 1, the AU 200 of FIG. 2, or the noise generator 300 of FIG. 3 may be implemented as a computing system that is compatible with computing system 600.

[0064] Generally, processor 610 can include any suitable dedicated or general-purpose computer, computing entity, or processing device that includes various computer hardware or software modules, and can be configured to execute instructions stored on any applicable computer-readable storage medium. For example, processor 610 can include a microprocessor, a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or any other digital or analog circuit configured to interpret and / or execute program instructions and / or process data.

[0065] Although shown as a single processor in FIG. 6, it is understood that processor 610 may include any number of processors distributed across any number of networks or physical locations configured to individually or collectively perform any number of operations described in this disclosure. In some embodiments, processor 610 may interpret and / or execute program instructions stored in memory 620, data storage 630, or both memory 620 and data storage 630, and / or process data. In some embodiments, processor 610 may fetch program instructions from data storage 630 and load the program instructions into memory 620.

[0066] After the program instructions are loaded into memory 620, processor 610 may execute program instructions, such as instructions for causing computing system 600 to perform the operations of method 500 of FIGS. 5A and 5B.

[0067] Memory 620 and data storage 630 can include a computer-readable storage medium or one or more computer-readable storage media for storing computer-executable instructions or data structures. Such computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer such as processor 610. For example, memory 620 and / or data storage 630 may include the DRAM of DRAM block 140 of FIG. 1, whereby memory 620 and / or data storage 630 can store one or more of the intermediate states of the system. In some embodiments, computing system 600 may or may not include either memory 620 or data storage 630.

[0068] By way of example and not limitation, such a computer-readable storage medium can include a random access memory (RAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disk storage, a magnetic disk storage or other magnetic storage device, a flash memory device (e.g., a solid state memory device), or any other storage medium that can be used to store the desired program code in the form of computer-executable instructions or data structures and that can be accessed by a general purpose or special purpose computer. Combinations of the above can also be included within the scope of computer-readable storage media. Computer-executable instructions can include, for example, instructions and data configured to cause a processor 610 to perform a particular operation or group of operations.

[0069] The communication unit 640 can include any component, device, system, or combination thereof configured to send or receive information over a network. In some embodiments, the communication unit 640 can communicate with other devices at other locations, the same location, or other components within the same system. For example, the communication unit 640 can include a modem, a network card (wireless or wired), an optical communication device, an infrared communication device, a wireless communication device (such as an antenna), and / or a chipset (e.g., a Bluetooth® device, an 802.6 device (e.g., a metropolitan area network (MAN)), a WiFi device, a WiMax device, cellular communication equipment, etc.). The communication unit 640 can enable data to be exchanged with a network and / or any other device or system described in this disclosure. For example, the communication unit 640 can enable the system 600 to communicate with other systems such as a computing device and / or other networks.

[0070] Those skilled in the art may recognize that after considering the present disclosure, modifications, additions, or omissions may be made to system 600 without departing from the scope of the present disclosure. For example, system 600 may include more or fewer components than those explicitly illustrated and described.

[0071] The foregoing disclosure is not intended to limit the present disclosure to the exact form disclosed or to a particular field of use. Thus, various alternative embodiments and / or modifications to the present disclosure are contemplated in light of the present disclosure, whether explicitly described herein or implied. Although embodiments of the present disclosure have been described in this manner, it may be recognized that changes may be made in form and detail without departing from the scope of the present disclosure. Thus, the present disclosure is limited only by the claims.

[0072] In some embodiments, the different components, modules, engines, and services described herein may be implemented as objects or processes (e.g., as separate threads) running on a computing system. Although parts of the systems and processes described herein are generally described as being implemented in software (stored in and / or executed by general-purpose hardware), specific hardware implementations, or combinations of software and specific hardware implementations are also possible and contemplated.

[0073] The terms used in this disclosure, particularly in the appended claims (e.g., the body of the appended claims), are generally intended to be "open terms" (e.g., the term "comprising" should be interpreted as "comprising, but not limited to").

[0074] Further, if a specific number of the recited claims being introduced is intended, such intent should be explicitly recited in the claims, and if there is no such recitation, such intent does not exist. For example, for purposes of illustration, the following appended claims may include the use of introductory phrases “at least one” and “one or more” to introduce the recited claims. However, the use of such phrases should not be construed to imply that the introduction of a recited claim by the indefinite article “a” or “an” limits any particular claim that includes such introduced recited claim to embodiments that include only one such recitation, even if the same claim includes both an introductory phrase “one or more” or “at least one” and an indefinite article such as “a” or “an” (e.g., “a” and / or “an” should be construed to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce the recited claims.

[0075] In addition, even if a specific number of the introduced recited claims is explicitly recited, one of ordinary skill in the art will recognize that such recitation should be construed to mean at least the recited number (e.g., a recitation of “two recitations” by itself without other modifiers means at least two recitations, or two or more recitations). Further, when conventional expressions similar to “at least one of A, B, and C” or “one or more of A, B, and C” are used, generally such constructions are intended to include only A, only B, only C, A and B together, A and C together, B and C together, or A, B, and C together, etc.

[0076] Furthermore, any disjunctive word or phrase preceding two or more alternative terms should be understood as contemplating the possibility of including one of those terms, any of those terms, or both of those terms, regardless of whether it appears in the description, claims, or drawings. For example, the phrase "A or B" should be understood as including the possibilities of "A" or "B" or "A and B".

[0077] All examples and conditional language recited in this disclosure are intended for educational purposes to assist the reader in understanding the concepts contributed by the disclosure and the inventors to advance the art, and are to be construed as not being limited to such specifically recited examples and conditions. While embodiments of the disclosure have been described in detail, various changes, substitutions, and alterations can be made without departing from the spirit and scope of the disclosure.

[0078] Regarding embodiments including the above examples, the following appendices are further disclosed. (Appendix 1) Obtaining a plurality of replicas, each replica of the plurality of replicas including a plurality of bits representing respective estimated states of the system; Assigning each replica of the plurality of replicas to a corresponding different temperature of a first set of temperatures; Identifying a first replica having a first temperature lower than any other temperature in the first set of temperatures; Writing the first replica to a first state of a memory; Performing a first Markov chain Monte Carlo (MCMC) trial for each replica of the plurality of replicas, wherein a respective random one of the plurality of bits representing a change in the state of the system is inverted in each replica of the plurality of replicas, and inverting the random bit affects a change in the corresponding temperature of the respective replica; Identifying a second replica having a second temperature lower than any other temperature in a second set of temperatures, wherein the second set of temperatures includes the temperature corresponding to each of the respective replicas after performing the first MCMC trial; Writing the second replica to a second state of the memory; Generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica; Calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that would result in rejection if performed on the first replica at the first temperature; Calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that would result in rejection if performed on the second replica at the second temperature; Applying the first multiplicity and the second multiplicity to the representation of the system; Performing parallel swapping on the plurality of replicas by swapping adjacent temperatures of the first set of temperatures and the second set of temperatures; Performing a second MCMC trial on each respective replica of the plurality of replicas based on the second set of temperatures; Generating a representation of an end state of the system based on the first replica, the second replica, the first multiplicity, and the second multiplicity, Method. (Appendix 2) The method according to Appendix 1, wherein the first MCMC trial and the second MCMC trial are each performed as rejection-free trials. (Appendix 3) The method according to Appendix 1, wherein writing the first replica to the first state of the memory is performed in parallel with performing the first MCMC trial on each respective replica of the plurality of replicas. (Appendix 4) The first MCMC trial and the second MCMC trial each include generating a random number for use by a first neuron in a certain replica among the plurality of replicas in the first MCMC trial, and providing the random number to a second neuron in the replica among the plurality of replicas for use in the second MCMC trial, the method described in Appendix 1. (Appendix 5) Calculating the first multiplicity and the second multiplicity is the method described in Appendix 4 based on the random numbers used in the first MCMC trial and the second MCMC trial. (Appendix 6) Calculating the first multiplicity includes: Identifying one or more bits associated with a certain replica among the plurality of replicas as flag bits; Summing the flag bits; Calculating the first multiplicity using the sum of the flag bits, the method described in Appendix 1. (Appendix 7) Calculating the first multiplicity includes: Determining a minimum energy difference based on a potential change in energy for each bit flip corresponding to each replica among the plurality of replicas; Identifying one or more bits associated with the replica corresponding to the minimum energy difference as flag bits; Summing the flag bits; Determining an offset value corresponding to the minimum energy difference; Calculating the first multiplicity using the sum of the flag bits and the offset value, the method described in Appendix 1. (Appendix 8) One or more non-transitory computer-readable storage media configured to store instructions that, in response to being executed, cause a system to perform an operation, the operation being: Obtaining a plurality of replicas, each replica of the plurality of replicas including a plurality of bits representing respective estimated states of the system; Assigning each replica of the plurality of replicas to a corresponding different temperature of a first set of temperatures; Identifying a first replica having a first temperature lower than any other temperature in the first set of temperatures; Writing the first replica to a first state of a memory; Performing a first Markov Chain Monte Carlo (MCMC) trial on each replica of the plurality of replicas, wherein a respective random one of the plurality of bits representing a change in the state of the system is inverted in each replica of the plurality of replicas, and inverting the random bit affects a change in the corresponding temperature of each replica; Identifying a second replica having a second temperature lower than any other temperature in a second set of temperatures, the second set of temperatures including the corresponding temperature of each of the respective replicas after performing the first MCMC trial; Writing the second replica to a second state of the memory; Generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica; Calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that result in rejection when performed on the first replica at the first temperature; Calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that result in rejection when performed on the second replica at the second temperature; Applying the first multiplicity and the second multiplicity to the representation of the system; performing parallel swapping on the plurality of replicas by swapping adjacent temperatures of the first temperature set and the second temperature set; performing a second MCMC trial for each of the plurality of replicas based on the second temperature set; generating a representation of an end state of the system based on the first replica, the second replica, the first multiplicity, and the second multiplicity; one or more non-transitory computer-readable storage media. (Appendix 9) The one or more non-transitory computer-readable storage media according to Appendix 8, wherein the first MCMC trial and the second MCMC trial are each performed as rejection-free trials. (Appendix 10) The one or more non-transitory computer-readable storage media according to Appendix 8, wherein writing the first replica to the first state of the memory is performed concurrently with performing the first MCMC trial for each of the plurality of replicas. (Appendix 11) The one or more non-transitory computer-readable storage media according to Appendix 8, wherein the first MCMC trial and the second MCMC trial each include generating a random number for use by a first neuron in a certain replica among the plurality of replicas in the first MCMC trial, and providing the random number for use in the second MCMC trial to a second neuron in the replica among the plurality of replicas. (Appendix 12) The one or more non-transitory computer-readable storage media according to Appendix 11, wherein calculating the first multiplicity and the second multiplicity is based on the random numbers used in the first MCMC trial and the second MCMC trial. (Appendix 13) Calculating the first multiplicity comprises: Identify one or more bits associated with a replica among the plurality of replicas as flag bits; Sum the flag bits; Calculating the first multiplicity using the sum of the flag bits, including: One or more non-transitory computer-readable storage media according to appendix 8. (Appendix 14) Calculating the first multiplicity includes: Determine a minimum energy difference based on a potential change in energy for each bit flip corresponding to each replica of the plurality of replicas; Identify one or more bits associated with the replica corresponding to the minimum energy difference as flag bits; Sum the flag bits; Determine an offset value corresponding to the minimum energy difference; Calculating the first multiplicity using the sum of the flag bits and the offset value, including: One or more non-transitory computer-readable storage media according to appendix 8. (Appendix 15) A system comprising: One or more processors; One or more non-transitory computer-readable storage media configured to store instructions that, when executed, cause the system to perform operations, the operations including: Obtaining a plurality of replicas, each replica of the plurality of replicas including a plurality of bits representing respective estimated states of the system; Assigning each replica of the plurality of replicas to a corresponding different temperature of a first set of temperatures; Identifying a first replica having a first temperature lower than any other temperature in the first set of temperatures; Writing the first replica to a first state of a memory; Performing a first Markov Chain Monte Carlo (MCMC) trial for each of the plurality of replicas, wherein for each replica of the plurality of replicas, a respective random one of the plurality of bits representing a change in the state of the system is inverted, and inverting the random bit affects a change in the corresponding temperature of the respective replica; Identifying a second replica having a second temperature lower than any other temperature in a second set of temperatures, the second set of temperatures including the temperature corresponding to each of the respective replicas after performing the first MCMC trial; Writing the second replica to a second state of the memory; Generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica; Calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that would result in rejection if performed on the first replica at the first temperature; Calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that would result in rejection if performed on the second replica at the second temperature; Applying the first multiplicity and the second multiplicity to the representation of the system; Performing parallel swapping on the plurality of replicas by swapping adjacent temperatures of the first set of temperatures and the second set of temperatures; Performing a second MCMC trial for each of the plurality of replicas based on the second set of temperatures; Generating a representation of an end state of the system based on the first replica, the second replica, the first multiplicity, and the second multiplicity, System. (Appendix 16) The system according to appendix 15, wherein the first MCMC trial and the second MCMC trial are each executed as rejection-free trials. (Appendix 17) The system according to appendix 15, wherein writing the first replica to the first state of the memory is performed in parallel with executing the first MCMC trial for each replica of the plurality of replicas. (Appendix 18) The system according to appendix 15, wherein the first MCMC trial and the second MCMC trial each include generating a random number for use by a first neuron in a certain replica among the plurality of replicas in the first MCMC trial, and providing the random number for use in the second MCMC trial to a second neuron in the replica among the plurality of replicas. (Appendix 19) Calculating the first multiplicity includes: Identifying one or more bits associated with a certain replica among the plurality of replicas as flag bits; Summing the flag bits; Calculating the first multiplicity using the sum of the flag bits, The system according to appendix 15. (Appendix 20) Calculating the first multiplicity includes: Determining a minimum energy difference based on a potential change in energy for each bit flip corresponding to each replica of the plurality of replicas; Identifying one or more bits associated with the replica corresponding to the minimum energy difference as flag bits; Summing the flag bits; Determining an offset value corresponding to the minimum energy difference; Calculating the first multiplicity using the sum of the flag bits and the offset value, The system according to appendix 15.

Description of Reference Signs

[0079] Obtain replicas representing the estimated state of the 502 system Assign temperatures to each replica Identify the first replica with the lowest temperature Write the first replica to the first memory state Perform a first Markov Chain Monte Carlo (MCMC) trial for each replica Identify the second replica with the lowest temperature Write the second replica to the second memory state Generate a representation of the system based on the first and second replicas Calculate the first multiplicity of the first replica Calculate the second multiplicity of the second replica Apply the first and second multiplicities to the representation of the system Execute parallel swapping Perform a second MCMC trial for the replicas based on the second set of temperatures

Claims

Claim 1 Obtaining a plurality of replicas, each replica of the plurality of replicas including a plurality of bits representing respective estimated states of the system; Assigning each replica of the plurality of replicas to a different corresponding temperature of a first set of temperatures; Identifying a first replica having a first temperature lower than any other temperature in the first set of temperatures; Writing the first replica to a first state of a memory; Performing a first Markov Chain Monte Carlo (MCMC) trial on each replica of the plurality of replicas, wherein a respective random one of the plurality of bits representing a change in the state of the system is inverted in each replica of the plurality of replicas, and inverting the random bit affects a change in the corresponding temperature of each replica; Identifying a second replica having a second temperature lower than any other temperature in a second set of temperatures, the second set of temperatures including the corresponding temperature of each of the respective replicas after performing the first MCMC trial; Writing the second replica to a second state of the memory; Generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica; Calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that result in rejection when performed on the first replica at the first temperature; Calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that result in rejection when performed on the second replica at the second temperature; Applying the first multiplicity and the second multiplicity to the representation of the system; Performing parallel swapping on the plurality of replicas by swapping adjacent temperatures of the first set of temperatures and the second set of temperatures; Performing a second MCMC trial on each replica of the plurality of replicas based on the second set of temperatures; Generating a representation of an end state of the system based on the first replica, the second replica, the first multiplicity, and the second multiplicity. Method

2. The method according to claim 1, wherein the first MCMC trial and the second MCMC trial are each executed as rejection-free trials.

3. The method according to claim 1, wherein writing the first replica to the first state of the memory is performed in parallel with performing the first MCMC trial for each of the plurality of replicas.

4. The method according to claim 1, wherein the first MCMC trial and the second MCMC trial each generate a random number for use by a first neuron in a replica of the plurality of replicas in the first MCMC trial, and provide the random number for use in the second MCMC trial to a second neuron in the replica of the plurality of replicas.

5. The method according to claim 4, wherein calculating the first multiplicity and the second multiplicity is based on the random numbers used in the first MCMC trial and the second MCMC trial.

6. Calculating the first multiplicity comprises: identifying one or more bits associated with a replica of the plurality of replicas as flag bits; summing the flag bits; calculating the first multiplicity using the sum of the flag bits, The method according to claim 1.

7. Calculating the first multiplicity comprises: determining a minimum energy difference based on a potential change in energy for each bit flip corresponding to each replica of the plurality of replicas; identifying one or more bits associated with the replica corresponding to the minimum energy difference as flag bits; summing the flag bits; determining an offset value corresponding to the minimum energy difference; calculating the first multiplicity using the sum of the flag bits and the offset value, The method according to claim 1.

8. One or more non-transitory computer-readable storage media configured to store instructions that, in response to being executed, cause a system to perform operations, the operations comprising: obtaining a plurality of replicas, each replica of the plurality of replicas including a plurality of bits representing a respective estimated state of the system; assigning each replica of the plurality of replicas to a corresponding different temperature of a first set of temperatures; identifying a first replica having a first temperature lower than any other temperature in the first temperature set; writing the first replica to a first state of the memory; performing a first Markov Chain Monte Carlo (MCMC) trial for each replica of the plurality of replicas, wherein a respective random one of the plurality of bits representing a change in the state of the system is inverted in each replica of the plurality of replicas, and inverting the random bit affects a change in the corresponding temperature of each respective replica; identifying a second replica having a second temperature lower than any other temperature in a second temperature set, the second temperature set including the temperature corresponding to each of the respective replicas after performing the first MCMC trial; writing the second replica to a second state of the memory; generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica; calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that result in rejection when performed on the first replica at the first temperature; calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that result in rejection when performed on the second replica at the second temperature; applying the first multiplicity and the second multiplicity to the representation of the system; performing parallel swapping on the plurality of replicas by swapping adjacent temperatures of the first temperature set and the second temperature set; performing a second MCMC trial for each replica of the plurality of replicas based on the second temperature set; generating a representation of an end state of the system based on the first replica, the second replica, the first multiplicity, and the second multiplicity, one or more non-transitory computer-readable storage media.

9. The one or more non-transitory computer-readable storage media of claim 8, wherein the first MCMC trial and the second MCMC trial are each performed as rejection-free trials.

10. Writing the first replica to the first state of the memory is performed in parallel with performing the first MCMC trial for each replica of the plurality of replicas, the one or more non-transitory computer-readable storage media according to claim 8.

11. Each of the first MCMC trial and the second MCMC trial includes generating a random number for use by a first neuron in a certain replica among the plurality of replicas in the first MCMC trial, and providing the random number for use in the second MCMC trial to a second neuron in the replica among the plurality of replicas, the one or more non-transitory computer-readable storage media according to claim 8.

12. Calculating the first multiplicity and the second multiplicity is based on the random numbers used in the first MCMC trial and the second MCMC trial, the one or more non-transitory computer-readable storage media according to claim 11.

13. Calculating the first multiplicity comprises: identifying one or more bits associated with a certain replica among the plurality of replicas as flag bits; summing the flag bits; calculating the first multiplicity using the sum of the flag bits, the one or more non-transitory computer-readable storage media according to claim 8.

14. Calculating the first multiplicity comprises: determining a minimum energy difference based on a potential change in energy for each bit flip corresponding to each replica of the plurality of replicas; identifying one or more bits associated with the replica corresponding to the minimum energy difference as flag bits; summing the flag bits; determining an offset value corresponding to the minimum energy difference; calculating the first multiplicity using the sum of the flag bits and the offset value, the one or more non-transitory computer-readable storage media according to claim 8.

15. A system comprising: one or more processors; and one or more non-transitory computer-readable storage media configured to store instructions that, in response to being executed, cause the system to perform operations, the operations being: Obtaining a plurality of replicas, each replica of the plurality of replicas including a plurality of bits representing respective estimated states of the system; Assigning each replica of the plurality of replicas to a corresponding different temperature of a first set of temperatures; Identifying a first replica having a first temperature lower than any other temperature in the first set of temperatures; Writing the first replica to a first state of a memory; Performing a first Markov Chain Monte Carlo (MCMC) trial on each replica of the plurality of replicas, wherein for each replica of the plurality of replicas, a respective random one of the plurality of bits representing a change in the state of the system is inverted, and inverting the respective random bit affects a change in the corresponding temperature of the respective replica; Identifying a second replica having a second temperature lower than any other temperature in a second set of temperatures, the second set of temperatures including the temperature corresponding to each of the respective replicas after performing the first MCMC trial; Writing the second replica to a second state of the memory; Generating a representation of the system based on the first state of the memory including the first replica and the second state of the memory including the second replica; Calculating a first multiplicity of the first replica representing an estimate of a first number of MCMC trials that result in rejection when performed on the first replica at the first temperature; Calculating a second multiplicity of the second replica representing an estimate of a second number of MCMC trials that result in rejection when performed on the second replica at the second temperature; Applying the first multiplicity and the second multiplicity to the representation of the system; Performing parallel swapping on the plurality of replicas by swapping adjacent temperatures of the first set of temperatures and the second set of temperatures; Performing a second MCMC trial on each replica of the plurality of replicas based on the second set of temperatures; Generating a representation of an end state of the system based on the first replica, the second replica, the first multiplicity, and the second multiplicity, System.

16. The system according to claim 15, wherein the first MCMC trial and the second MCMC trial are each executed as rejection-free trials.

17. The system according to claim 15, wherein writing the first replica to the first state of the memory is performed in parallel with performing the first MCMC trial for each replica of the plurality of replicas.

18. The system according to claim 15, wherein the first MCMC trial and the second MCMC trial each generate a random number for use by a first neuron in a certain replica among the plurality of replicas in the first MCMC trial, and provide the random number for use in the second MCMC trial to a second neuron in the replica among the plurality of replicas.

19. Calculating the first multiplicity comprises: identifying one or more bits associated with a certain replica among the plurality of replicas as flag bits; summing the flag bits; calculating the first multiplicity using the sum of the flag bits. The system according to claim 15.

20. Calculating the first multiplicity comprises: determining a minimum energy difference based on potential changes in energy for respective bit flips corresponding to each replica of the plurality of replicas; identifying one or more bits associated with the replica corresponding to the minimum energy difference as flag bits; summing the flag bits; determining an offset value corresponding to the minimum energy difference; calculating the first multiplicity using the sum of the flag bits and the offset value. The system according to claim 15.