Method for performing genetic optimization and circuit design method using same

By combining neural networks and genetic algorithms, generating subsets and updating neural networks using reinforcement learning, the problem of difficult to effectively use genetic algorithms in the prior art to design electronic devices is solved, and the effect of quickly finding the best block sorting scheme is achieved.

CN119599100APending Publication Date: 2025-03-11SAMSUNG ELECTRONICS CO LTD

Patent Information

Application Number
CN202411254760.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-08
Filing Date
2024-09-09
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

The prior art is difficult to effectively use genetic algorithms to solve optimization problems, especially when designing electronic devices, it is difficult to quickly find the best block sorting solution.

Method used

By combining neural networks and genetic algorithms, a subset of used genetic algorithms is generated and the neural network is updated using reinforcement learning to improve the solution efficiency of genetic algorithms.

Benefits of technology

It realizes the rapid finding of block sorting scheme when designing electronic devices, and improves the solution efficiency and accuracy of genetic algorithms in optimization problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119599100A_ABST
    Figure CN119599100A_ABST
Patent Text Reader

Abstract

A method for performing genetic optimization and a circuit design method using the same are disclosed. A method for performing a genetic algorithm is performed by one or more processors, and the method includes: generating a subset of elements from a population including elements each corresponding to a respective solution of a problem by using a neural network; generating sub-elements by performing a genetic algorithm on the subset; and determining, from among the sub-elements, that one of the sub-elements is an answer to the question.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to and the benefit of Korean Patent Application No. 10-2023-0119976 filed in the Korean Intellectual Property Office on September 8, 2023, the entire contents of which are incorporated herein by reference. Technical Field

[0002] The present disclosure relates to a method of executing a genetic algorithm to solve an optimization problem and a method of designing an electronic device using a genetic algorithm. Background Art

[0003] Genetic algorithms are computational models similar to evolutionary processes in nature and are one of a variety of global optimization techniques for solving optimization problems. Genetic algorithms are generally parallel global search algorithms that simulate selection in biological genetics in nature and can generate preferred solutions to optimization problems. Problems are usually solved by forming feasible solutions / proposed solutions to the optimization problem into a fixed structure and gradually modifying the feasible solutions, testing whether the modifications move the proposed solutions closer to the solution. In other words, genetic algorithms can simulate evolution to find a solution x that optimizes a certain unknown function Y=f(x). Summary of the invention

[0004] One method may implement a genetic algorithm to solve the problem.

[0005] One approach is to design electronic devices through genetic algorithms.

[0006] One method is to generate a subset of the population to be used in a genetic algorithm.

[0007] In one general aspect, a method for executing a genetic algorithm is performed by one or more processors, and the method includes: generating a subset of elements from a population including elements each corresponding to a respective solution to a problem by using a neural network; generating sub-elements by executing a genetic algorithm on the subset; and determining, from among the sub-elements, that one of the sub-elements is an answer to the problem.

[0008] The subset may be generated based on a score of the element output from the neural network, the score comprising or corresponding to a probability of the element.

[0009] Generating the subset based on scores of elements output from the neural network may include sampling elements having scores greater than a predetermined size.

[0010] Generating the subset based on the scores of the elements output from the neural network may include sampling a predetermined number of elements in order from a maximum score to a minimum score.

[0011] The step of generating the sub-elements by performing a genetic algorithm on the subset may include: selecting two elements from the subset; and applying a genetic operator to the selected elements to generate one of the sub-elements.

[0012] Genetic operators may include a crossover operator, a mutation operator, or a local optimization operator.

[0013] The step of determining that the one of the sub-elements is the answer may include: determining a fitness value by performing a simulation on a problem of the corresponding sub-element; and providing a reward to the neural network based on the fitness value of the sub-element.

[0014] Providing the reward to the neural network based on the fitness value of the child element may include updating the neural network based on a difference between the fitness value of the element in the population and the fitness value of the child element.

[0015] The step of determining that the one of the sub-elements is the answer may further include updating the elements in the population based on the fitness value of the sub-element.

[0016] Updating the elements in the population based on the fitness values ​​of the child elements may include replacing the elements in the population with the child elements determined to have fitness values ​​greater than the fitness values ​​of the elements in the population.

[0017] The step of determining the answer among the sub-elements may include determining the sub-element as one of the fitness values ​​of the sub-elements having a fitness value satisfying a predetermined criterion as the answer.

[0018] Each of the elements may be generated by encoding an order of blocks to be placed in a peripheral area of ​​the memory.

[0019] The method may further include: in response to determining that the answer does not exist among the sub-elements, generating a new subset of elements; generating new sub-elements by performing a genetic algorithm on the newly generated subset; and searching for the answer in the newly generated elements.

[0020] In another general aspect, a method for designing an electronic device includes: generating a subset including elements by performing sampling on elements each corresponding to a different ordering of blocks to be arranged in a predetermined area of ​​the electronic device using a neural network; performing a genetic algorithm by using the subset to generate sub-elements of the elements; and determining the ordering of the blocks to be arranged in the predetermined area by selecting one of the sub-elements obtained by the genetic algorithm, the selected sub-element indicating the ordering of the blocks.

[0021] The step of generating the subset by performing sampling on the elements using a neural network may include: determining a probability of an element in a population generated from a random selection of elements, the probability being determined using a neural network; and generating the subset based on the probability.

[0022] The probability may correspond to a likelihood that a sub-element generated from the elements in the subset is determined to be an optimal solution to the problem solved by the genetic algorithm.

[0023] Generating the subset based on the probability may include sampling elements having a probability greater than a predetermined size, or sampling a predetermined number of elements in order of higher probability.

[0024] The method may further include, after executing the genetic algorithm using the subset, updating the neural network based on fitness values ​​of the sub-elements obtained from the subset through the genetic algorithm.

[0025] In yet another general aspect, a method for generating a subset of a population for a genetic algorithm is performed by one or more processors and includes: determining scores of corresponding elements included in the population by inferring scores using a neural network; generating the subset including elements of the elements in the population based on the scores; and updating the neural network based on fitness values ​​of sub-elements generated from the elements in the subset.

[0026] The step of updating the neural network based on the generated fitness value of the sub-element may include: determining the fitness value of the sub-element by performing simulation on the sub-element, the sub-element being for the problem to which the genetic algorithm is applied; and providing a reward to the neural network based on the fitness value of the sub-element.

[0027] Other features and aspects will be apparent from the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] Figure 1 A problem-solving system is shown in accordance with one or more embodiments.

[0029] Figure 2 A problem solving method using a genetic algorithm according to one or more embodiments is shown.

[0030] Figure 3 A reinforcement learning method for a subset generator according to one or more embodiments is shown.

[0031] Figure 4 A reinforcement learning method for a subset generator according to one or more embodiments is shown.

[0032] Figure 5 A GA process is shown according to one or more embodiments.

[0033] Figure 6 A neural network is shown in accordance with one or more embodiments.

[0034] Figure 7 A problem-solving system is shown in accordance with one or more embodiments.

[0035] Figure 8 A problem solving method according to one or more embodiments is shown.

[0036] Throughout the drawings and detailed description, unless otherwise described or provided, the same or similar figure reference numerals will be understood to refer to the same or similar elements, features and structures. The drawings may not be to scale, and the relative sizes, proportions and depictions of the elements in the drawings may be exaggerated for clarity, illustration and convenience. DETAILED DESCRIPTION

[0037] The following detailed description is provided to help the reader obtain a comprehensive understanding of the method, device and / or system described herein. However, after understanding the disclosure of the present application, various changes, modifications and equivalents of the method, device and / or system described herein will be clear. For example, the order of operations described herein is only an example and is not limited to the order of operations set forth herein, but can be changed as will be clear after understanding the disclosure of the present application, except for the operations that must occur in a specific order. In addition, for greater clarity and simplicity, the description of features known after understanding the disclosure of the present application may be omitted.

[0038] The features described herein may be implemented in different forms and should not be construed as being limited to the examples described herein. Rather, the examples described herein are provided only to illustrate some of the many possible ways in which the methods, devices, and / or systems described herein will be clearly implemented after understanding the disclosure of the present application.

[0039] The terms used herein are only used to describe various examples and are not used to limit the disclosure. Unless the context clearly indicates otherwise, the singular form is intended to also include the plural form. As used herein, the term "and / or" includes any one of the relevant listed items and any combination of any two or more. As non-limiting examples, the terms "comprise", "include" and "have" indicate the presence of stated features, quantities, operations, components, elements and / or combinations thereof, but do not exclude the presence or addition of one or more other features, quantities, operations, components, elements and / or combinations thereof.

[0040] Throughout the specification, when a component or element is described as being "connected to," "coupled to," or "engaged to" another component or element, it may be directly "connected to," "coupled to," or "engaged to" another component or element, or one or more other components or elements may reasonably be present in between. When a component or element is described as being "directly connected to," "directly coupled to," or "directly engaged to" another component or element, there may not be other elements in between. Similarly, expressions such as "between" and "immediately between," and "adjacent to" and "immediately adjacent to" may also be interpreted as described above.

[0041] Although terms (such as "first", "second" and "third" or A, B, (a), (b), etc.) may be used herein to describe various members, components, regions, layers or parts, these members, components, regions, layers or parts are not limited by these terms. Each of these terms is not used to define, for example, the nature, order or sequence of the corresponding member, component, region, layer or part, but is only used to distinguish the corresponding member, component, region, layer or part from other members, components, regions, layers or parts. Therefore, without departing from the teachings of the examples, the first member, first component, first region, first layer or first part referred to in the examples described herein may also be referred to as the second member, second component, second region, second layer or second part.

[0042] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as those commonly understood by those skilled in the art to which the present disclosure belongs and based on the understanding of the disclosure of the present application. Unless explicitly defined as such herein, terms (such as those defined in commonly used dictionaries) should be interpreted as having a meaning consistent with their meaning in the context of the relevant field and the disclosure of the present application, and should not be interpreted in an idealized or overly formal sense. The use of the term "may" with respect to an example or embodiment herein (e.g., with respect to what an example or embodiment may include or implement) means that there is at least one example or embodiment that includes or implements such a feature, and all examples are not limited thereto.

[0043] The artificial intelligence model (AI model) running a neural network according to the present disclosure is a machine learning model that learns at least one task and can be implemented as a computer program (instructions) executed by a processor. The learned task can be a task to be solved by machine learning or a task to be performed by machine learning. The AI ​​model can be implemented as a computer program (instructions) running on a computing device, downloaded over a network, or presented in the form of a product. Optionally, the artificial intelligence model can be linked to various devices via a network.

[0044] Figure 1A problem-solving system is shown in accordance with one or more embodiments.

[0045] The problem-solving system may include a neural network 100, a subset generator 200, and a genetic algorithm (GA) processor 300. The problem-solving system may perform a genetic algorithm to obtain a solution to a specific problem by using the neural network 100, the subset generator 200, and the GA processor 300. The GA processor 300 may output a predetermined number (K) of solutions for each step (iteration / generation) of the genetic algorithm.

[0046] The problem-solving system can verify through simulation whether any of the K output solutions is likely to be the optimal solution to a particular problem. If any of the K output solutions meets a predetermined criterion, the problem-solving system can determine that the solution (the solution that meets the predetermined criterion) is the solution to the given problem.

[0047] In some embodiments, the genetic algorithm can be a computational model that simulates evolutionary phenomena in nature, and can determine a better solution by expressing feasible solutions (feasible solutions to the problem to be solved) in a predetermined data structure and by iteratively modifying the solution. A given solution can be encoded and generated as an element, and multiple elements (e.g., multiple elements selected randomly) can be included in a population, which is a set of solutions that change from generation to generation. That is, when each step (iteration, new generation, etc.) of the genetic algorithm is completed, the solution included in the population can be updated.

[0048] In some embodiments, the neural network 100 may perform inference on the elements in the population, and may output the inference as a score or probability of the elements included in the population (since the score is usually derived from or corresponds to the probability, "probability" hereinafter refers to "score or probability"). The probability of an element may indicate the likelihood that the element will generate (e.g., parent, mutate, etc.) a child element, which may ultimately be determined as a solution to the problem. In other words, the probability of an element may be the likelihood that a child (next generation) element generated based on the element will be a solution to the problem. In other words, the probability of an element may indicate the likelihood that a child element generated from the element will be determined as the answer to the problem.

[0049] Whether a sub-element will be an answer to the question may be determined based on a fitness value calculated from a simulation performed on the sub-element. When the fitness value of the sub-element meets a predetermined criterion (e.g., exceeds a predetermined reference value), the sub-element may be determined to be an answer to the question (as used herein, "answer" and "solution" do not mean that such answer / solution is the best or only answer / solution, but rather that the answer / solution has been determined to be the best / satisfactory answer / solution based on the processing performed).

[0050] In some embodiments, the neural network 100 may perform reinforcement learning. The agent (using the neural network 100) may be configured to determine the probability of the corresponding element in the population as an action. The agent may output the probability of the corresponding element in the population as an action based on the policy (the population serves as the environment corresponding to the agent). Since the probability of each element is the basis for generating a subset (or sub-population) of the population, the population may be updated (the state of the environment is changed) according to the fitness value of the sub-element generated from the element selected in the subset by the genetic algorithm, and the agent may be rewarded (this is operated by the neural network 100). For example, the reward may correspond to the difference between the maximum fitness value of the elements (among the values ​​of the elements) in the population and the maximum fitness value of the sub-element generated from the selected element in the subset.

[0051] In some embodiments, the neural network 100 can be updated by changing the policy according to the fitness values ​​of the child elements (policy gradient). In policy gradient, the policy to be applied to the neural network 100 (or agent) can be changed to maximize the expected reward, and the gradient of the policy can be inferred.

[0052] In some embodiments, neural network 100 may include at least one of a transformer (e.g., a bilinear transformer) that handles large-scale inputs (such as a population), a recurrent neural network (RNN), a long short-term memory (LSTM), and / or a permutation-equivariant fully connected network.

[0053] In some embodiments, the subset generator 200 may generate a subset of a population (e.g., a next generation population) based on the probabilities output from the neural network 100. The subset generator 200 may generate a subset from the current population by selecting elements having corresponding probabilities greater than a predetermined size from the current population. Alternatively, the subset generator 200 may generate a subset from the population by sequentially sampling / selecting a predetermined number of elements in order of the probabilities of the elements from high to low (i.e., selecting the first N elements according to the probability).

[0054] In some embodiments, the GA processor 300 may select a pair of elements (parent elements) from the subset generated by the subset generator 200 to (i) execute the genetic algorithm (form child elements) and (ii) perform simulations (simulations related to the problem) on the child elements generated by the genetic algorithm, thereby determining the answer to a given problem. For example, the GA processor 300 may determine at least one child element having a fitness value that satisfies a predetermined criterion among the K child elements (obtained by executing the genetic algorithm) as the answer to the problem to be solved.

[0055] As described above, the problem solving system according to some embodiments can perform calculation of the probability of elements in a population by using the neural network 100, and perform generation of a subset and GA processing by using the subset generator 200 and the GA processor 300, so that the workload of the genetic algorithm can be distributed between a processor (e.g., GPU) corresponding to (executing) the neural network 100 and a processor (e.g., CPU) corresponding to the subset generator 200 and the GA processor 300. Alternatively, a portion of parallel operations among operations that can use the GA processor can be executed by the processor corresponding to the neural network 100. In addition, by using a subset in the GA processing, the search space can be reduced compared to the population, and thus the operation result of the GA processing itself can be output quickly.

[0056] Figure 2 A problem solving method using a genetic algorithm according to one or more embodiments is shown. Figure 3 A reinforcement learning method for a subset generator according to one or more embodiments is shown. Figure 4 A reinforcement learning method for a subset generator according to one or more embodiments is shown. Figure 5 A GA process is shown according to one or more embodiments.

[0057] Reference Figure 2 , a population including a plurality of elements may be generated by population initialization (S110). When n genes are included in one element, the number of all elements (feasible solutions) associated with a given problem may be n!.

[0058] By population initialization, a predetermined number of elements among n! elements may be included in the initial population. The number of elements included in the population may be set according to the type of problem.

[0059] In some embodiments, the problem that the problem solving system attempts to solve using a genetic algorithm can be the arrangement of blocks responsible for predetermined functions in a predetermined area of ​​an electronic device when designing an electronic device. For example, the problem can be to arrange a collection of blocks in a row in a peripheral area of ​​an electronic device (such as, but not limited to, a memory circuit / device). In other words, the problem is modeled as a sequence of blocks that together control the operation of a memory device (e.g., an electronic component composed of a controller), where the blocks are placed in a peripheral area of ​​the memory. In this example, a genetic algorithm can be used to minimize the length of wires that connect the components separately.

[0060] In some embodiments, the set of blocks needs to be placed in a peripheral area of ​​the memory in a linear dimension, and the order of the blocks for the arrangement can be encoded as a digital string or vector. In this case, the encoded digital string or vector can each correspond to an element. For example, in the problem of arranging six blocks with identifiers 0 to 5 respectively, the order of the blocks can be encoded as an element of a digital string or vector (such as, [0,1,2,3,4,5]).

[0061] In some embodiments, all elements in the initial population may be assigned arbitrary (eg, random) fitness values. The same or different fitness values ​​may be given to two different elements.

[0062] In some embodiments, a breadth-first search (BFS) method and / or a depth-first search (DFS) method in which each node of the graph (one node corresponds to one block) is used as a root node may be used to generate elements included in the group. The number of elements generated by the DFS method and / or the BFS method may be the same as the number of blocks to be placed in the peripheral area.

[0063] The generated population may be input to the neural network 100, and the neural network 100 may output the probability of the corresponding element included in the population. The probability of an element may indicate the probability that a sub-element generated from the element in the subset will be determined as the answer to the question or the probability that an element in the subset generates a sub-element that will be determined as the answer to the question.

[0064] Reference Figure 3 , the neural network 100 can be an agent of reinforcement learning, and can take actions to output probabilities of elements in the environment (population). Afterwards, each element can be sampled into a subset according to the probability of the element, the neural network 100 can be rewarded according to, for example, the fitness value of the sub-element generated from a pair of elements selected in the subset, and the policy gradient of the reward can be used to update the neural network 100.

[0065] Reference Figure 2 , the subset generator 200 may generate a subset of the population based on the probability of the elements within the population (S120). In some embodiments, the subset generator 200 may generate a subset by sampling a predetermined number of elements in order of the probability of each element. The subset generator 200 may sample a predetermined number of elements (for example, starting from the maximum probability). Alternatively, the subset generator 200 may generate a subset by sampling "elements whose probability is greater than a Bernoulli probability of a predetermined size" (Bernoulli sampling). In other words, the subset generator 200 may compare the probability of each element with the Bernoulli probability and sample elements having a score or probability greater than the Bernoulli probability.

[0066] Using the Bernoulli sampling technique, a reference value may be predetermined based on the number of elements to be included in the subset. For example, when the subset needs to include approximately 100 elements, the subset generator 200 may determine a reference value so that approximately 100 elements may be sampled. The number of elements included in the subset may be a hyperparameter.

[0067] In some embodiments, the subset generator 200 may generate a subset based on the probabilities of the corresponding elements inferred from and output by the neural network 100 (e.g., RNN, LSTM, GRU, etc.), and the neural network 100 may be trained by reinforcement learning. The reward of the reinforcement learning may be determined based on the fitness value of the sub-elements generated from the elements selected into the subset.

[0068] Reference Figure 4 , the neural network 100 may output the probability of the corresponding element of the group (S121), and the subset generator 200 may generate a subset by sampling the elements in the group based on the corresponding probabilities of the elements in the group (S122). In some embodiments, the subset generator 200 may sample the elements included in the group in the order of the magnitude of the probability of the elements, or sample the elements having a probability greater than a predetermined magnitude. The probability of the element may indicate the possibility of a sub-element generated from the elements in the subset being determined as an answer or the possibility of an element within the subset generating a sub-element to be determined as an answer.

[0069] Reference Figure 2 , the GA processor 300 may generate child elements by performing GA processing using several pairs of elements selected from the subset (S130). The GA processor 300 may generate child elements by applying at least one genetic operator to each pair of elements (e.g., deriving a child based on a portion including a parent element). In some embodiments, the GA processor 300 may select K pairs of elements and generate K child elements from the K pairs of elements. In some embodiments, one or more child elements may be generated directly from the elements in the subset (e.g., by replacing elements to form child elements).

[0070] Reference Figure 5 , the GA processor 300 may select a pair of elements from the subset by using an algorithm (such as a roulette wheel selection) (S131). In addition, the GA processor 300 may generate a child element by applying at least one genetic operator to the selected one or more elements. As non-limiting examples, the genetic operator may be, for example, a crossover operator (S132, for example, forming a child from two parents), a mutation operator (S133, for example, mutating an element in a subset, the mutated element being a child element) and / or a local optimization operator (S134). The GA processor 300 may generate / output a child element from an element pair (or a single element) derived by at least one genetic operator (S135).

[0071] The crossover operator may perform an ordered crossover (such as partially matched crossover (PMX) applied to the permutation problem) on the genes within the elements of the pair.

[0072] The mutation operator may randomly assign a value between 0 and 1 to each gene of the mutated element and perform swaps between genes whose assigned values ​​are less than a threshold.

[0073] The local optimization operator may shift each gene of the element. For example, the local optimization operator may shift the gene [0, 1, 2, 3, 4, 5] and transform the element into [1, 2, 3, 4, 5, 0].

[0074] Reference Figure 2 , the GA processor 300 may calculate the fitness values ​​of the sub-elements by performing simulation on a problem to be solved for the K sub-elements generated by the GA process ( S140 ).

[0075] In the circuit design example above, the fitness value of the sub-element (generated by the genetic algorithm) may correspond to the length of the wire formed by the blocks to be placed in the peripheral area. For example, a sub-element with a relatively large fitness value may indicate that the arrangement order of the blocks (for the sub-element) makes the total length of the wire relatively short. Alternatively, a sub-element with a relatively small fitness value may indicate that the arrangement order of the blocks (for the sub-element) makes the total length of the wire relatively long.

[0076] Thereafter, the GA processor 300 may determine whether any of the fitness values ​​of the sub-elements satisfies a predetermined criterion ( S150 ).

[0077] In some embodiments, when no sub-element meets the predetermined criteria, the neural network 100 and the subset generator 200 may generate a new subset from the population. The GA processor 300 may generate sub-elements from the new subset by executing the genetic algorithm on the elements and / or element pairs selected from the new subset. In some embodiments, it is a step in the genetic algorithm from the generation of the subset to the generation and evaluation of a predetermined number (K) of sub-elements. In other words, when the answer cannot be determined from any of the sub-elements generated by a step of the genetic algorithm, the GA processor 300 may generate a new subset and execute the next step of the genetic algorithm (e.g., a step of generating new sub-elements and a step of searching for the answer to the question in the new sub-elements).

[0078] Reference Figure 2, after the GA processor 300 executes a step of the genetic algorithm, it may update the elements of the population based on the fitness values ​​of the child elements (S160). The GA processor 300 may replace "elements having fitness values ​​smaller than the fitness values ​​of the child elements generated from the subset" from the population used to generate the subset. For example, when the fitness value of the child element is greater than the fitness value of any element in the population, the GA processor 300 may replace the element in the population with the corresponding child element. In other words, an element having a greater fitness value may be newly included in the population, and the newly included element may be sampled into the subset (from the population) in the next step of the genetic algorithm.

[0079] Meanwhile, when the GA processor 300 executes the genetic algorithm a predetermined number of times, a cumulative reward determined based on the fitness value of the child element may be provided to the neural network. Figure 4 , the neural network 100 may be updated by changing the strategy to maximize the cumulative reward (S180). In other words, the neural network 100 may be updated by changing the strategy to maximize the fitness value of the sub-element generated by the genetic algorithm. The cumulative reward according to reinforcement learning may be described by a value function Q as shown in Equation 1 below.

[0080] Equation 1

[0081] In equation 1, represents the action of the neural network (agent) at time step t, represents the state of the population (environment) at time step t, and represents the value function of the action taken by the agent on the state of the environment at time step t.

[0082] As shown in Equation 1, the sum of the rewards after time step t can be Provided to agents.

[0083] Although mathematical symbols are used above, it will be understood that the mathematical symbols are shorthand for describing operations that can be described in English words, but such a text description would be difficult to understand. The above mathematical symbols and equations can be easily converted into source code, which can be compiled to generate processor executable instructions that, when executed, cause one or more processors to operate as described in the mathematical symbols.

[0084] In some embodiments, the reward provided to the agent may be determined based on the difference between the fitness values ​​of the sub-elements of the previous step and the current step of the genetic algorithm. In some embodiments, the reward may be determined based on the difference between the fitness values ​​of the elements in the population and the fitness values ​​of the sub-elements to update the neural network 100. For example, the reward may be determined based on the difference between the maximum fitness value of the elements in the population of the current step of the genetic algorithm and the maximum fitness value of the sub-elements generated in the current step. Alternatively, the reward may be determined based on the difference between the maximum fitness value of the elements in the population of the current step and the maximum fitness value of the elements in the population of the previous step. The reward may be determined at each step of the genetic algorithm, and then the accumulated reward may be provided to the neural network 100 when the genetic algorithm is executed a predetermined number of times (or until a solution element is found).

[0085] In some embodiments, the strategy of neural network 100 may be updated to minimize the length of the wire formed by the blocks to be placed in the peripheral area. Here, changing the strategy to maximize the fitness value of the sub-element may correspond to changing the strategy to minimize the length of the wire formed by the blocks.

[0086] Reference Figure 2 , the GA processor 300 may terminate the genetic algorithm by determining the sub-element satisfying the predetermined criterion as the answer to the question ( S170 ).

[0087] As explained above, the problem-solving system according to some embodiments can improve the performance of the genetic algorithm in solving the problem by performing adaptive sampling using a neural network and a subset generator to sample elements (or pairs of elements) that generate "sub-elements close to the solution of the problem." In other words, by using a neural network and a subset generator to adaptively sample elements corresponding to the solution of the problem, the speed of the genetic algorithm can be increased, and the answer to the problem can be accurately obtained.

[0088] Figure 6 A neural network is shown in accordance with one or more embodiments.

[0089] Reference Figure 6 , a neural network 600 according to some embodiments may include an input layer 610, one or more hidden layers 620, and an output layer 630. The input layer 610, the one or more hidden layers 620, and the output layer 630 each include a respective set of nodes connected to nodes of adjacent layers. The strength of the connection between the nodes may correspond to a weight value (weighted connection) (e.g., w 1,1 tow i,j, where i and j may be positive integers). The nodes included in the input layer 610, the hidden layer 620, and the output layer 630 may be connected to each other in a fully connected manner, however, any suitable neural network architecture may be used. In some embodiments, the number of parameters (e.g., the number of weight values ​​or the number of bias values) may be equal to the number of inter-node connections in the neural network 600.

[0090] The input layer 610 may include input nodes (x 1 to x i ), and the input node (x 1 to x i ) may correspond to the number of independent variables. In order to train the neural network 600, a training data set may be input to the input layer 610. When a test data set is input to the input layer 610 of the trained neural network 600, an inference result may be output from the output layer 630 of the trained neural network 600. In some embodiments, the input layer 610 may have a structure suitable for processing large-scale inputs.

[0091] The hidden layer 620 may be located between the input layer 610 and the output layer 630, and may include the hidden layer 620. 1 to 620 n The output layer 630 may include at least one output node y 1 To j Activation functions may be used in the hidden layer 620 and the output layer 630. In some embodiments, the neural network 600 may learn by adjusting weights of nodes included in the hidden layer 620.

[0092] Figure 7 A problem-solving system is shown in accordance with one or more embodiments.

[0093] The problem solving system according to some embodiments may be implemented as a computer system (eg, a computer readable medium). Figure 7 , the computer system 700 may include at least one processor 710 and a memory 720. The memory 720 may be connected to the processor 710 and store various information for driving the processor 710 or at least one program executed by the processor 710. The memory 720 may also store instructions configured to cause the processor to perform the processing of the above method. Although the processor 710 is mentioned in the singular, the processor 710 may actually be implemented as a single processor (e.g., a CPU) or a combination of processors (e.g., one or more CPUs and one or more GPUs).

[0094] The processor 710 may implement functions, processes, or methods proposed in some embodiments. The operation of the computer system 700 according to some embodiments may be implemented by the processor 710. At least one processor 710 may include both a GPU and a CPU.

[0095] In some embodiments of the present specification, the memory 720 may be located inside or outside the processor, and the memory may be connected to the processor by various known means. The memory may be various forms of volatile storage media or non-volatile storage media, and the memory may include, for example, a read-only memory (ROM) or a random access memory (RAM).

[0096] Figure 8 A problem solving method according to one or more embodiments is shown.

[0097] In some embodiments, the problem-solving system described herein may be used to optimize the one-dimensional arrangement of blocks (e.g., buffers, inverters, AND gates, and OR gates, etc.) in a peripheral area of ​​a memory semiconductor (DRAM, flash memory, SSD, CIS, DDI, SoC, smart card, MCU, etc.).

[0098] Reference Figure 8 , when six buffers (e.g., buffers b0 to b5), two inverters (e.g., inverters i0 and i1), four AND gates (e.g., AND gates a0 to a3), and one OR gate (e.g., OR gate o0) are arranged in the peripheral area of ​​the memory, the arrangement order of each block may be encoded as a digital string or vector as shown in the following Equation 2. In one embodiment, data x0 to x3, s0, and s1 may be output from buffers b0 to b5, respectively, and data out may be output from OR gate o0.

[0099] Equation 2

[0100] When a number string or vector related to the arrangement order of blocks is input to the problem solving system, the problem solving system may generate a population related to the arrangement order of blocks and output a solution to the problem by using a genetic algorithm within the generated population.

[0101] In the present specification, the neural network 100 may operate as an agent of a reinforcement learning network to output a probability of each element included in a population.

[0102] The subset generator 200 may generate subsets of a population based on probabilities of elements within the population.

[0103] The GA processor 300 may generate sub-elements from the elements selected from the subset by performing GA processing.

[0104] Thereafter, at least one of the sub-elements generated by the GA processor 300 may be output as an answer to the question based on the fitness values ​​calculated through the simulation of the sub-elements. The sub-element as the answer to the question may indicate an arrangement order of blocks that may minimize the total length of wires connecting blocks to be arranged in the peripheral area of ​​the memory. Figure 8 The solution to the problem shown in is the string of numbers [0,2,12,8,9,3,4,11,6,7,1,10,5].

[0105] In this way, the problem-solving system according to some embodiments can quickly output an answer about the arrangement order of the blocks by generating a subset for executing the genetic algorithm based on the probability of the elements calculated using the neural network. In addition, by adaptively sampling the elements corresponding to the solution of the problem using the neural network and the subset generator, the speed at which the genetic algorithm finds the best arrangement order of the blocks can be increased, and the optimal answer can be obtained.

[0106] Meanwhile, the embodiments may be implemented not only by the devices and / or methods described so far, but also by a program (instruction) that implements the functions corresponding to the configuration of the embodiments or a recording medium having the program recorded thereon, and the implementation may be implemented by those skilled in the art according to the description of the above embodiments. Specifically, the methods according to some embodiments (e.g., a method for executing a genetic algorithm and a method for designing an electronic device, etc.) may be implemented in the form of program instructions that can be executed by various computer devices and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., alone or in combination. The program instructions recorded on the computer-readable medium may be specifically designed and configured for the example, or may be known and available to a person skilled in the art in the field of computer software. The computer-readable recording medium may include a hardware device configured to store and execute program instructions. For example, the computer-readable recording medium includes a magnetic medium (such as a hard disk, a floppy disk, and a tape), an optical recording medium (such as a CD-ROM and a DVD), and an optical disk (such as a floppy disk). It may be a magneto-optical medium, a ROM, a RAM, a flash memory, etc. The program instructions may include not only machine language codes such as those generated by a compiler, but also high-level language codes that may be executed by a computer through an interpreter, etc.

[0107] Here about Figures 1 to 8The computing devices, electronic devices, processors, memories, displays, information output systems and hardware, storage devices, and other devices, devices, units, modules, and components described are implemented by hardware components or represent hardware components. Examples of hardware components that can be used to perform the operations described in this application include, where appropriate, controllers, sensors, generators, drivers, memories, comparators, arithmetic logic units, adders, subtractors, multipliers, dividers, integrators, and any other electronic components configured to perform the operations described in this application. In other examples, one or more of the hardware components that perform the operations described in this application are implemented by computing hardware (e.g., by one or more processors or computers). A processor or computer may be implemented by one or more processing elements (such as logic gate arrays, controllers and arithmetic logic units, digital signal processors, microcomputers, programmable logic controllers, field programmable gate arrays, programmable logic arrays, microprocessors, or any other device or combination of devices configured to respond and execute instructions in a defined manner to achieve desired results). In one example, a processor or computer includes or is connected to one or more memories storing instructions or software executed by a processor or computer. The hardware components implemented by a processor or a computer can execute instructions or software (such as an operating system (OS) and one or more software applications running on the OS) to perform the operations described in this application. The hardware components can also access, manipulate, process, create and store data in response to the execution of instructions or software. For simplicity, the singular term "processor" or "computer" can be used in the description of the examples described in this application, but in other examples, multiple processors or computers can be used, or the processor or computer can include multiple processing elements, or multiple types of processing elements, or both. For example, a single hardware component or two or more hardware components can be implemented by a single processor, or two or more processors, or a processor and a controller. One or more hardware components can be implemented by one or more processors, or a processor and a controller, and one or more other hardware components can be implemented by one or more other processors, or another processor and another controller. One or more processors or a processor and a controller can implement a single hardware component or two or more hardware components. The hardware components may have any one or more of different processing configurations, examples of which include a single processor, independent processors, parallel processors, single instruction single data (SISD) multiprocessing, single instruction multiple data (SIMD) multiprocessing, multiple instruction single data (MISD) multiprocessing, and multiple instruction multiple data (MIMD) multiprocessing.

[0108] Figures 1 to 8The method for performing the operations described in the present application shown in the figure is performed by computing hardware (e.g., by one or more processors or computers), and the computing hardware is implemented as executing instructions or software as described above to perform the operations performed by the method described in the present application. For example, a single operation or two or more operations may be performed by a single processor, or two or more processors, or a processor and a controller. One or more operations may be performed by one or more processors, or a processor and a controller, and one or more other operations may be performed by one or more other processors, or another processor and another controller. One or more processors or a processor and a controller may perform a single operation, or two or more operations.

[0109] Instructions or software for controlling computing hardware (e.g., one or more processors or computers) to implement hardware components and perform methods as described above may be written as computer programs, code segments, instructions, or any combination thereof to individually or collectively instruct or configure one or more processors or computers to operate as a machine or special-purpose computer to perform operations performed by the hardware components and methods as described above. In one example, the instructions or software include machine code (such as machine code generated by a compiler) that is directly executed by one or more processors or computers. In another example, the instructions or software include high-level code that is executed by one or more processors or computers using an interpreter. Instructions or software may be written in any programming language based on the block diagrams and flow charts shown in the accompanying drawings and the corresponding descriptions herein, which disclose algorithms for performing operations performed by the hardware components and methods as described above.

[0110] Instructions or software for controlling computing hardware (e.g., one or more processors or computers) to implement hardware components and perform the methods described above, and any associated data, data files, and data structures, may be recorded, stored, or fixed in or on one or more non-transitory computer-readable storage media. Examples of non-transitory computer-readable storage media include read-only memory (ROM), random access programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, non-volatile memory, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM, DVD-R, DVD+R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray or optical disk storage device, hard disk drive (HDD), solid state drive (SSD), flash memory, card memory (such as, multimedia card or micro card (for example, secure digital (SD) or extreme digital (XD))), magnetic tape, floppy disk, magneto-optical data storage device, optical data storage device, hard disk, solid state disk and any other device, any other device is configured to store instructions or software and any associated data, data files and data structures in a non-transitory manner and provide instructions or software and any associated data, data files and data structures to one or more processors or computers so that one or more processors or computers can execute the instructions. In one example, the instructions or software and any associated data, data files and data structures are distributed on a networked computer system so that the instructions and software and any associated data, data files and data structures are stored, accessed and executed by one or more processors or computers in a distributed manner.

[0111] Although the present disclosure includes specific examples, it will be clear after understanding the disclosure of the present application that various changes in form and detail may be made in these examples without departing from the spirit and scope of the claims and their equivalents. The examples described herein are considered to be descriptive only and not for limiting purposes. The description of features or aspects in each example will be considered to be applicable to similar features or aspects in other examples. If the described techniques are performed in a different order, and / or if the components in the described systems, architectures, devices, or circuits are combined in different ways, and / or replaced or supplemented by other components or their equivalents, suitable results may be achieved.

[0112] Therefore, the scope of the disclosure may be defined by the claims and their equivalents in addition to the above disclosure, and all variations within the scope of the claims and their equivalents should be construed as being included in the disclosure.

Claims

1. A method for executing a genetic algorithm, the genetic algorithm being executed by one or more processors, the method comprising: generating a subset of elements from a population including elements each corresponding to a respective solution to the problem by using a neural network; generating child elements by executing a genetic algorithm on the subset; as well as Identifying a sub-element within a sub-element is the answer to the question.

2. The method of claim 1, wherein the subset is generated based on a score of the element output from the neural network, the score comprising or corresponding to the probability of the element.

3. The method according to claim 2, wherein: The step of generating the subset based on the scores of the elements output from the neural network comprises: Elements with fractions greater than a predetermined size are sampled.

4. The method according to claim 2, wherein: The step of generating the subset based on the scores of the elements output from the neural network comprises: Sample a predetermined number of elements in order from largest score to smallest score.

5. The method according to claim 1, wherein: The step of generating sub-elements by executing a genetic algorithm on the subset comprises: selecting two elements from the subset; and A genetic operator is applied to the selected element to generate one of the child elements.

6. The method according to claim 5, wherein: Genetic operators include crossover operators, mutation operators or local optimization operators.

7. The method according to claim 1, wherein: The step of determining that the one of the sub-elements is the answer comprises: determining a fitness value of a sub-element by performing a simulation on a problem of the corresponding sub-element; and Rewards are provided to the neural network based on the fitness values ​​of the child elements.

8. The method according to claim 7, wherein: The steps to provide rewards to the neural network based on the fitness values ​​of the child elements include: The neural network is updated based on the difference between the fitness value of the element in the population and the fitness value of the child element.

9. The method according to claim 7, wherein: The step of determining that the one of the sub-elements is the answer further comprises: Updates an element in the population based on the fitness values ​​of its children.

10. The method according to claim 9, wherein: The steps of updating an element in a population based on the fitness value of a child element include: An element in the population is replaced with a child element determined to have a fitness value greater than the fitness value of the element in the population.

11. The method according to claim 7, wherein: The step of determining that the one of the sub-elements is the answer further comprises: One of the sub-elements having a fitness value that satisfies a predetermined standard is determined as the answer.

12. The method according to claim 1, wherein: Each of the elements is generated by encoding the order of blocks to be placed in the peripheral area of ​​the memory.

13. The method according to any one of claims 1 to 12, further comprising: In response to determining that there is no answer among the child elements, Generate a new subset of elements; generating new child elements by executing a genetic algorithm on the newly generated subset; and The newly generated child element is searched for the answer.

14. A method for designing an electronic device, the method comprising: generating a subset including elements by performing sampling on elements each corresponding to a different ordering of blocks to be arranged in a predetermined area of ​​the electronic device using a neural network; generating sub-elements of the element by executing a genetic algorithm using the subset; as well as The order of the blocks to be arranged in the predetermined area is determined by selecting one of the sub-elements obtained by the genetic algorithm, the selected sub-element indicating the order of the blocks.

15. The method according to claim 14, wherein: The step of generating the subset by performing sampling on the elements using a neural network comprises: determining a probability of an element in a population generated from a random selection of the element, the probability being determined using a neural network; and The subset is generated based on the probability.

16. The method according to claim 15, wherein: The probability corresponds to the likelihood that a sub-element generated from the elements in the subset is determined to be an optimal solution to the problem solved by the genetic algorithm.

17. The method according to claim 15, wherein: The step of generating the subset based on the probability comprises: Elements with a probability greater than a predetermined size are sampled, or a predetermined number of elements are sampled in order from highest probability to lowest probability.

18. The method according to any one of claims 15 to 17, further comprising: After executing the genetic algorithm using the subset, the neural network is updated based on the fitness values ​​of the sub-elements obtained from the subset through the genetic algorithm.

19. A method for generating a subset of a population, the subset of a population being used in a genetic algorithm, the method being performed by one or more processors, the method comprising: determining a score of a corresponding element included in the population by inferring the score using a neural network; generating the subset including elements of the elements in the population based on the scores; as well as The neural network is updated based on the fitness values ​​of sub-elements generated from the elements in the subset.

20. The method according to claim 19, wherein: The steps of updating the neural network based on the fitness values ​​of the generated sub-elements include: determining a fitness value of the sub-element by performing a simulation on the sub-element, the sub-element being specific to the problem to which the genetic algorithm is applied; and Rewards are provided to the neural network based on the fitness values ​​of the child elements.

Citation Information

Patent Citations

  • An X-ray Inspecting Method with an Arrangement of an Inspecting Direction

    KR1020230119976A

Cited By

  • Placement method and placement apparatus

    TWI927787B