This application relates generally to the field of manufacturing optimization and in particular to finding groupings of materials to make conducting experimentation and discovering advanced materials more efficient.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
In various material science fields, experimenting with various recipes may be needed to determine whether one or more combinations of chemicals result in discovery of more advanced material with certain desirable properties.
The appended claims may serve as a summary of this application.
These drawings and the associated description herein are provided to illustrate specific embodiments of the invention and are not intended to be limiting.
The following detailed description of certain embodiments presents various descriptions of specific embodiments of the invention. However, the invention can be embodied in a multitude of different ways as defined and covered by the claims. In this description, reference is made to the drawings where like reference numerals may indicate identical or functionally similar elements.
Unless defined otherwise, all terms used herein have the same meaning as are commonly understood by one of skill in the art to which this invention belongs. All patents, patent applications and publications referred to throughout the disclosure herein are incorporated by reference in their entirety. In the event that there is a plurality of definitions for a term herein, those in this section prevail. When the terms “one”, “a” or “an” are used in the disclosure, they mean “at least one” or “one or more”, unless otherwise indicated.
Artificial intelligence (AI) has experienced a tremendous growth and has contributed immensely to various technological fields. In many cases, AI models, such as machine learning models, receive a training dataset, finetune their internal weights and parameters and subsequently make predictions on unknown datasets. In some technical fields, the AI predictions are tested in laboratory environments and the results are used as new training dataset to further finetune the AI models and better their predictions. Example fields, where such an iterative process is deployed, include small molecule identification and science, material science, robotics, drug development and other fields where AI is applied. Often the output of the AI models, at least in the initial stages, can include predictions in the form of voluminous datasets. It may not be practical to take a voluminous AI output and test it in laboratory setting. Instead, an intelligent subset of the output of the AI models should be chosen and experimented with, in order to further finetune the AI models.
In one example, AI can be applied to finding optimized battery and secondary storage recipes, where the AI assists in arriving at combination of chemicals or recipes which can yield various desirable properties in battery technology, such as superior conductivity, longevity, or other suitable properties. The designer of a battery may use computer or AI models to generate battery recipes from a pool of chemicals. While the pool of chemicals can be a finite set, the combination of those chemicals and potential recipes can be several hundred orders of magnitude larger.
Consequently, the total number of possible recipes can be impractical to test in laboratory settings. In some AI fields, various techniques other than laboratory experimentation may be applicable to further finetune the AI models. These methods can include, manual auditing or human examination of results, secondary computer models, statistical analysis, comparison with empirical data and others. Regardless of the method used to examine the output of the AI models, these methods can be inadequate or impractical in the case of large outputs from the AI models. As a result, there is a need for systems and methods that intelligently reduce the size of an AI model output. The embodiments described herein can address this need. It is noted that although the examples used in this document include recipes generated from AI models, the described embodiments are also applicable to batch selection of recipes generated by other methods, including but not limited to, brute force sampling, statistical sampling methods (probability sampling, stratified sampling, etc.), snowball sampling and others. For illustration and understanding, the embodiments are described in the context of battery manufacturing and choosing the recipes and chemicals for that purpose; however, the described technology is not limited to those applications. Persons of ordinary skill in the art can readily extend the principles described herein to other technological fields.
As described earlier, the results 106 can be a large dataset, which may need to be further reduced in size in order to be efficiently processed in the output analysis stage 108. As an example, the output analysis stage 108 can be hardware and/or software which can test battery recipes output by the AI model 102 in batches and by using robotics and/or human operators. And this may be the case, with other approaches to AI output analysis techniques, where hardware/software and/or human operator can batch test the output of the AI one batch at a time and use the result to finetune the AI models.
In the context of battery manufacturing and discovering efficient materials for various battery components, an approach can include testing a collection of battery recipes in a laboratory setting, using robotics or human operators. Whether robotics or human operators are used, the testing system can process a batch or a collection of recipes at a time. The time it takes to prepare each batch for testing can be considerable or can otherwise reduce the efficiency of discovering desirable battery recipes and combination of chemicals. The testing preparation time can be reduced if the recipes in a collection can share a maximum number of chemicals between them, while the total number of chemicals used in the collection of recipes overall is minimized. The described embodiments enable systems and methods that can select a batch or collection of recipes for laboratory testing in a manner that the testing preparation time is minimized. For example, the described systems and methods can generate and/or receive recipes and output a collection or batch of recipes for testing, in a manner that the recipes in the collection share a maximum number of chemicals in common, while the total number of chemicals used in the collection of the recipes is minimized.
At the same time, the available starting chemicals for a battery recipe may be drawn from a pool of chemicals S. For example, the pool of chemicals S can include chemicals C1-C300. Persons of ordinary skill in the art can envision a pool of chemicals of different sizes depending on the application. In one embodiment, random recipes can be generated from the pool of chemicals S by choosing various combinations of chemicals from the pool of chemicals S. In other embodiments, recipes can be generated via AI, for example using the system described in
In some cases, the PSR can be filtered based on some filtering criteria to reduce the size of the PSR for further processing. In one example, a frequency table can be used to filter out recipes that include infrequently occurring or rare chemicals. To build the frequency table, a table having S cells, corresponding to each chemical in the pool of chemicals S can be generated. Each cell can hold a counter corresponding to the cell's chemical. Then, each recipe is parsed and for each chemical encountered, the corresponding counter is incremented accordingly. The resulting table yields the frequency of occurrence of each chemical in the recipes at hand. Subsequently, chemicals occurring below a selected threshold can be designated rare or infrequently occurring. The frequency table can be used to filter the PSR. In other embodiments, the PSR can be filtered based on a selected table of rare chemicals, defined by some other criteria, for example, based on outside knowledge. For example, in the context of battery recipe generation, a chemist can define a list of rare or infrequently occurring chemicals based on which the PSR can be filtered.
The pool of chemicals S can also be used to bucketize the recipes based on an edge threshold (ET) parameter. The term edge threshold ET is further described in relation to the embodiments of
Next, a graph (V,E) is generated where each node of the graph is a recipe from the filtered PSRs. In some embodiments, the filtering step can be skipped, and each node of the graph includes a recipe from the PSR. The bucket data can then be used to connect an edge between the nodes that share at least the ET number of chemicals in common. The graph can be generated with average case complexity of
Where N is the number of recipes in a batch or collection, S is the number of chemicals in the pool of chemicals S, C(a,b) is a combination of a choose b, ECS is the number of chemicals in the essential chemicals set and ET is the edge threshold, or the minimum number of chemicals shared between two recipes. Case complexity in this scenario refers to the levels of complexity a computer system needs to resolve in order to generate the graph, as described herein.
The graph can be used in a variety of ways to obtain candidate recipes for experimentation or analysis, where the collection of the recipes shares a maximum number of chemicals in common, while the total number of chemicals used between the candidate recipes is minimized.
In one embodiment, a maximum clique of the graph can be obtained. The recipes in the maximum clique have the following property: for every pair of vertices in the maximum clique, the intersection will be greater or equal to a given threshold size of the maximum clique K. Therefore, the total union of N nodes of M chemicals each with the threshold of K, will be less than or equal to M+(N−1)·(M−K)
The maximum clique of the graph can be obtained by a variety of methods. In one embodiment, for example, the maximum clique can be obtained by applying MaxCliqueDyn developed by Janez Knoc, optimized using an internal approximator color sort, resulting in reduced average case computational complexity, in comparison with the standard Bron-Kerbosch algorithm maximum clique of size K algorithm with runtime complexity of 0(3n/3). In cases, where the graph is sparse (e.g., the number of edges is relatively low compared to a fully connected graph, where each node is connected), the described approach can handle 102,000 or more recipes in manageable time.
In some embodiments, the edge threshold can be adjusted until the maximum clique yields a preselected size K, having K recipes in the maximum clique. This can be helpful if the number of recipes in a batch is constrained by some external factor, such as the capacity of a robotic testing module, or constraints on preparation, testing and analysis time of K recipes at a time.
Table 1 below, illustrates runtime experiments using the systems and methods described above, on randomly generated recipes with each recipe having at least 6 ECS, as well as other chemicals from a pool of chemicals S of size 300.
In Table 1, the initial set amount refers to the PSR. The filtered amount refers to the filtered PSR. Similarity threshold refers to the edge threshold ET or the minimum number of chemicals shared between the recipes on connected nodes of the graph. The column, Max Clique, refers to the size of the maximum clique or the number of recipes in the maximum clique. The column, Union, refers to the union or the total number of chemicals used in the collection of the recipes in the maximum clique. The collection of recipes in the maximum clique can be considered a batch of recipes taken to the laboratory and/or otherwise analyzed by human or machine operator. For example, the batch can be prepared in the lab and placed in a robotic module for chemical analysis and testing of various selected characteristics and/or parameters of batteries. The column, Runtime (i9 9980k, OFast), refers to the runtime measurement on an Intel® i9 CPU optimized using GCC OFast option.
The computational time varies with the number of recipes and ET. As an example, the trial with 102 thousand recipes and ET=4, found a clique of size 4 in approximately 13 seconds (Experiment 55). Too high of a maximum clique size (K) may be undesirable, as the size of recipes able to be batch tested at a time may be constrained by a laboratory setting, e.g., the size of a robotic testing module, and other external factors.
Experiments can also be run with max-flow-based approach, Heavies-K-Subgraph-based approach, dynamic-programming-based approach and special-clustering-based approach. The Max-flow-based approach (abbreviated), in some cases, is unable to produce the desired K (size of the recipes in a batch) when facing evenly distributed appearance of each chemical in recipes. Hk-based approach is optimized for a reward function squared the amount of appearance a certain chemical in K recipes, which could give inaccurate results in dense graphs when subgraph size is large. Also, Hk-based approach has many times higher time complexity than the approach described herein. Dynamic-Programming-based approaches generally give less accurate results when compared to the approaches described, due to their nature of overlapping sub-case in dynamic-programming-based approaches. Spatial-clustering-based approach gives slightly better results than dynamic programming, but still worse than the described approaches on average. Also, the special-clustering approaches suffer from uncontrollable cluster size unless specially optimized.
Table 2 illustrates a comparison between the densest K subgraph approach and the maximum clique approach as described herein.
2230 s, union = 31
In Table 2, the nodes indicate recipes on each node of the graph. The densest K subgraph yields substantially longer runtimes than the maximum clique approach as described herein.
Rn=choose M number of chemicals from S, while M includes C1-6.
The PSR can be further reduced using one or more filtering techniques, as described above. The filtered PSR can be used to construct a graph 202, where each recipe Rn in the PSR is placed at a node of the graph 202. To further construct the graph, nodes (recipes) sharing a minimum number (ET) of chemicals in common are to be connected. To more efficiently achieve this, the recipes are bucketized and/or tagged with a corresponding bucket number, where each bucket contains recipes sharing at least ET number of chemicals in common. An edge threshold parameter ET is selected and combinations of chemicals of size ET are generated. This can be denoted as C(S,ET). In factorial terms, C(S,ET)=S!/(ET!*(S-ET)!). Each bucket or bucket number B# can correspond to each combination from C(S,ET). Next, the PSR, or the filtered PSR is bucketized or tagged with a bucket number corresponding to a combination from C(S,ET) if the combination is found in the recipe. In one embodiment, the recipes (e.g., the PSR or the filtered PSR) are parsed for each combination and tagged with the combination's bucket number B# if the combination is found in the recipe.
Next, the bucket data can be used to connect the nodes of the graph 202, which share at least ET number of chemicals in common. In one embodiment, the recipes in each bucket are pairwise connected in the graph 202 via an edge. In this manner, each connected node shares at least ET number of chemicals in common. As an example, if bucket 1 includes recipes R1, R2, R6, R10, R23, wherein each recipe shares at least C1, C2 and C3 in common (ET=3), then in graph 202 the nodes corresponding to these recipes can be connected pairwise via an edge.
The recipes at the nodes in the maximum clique of the graph 202 can be candidate recipes, which share a maximum number of chemicals in common, while the union of the overall chemicals used between those recipes is minimized, relative to other candidate recipes not in the maximum clique. Furthermore, the size of the maximum clique (the number of nodes or recipes in the maximum clique) can be a parameter for which adjustment or optimization may be performed. In some cases, the number of recipes that can be batch tested at a time may be constrained by some external factors, such as the size of the robotics testing automation machines. As a result, it may be desirable to achieve at a preselected size of the maximum clique. The size of maximum clique, which for example can be denoted by parameter K, can be related to the edge threshold parameter ET. In this scenario, ET can be adjusted until the preselected size of the maximum clique K can be achieved. For example, referencing Table 1, maximum clique sizes of less than 20 are more practical and desirable for laboratory testing, and as a result a corresponding ET is chosen to achieve the selected size of the maximum clique.
Using a selected parameter edge threshold ET, at step 310, combinations of ET chemicals from S (e.g., C(S,ET)) are generated. At step 312, the combinations C(S,ET) is used to generate a plurality of buckets of recipes, wherein the recipes in each bucket share at least ET number of chemicals in common. As an example, each recipe Rn can be parsed relative to each combination or bucket B# and if B# is found in Rn, Rn can be tagged as belonging to bucket B#. In this manner, the recipes are bucketized, where the recipes in each bucket share at least in common the combination of chemicals corresponding to that bucket. Other methods of tagging or bucketizing the recipes relative to the combinations C(S,ET) can also be used.
At step 314, a graph is generated from the PSR or the filtered PSR, where each node of the graph includes a recipe. At step 316, the bucket data is used to connect the nodes of the graph. Referencing each bucket, the recipes in the bucket are pairwise connected. In other words, the nodes having at least ET chemicals in common are connected in the graph. At step 316, a maximum clique of the graph is determined. At step 320 the recipes in the nodes of the maximum clique are outputted. As described earlier, the recipes in the maximum clique share the maximum number of chemicals in common, while their union uses the minimum number of chemicals.
The size of the maximum clique can indicate the number of recipes that are to be batch tested together. In some embodiments, it is advantageous to control the size of the maximum clique in order to arrive at a desired number of recipes to be batch tested together. The size of maximum clique is related to the parameter edge threshold ET. The parameter ET can be adjusted until a selected size of the maximum clique is achieved. In this scenario, at step 322, the size of maximum clique of the graph, denoted by parameter K is determined. At step 324, the parameter ET is adjusted until the size of the maximum clique of the graph is a selected value of K. At step 326, the method ends.
Example Implementation Mechanism—Hardware Overview
Some embodiments are implemented by a computer system or a network of computer systems. A computer system may include a processor, a memory, and a non-transitory computer-readable medium. The memory and non-transitory medium may store instructions for performing methods, steps and techniques described herein.
According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be server computers, cloud computing computers, desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
For example,
Computer system 1000 also includes a main memory 1006, such as a random access memory (RAM) or other dynamic storage devices, coupled to bus 1002 for storing information and instructions to be executed by processor 1004. Main memory 1006 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1004. Such instructions, when stored in non-transitory storage media accessible to processor 1004, render computer system 1000 into a special-purpose machine that is customized to perform the operations specified in the instructions.
Computer system 1000 further includes a read only memory (ROM) 1008 or other static storage device coupled to bus 1002 for storing static information and instructions for processor 1004. A storage device 1010, such as a magnetic disk, optical disk, or solid-state disk is provided and coupled to bus 1002 for storing information and instructions.
Computer system 1000 may be coupled via bus 1002 to a display 1012, such as a cathode ray tube (CRT), liquid crystal display (LCD), organic light-emitting diode (OLED), or a touchscreen for displaying information to a computer user. An input device 1014, including alpha-numeric and other keys (e.g., in a touch screen display) is coupled to bus 1002 for communicating information and command selections to processor 1004. Another type of user input device is cursor control 1016, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1004 and for controlling cursor movement on display 1012. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. In some embodiments, the user input device 1014 and/or the cursor control 1016 can be implemented in the display 1012 for example, via a touch-screen interface that serves as both output display and input device.
Computer system 1000 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 1000 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 1000 in response to processor 1004 executing one or more sequences of one or more instructions contained in main memory 1006. Such instructions may be read into main memory 1006 from another storage medium, such as storage device 1010. Execution of the sequences of instructions contained in main memory 1006 causes processor 1004 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical, magnetic, and/or solid-state disks, such as storage device 1010. Volatile media includes dynamic memory, such as main memory 1006. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1002. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 1004 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 1000 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 1002. Bus 1002 carries the data to main memory 1006, from which processor 1004 retrieves and executes the instructions. The instructions received by main memory 1006 may optionally be stored on storage device 1010 either before or after execution by processor 1004.
Computer system 1000 also includes a communication interface 1018 coupled to bus 1002. Communication interface 1018 provides a two-way data communication coupling to a network link 1020 that is connected to a local network 1022. For example, communication interface 1018 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 1018 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1018 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 1020 typically provides data communication through one or more networks to other data devices. For example, network link 1020 may provide a connection through local network 1022 to a host computer 1024 or to data equipment operated by an Internet Service Provider (ISP) 1026. ISP 1026 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the “Internet” 1028. Local network 1022 and Internet 1028 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1020 and through communication interface 1018, which carry the digital data to and from computer system 1000, are example forms of transmission media.
Computer system 1000 can send messages and receive data, including program code, through the network(s), network link 1020 and communication interface 1018. In the Internet example, a server 1030 might transmit a requested code for an application program through Internet 1028, ISP 1026, local network 1022 and communication interface 1018.
The received code may be executed by processor 1004 as it is received, and/or stored in storage device 1010, or other non-volatile storage for later execution.
While the invention has been particularly shown and described with reference to specific embodiments thereof, it should be understood that changes in the form and details of the disclosed embodiments may be made without departing from the scope of the invention. Although various advantages, aspects, and objects of the present invention have been discussed herein with reference to various embodiments, it will be understood that the scope of the invention should not be limited by reference to such advantages, aspects, and objects. Rather, the scope of the invention should be determined with reference to patent claims.
This application claims the benefit of U.S. Application No. 63/174,532 filed on Apr. 13, 2021, which is incorporated herein by reference in its entirety.
The inventions disclosed herein were made with government support under Grant No. 1938253 awarded by the National Science Foundation (NSF). The government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
63174532 | Apr 2021 | US |