The disclosed technologies are directed to simulating tangible material selection processes associated with identifying materials suitable for use in an item of manufacture in order to determine an optimal tangible material selection process.
Material selection is a phrase used to describe processes associated with identifying materials suitable for use in an item of manufacture. Tangible material selection processes are usually performed in conjunction with other activities associated with the design of the item of manufacture. Identifying materials suitable for use in an item of manufacture can involve assessing relationships between criteria desired for the item of manufacture and material properties of candidate materials. Additionally, in situations in which the item of manufacture is intended to be made available for sale in a commercial environment, a material selection processes may also consider monetary values associated with using candidate materials in the item of manufacture. For example, such monetary values may include one or more of monetary values associated with obtaining the candidate materials or monetary values associated with incorporating the candidate materials into the item of manufacture. Because there usually are multiple criteria desired of a material for use in an item of manufacture, often several tangible material selection processes may be performed in order to identify suitable materials. For at least this reason, there can be advantages to having a systematic approach to material selection.
In an embodiment, a system for simulating tangible material selection processes to determine an optimal tangible material selection process can include one or more processors, a data store, and a memory. The data store can be communicably coupled to the one or more processors. The data store can be configured to store information about materials having known values of a material property, the known values, and a threshold criterion for the material property. The memory can be communicably coupled to the one or more processors. The memory can store a performance measurement module, a material selection process determination module, a process selection module, and a material selection module. The performance measurement module can include instructions that when executed by the one or more processors cause the one or more processors, in iterations: (1) to execute the process selection module to select the material selection module, (2) to configure a machine learning process to execute the material selection module, (3) to cause the material selection module to select information about materials having known values of a material property, (4) to cause the material selection module to train the machine learning process to produce the known values in response to a receipt of the information about the materials, and (5) to determine a measure of a performance of the material selection module with respect to identifying a set of materials that includes the materials for which the known values are in a specific relationship with a threshold criterion for the material property. The material selection module can include an electronic representation to simulate a tangible material selection process. The electronic representation can include a value for a parameter associated with the tangible material selection process. A duration of time consumed to execute the material selection module can be less than a duration of time consumed to perform the tangible material selection process. The material selection process determination module can include instructions that when executed by the one or more processors cause the one or more processors to determine, at a completion of the iterations and based on measures of performances of material selection modules, the optimal tangible material selection process.
In another embodiment, a method for simulating tangible material selection processes to determine an optimal tangible material selection process can include, in iterations: (1) executing, by a processor, a process selection module to select a material selection module, (2) configuring, by the processor, a machine learning process to execute the material selection module, (3) causing, by the processor, the material selection module to select information about materials having known values of a material property, (4) causing, by the processor, the material selection module to train the machine learning process to produce the known values in response to a receipt of the information about the materials, and (5) determining, by the processor, a measure of a performance of the material selection module with respect to identifying a set of materials that includes the materials for which the known values are in a specific relationship with a threshold criterion for the material property. The material selection module can include an electronic representation to simulate a tangible material selection process. The electronic representation can include a value for a parameter associated with the tangible material selection process. A duration of time consumed to execute the material selection module can be less than a duration of time consumed to perform the tangible material selection process. The method can include determining, by the processor at a completion of the iterations and based on measures of performances of material selection modules, the optimal tangible material selection process.
In another embodiment, a non-transitory computer-readable medium for simulating tangible material selection processes to determine an optimal tangible material selection process can include instructions that when executed by one or more processors cause the one or more processors, in iterations: (1) to execute a process selection module to select a material selection module, (2) to configure, a machine learning process to execute the material selection module, (3) to cause the material selection module to select information about materials having known values of a material property, (4) to cause the material selection module to train the machine learning process to produce the known values in response to a receipt of the information about the materials, and (5) to determine a measure of a performance of the material selection module with respect to identifying a set of materials that includes the materials for which the known values are in a specific relationship with a threshold criterion for the material property. The material selection module can include an electronic representation to simulate a tangible material selection process. The electronic representation can include a value for a parameter associated with the tangible material selection process. A duration of time consumed to execute the material selection module can be less than a duration of time consumed to perform the tangible material selection process. The non-transitory computer-readable medium can include instructions that when executed by the one or more processors cause the one or more processors to determine, at a completion of the iterations and based on measures of performances of material selection modules, the optimal tangible material selection process.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate various systems, methods, and other embodiments of the disclosure. It will be appreciated that the illustrated element boundaries (e.g., boxes, groups of boxes, or other shapes) in the figures represent one embodiment of the boundaries. In some embodiments, one element may be designed as multiple elements or multiple elements may be designed as one element. In some embodiments, an element shown as an internal component of another element may be implemented as an external component and vice versa. Furthermore, elements may not be drawn to scale.
Because: (1) a rather large duration of time may be consumed to perform a tangible material selection process and (2) several tangible material selection processes may often be performed in order to identify materials suitable for use in an item of manufacture, there can be advantages to producing electronic representations to simulate tangible material selection processes such that durations of time consumed to execute the electronic representations are less than durations of time consumed to perform the tangible material selection processes.
The disclosed technologies can be used for simulating tangible material selection processes to determine an optimal tangible material selection process. In iterations: (1) a process selection module can be executed to select a material selection module that includes an electronic representation to simulate a tangible material selection process, (2) a machine learning process can be configured to execute the material selection module, (3) the material selection module can be caused to select information about materials having known values of a material property, (4) the material selection module can be caused to train the machine learning process to produce the known values in response to a receipt of the information about the materials, and (5) a measure of a performance of the material selection module can be determined with respect to identifying a set of materials that includes the materials for which the known values are in a specific relationship with a threshold criterion for the material property. The electronic representation can include a value for a parameter associated with the tangible material selection process. A duration of time consumed to execute the material selection module can be less than a duration of time consumed to perform the tangible material selection process. At a completion of the iterations, the optimal tangible material selection process can be determined based on measures of performances of material selection modules.
For example, the material property can include one or more of an atomic mass, an atomic number, an atomic weight, a band gap, an acoustical absorption, a speed of sound, a sound reflection, a sound transfer, a third order elasticity, an acoustoelastic effect, a corrosion resistance, a hygroscopy, a pH, a reactivity, a specific internal surface area, a surface energy, a surface tension, a capacitance, a dielectric constant, a dielectric strength, an electrical resistivity, an electrical conductivity, an electric susceptibility, an electrocaloric coefficient, an electrostriction, a magnetoelectric polarizability, a Nernst coefficient, a thermoelectric effect, a permittivity, a piezoelectric constant, a pyroelectricity, a Seebeck coefficient, a Curie temperature, a diamagnetism, a Hall coefficient, a hysteresis, a magnetostriction, a magnetothermoelectric power, a magnetic-Seebeck effect coefficient, a magnetoresistance, a permeability, a piezomagnetism, a pyromagnetic coefficient, a spin Hall effect, a castability, a machinability rating, a machining speed, a machining feed, a brittleness, a bulk modulus, a coefficient of restitution, a compressive strength, a creep, a ductility, a durability, an elasticity, fatigue limit, flexibility, flexural modulus, flexural strength, fracture toughness, friction coefficient, a hardness, a malleability, a mass diffusivity, a plasticity, a Poisson's ratio, a resilience, a shear modulus, a shear strength, a slip, a specific modulus, a specific strength, a specific weight, a stiffness, a surface roughness, a tensile strength, a toughness, a viscosity, a yield strength, a Young's modulus, an absorbance, a birefringence, a color, an electro-optic effect, a luminosity, an optical activity, a photoelasticity, a photosensitivity, a reflectivity, a refractive index, a scattering, a transmittance, a neutron cross-section, a specific activity, a half life, a binary phase diagram, a boiling point, a coefficient of thermal expansion, a critical temperature, a Curie point, a ductile brittle transition temperature, an emissivity, an eutectic point, a flammability, a flash point, a glass transition temperature, a heat of vaporization, an inversion temperature, a melting point, a specific heat thermal conductivity, a thermal diffusivity, a thermal expansion, a triple point, a vapor pressure, a specific heat capacity, or the like.
Additionally, for example, the system 100 can further include a wireless communications device 126. The wireless communications device 126 can be communicably coupled to the processor 102. For example, the processor 102 can be configured to receive, via the wireless communications device 126, the threshold criterion 112. Additionally or alternatively, for example, the processor 102 can be configured to receive, via the wireless communications device 126, one or more of the information 108 about the materials or the known values 110.
The performance measurement module 114 can include instructions that function to control the processor 102, in first iterations: (1) to execute the process selection module 118 to select a material selection module (e.g., the first material selection module 122 or the second material selection module 124) that includes an electronic representation to simulate a tangible material selection process, (2) to configure a machine learning process to execute the material selection module, (3) to cause the material selection module to select information about materials having known values of a material property, (4) to cause the material selection module to train the machine learning process to produce the known values in response to a receipt of the information about the materials, and (5) to determine a measure of a performance of the material selection module with respect to identifying a set of materials that includes the materials for which the known values are in a specific relationship with the threshold criterion 112 for the material property. A duration of time consumed to execute the material selection module can be less than a duration of time consumed to perform the tangible material selection process.
The electronic representation can include a value for a first parameter associated with the tangible material selection process. For example, a process performed by the material selection module can include one or more of a simple linear regression process, a neural network process, a random forests process, a random decision forests process, a Gaussian Process Upper Confidence Bound process, a support-vector machine, an adaptive boosting process, or the like.
Returning to
For example, the first material selection module 122 can be caused to select, from the data store 104, the atomic weights 302 (g/mol) about the materials having the known values 110 of the material property 304. For example, the first material selection module 122 can be caused to train the machine learning process 402 to produce the band gap values 306 (eV) in response to a receipt of the atomic weights 302 (g/mol). Additionally or alternatively, for example, the first material selection module 122 can be caused to train the machine learning process 402 to produce the electrical resistivity values 308 (Ω-cm) in response to a receipt of the atomic weights 302 (g/mol).
The threshold criterion 112 can be a threshold value or a threshold range of values. For example, the material property 304 can be the band gap values 306 (eV) and the specific relationship with the threshold criterion 112 can be being within a threshold range of values from 0.65 eV to 1.50 eV. For example, the material property 304 can be the electrical resistivity values 308 (Ω-cm) and the specific relationship with the threshold criterion 112 can be being greater than a threshold value of 0.1 Ω-cm.
The measure of the performance of the first material selection module 122 can be determined with respect to identifying the set of materials that includes the materials for which the known values 110 are in the specific relationship with the threshold criterion 112 for the material property 304. For example, if the material property 304 is the band gap values 306 (eV) and the specific relationship with the threshold criterion 112 is being within the threshold range of values from 0.65 eV to 1.50 eV, then the measure of the performance of the first material selection module 122 can be determined with respect to identifying that the set of materials includes Silicon and Germanium. For example, if the material property 304 is the electrical resistivity values 308 (Ω-cm) and the specific relationship with the threshold criterion 112 is being greater than the threshold value of 0.1 Ω-cm, then the measure of the performance of the first material selection module 122 can be determined with respect to identifying that the set of materials includes Silicon, Germanium, and Indium Arsenide.
For example, the second material selection module 124 can be caused to select, from the data store 104, the atomic weights 302 (g/mol) about the materials having the known values 110 of the material property 304. For example, the second material selection module 124 can be caused to train the machine learning process 402 to produce the band gap values 306 (eV) in response to the receipt of the atomic weights 302 (g/mol). Additionally or alternatively, for example, the second material selection module 124 can be caused to train the machine learning process 402 to produce the electrical resistivity values 308 (Ω-cm) in response to the receipt of the atomic weights 302 (g/mol).
The threshold criterion 112 can be a threshold value or a threshold range of values. For example, the material property 304 can be the band gap values 306 (eV) and the specific relationship with the threshold criterion 112 can be being within the threshold range of values from 0.65 eV to 1.50 eV. For example, the material property 304 can be the electrical resistivity values 308 (Ω-cm) and the specific relationship with the threshold criterion 112 can be being greater than the threshold value of 0.1 Ω-cm.
The measure of the performance of the first material selection module 122 can be determined with respect to identifying the set of materials that includes the materials for which the known values 110 are in the specific relationship with the threshold criterion 112 for the material property 304. For example, if the material property 304 is the band gap values 306 (eV) and the specific relationship with the threshold criterion 112 is being within the threshold range of values from 0.65 eV to 1.50 eV, then the measure of the performance of the second material selection module 124 can be determined with respect to identifying that the set of materials includes Silicon and Germanium. For example, if the material property 304 is the electrical resistivity values 308 (Ω-cm) and the specific relationship with the threshold criterion 112 is being greater than the threshold value of 0.1 Ω-cm, then the measure of the performance of the second material selection module 124 can be determined with respect to identifying that the set of materials includes Silicon, Germanium, and Indium Arsenide.
With reference to
With reference to
In a second implementation, the instructions to cause the material selection module to select the information 108 about the materials having the known values 110 of the material property 304 and the instructions to cause the material selection module to train the machine learning process 402 to produce the known values 110 in response to the receipt of the information 108 about the materials include instructions that function to control the processor 102, in second iterations: (1) to cause the material selection module to select the information 108 about a material, of the materials, having a known value 110 of the material property 304 and (2) to cause the material selection module to train the machine learning process 402 to produce the known value 110 in response to the receipt of the information 108 about the material. The instructions to determine the measure of the performance include instructions that function to control the processor 102 to determine, at a completion of the second iterations, the measure of the performance.
For example: (1) in a first iteration of the second iterations, the first material selection module 122 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Silicon and (b) to train the machine learning process 402 to produce the band gap value 306 for Silicon in response to the receipt of the atomic weight 302 for Silicon; (2) in a second iteration of the second iterations, the first material selection module 122 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Germanium and (b) to train the machine learning process 402 to produce the band gap value 306 for Germanium in response to the receipt of the atomic weight 302 for Germanium; (3) in a third iteration of the second iterations, the first material selection module 122 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Indium Antimonide and (b) to train the machine learning process 402 to produce the band gap value 306 for Indium Antimonide in response to the receipt of the atomic weight 302 for Indium Antimonide; and (4) in a fourth iteration of the second iterations, the first material selection module 122 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Indium Arsenide and (b) to train the machine learning process 402 to produce the band gap value 306 for Indium Arsenide in response to the receipt of the atomic weight 302 for Indium Arsenide.
For example: (1) in a first iteration of the second iterations, the second material selection module 124 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Indium Arsenide and (b) to train the machine learning process 402 to produce the band gap value 306 for Indium Arsenide in response to the receipt of the atomic weight 302 for Indium Arsenide; (2) in a second iteration of the second iterations, the second material selection module 124 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Indium Antimonide and (b) to train the machine learning process 402 to produce the band gap value 306 for Indium Antimonide in response to the receipt of the atomic weight 302 for Indium Antimonide; (3) in a third iteration of the second iterations, the second material selection module 124 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Germanium and (b) to train the machine learning process 402 to produce the band gap value 306 for Germanium in response to the receipt of the atomic weight 302 for Germanium; and (4) in a fourth iteration of the second iterations, the second material selection module 124 can be caused: (a) to select, from the data store 104, the atomic weight 302 for Silicon and (b) to train the machine learning process 402 to produce the band gap value 306 for Silicon in response to the receipt of the atomic weight 302 for Silicon.
For example, in the second implementation, the optimal tangible material selection process can be the tangible material selection process associated with the material selection module for which, at a completion of a specific number of iterations of the second iterations, the set of materials has a greatest number of members. For example, if the specific number of iterations of the second iterations is three, then if the set of materials identified by the first material selection module 122 includes Silicon and Germanium, but the set of materials identified by the second material selection module 124 includes only Germanium, then the optimal tangible material selection process can be the tangible material selection process associated with the first material selection module 122.
With reference to
With reference to
Alternatively, in an implementation that combines the third implementation with the second implementation, the optimal material selection module can be the material selection module for which, at the completion of the specific number of iterations of the second iterations, the set of materials has the greatest number of members. For example, if the specific number of iterations of the second iterations is three, then if the set of materials identified by the first material selection module 122 includes Silicon and Germanium, but the set of materials identified by the second material selection module 124 includes only Germanium, then the optimal material selection module can be the first material selection module 122.
With reference to
With reference to
With reference to
In
In a configuration, at an operation 904, the processor 102 can receive one or more of the information 108 about the materials or the known values 110 of the material property 304.
The performance measurement module 114 can execute, in first iterations, an operation 906, an operation 908, an operation 910, an operation 912, and an operation 914.
At the operation 906, the performance measurement module 114 can execute the process selection module 118 to select a material selection module (e.g., the first material selection module 122 or the second material selection module 124) that includes an electronic representation to simulate a tangible material selection process. A duration of time consumed to execute the material selection module can be less than a duration of time consumed to perform the tangible material selection process.
The electronic representation can include a value for a first parameter associated with the tangible material selection process. For example, a process performed by the material selection module can include one or more of a simple linear regression process, a neural network process, a random forests process, a random decision forests process, a Gaussian Process Upper Confidence Bound process, a support-vector machine, an adaptive boosting process, or the like.
For example, the first parameter, in a first iteration of the first iterations, can be identical to the first parameter in a second iteration of the first iterations, but the value for the first parameter, in the first iteration, can be different from the value for the first parameter in the second iteration. For example, the material selection module can further include a value for a second parameter associated with one or more of a prediction of a value of the material property of a material, a classification of the material, a physical procedure related to a determination of the value of the material property, a heuristic process related to the determination, or the like.
At the operation 908, the performance measurement module 114 can configure the machine learning process 402 to execute the material selection module.
At the operation 910, the performance measurement module 114 can cause the material selection module to select, from the data store 104, the information 108 about materials having the known values 110 of the material property 304.
At the operation 912, the performance measurement module 114 can cause the material selection module to train the machine learning process 405 to produce the known values 110 in response to a receipt of the information 108 about the materials.
At the operation 914, the performance measurement module 114 can determine a measure of a performance of the material selection module with respect to identifying a set of materials that includes the materials for which the known values 110 are in a specific relationship with a threshold criterion 112 for the material property 304.
In
In a first implementation, the optimal tangible material selection process can be the tangible material selection process associated with the material selection module for which the set of materials has a greatest number of members.
In a second implementation, the performance measurement module 114 can execute, in second iterations, the operation 910 and the operation 912. At the operation 910, the performance measurement module 114 can cause the material selection module to select, from the data store 104, the information 108 about a material, of the materials, having the known value 110 of the material property 304. At the operation 912, the performance measurement module 114 can cause the material selection module to train the machine learning process 402 to produce the known value 110 in response to a receipt of the information 108 about the material. At the operation 914, the performance measurement module 114 can determine, at a completion of the second iterations, the measure of the performance.
For example, in the second implementation, the optimal tangible material selection process can be the tangible material selection process associated with the material selection module for which, at a completion of a specific number of iterations of the second iterations, the set of materials has a greatest number of members.
In a third implementation, the process selection module 118 can include a process to determine the material selection module to be selected. For example, the process to determine the material selection module can include one or more of a recursion process, a historical analysis, or the like.
In the third implementation, at an operation 918, the process selection performance module 128 can determine, at the completion of the first iterations and based on the measures of performances of the material selection modules 120, a measure of a performance of the process selection module 118.
In the third implementation, at an operation 920, the process selection performance module 128 can determine, at the completion of the first iterations and based on the measure of performance of the process selection module 118, an optimal material selection module. The optimal material selection module can be associated with the optimal tangible material selection process. For example, the optimal material selection module can be based on one or more of the material property or the threshold criterion 112.
In an implementation that combines the third implementation with the first implementation, the optimal material selection module can be the material selection module for which the set of materials has the greatest number of members.
Alternatively, in an implementation that combines the third implementation with the second implementation, the optimal material selection module can be the material selection module for which, at the completion of the specific number of iterations of the second iterations, the set of materials has the greatest number of members.
In a fourth implementation, for example, at an operation 922, the processor 102 can receive one or more of the monetary values 128 associated with using the materials in an item of manufacture or the monetary threshold criterion 130 for the monetary values 128. The monetary values 128 can include one or more of monetary values associated with obtaining the materials, monetary values associated with incorporating the materials into the item of manufacture, or the like.
In the fourth implementation, at the operation 908, the performance measurement module 114 can configure the machine learning process 402 to execute the material selection module to obtain the monetary values.
In the fourth implementation, at the operation 914, the performance measurement module 114 can determine the measure of the performance of the material selection module with respect to identifying the set of materials that includes the materials for which the monetary values 128 are in a specific relationship with the monetary threshold criterion 130. For example, the specific relationship with the monetary threshold criterion 130 can be being less than a threshold monetary value, greater than the threshold monetary value, or within a threshold range of monetary values.
In a fifth implementation, at an operation 924, the performance measurement module 114 can configure the machine learning process 402 to execute an optimal material selection module. The optimal material selection module can be associated with the optimal tangible material selection process.
In the fifth implementation, at an operation 926, the performance measurement module 114 can cause the optimal material selection module to select information 108 about a material. The material can be different from the materials used to train the machine learning process 402.
In the fifth implementation, at an operation 928, the operation module 132 can cause the optimal material selection module to produce a value of the material property 304 for the material in response to a receipt of the information 108 about the material.
Detailed embodiments are disclosed herein. However, one of skill in the art understands, in light of the description herein, that the disclosed embodiments are intended only as examples. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one of skill in the art to variously employ the aspects herein in virtually any appropriately detailed structure. Furthermore, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of possible implementations. Various embodiments are illustrated in
The flowchart 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. In this regard, each block in flowcharts or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). One of skill in the art understands, in light of the description herein, that, in some alternative implementations, the functions described in a block may occur out of the order depicted by the figures. For example, two blocks depicted in succession may, in fact, be executed substantially concurrently, or the blocks may be executed in the reverse order, depending upon the functionality involved.
The systems, components and/or processes described above can be realized in hardware or a combination of hardware and software and can be realized in a centralized fashion in one processing system or in a distributed fashion where different elements are spread across several interconnected processing systems. Any kind of processing system or another apparatus adapted for carrying out the methods described herein is suitable. A typical combination of hardware and software can be a processing system with computer-readable program code that, when loaded and executed, controls the processing system such that it carries out the methods described herein. The systems, components, and/or processes also can be embedded in a computer-readable storage, such as a computer program product or other data programs storage device, readable by a machine, tangibly embodying a program of instructions executable by the machine to perform methods and processes described herein. These elements also can be embedded in an application product that comprises all the features enabling the implementation of the methods described herein and that, when loaded in a processing system, is able to carry out these methods.
Furthermore, arrangements described herein may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied, e.g., stored, thereon. Any combination of one or more computer-readable media may be utilized. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. As used herein, the phrase “computer-readable storage medium” means a non-transitory storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the computer-readable storage medium would include, in a non-exhaustive list, the following: a portable computer diskette, a hard disk drive (HDD), a solid-state drive (SSD), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. As used herein, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Generally, modules, as used herein, include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular data types. In further aspects, a memory generally stores such modules. The memory associated with a module may be a buffer or may be cache embedded within a processor, a random-access memory (RAM), a ROM, a flash memory, or another suitable electronic storage medium. In still further aspects, a module as used herein, may be implemented as an application-specific integrated circuit (ASIC), a hardware component of a system on a chip (SoC), a programmable logic array (PLA), or another suitable hardware component that is embedded with a defined configuration set (e.g., instructions) for performing the disclosed functions.
Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber, cable, radio frequency (RF), etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the disclosed technologies may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java™, Smalltalk, C++, or the like, and conventional procedural programming languages such as the “C” programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on a user's computer, as a stand-alone software package, partly on a user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through 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 (for example, through the Internet using an Internet Service Provider).
The terms “a” and “an,” as used herein, are defined as one or more than one. The term “plurality,” as used herein, is defined as two or more than two. The term “another,” as used herein, is defined as at least a second or more. The terms “including” and/or “having,” as used herein, are defined as comprising (i.e., open language). The phrase “at least one of . . . or . . . ” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. For example, the phrase “at least one of A, B, or C” includes A only, B only, C only, or any combination thereof (e.g., AB, AC, BC, or ABC).
Aspects herein can be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope hereof.