Reinforcement learning method and system for test suite generation

Reinforcement learning is used to combine neural networks through genetic algorithms, addressing the inefficiencies in manual test case development for computing systems, resulting in automated and effective test suite generation.

JP7705211B2Active Publication Date: 2025-07-09INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2023534078
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-15
Filing Date
2021-10-28
Publication Date
2025-07-09
Estimated Expiration
2041-10-28

AI Technical Summary

Technical Problem

Test engineers face challenges in developing optimal test cases for computing systems due to time-consuming manual effort and potential judgment errors, leading to inadequate verification of system functionality.

Method used

A computer-implemented method using reinforcement learning to generate neural networks that combine mutant neural networks through genetic algorithms to determine an optimal sequence of test cases, leveraging crossover operations between different classes of neural networks to enhance test suite generation.

Benefits of technology

This approach automates the selection of optimal test cases, reducing manual effort and improving the effectiveness of test suite generation by ensuring thorough verification of computing system functionality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007705211000001
    Figure 0007705211000001
  • Figure 0007705211000002
    Figure 0007705211000002
  • Figure 0007705211000003
    Figure 0007705211000003
Patent Text Reader

Abstract

Aspects of the present invention include mutating each neural network in a portion of a first array of neural networks, where each neural network in the first array of neural networks is configured to select a respective sequence of test cases for testing the computing infrastructure, causing each neural network in a second array of neural networks to select a respective sequence of test cases for testing the computing infrastructure, and generating a child neural network by performing an intersection operation between the mutated neural networks in the portion of the first array and the neural networks in the second array of neural networks, where the child neural network generates a new sequence of test cases for testing the computing infrastructure.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to programmable computing systems, and more particularly to programmable computing systems configured to incorporate reinforcement learning for test suite generation.

Background Art

[0002] Test engineers execute tests on computing systems to verify the functionality of the system's hardware and software. Generally, test engineers subject the computing system to test protocols to verify whether the components of the computing system function properly according to some technical or functional specification. Test engineers learn the expected capabilities and limitations of the system from the hardware and software specifications. Test engineers design test cases specific to the system to produce a target signal response based on the specifications. Test engineers determine whether the system functions within the boundaries of the expected capabilities and limitations based on the actual received signal response.

Summary of the Invention

[0003] Embodiments of the present invention are directed to the reinforcement learning of safety codes. A non-limiting exemplary computer-implemented method includes mutating each neural network of a first array of neural networks, where each neural network of the first array of neural networks is configured to select each sequence of test cases for testing a computing infrastructure. Each neural network of a second array of neural networks is caused to select each sequence of test cases for testing a computing infrastructure. By performing a crossover operation between the mutated neural networks of a part of the first array and the neural networks of the second array of neural networks, child neural networks are generated, and the child neural networks generate a new sequence of test cases for testing a computing infrastructure.

[0004] Other embodiments of the present invention implement the features of the foregoing method in a computer system and a computer program product.

[0005] Other technical features and advantages are realized by the technology of the present invention. Embodiments and aspects of the present invention are described in detail herein and are considered to be part of the claimed subject matter. Refer to the detailed description and the drawings for a better understanding.

[0006] The details of the exclusive rights described herein are specifically pointed out and clearly claimed in the claims at the end of this specification. The foregoing and other features and advantages of embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings.

Brief Description of the Drawings

[0007]

Figure 1

Figure 2A

Figure 2B

Figure 3

Figure 4

Figure 5

Figure 6

Embodiments for Carrying Out the Invention

[0008] The diagrams shown in this specification are illustrative. Without departing from the spirit of the present invention, many modifications of the diagrams or operations described in this specification are possible. For example, operations can be executed in a different order, or operations can be added, deleted, or changed. Also, the term "coupled" and its variations represent the existence of a communication path between two elements and do not mean a direct connection between elements without an element / connection intervening between them. All these modifications are considered to be part of this specification.

[0009] One or more embodiments of the present invention provide a computer-implemented method, a computing system, and a computer program product for generating a neural network designed to select an optimal sequence of test cases for testing a computer infrastructure.

[0010] A test engineer develops test cases for testing various aspects of a computing system. Each test case is a set of variables or conditions used to test a particular aspect of the computing system. The test cases drive various functions of the computing system to generate a signal response in the system. Next, the engineer groups different test cases together into a test suite. Each test suite contains a sequence of test cases designed to test a particular aspect of the computing system. The engineer executes the test suite against the computing system and analyzes the signal response. However, the engineer must spend time and resources developing the test cases and test suites. Additionally, the engineer's judgment may be impaired by habit or lack of understanding of the test cases or the computing system. This can lead to an inadequate sequence of test cases that do not fully verify the computing system.

[0011] One or more embodiments of the present invention address one or more of the above disadvantages by providing a computer-implemented method, a computing system, and a computer program product for creating a new neural network that combines mutant neural networks to determine an optimal test suite. A first array of neural networks is introduced and analyzed to determine which of the neural networks produces the best selection of test cases for a test suite. Each neural network in the first array is from the same class of neural networks. The best neural network from the first array is mutated using a genetic algorithm. The mutant neural networks are analyzed to determine which of the mutant neural networks produces the best selection of test cases for a test suite. A second array of neural networks is introduced and analyzed to determine which of the neural networks produces the best selection of test cases for a test suite. The neural networks from the second array are from a different class of neural networks than the first array. The best performing mutant neural networks and the neural networks from the second array are combined using a genetic algorithm to form a new neural network for producing the best selection of test cases for a test suite.

[0012] Referring now to FIG. 1, a system 100 for generating a test suite is generally shown in accordance with one or more embodiments of the present invention. The system 100 includes a neural network unit 102 for managing an array of neural networks that are used to determine test cases for testing a computing infrastructure 112 that requires testing. The system 100 further includes a fitness unit 104 for evaluating the fitness of each neural network. The system 100 further includes a neural network breeding unit 106 for breeding a new array of neural networks based on the fitness evaluation of the fitness unit 104. The system 100 further operably communicates with a test case database 108 that includes test cases for static or dynamic testing. The system 100 further operably communicates with a test unit 110 that executes tests on the computing infrastructure 112 that requires testing. It should be understood that the system 100 is implemented via the processing system 600 described in FIG. 6.

[0013] The neural network unit 102 manages iterations of the neural network array. Each array of neural networks includes neural networks from the same class. For example, each neural network can be a feed-forward neural network that includes the same number of nodes, an input layer, a hidden layer, and an output layer. In other iterations, the class of the first array can include a radial bias network (RBN), a long / short-term memory (LSTM) network, a deep convolutional network (DCN), or other suitable network. Different classes of neural networks differ in topology with respect to the function of the node layers and the connections between nodes.

[0014] The neural network unit 102 initializes each neural network of the first array to select a sequence of test cases. The initialization includes randomizing the weights and biases associated with each neural network. Each neural network of the first array receives, as input, the features of each test case included in the test case database 108. Each neural network of the first array also receives, as input, test parameters regarding a particular aspect of the computing infrastructure 112 that requires testing. The computing infrastructure 112 that requires testing includes all physical and virtual resources used to process, analyze, and store data. Each neural network applies the input to the model, and then the model outputs a sequence of test cases for a test suite to test the computing infrastructure 112 that requires testing.

[0015] According to one or more embodiments of the present invention, each neural network is composed of a series of interconnected nodes (neurons). Each connection between a first neuron and a second neuron is associated with a weight indicating the strength of the relationship between the two connected neurons. Each neuron is associated with an activation function that determines the output of the neuron. Each activation function is associated with a bias that is a constant value. The output value of the first neuron is modified by the weight and transmitted to the second neuron. The second neuron receives this value and uses it as the input to the activation function associated with the second neuron. The second neuron evaluates the activation function, adds the bias, and outputs the value to the subsequent layer of neurons. Since the weights and biases of each neural network are randomized, each neural network is operable to predict a different set of test cases to form a test suite.

[0016] The fitness unit 104 applies a fitness function to each neural network to evaluate whether the neural network has predicted an optimal solution to a sequence of test cases for testing the computing infrastructure 112 that requires testing. The fitness unit 104 is operable to apply each fitness function for each characteristic, capability, limitation, or function of the computing infrastructure 112 that requires testing. The fitness unit 104 receives a sequence of test cases predicted by the neural network and applies this sequence as an input to the fitness function. The fitness function further receives a signal response for this sequence from the computing infrastructure 112 that requires testing. Based on the sequence and the signal response, the fitness function generates an output fitness score regarding how "fit" the sequence is for testing a particular characteristic, capability, limitation, or function. For example, the test unit 110 tests whether two or more hardware components of the computing infrastructure 112 that requires testing do not match. Since non-matching components often result in processing bottlenecks, the fitness function is used to compare the sequences with respect to the number of events related to the conflicts generated by the sequences. The score of the fitness function is based in part on how close the actual number of events related to the conflicts that occurred is to the predicted threshold number.

[0017] The fitness unit 104 selects the neural network with the highest performance from the first array. The fitness unit 104 uses various criteria to determine the neural network with the highest performance. In some embodiments of the present invention, the fitness unit 104 selects the highest threshold percentile of the neural network. For example, the fitness unit 104 selects a neural network having a fitness score that is the 90th percentile or higher. In other embodiments of the present invention, the fitness unit 104 selects the neural network with the threshold number having the highest score. For example, the fitness unit 104 selects 30 neural networks having the 30 highest scores. In response to the selection by the fitness unit 104, the neural network unit 102 removes the remaining neural networks from the first array of neural networks.

[0018] The neural network breeding unit 106 receives the neural networks selected by the fitness unit 104 and mutates the neural networks by using a genetic algorithm. The neural network breeding unit 106 uses the genetic algorithm to change the topology of the neural network in addition to the weights and biases associated with each neural network. Instead of using a cost / objective function and changes via backpropagation to train the neural network, a genetic algorithm is used. In some embodiments of the present invention, the weights and biases are changed by pairing two of the selected neural networks and exchanging one or more of the weights and one or more of the biases. In other embodiments of the present invention, the neural network breeding unit 106 randomly changes the weights and biases. The neural network breeding unit 106 changes the topology by adding nodes to the neural network or removing them from the neural network. To add a node, the neural network breeding unit 106 disables the connection between two nodes. Next, the neural network breeding unit 106 adds a new node between the two disabled nodes. Thereafter, the neural network breeding unit 106 adds a connection between the new node and the two disabled nodes. The neural network breeding unit 106 can also disable an existing connection between two connected nodes or add and connect a node to another node.

[0019] In some embodiments of the present invention, the neural network breeding unit 106 takes into account each neural network architecture such that it includes a genotype and a network phenotype. The genotype includes a node gene set and a connected gene set. The node gene set includes an entry for each node, and each entry includes an identifier for each node and a description of whether the node is an input node (sensor), a hidden node, or an output node. The connected gene set includes an entry for each set of connected nodes. Connections include direct connections and indirect connections. Each entry includes identification information for two connected nodes, a weight value between the nodes, an indication of whether the connection is enabled or disabled, and a unique innovation number that identifies the connection. The innovation number creates an index for each evolutionary change of the neural network. For example, assume that a neural network includes an input node 1 connected to a hidden layer node 2, and the hidden layer node 2 is connected to an output node 3. The node gene set includes three entries for the three nodes. The connected gene set includes three entries for the direct connection between node 1 and node 2, the direct connection between node 2 and node 3, and the indirect connection between node 1 and node 3. The indirect connection is in the form of a disabled connection. The network phenotype represents all of the relationships between the three nodes, for example, as a directed graph.

[0020] As a further explanation, the aforementioned neural network can include a fourth input layer node that is connected to the third node but not to other nodes. According to one or more embodiments of the present invention, the neural network breeding unit 106 can connect the fourth node to the third node. Next, the neural network breeding unit 106 adds an entry to the set of connected nodes and assigns a unique innovation number to the new entry. The neural network breeding unit 106 also updates the network phenotype to reflect the additional connection. In another case, the neural network breeding unit 106 can connect a new node between two disabled nodes. Next, the neural network breeding unit 106 adds a set of connected genes to reflect the direct and indirect connections, along with a unique innovation number. Using the same explanation as above, the neural network breeding unit 106 disables the connection between node 1 and node 2. Next, the neural network breeding unit 106 connects a new node 5 between node 1 and node 2. Thereafter, the neural network breeding unit 106 adds a set of connected genes to reflect the connection between node 1 and node 5, and the connection between node 5 and node 2, along with a unique innovation number. The unique innovation number is used during the crossover process between two neural networks. The neural network breeding unit 106 continues to mutate the selected neural network in this way until a threshold number of mutant neural networks are generated. In some embodiments of the present invention, the threshold number of mutant neural networks is the same as the number of neural networks in the first array of neural networks.

[0021] According to one or more embodiments of the present invention, the neural network unit 102 initializes each mutant neural network. Each mutant neural network receives, as input, the features of each test case included in the test case database 108. Each mutant neural network also receives, as input, test parameters regarding a particular aspect of the computing infrastructure 112 that requires testing. Each mutant neural network uses the features as input to the model, and the model outputs a sequence of test cases for a test suite for testing the aspect of the computing infrastructure 112 that requires testing. The fitness unit 104 applies a fitness function to each mutant neural network to evaluate whether the mutant neural network predicted the optimal solution of the sequence of test cases. Next, the fitness unit 104 selects the mutant neural network with the highest performance.

[0022] The neural network unit 102 initializes each neural network of the second array of neural networks. Each neural network of the second array is a different class of neural network from the first array. For example, if the first array is composed of feedforward neural networks, the second array is composed of radial bias networks. Thus, the first array and the mutant neural network are of the same class and are therefore the same type of neural network, while the second array is from a different class and is therefore a different type. In some embodiments of the present invention, the second array includes the same number of neural networks as the first array. Each neural network of the second array receives, as input, the characteristics of each test case included in the test case database 108. Each neural network of the second array also receives, as input, test parameters regarding a particular aspect of the computing infrastructure 112 that requires testing. Each neural network applies the input to the model, and the model outputs a sequence of test cases for a test suite for testing the aspect of the computing infrastructure 112 that requires testing. The fitness unit 104 applies a fitness function to each neural network of the second array to evaluate whether the mutant neural network has predicted an optimal solution for the sequence of test cases for testing the computing infrastructure 112 that requires testing. Next, the fitness unit 104 selects the neural network with the highest performance from the second array.

[0023] The neural network breeding unit 106 breeds new neural networks by performing a crossover function to combine the highest performance neural network from the mutant neural networks and the second array of neural networks. The crossover function takes as input the parent neural networks from the mutant neural networks and the parent neural networks of the second array, and breeds child neural networks. The neural network breeding unit 106 compares the fitness scores of the two neural networks. The neural network breeding unit 106 determines, by backpropagation, which sequence of connected nodes of the neural network with the higher score led to the prediction of the sequence of the test suite. The neural network breeding unit 106 also determines which sequence of connected nodes of the neural network with the lower score led to the prediction of the sequence of the test suite. The connections forming the sequences are connections represented by a set of connected genes and identified by unique innovation numbers. Next, the neural network breeding unit 106 adds the sequences of connected nodes of the neural network with the higher score and the neural network with the lower score to the child neural network. This process is completed when each neural network is a parent with respect to the child neural network.

[0024] In some embodiments of the present invention, the neural network breeding unit 106 executes an intersection function on two mutually prime neural networks having different topologies. In that case, the first neural network and the second neural network may include different numbers of layers or nodes. For example, the first neural network may include three hidden layers, while the second neural network may include four hidden layers. The first neural network may also include nodes connected differently from the second neural network. For example, the first neural network may include an input node (e.g., a sensor) connected to two nodes of a hidden layer of four nodes, while the second neural network may include an input node (e.g., a sensor) connected to four nodes of a hidden layer of four nodes. In such a situation, the neural network breeding unit 106 generates overlapping nodes in order to enable a one-to-one mapping of the first neural network to the second neural network based on the coefficients of the paths within the neural network. The neural network breeding unit 106 can identify the core nodes that contribute most to the test case selection along a path (a sequence of connected nodes). For example, FIGS. 2A and 2B show a path through a dashed line, and the core nodes are the nodes connected by the dashed path. The neural network breeding unit 106 can use various methods to identify the core nodes. In some embodiments of the present invention, the neural network breeding unit 106 can identify the core nodes based on the backpropagation algorithm. Next, the neural network breeding unit 106 can multiply the core nodes of the first neural network by the core nodes of the second neural network to form two neural networks. These two neural networks may be referred to as the first prime neural network and the second prime neural network.The number of nodes of the first neural network and the second neural network are each coefficient values. The additional nodes added to the first neural network and the second neural network form the first prime neural network, and the second prime neural network is the overlapping nodes. Next, the neural network breeding unit 106 identifies the common (same) nodes and introduces randomization to the non-common (different) nodes to breed each child neural network from the first prime neural network and the second prime neural network. Each child neural network is reduced to one coefficient of each parent neural network.

[0025] The child neural networks together form a third array of neural networks. Each child neural network of the third array is initialized by the neural network unit 102 to predict regarding a sequence of test cases for forming a test suite. The fitness unit 104 applies a fitness function to each child neural network to evaluate whether the child neural network predicted an optimal solution for a sequence of test cases for testing the computing infrastructure 112 that requires testing. Next, the fitness unit 104 selects the child neural network with the highest performance.

[0026] This process can be repeated, in which case a new array of different classes of neural networks is introduced until the termination condition is met. A new array of neural networks is evaluated using a fitness function. The neural network with the highest performance is selected and combined with the neural network with the highest performance of the previous array. In some embodiments of the present invention, the termination condition is that the neural network has achieved an average threshold fitness score. In other embodiments of the present invention, the termination function is the recognition of a return value with decreasing further mutations and crossovers. In that case, termination is based on the average increase in fitness score from one array to the subsequent array being less than a threshold increase value. For example, if the average fitness score of the fifth array is x, the average fitness score of the sixth array is y, and y - x is less than the threshold increase value z, the termination condition has been reached.

[0027] The test case database 108 includes a plurality of test cases. Each test case is a set of variables or conditions used for unit tests, functional tests, system tests, or integration tests. For example, if system 100 is generating a test suite to test for memory leaks on a server, a test case may include the initialization of a high-memory-load video game. In other examples, system 100 can generate other test suites for other aspects such as memory usage or input / output throughput. Each test case is a component of a test suite that includes a sequence of test cases used to test the computing infrastructure 112 that requires testing. Each test case further includes criteria for determining whether the computing infrastructure 112 that requires testing has passed or failed. For example, the criteria for a memory leak indicate that an incorrect allocation of 100 bytes of data is normal and thus passes, while an incorrect allocation of 1 megabyte of data constitutes a defect. As used herein, a sequence does not necessarily indicate a time series of test cases, but rather a particular combination of test cases. In some embodiments, the sequence includes the chronological order of test cases applied to the computing infrastructure 112 that requires testing. In other embodiments, the sequence includes a particular set of test cases applied to the computing infrastructure 112 that requires testing.

[0028] As used herein, the terms "neural network" and "machine learning" broadly represent the functionality of an electronic system that learns from data. A machine learning system, engine, or module can include machine learning algorithms that are trained in an external cloud environment (e.g., cloud computing environment 50) to learn a functional relationship between inputs and outputs that is currently unknown. In one or more embodiments, the machine learning functionality can be implemented using a neural network that has the ability to be trained to perform a currently unknown function. In machine learning and cognitive science, a neural network is a group of statistical learning models inspired by the biological neural networks of animals and especially the brain. Neural networks can be used to estimate or approximate systems and functions that depend on a large number of inputs.

[0029] A neural network can be embodied as a so-called "neuro-morphological" system of interconnected processor elements that function as simulated "neurons" and exchange "messages" with each other in the form of electrical signals. Similar to the so-called "plasticity" of synaptic neurotransmitter connections that transmit messages between biological neurons, the connections within a neural network that transmit electrical messages between simulated neurons are provided with numerical weights corresponding to the strength or weakness of a particular connection. During training, these weights can be adjusted based on experience, making the neural network adaptable to inputs and capable of learning. The activation of these input neurons is passed to other downstream neurons, often called "hidden" neurons, after being weighted and transformed by a function determined by the designer of the network. This process is repeated until the output neuron is activated. The activated output neuron determines which character was read.

[0030] Referring to FIG. 2A, a diagram of a first neural network 200 is shown in accordance with an embodiment of the present invention. The first neural network 200 includes an input layer 202 including three nodes, a hidden layer 204 including four nodes, and an output layer 206 including four nodes. As shown in the figure, the nodes are connected by dashed lines to show which nodes contributed most towards the selected test case included in the test suite. For example, the input node 208, the hidden layer node 210, and the output layer node 212 contributed most towards selecting test case 2. The neural network communicates with the test case database 108. In some embodiments of the present invention, after predicting with respect to a sequence of test cases, the first neural network 200 annotates each selected test case in the test case database 108 to reflect the selection.

[0031] Referring to FIG. 2B, a second neural network 250 is shown in accordance with an embodiment of the present invention. To generate the second neural network 250, the first neural network 200 has been mutated. As shown in the figure, the hidden layer node 210 has been mutated to the hidden layer node 214, the output layer node 216 has been mutated to the output layer node 218, and the output layer node 220 has been mutated to the output layer node 222. In some embodiments of the present invention, three nodes 210, 216, 218 from the first neural network 200 are mutated by changing the activation function associated with each node. In other embodiments of the present invention, three nodes 210, 216, 218 from the first neural network 200 are mutated by changing the bias value associated with each node. In still other embodiments of the present invention, three nodes 210, 216, 218 from the first neural network 200 are mutated by changing the activation function and the bias value associated with each node.

[0032] Referring to FIG. 3, a flowchart 300 of a process for generating a neural network for testing is shown in accordance with one or more embodiments of the present invention. It should be understood that all or part of the processes shown in FIG. 3 are executed by a computer system such as the system 100 of FIG. 1. At block 302, the neural network unit 102 initializes a first array of neural networks. The initialization includes randomizing the values of the weights and biases of each neural network. Each neural network in the first array of neural networks is of the same class of neural network. For example, each neural network is a feedforward neural network. The neural network unit 102 receives a test case as input for each neural network, outputs a sequence of test cases, and causes a test suite to be formed regarding aspects of the computing infrastructure 112 that require testing. Each test suite is sent to a test unit 110, and the test unit 110 tests aspects of the computing infrastructure 112 that require testing using the test cases.

[0033] In block 304, the fitness unit 104 evaluates the performance of each neural network in the first array. The fitness unit 104 receives each signal response from the computing infrastructure 112 that requires testing for each test suite. Each neural network selects a sequence of test cases, and thus each neural network is associated with each signal response. The fitness unit 104 applies a fitness function to determine how close the selected test cases of the test suite are to the optimal solution. The fitness unit 104 compares the score generated by the fitness function with a threshold score. The fitness unit 104 evaluates the performance of each neural network based on the distance of the fitness score of the neural network to the threshold score. The fitness unit 104 further selects the highest performing portion of the neural networks in the first array. In some embodiments, this selection is based on the neural network achieving a fitness score greater than the threshold percentile. In other embodiments, this selection is based on the neural network having a fitness score greater than the threshold fitness score.

[0034] In block 306, the neural network breeding unit 106 mutates the highest performing portions of the first array using a genetic algorithm. The neural network breeding unit 106 performs mutations with various modifications. One option is to change the weights and biases associated with various nodes and node connections. Another option is to disable connections between nodes or add one or more nodes to the neural network. Another option is for the neural network breeding unit 106 to change the activation function associated with a node. For example, the neural network breeding unit 106 changes a linear activation function to a non - linear activation function. After the neural network breeding unit 106 has completed generating the mutant neural networks, the neural network unit 102 receives the characteristics of the test cases as inputs for each neural network, outputs a sequence of test cases, and causes a test suite to be formed regarding aspects of the computing infrastructure 112 that require testing.

[0035] In block 308, the fitness unit 104 evaluates the performance of each mutant neural network. The fitness unit 104 receives each signal response from the computing infrastructure 112 that requires testing for each test suite. The fitness unit 104 uses a fitness function to evaluate the performance of each mutant neural network. Similarly, the fitness unit 104 calculates a fitness score for each mutant neural network. The fitness unit 104 uses the fitness scores to select the highest performing portions of the mutant neural networks.

[0036] In block 310, neural network unit 102 initializes a second array of neural networks. The second array of neural networks is a different class of neural network from the first array of neural networks. Neural network unit 102 receives the characteristics of the test case as input for each neural network in the second array, outputs a sequence of test cases, and forms a test suite regarding aspects of computing infrastructure 112 that require testing. To execute tests on computing infrastructure 112 that requires testing, each test suite is sent to test unit 110.

[0037] In block 312, fitness unit 104 evaluates the performance of each neural network in the second array. Fitness unit 104 receives each signal response from computing infrastructure 112 that requires testing for each test suite. Fitness unit 308 uses a fitness function to evaluate the performance of each neural network in the second array. Similarly, fitness unit 104 calculates a fitness score for each neural network in the third array. Fitness unit 104 uses the fitness score to select the highest performing part of the neural networks in the second array.

[0038] In block 314, neural network breeding unit 106 performs crossover between the highest performing mutant neural network and the highest performing neural network in the second array. Crossover is performed by combining the highest performing nodes of the mutant neural network with the highest performing nodes of the neural network in the second array. This process is repeated until each of the highest performing mutant neural networks is paired with a different highest performing neural network in the second array. The child neural networks created by the crossover embody the best features of each of the arrays.

[0039] In this specification, various embodiments of the present invention are described with reference to the accompanying drawings. Alternative embodiments of the present invention may be devised without departing from the scope of the present invention. In the following description and drawings, various connections and positional relationships between elements (e.g., above, below, adjacent, etc.) are shown. Those connections or positional relationships or both can be direct or indirect unless otherwise specifically defined, and the present invention is not intended to be limited in this regard. Thus, a physical connection can refer to a direct connection or an indirect connection, and the positional relationship between entities can be a direct positional relationship or an indirect positional relationship. Further, the various operations and process steps described herein can be incorporated into a more comprehensive procedure or process that includes additional steps or functions not detailed herein.

[0040] Although this disclosure includes a detailed description of cloud computing, it should be understood that the implementation of the teachings presented herein is not limited to a cloud computing environment. Embodiments of the present invention can be implemented in combination with any other type of computing environment, whether currently known or developed in the future.

[0041] Cloud computing is a service delivery model that enables convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services), which can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0042] The characteristics are as follows.

[0043] On-demand self-service: Cloud users can automatically provision, as needed, computing capabilities such as server time and network storage unilaterally, without the need for human interaction with the service provider.

[0044] Broad network access: The capabilities are available over the network and can be accessed using standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0045] Resource pooling: The provider's computing resources are pooled and provided to multiple users using a multi-tenant model, and various physical and virtual resources are dynamically assigned and re-assigned according to demand. There is a sense of location independence, and users typically neither manage nor know the exact location of the provided resources, but at a higher level of abstraction, it may be possible to specify a location (e.g., country, state, or data center).

[0046] Rapid elasticity: The capabilities can be provisioned quickly and elastically, and in some cases automatically, scaled out rapidly, and released quickly to scale in. The capabilities available for provisioning often appear to the user to be unlimited, and any amount can be purchased at any time.

[0047] Measured service: The cloud system automatically controls and optimizes resource use at an appropriate level of abstraction for the type of service (e.g., storage, processing, bandwidth, and active user accounts). The resource usage can be monitored, controlled, and reported, providing transparency to both the provider and the user of the utilized service.

[0048] The service model is as follows.

[0049] SaaS (Software as a Service): The capabilities provided to users are to utilize the provider's applications running on cloud infrastructure. Those applications can be accessed from various client devices via a thin-client interface such as a web browser (e.g., web-based email). Users have no control over or management of the underlying cloud infrastructure, which includes the network, servers, operating systems, storage, or individual application features, except for limited user-specific application configurations in some cases.

[0050] PaaS (Platform as a Service): The capabilities provided to users are to deploy the applications created or obtained by users, which are developed using programming languages and tools supported by the provider, onto the cloud infrastructure. Users have no control over or management of the underlying cloud infrastructure, which includes the network, servers, operating systems, or storage, but can control the deployed applications and, in some cases, the configuration of the application hosting environment.

[0051] IaaS (Infrastructure as a Service): The capabilities provided to users are to provision processing, storage, network, and other basic computing resources, and users can deploy and run any software that can include operating systems and applications. Users have no control over or management of the underlying cloud infrastructure, but can control the operating systems, storage, deployed applications, and, in some cases, have limited control over selected network components (e.g., host firewalls).

[0052] The deployment model is as follows.

[0053] Private cloud: This cloud infrastructure is operated only for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0054] Community cloud: This cloud infrastructure is shared by multiple organizations and supports a specific community that shares concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by these organizations or a third party and can exist on-premises or off-premises.

[0055] Public cloud: This cloud infrastructure is available for use by general users or large industry groups and is owned by an organization that sells cloud services.

[0056] Hybrid cloud: This cloud infrastructure is a composition of two or more clouds (private, community, or public) that are joined together while leaving their unique entities intact by means of standardized technologies or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable the migration of data and applications.

[0057] The cloud computing environment is a service-oriented environment that emphasizes statelessness, loose coupling, modularity, and semantic interoperability. At the center of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0058] Referring now to FIG. 4, an exemplary cloud computing environment 50 is shown. As illustrated, cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices (e.g., personal digital assistant (PDA) or cellular telephone 54A, desktop computer 54B, laptop computer 54C, or automotive computer system 54N, or a combination thereof, etc.) utilized by cloud consumers may communicate. The nodes 10 may communicate with one another. The nodes 10 may be physically or virtually grouped (not shown) in one or more networks into private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described hereinabove. Thereby, cloud computing environment 50 may provide infrastructure, platforms, or SaaS, or combinations thereof, that cloud consumers do not need to maintain resources on local computing devices. The types of computing devices 54A - N shown in FIG. 4 are only intended to be exemplary, and it is understood that cloud computing nodes 10 and cloud computing environment 50 may communicate with any type of computer controlled device via any type of network or network addressable connection (e.g., connection using a web browser) or both.

[0059] Referring now to FIG. 5, a set of functional abstraction layers provided by cloud computing environment 50 (FIG. 4) is shown. It should be understood upfront that the components, layers, and functions shown in FIG. 5 are only intended to be exemplary and that embodiments of the invention are not limited thereto. As illustrated, the following layers and corresponding functions are provided.

[0060] The hardware and software layer 60 includes hardware components and software components. Examples of hardware components include mainframe 61, RISC (Reduced Instruction Set Computer) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, the software components include network application server software 67 and database software 68.

[0061] The virtualization layer 70 comprises an abstract layer that can provide virtual entities such as virtual server 71, virtual storage 72, virtual network 73 including a virtual private network, virtual applications and operating systems 74, and virtual client 75.

[0062] For example, the management layer 80 may provide the functions described below. Resource provisioning 81 dynamically procures computing resources and other resources used to execute tasks within a cloud computing environment. Measurement and pricing 82 tracks the costs when resources are utilized within a cloud computing environment and issues invoices or bills for the use of those resources. For example, those resources may include application software licenses. Security verifies the identities of cloud users and tasks and protects data and other resources. The user portal 83 provides access to the cloud computing environment to users and system administrators. Service level management 84 allocates and manages the cloud's computing resources to meet the required service levels. Service Level Agreement (SLA) planning and execution 85 makes advance preparations for and procures the cloud's computing resources for which future demands are expected, in accordance with the SLA.

[0063] The workload layer 90 shows examples of functions available in a cloud computing environment. Examples of workloads and functions provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtualization 93, data analysis processing 94, transaction processing 95, and generation of a neural network for selection of test case sequences 96.

[0064] As shown in FIG. 6, computer system 600 includes one or more central processing units (CPUs) 601a, 601b, 601c, etc. (collectively or generally referred to as processor 601). The processor 601 can be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. The processor 601, also referred to as a processing circuit, is coupled to the system memory 603 and various other components via a system bus 602. The system memory 603 can include a read only memory (ROM) 604 and a random access memory (RAM) 605. The ROM 604 is coupled to the system bus 602 and may include a basic input / output system (BIOS) that controls certain basic functions of the computer system 600. The RAM is a read-write memory coupled to the system bus 602 for use by the processor 601. The system memory 603 provides a temporary memory space for the operation of the aforementioned instructions during operation. The system memory 603 can include random access memory (RAM), read only memory, flash memory, or any other suitable memory system.

[0065] Computer system 600 includes an input / output (I / O) adapter 606 and a communication adapter 607 coupled to system bus 602. The I / O adapter 606 may be a small computer system interface (SCSI) adapter that communicates with a hard disk 608 or any other similar component or both. The I / O adapter 606 and the hard disk 608 are collectively referred to herein as mass storage 610.

[0066] Software 611 for execution on computer system 600 may be stored in mass storage 610. Mass storage 610 is an example of a tangible storage medium readable by processor 601, and software 611 is stored as instructions for execution by processor 601 to cause computer system 600 to operate as described hereinafter herein with respect to various figures. Examples of computer program products and execution of such instructions are described in further detail herein. The communication adapter 607 interconnects the system bus 602 with a network 612, which may be an external network, enabling computer system 600 to communicate with other such systems. In one embodiment, a portion of system memory 603 and mass storage 610 collectively stores an operating system, which may be any suitable operating system, such as the z / OS or AIX operating system of IBM Corporation, to coordinate the functions of the various components shown in FIG. 6.

[0067] Other input / output devices are shown as being connected to system bus 602 via display adapter 615 and interface adapter 616. In one embodiment, adapters 606, 607, 615, and 616 may be connected to one or more I / O buses, which are connected to system bus 602 via an intermediate bus bridge (not shown). A display 619 (e.g., a screen or display monitor) is connected to system bus 602 by display adapter 615, which may include a graphics controller to improve the performance of graphics-intensive applications and video controllers. A keyboard 621, mouse 622, speaker 623, etc. can be interconnected to system bus 602 via interface adapter 616. For example, interface adapter 616 may include a Super I / O chip that integrates multiple device adapters into a single integrated circuit. I / O buses suitable for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as PCI (Peripheral Component Interconnect). Thus, as configured in FIG. 6, computer system 600 includes processing capabilities in the form of processor 601, storage capabilities including system memory 603 and mass storage 610, input means such as keyboard 621 and mouse 622, and output capabilities including speaker 623 and display 619.

[0068] In some embodiments, the communication adapter 607 can transmit data using any suitable interface or protocol, such as the Internet, a Small Computer System Interface, etc. The network 612 can be, in particular, a cellular network, a wireless network, a wide area network (WAN), a local area network (LAN), or the Internet. An external computing device can be connected to the computer system 600 via the network 612. In some examples, the external computing device can be an external web server or a cloud computing node.

[0069] It should be understood that the block diagram of FIG. 6 is not intended to show that the computer system 600 will include all of the components shown in FIG. 6. Rather, the computer system 600 can include any suitable fewer or additional components not shown in FIG. 6 (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Further, the embodiments described herein with respect to the computer system 600 can be implemented using any suitable logic, which, when referred to herein, can include any suitable hardware (e.g., in particular, a processor, an embedded controller, or an application specific integrated circuit), software (e.g., in particular, an application), firmware, or any suitable combination of hardware, software, and firmware in various embodiments.

[0070] In this specification, various embodiments of the present invention are described with reference to the accompanying drawings. Alternative embodiments of the present invention may be devised without departing from the scope of the present invention. In the following description and drawings, various connections and positional relationships between elements (e.g., above, below, adjacent, etc.) are shown. Those connections or positional relationships or both can be direct or indirect unless specifically defined otherwise, and the present invention is not intended to be limited in this regard. Thus, the coupling of each entity can refer to a direct coupling or an indirect coupling, and the positional relationship between each entity can be a direct positional relationship or an indirect positional relationship. Further, the various operations and process steps described herein can be incorporated into a more comprehensive procedure or process that includes additional steps or functions not described in detail herein.

[0071] One or more of the methods described herein can be implemented using any or a combination of techniques well known in the prior art, such as discrete logic circuits that include logic gates for implementing logical functions on data signals, application specific integrated circuits (ASICs) that include appropriate combinational logic gates, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), and the like.

[0072] For the sake of brevity, the prior art related to the creation and use of aspects of the present invention may or may not be described in detail herein. Specifically, the various aspects of computing systems and specific computer programs for implementing the various technical features described herein are well known. Thus, for the sake of brevity, many details regarding conventional implementations are only briefly described herein or are omitted entirely without providing details of known systems or processes or both.

[0073] In some embodiments, various functions or operations may be performed at a particular location, or in relation to, or both, the operation of one or more devices or systems. In some embodiments, a portion of a particular function or operation may be executable at a first device or location, and the remainder of the function or operation may be executable at one or more additional devices or locations.

[0074] The terms used herein are for the purpose of describing particular embodiments only and are not intended to be limiting. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. The terms "comprising", "comprises", and / or "comprising", when used herein, specify the presence of the stated function, integer, step, operation, element, or component, or combination thereof, but do not preclude the presence or addition of one or more other functions, integers, steps, operations, elements, components, or groups thereof, or combinations thereof.

[0075] All means or steps and corresponding structures, materials, acts, and equivalents of the functional elements in the claims below are intended to include any structure, material, or act for performing the functions in combination with the other claimed elements specifically recited. The present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed forms. It will be apparent to those skilled in the art that many modifications and variations are possible without departing from the scope of the disclosure. Embodiments have been chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others skilled in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.

[0076] The figures shown in this specification are illustrative. Without departing from the spirit of the present disclosure, many variations of the figures or steps (or operations) described herein are possible. For example, operations can be executed in a different order, or operations can be added, deleted, or changed. Also, the term "coupled" represents that there is a signal path between two elements and does not mean a direct connection between elements without an element / connection intervening between them. All of these variations are considered to be part of the present disclosure.

[0077] The following definitions and abbreviations are used in the claims and the interpretation of this specification. As used herein, the terms "comprise," "comprising," "include," "including," "have," "having," "contain," "containing," or any other variation thereof are intended to cover non-exclusive inclusion. For example, a composition, mixture, process, method, product, or apparatus that includes a list of elements is not necessarily limited to only those elements, and may include other elements not expressly listed or inherent to such composition, mixture, process, method, product, or apparatus.

[0078] Furthermore, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Embodiments or designs described herein as "exemplary" should not necessarily be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" are understood to include any integer greater than or equal to one (i.e., 1, 2, 3, 4, etc.). The term "plurality" is understood to include any integer greater than or equal to two (i.e., 2, 3, 4, 5, etc.). The term "connected" can include both indirect "connection" and direct "connection."

[0079] The terms "about," "substantially," "approximately," and variations thereof are intended to include the degree of error associated with the measurement of a particular quantity, based on the equipment available at the time of filing of this application. For example, "about" can include a range of ±8% or 5% or 2% of a particular value.

[0080] The present invention may be a system, a method, or a computer program product, or a combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium including computer-readable program instructions for causing a processor to execute aspects of the present invention.

[0081] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof, but is not limited thereto. A non-exhaustive list of more specific examples of computer-readable storage media includes portable floppy (R) disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy (R) disks, mechanically encoded devices such as punch cards or raised structures in grooves in which instructions are recorded, and any suitable combination thereof. As used herein, a computer-readable storage medium should not be construed to be a transient signal such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through an optical fiber cable), or an electrical signal transmitted through a wire.

[0082] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof). The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and transfers them for storage on a computer-readable storage medium within each computing / processing device.

[0083] Computer-readable program instructions for executing the operation of the present invention may be in any combination of one or more programming languages, including assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuits, or source code or object code written in object-oriented programming languages such as Smalltalk(R), C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially executed on the user's computer as a stand-alone software package, partially executed on the user's computer and a remote computer respectively, or executed entirely on the remote computer or a server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to execute aspects of the present invention, an electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions for customizing the electronic circuit by utilizing the state information of the computer-readable program instructions.

[0084] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0085] These computer readable program instructions are provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create means for implementing the functions / acts specified in the block or blocks of the flowchart and / or block diagram. These computer readable program instructions may be stored in a computer readable storage medium that includes instructions for causing a computer, programmable data processing apparatus, or other device to function in a particular manner, such that the computer readable storage medium comprises a product including instructions for implementing the aspects of the functions / acts specified in the block or blocks of the flowchart and / or block diagram.

[0086] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the block or blocks of the flowchart and / or block diagram.

[0087] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram represents a module, segment, or portion of instructions that includes one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, depending upon the functionality involved, or may sometimes be executed in the reverse order. It should also be noted that each block of the block diagrams or flowchart diagrams, or combinations of blocks in the block diagrams or flowchart diagrams or both, can be implemented by a dedicated hardware-based system that performs the specified functions or operations or a combination of dedicated hardware and computer instructions.

[0088] The description of the various embodiments of the present invention has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments described herein.

Claims

A method by a computer comprising a processor, the method comprising: mutating each neural network of a part of a first array of neural networks, each neural network of the first array of mutated neural networks being configured to select each sequence of test cases for testing a computing infrastructure; said mutating; causing each neural network of a second array of neural networks to select each sequence of test cases for testing the computing infrastructure, the second array of neural networks being a different class of neural networks from the first array of neural networks; said causing to select; generating a child neural network by performing a crossover operation based on a genetic algorithm between the mutated neural networks of the part of the first array and the neural networks of the second array, the crossover operation being an operation that generates the child neural network by combining the highest performing nodes of the mutated neural networks of the part of the first array with the highest performing nodes of the neural networks of the second array; generating the child neural network; The method, wherein the child neural network generates a new sequence of test cases for testing the computing infrastructure. **Claim 2** The method of claim 1, further comprising initializing each neural network of the first array of neural networks by randomizing a part of each weight and bias associated with each neural network of the first array of neural networks. **Claim 3** calculating a respective fitness score for each neural network of the first array of neural networks; The method of claim 1, further comprising selecting the part of the first array based on the respective fitness scores of each neural network of the first array of neural networks.

4. calculating each fitness score for each neural network in the second array of neural networks; and selecting a portion of the neural networks in the second array of neural networks based on the respective fitness scores of the neural networks in the second array of neural networks, the method of claim 1 further comprising.

5. each neural network in the first array belongs to a first class of neural networks, each neural network in the second array belongs to a second class of neural networks, and the second class of neural networks is different from the first class of neural networks, the method of claim 1.

6. mutating each neural network in the portion of the first array of neural networks, the mutating including changing each activation function of each neural network from a first type of activation function to a second type of activation function, the method of claim 1.

7. the sub-neural network includes nodes from the mutated neural networks in the portion of the first array and nodes from the neural networks in the second array of neural networks, the method of claim 1.

8. a memory containing computer-readable instructions; and a system comprising one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to mutate each neural network in a portion of a first array of neural networks, each neural network in the first array of mutated neural networks being configured to select each sequence of a test case for testing a computing infrastructure, said mutating Causing each neural network in the second array of neural networks to select each sequence of test cases for testing the computing infrastructure, wherein the second array of neural networks is a class of neural networks different from the first array of neural networks; the causing; Generating a child neural network by performing a crossover operation based on a genetic algorithm between the mutant neural networks of the part of the first array and the neural networks of the second array, wherein the crossover operation generates the child neural network by combining the nodes with the highest performance of the mutant neural networks of the part of the first array with the nodes with the highest performance of the neural networks of the second array; the generating the child neural network; A system that performs operations including generating a new sequence of test cases for testing the computing infrastructure by the child neural network.

9. The system according to claim 8, further comprising initializing each neural network in the first array of neural networks by randomizing a part of each weight and bias associated with each neural network in the first array of neural networks.

10. The operations are Calculating each fitness score for each neural network in the first array of neural networks; The system according to claim 8, further comprising selecting the part of the first array based on the respective fitness scores of each neural network in the first array of neural networks.

11. The operations are Calculating each fitness score for each neural network in the second array of neural networks; The system according to claim 8, further comprising selecting a part of the neural networks in the second array based on the respective fitness scores of each neural network in the second array of neural networks.

12. The system according to claim 8, wherein each neural network of the first array belongs to a first class of neural networks, each neural network of the second array belongs to a second class of neural networks, and the second class of neural networks is different from the first class of neural networks.

13. The system according to claim 8, wherein mutating each neural network of the part of the first array of neural networks includes changing each activation function of each neural network from a first type of activation function to a second type of activation function.

14. The system according to claim 8, wherein the sub-neural network includes nodes from the mutated neural networks of the part of the first array and nodes from the neural networks of the second array of neural networks.

15. A computer program that causes a computer to execute the method according to any one of claims 1 to 7.

16. A computer-readable storage medium storing the computer program according to claim 15.

Citation Information

Patent Citations

  • Deep convolutional neural network weight optimization method

    CN111242281A

  • Fuzzy test method and device based on minimum set coverage

    CN111897733A

  • Test item optimizing method and recording medium recording test item optimizing program

    JP1999154145A

  • How to improve the architecture of neural networks using evolutionary algorithms

    JP2003508835A

  • Tester and machine learning device

    JP2019082882A