[go: up one dir, main page]

WO2004055723A2 - System design using artifical intelligence - Google Patents

System design using artifical intelligence Download PDF

Info

Publication number
WO2004055723A2
WO2004055723A2 PCT/US2003/039579 US0339579W WO2004055723A2 WO 2004055723 A2 WO2004055723 A2 WO 2004055723A2 US 0339579 W US0339579 W US 0339579W WO 2004055723 A2 WO2004055723 A2 WO 2004055723A2
Authority
WO
WIPO (PCT)
Prior art keywords
design
fitness
value
applying
population
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2003/039579
Other languages
French (fr)
Other versions
WO2004055723A3 (en
Inventor
Andrew Phillips
Chethana Manohar
James Pratt
William D. Dyck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to AU2003293534A priority Critical patent/AU2003293534A1/en
Priority to GB0512727A priority patent/GB2411502A/en
Priority to JP2004560821A priority patent/JP2006510115A/en
Publication of WO2004055723A2 publication Critical patent/WO2004055723A2/en
Publication of WO2004055723A3 publication Critical patent/WO2004055723A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Definitions

  • the present invention relates to the field of artificial intelligence and, more particularly, to design of systems using artificial intelligence.
  • a modern storage server which may include one or more central processing units, volatile memory, and data storage components, such disk drives or arrays.
  • volatile memory volatile memory
  • data storage components such disk drives or arrays.
  • various makes, models and configurations are available, each having respective attributes, such as capacity, throughput and cost, among others.
  • rules-based design systems require coding of a rule for each decision to be made in the design process.
  • An expert system is a form of rules-based design in which an attempt is made to emulate the knowledge of a human expert designer.
  • these techniques tend to be complex and time-consuming to implement. Because the rules are specific to the precise design problem and tend to be interdependent, such systems are difficult to modify in response to changed circumstances and cannot generally be applied for solving design problems other than the one for which the system was originally intended.
  • the invention is a technique for system design using artificial intelligence.
  • a set of desired attribute values are obtained for the system being designed according to a set of qualitative criteria.
  • a specification of a set of available components for the design is also obtained, each component having attribute values that correspond to each of the plurality of qualitative criteria.
  • a genetic algorithm (GA) is performed which includes generating a population of possible designs, each possible design specifying a combination of the components.
  • a fitness function is applied to one or more of the possible designs for determining a fitness value for the possible designs.
  • the fitness function is adaptive in that it may be based on the set of desired attribute values.
  • the fitness function is applied to each of a succession of generations of the population, thereby refining the possible design solutions.
  • the fitness function may be applied by determining a multiplying factor for each of the set of qualitative criteria according to the corresponding desired attribute value for the system being designed. For each component of the possible design, each attribute value is multiplied by the corresponding multiplying factor determined for the system being designed. The products of the attribute values and the multiplying factors are then summed. A positive value may be assigned to each positive attribute, while a negative value may be assigned to each negative attribute.
  • successive populations are generated and a fitness function is applied to each generation and the designs with higher fitness values are used to create successive generations, thereby refining the possible designs, until generation- to-generation improvements in high fitness values of the possible designs fall below a predetermined threshold. Once this occurs, maximum fitness values are not expected to increase further.
  • a possible design is selected from among the attained fitness values. The design may be selected only after a predetermined number of generations have been completed.
  • Figure 1 illustrates a flow diagram of a design method in accordance with an aspect of the present invention
  • FIG. 2 illustrates a general-purpose computer system by which the present invention may be implemented
  • Figure 3 illustrates a graphical user interface for providing inputs for the method in accordance with an aspect of the present invention.
  • Figure 4 illustrates a graphical user interface for displaying results of the method in accordance with an aspect of the present invention.
  • the present invention is a technique for system design using artificial intelligence.
  • a novel genetic algorithm (GA) is presented for selecting the system components to be incorporated into the design from a larger set of available components. Nalues assigned (e.g., by a user) to attributes for the design may be incorporated into a fitness function. Accordingly, the fitness function is adaptive in that it differs for each different set of desired attribute values. Individual designs are selected from a population according to their fitness as determined by applying the fitness function. Multiple generations of the genetic algorithm may be performed thereby refining the population of possible designs. An individual design may be selected from the population when a pre-selected fitness value is achieved or when generation-to-generation improvements in the fitness values diminish or cease altogether.
  • Figure 1 illustrates a flow diagram of a design method 100 in accordance with an aspect of the present invention.
  • Figure 2 illustrates a block schematic diagram of a computer system 200 by which the present invention, including portions of the method 100 of Figure 1, may be implemented.
  • the computer system 200 may include a general-purpose processor 202, storage media 204 (e.g., RAM and/or hard disks), a communication bus 206, and input/output devices 208, such as a keyboard, monitor, mouse and network interface.
  • the computer system 200 is conventional. As such, it will be apparent that the system 200 may include more or fewer elements than shown in Figure 2 and other elements may be substituted for those illustrated in Figure 2.
  • FIG. 3 illustrates an exemplary graphical user interface 300 that may be employed in step 102 for obtaining desired attribute values.
  • the graphical user interface 300 may be displayed on a display monitor 208 of the system 200 of Figure 2.
  • the system being designed is a storage server and, more particularly, an HP-UX storage server.
  • a set of attributes 302 for the system are provided by the graphical user interface.
  • the attributes 302 include qualitative criteria, for example: performance, cost, compatibility, complexity, expandability, availability, reliability, supportability, power requirements and physical size.
  • the performance attribute is a measure of how well the system performs. This attribute may indicate processing speed, throughput capacity and other performance metrics.
  • the cost attribute is a measure of the cost to implement the system. This attribute indicates the total cost of the system as a sum of the cost of its components.
  • the compatibility attribute is a measure of how many different product types the system may function with. This attribute may indicate compatibility in the event modifications or upgrades to the system may be required at a later time or compatibility of the system with other external components, such as communication network by which the system is to communicate.
  • the complexity attribute is a measure of the complexity of the underlying technology or architecture of the system and its components. This attribute may also indicate how difficult the system will be to modify or upgrade should the need arise.
  • the expandability attribute is a measure of the ease of expanding the system to increase its capabilities should this be needed. This attribute may indicate the number of available expansion slots included in the system or the number of disk drives that can be accommodated by the system.
  • the availability attribute is a measure of marketplace availability. This attribute may indicate the ease of obtaining the system and its components, such as lead times for ordering from manufacturing sources.
  • the reliability attribute is a measure of the system reliability, such as mean time to failure.
  • the supportability attribute is a measure of the ease of supporting the system design once it has been deployed. This attribute may indicate, for example, service part availability or mean time to perform repairs.
  • the power requirements attribute is a measure of the level of power consumed by the system.
  • the physical size attribute is a measure of the physical dimensions of the system.
  • a set of desired attribute values 304 are associated with the attributes 302, one value for each attribute.
  • the values may be input by a user through the graphical user interface 300.
  • Each value indicates the relative importance of the attribute for the system being designed. For example, for a specific application, cost of the system may be of primary importance while performance may be secondary. In this case, the cost attribute is assigned a value that indicates a higher importance than the value assigned to performance. For another application, cost may be less important than performance. In this case, the performance attribute is assigned a value that indicates higher importance than the value assigned to the cost attribute. In this manner, a value is assigned to each attribute in step 102 based on desired characteristics of the system being designed.
  • the values range from one to ten, with one indicating the highest importance and ten indicating lowest importance. In this case, a ten may result in the attribute being ignored (i.e. having no importance) during component selection.
  • the value assigned to an attribute may be the same as another attribute, thus, indicating equal importance or a different value may be assigned, thus, indicating relative differences in importance. While ten attributes are shown in Figure 3, each having ten possible values, another number of attributes and/or another number of possible values may be used. Also, rather than assigning a low value to signify high importance, attributes having a higher importance may be assigned a higher number than attributes having a lower importance (e.g., a one to ten scale with one indicating low or no importance and ten indicating highest importance).
  • the interface 300 may also include a "RESET FORM" button 306, which clears the entries 304 when activated by the user.
  • a fitness function may be adapted based upon the attribute values obtained in step 102.
  • the fitness function differs for each different set of attribute values.
  • a corresponding attribute value may be given as A réelle.
  • n is an integer between one and ten.
  • a multiplying factor F Bear may be determined for each attribute. Where higher importance is indicated by a lower relative value, the multiplying factor for each attribute may be determined as difference between the assigned value and the maximum value. In the example, the maximum value is ten.
  • the multiplying factor for an attribute may be the same as the assigned value.
  • the multiplying factor F 2 can be determined as follows:
  • F Room may be equal to A réelle-l.
  • step 104 The multiplying factors are then saved in step 104, such as in the computer system 200 of Figure 2 for further use in applying the fitness function, as described herein.
  • a specification of a set of components may be obtained in step 106. These components are available for selection to be included in the design.
  • the components may include central processing units, volatile memory (e.g., RAM) and data storage devices, such as disk drives and/or disk arrays.
  • volatile memory e.g., RAM
  • data storage devices such as disk drives and/or disk arrays.
  • other components may be specified for a storage server, including, but not limited to: printed circuit boards, component racks, network interfaces, power supplies and/or software. It will also be apparent that different components may be specified for systems other than storage servers. Further, depending on the circumstances, certain components may be treated in combination.
  • each component is preferably specified by its type, such as a CPU/memory combination component or a disk array, and by a unique identifier (e.g., one or more part numbers).
  • each component is assigned values for each of the attributes specified for the system in step 102.
  • values are assigned to each often attributes 302 for the system, as shown in Figure 3, a value for each of these ten attributes is also assigned to each component in step 106.
  • each CPU/memory combination component is assigned a value between one and ten to indicate its rating with respect to the corresponding attribute.
  • a CPU/memory combination component with high performance and high cost might be assigned a value of nine with respect performance and an eight with respect to cost.
  • the assigned values may indicate percentile ratings with respect to the other available components. Thus, where a component exceeds the 90 u percentile with respect to performance, the component may be rated a nine for that attribute.
  • the values assigned in step 106 for each of n attributes for an available component maybe given as N Mic.
  • the component specifications may be stored as a data file in the computer system 200 of Figure 2.
  • step 108 a population of possible designs is created from the specification of the set of components obtained in step 106. For example, this may occur in response to the user activating a "Find a Server" button 308 of the interface 300 ( Figure 3).
  • a first pass through the step 108 it may include generating predetermined number (i.e., a population size) of individual designs where each individual design consists of one component of each type to be included in the design.
  • predetermined number i.e., a population size
  • each individual may include a random pairing of CPU/memory combination component and a disk array.
  • the population size can be selected through the graphical user interface 300 of Figure 3. For example, by using a pointing device at an input field 310 (e.g., the user places a checkmark in the field 310 clicking on the field using a computer mouse), the user may advance to another display screen (not shown) that allows the user to select the population size.
  • a pointing device at an input field 310 (e.g., the user places a checkmark in the field 310 clicking on the field using a computer mouse)
  • the user may advance to another display screen (not shown) that allows the user to select the population size.
  • step 110 the fitness function is applied to each of the individual designs created in step 108.
  • a fitness value may be computed for the design by computing products of each multiplying factor FROC (determined in step 104) and each of the corresponding values N / , make for each of i components of the design and summing the products. Accordingly, the fitness may be given as follows:
  • the fitness value for the design can be computed as follows:
  • a fitness value may be obtained for each design of the population.
  • Designs of high fitness may be identified in step 112, for example, by identifying a number of designs having the highest fitness values relative to the other designs of the population. These individuals identified in step 112 as having high fitness may then be used as a basis for forming one or more successive generations (e.g., by returning to step 108).
  • the population generation performed in step 108 may be in accordance with conventional genetic algorithm techniques.
  • each new generation may be based, in part, on the individual designs of the prior generation which were identified in step 112 as having high fitness, for example, by allowing those individuals to "reproduce” more often.
  • designs of the new population will be more likely to include components from the designs of the prior generation that had high fitness values. This, in turn, is expected to increase the likelihood that designs of each successive generation will have higher fitness than those of the prior generation.
  • step 108 The process of creating new populations (step 108), determining their fitness values (110), and identifying individuals with high fitness values (112) as a basis for a next generation may be repeated a predetermined number of times m, thereby refining the designs in an iterative fashion.
  • the number m may range from zero to one hundred generations or, depending on the circumstances, the number m may range to a greater number of generations.
  • the user may select the number m via the graphical user interface 300 of Figure 3.
  • program flow may move to a step 114, in which a determination may be made as to whether the predetermined number m has been reached. If not, program flow returns to step 108.
  • program flow moves to the step 116 once the selected number of generations have been created and refined.
  • a comparison is made between earlier and later generations (e.g., the current and prior generation) to determine the amount of improvement in fitness. More particularly, the high fitness values (e.g., the highest value or an average of several of the high values) from different generations may be compared to determine the amount of improvement in fitness, if any, from generation-to-generation. For example, this may include a direct comparison of fitness values from two or more successive generations. Alternately, statistics relating to fitness values for a number of generations (e.g., a moving average) may be compared in step 116.
  • step 118 a determination is made as to whether generation- to-generation improvements have diminished. This may be accomplished by comparing a statistic representative of improvements in to a predetermined threshold. A difference between generations indicates the amount of improvement. If the difference is greater than the threshold, this indicates that further improvements are likely. Thus, program flow returns to the step 108, in which a new generation is created. The process of creating new populations (step 108), determining their fitness values (step 110), identifying individuals with high fitness (step 112) and determining the extent of generation-to-generation improvements (step 116) may then be repeated until the generation-to-generation improvements fall below the threshold.
  • the generation-to-generation improvements may remain below the threshold for a number of generations (e.g., 10). This number may also be selected by the user (e.g., by clicking the field 310 of Figure 3). When a positive determination is made in step 120, this indicates that further generations are not likely to result in significantly higher fitness values.
  • program flow may move to a step 122 in which one or more individual designs are selected from among the high fitness designs obtained thus far.
  • this design may be displayed as the resulting design, as shown in Figure 4.
  • Figure 4 illustrates a graphical user interface 400 for displaying results of the method 100 in accordance with an aspect of the present invention.
  • a single design is shown in Figure 4.
  • its identifier e.g., one or more part numbers
  • a description of each component and a total cost for the design may be displayed.
  • the design is for a storage server.
  • a first component, a type CPU/memory combination component includes three part numbers (i.e. A6447A, A6448A and A6168A) that together make up the combination component.
  • a second component a storage type component, includes two part numbers (i.e. A6265A and A6191A) and is described as "Virtual Array 7400 w/1890GB".
  • the number of generations created may depend on how quickly the generation-to-generation improvements diminish, the number of generations required before the generation-to-generation differences fall below the threshold will generally not be known until the method 100 is performed. Thus, as shown in Figure 4, the number of generations created may also be displayed. In the example, the displayed number is 238 generations. If the generational differences do not fall below the threshold after a predetermined number of generations (e.g., 1000) the method may be halted and an error message displayed. This maximum number of generations may also be selected by the user, e.g., by clicking the field 310 ( Figure 3). Further, if identification of high fitness values in step 112 fails (e.g., all resulting fitness values are negative), the method may be halted and an error message displayed. For debugging purposes, the generational summary information may be provided to the user, such as the highest and lower fitness values obtained for several generations.
  • values assigned to attributes for the design may be incorporated into an adaptive fitness function.
  • multiple generations of designs are created, thereby refining the designs until a pre-selected fitness value is achieved or until generation-to-generation improvements in the high fitness values diminish.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Genetics & Genomics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Physiology (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A technique for system design using artificial intelligence. System components to be incorporated into the design are selected from a larger set of available components using a genetic algorithm. Values assigned (e.g., by a user) to attributes for the design may be incorporated into a fitness function. Accordingly, the fitness function is adaptive in that it differs for each different set of desired attribute values. Individual designs are selected from a population according to their fitness, as determined ny applying the fitness function. Multiple generations of the genetic algorithm may be performed therby refining the population of possible designs. An individual design may be selected from the population when a pre-determined number of generations have been formed and/or when generation-to-generation improvements in fitness values diminish.

Description

SYSTEM DESIGN USING ARTIFICIAL INTELLIGENCE
Background of the Invention:
The present invention relates to the field of artificial intelligence and, more particularly, to design of systems using artificial intelligence.
With the passage of time, computer systems have become increasingly complex, particularly those that serve large-scale enterprises. A large and ever- increasing number of components are available to be incorporated into a modern computer system. An example of such a system is a modern storage server, which may include one or more central processing units, volatile memory, and data storage components, such disk drives or arrays. For each such component, various makes, models and configurations are available, each having respective attributes, such as capacity, throughput and cost, among others.
Due to the many choices available to the system designer, manual design techniques tend to be based on experience and various rules-of-thumb. As such, these techniques tend to be time-consuming, error-prone and do not always result in an optimal design for the circumstances.
Techniques have been developed for automating some aspects of system design through the use of artificial intelligence. For example, rules-based design systems require coding of a rule for each decision to be made in the design process. An expert system is a form of rules-based design in which an attempt is made to emulate the knowledge of a human expert designer. As a result, these techniques tend to be complex and time-consuming to implement. Because the rules are specific to the precise design problem and tend to be interdependent, such systems are difficult to modify in response to changed circumstances and cannot generally be applied for solving design problems other than the one for which the system was originally intended.
The use of genetic algorithms has been another approach to applying artificial intelligence to design problems. Through use of a genetic algorithm, possible design solutions are generated and a selection process is applied in an attempt to iteratively refine the solutions. However, such techniques also tend to be difficult to modify once implemented and do not always result in an optimal solution.
Therefore, what is needed is an improved technique for the design of systems using artificial intelligence. What is further needed is such a technique that can be applied to the design of modern computer systems. It is toward these ends that the present invention is directed.
Summary of the Invention: The invention is a technique for system design using artificial intelligence. In one aspect, a set of desired attribute values are obtained for the system being designed according to a set of qualitative criteria. A specification of a set of available components for the design is also obtained, each component having attribute values that correspond to each of the plurality of qualitative criteria. A genetic algorithm (GA) is performed which includes generating a population of possible designs, each possible design specifying a combination of the components. A fitness function is applied to one or more of the possible designs for determining a fitness value for the possible designs. The fitness function is adaptive in that it may be based on the set of desired attribute values. The fitness function is applied to each of a succession of generations of the population, thereby refining the possible design solutions.
More particularly, the fitness function may be applied by determining a multiplying factor for each of the set of qualitative criteria according to the corresponding desired attribute value for the system being designed. For each component of the possible design, each attribute value is multiplied by the corresponding multiplying factor determined for the system being designed. The products of the attribute values and the multiplying factors are then summed. A positive value may be assigned to each positive attribute, while a negative value may be assigned to each negative attribute.
In another aspect, successive populations are generated and a fitness function is applied to each generation and the designs with higher fitness values are used to create successive generations, thereby refining the possible designs, until generation- to-generation improvements in high fitness values of the possible designs fall below a predetermined threshold. Once this occurs, maximum fitness values are not expected to increase further. Thus, a possible design is selected from among the attained fitness values. The design may be selected only after a predetermined number of generations have been completed.
These and other aspects of the invention will become apparent from the following description, drawings and appended claims. Brief Description of the Drawings:
Figure 1 illustrates a flow diagram of a design method in accordance with an aspect of the present invention;
Figure 2 illustrates a general-purpose computer system by which the present invention may be implemented;
Figure 3 illustrates a graphical user interface for providing inputs for the method in accordance with an aspect of the present invention; and
Figure 4 illustrates a graphical user interface for displaying results of the method in accordance with an aspect of the present invention.
Detailed Description of a Preferred Embodiment:
The present invention is a technique for system design using artificial intelligence. A novel genetic algorithm (GA) is presented for selecting the system components to be incorporated into the design from a larger set of available components. Nalues assigned (e.g., by a user) to attributes for the design may be incorporated into a fitness function. Accordingly, the fitness function is adaptive in that it differs for each different set of desired attribute values. Individual designs are selected from a population according to their fitness as determined by applying the fitness function. Multiple generations of the genetic algorithm may be performed thereby refining the population of possible designs. An individual design may be selected from the population when a pre-selected fitness value is achieved or when generation-to-generation improvements in the fitness values diminish or cease altogether.
By using artificial intelligence in accordance with the teachings herein, better designs may be achieved for complex systems than might be achieved using other methods. While the figures and discussion herein are primarily directed to design of a computer system, and more particularly to design of a storage server, it will be understood that the invention may be applied to design of any type of system, including computing systems, mechanical systems or other types of systems in which combinations of components are to be selected for the design.
Figure 1 illustrates a flow diagram of a design method 100 in accordance with an aspect of the present invention. Figure 2 illustrates a block schematic diagram of a computer system 200 by which the present invention, including portions of the method 100 of Figure 1, may be implemented. The computer system 200 may include a general-purpose processor 202, storage media 204 (e.g., RAM and/or hard disks), a communication bus 206, and input/output devices 208, such as a keyboard, monitor, mouse and network interface. The computer system 200 is conventional. As such, it will be apparent that the system 200 may include more or fewer elements than shown in Figure 2 and other elements may be substituted for those illustrated in Figure 2.
Referring to Figure 1, at step 102, values for desired attributes for the system being designed are obtained. For example, a user may input the values through a graphical user interface. Figure 3 illustrates an exemplary graphical user interface 300 that may be employed in step 102 for obtaining desired attribute values. For example, the graphical user interface 300 may be displayed on a display monitor 208 of the system 200 of Figure 2. As shown in Figure 3, the system being designed is a storage server and, more particularly, an HP-UX storage server. A set of attributes 302 for the system are provided by the graphical user interface. As shown in Figure 3, the attributes 302 include qualitative criteria, for example: performance, cost, compatibility, complexity, expandability, availability, reliability, supportability, power requirements and physical size.
The performance attribute is a measure of how well the system performs. This attribute may indicate processing speed, throughput capacity and other performance metrics. The cost attribute is a measure of the cost to implement the system. This attribute indicates the total cost of the system as a sum of the cost of its components. The compatibility attribute is a measure of how many different product types the system may function with. This attribute may indicate compatibility in the event modifications or upgrades to the system may be required at a later time or compatibility of the system with other external components, such as communication network by which the system is to communicate. The complexity attribute is a measure of the complexity of the underlying technology or architecture of the system and its components. This attribute may also indicate how difficult the system will be to modify or upgrade should the need arise.
The expandability attribute is a measure of the ease of expanding the system to increase its capabilities should this be needed. This attribute may indicate the number of available expansion slots included in the system or the number of disk drives that can be accommodated by the system. The availability attribute is a measure of marketplace availability. This attribute may indicate the ease of obtaining the system and its components, such as lead times for ordering from manufacturing sources. The reliability attribute is a measure of the system reliability, such as mean time to failure. The supportability attribute is a measure of the ease of supporting the system design once it has been deployed. This attribute may indicate, for example, service part availability or mean time to perform repairs. The power requirements attribute is a measure of the level of power consumed by the system. The physical size attribute is a measure of the physical dimensions of the system.
It will be apparent that the attributes listed above are exemplary and that a different set of attributes may be used.
A set of desired attribute values 304 are associated with the attributes 302, one value for each attribute. The values may be input by a user through the graphical user interface 300. Each value indicates the relative importance of the attribute for the system being designed. For example, for a specific application, cost of the system may be of primary importance while performance may be secondary. In this case, the cost attribute is assigned a value that indicates a higher importance than the value assigned to performance. For another application, cost may be less important than performance. In this case, the performance attribute is assigned a value that indicates higher importance than the value assigned to the cost attribute. In this manner, a value is assigned to each attribute in step 102 based on desired characteristics of the system being designed. In one aspect, the values range from one to ten, with one indicating the highest importance and ten indicating lowest importance. In this case, a ten may result in the attribute being ignored (i.e. having no importance) during component selection. The value assigned to an attribute may be the same as another attribute, thus, indicating equal importance or a different value may be assigned, thus, indicating relative differences in importance. While ten attributes are shown in Figure 3, each having ten possible values, another number of attributes and/or another number of possible values may be used. Also, rather than assigning a low value to signify high importance, attributes having a higher importance may be assigned a higher number than attributes having a lower importance (e.g., a one to ten scale with one indicating low or no importance and ten indicating highest importance).
As shown in Figure 3, the interface 300 may also include a "RESET FORM" button 306, which clears the entries 304 when activated by the user.
Returning to Figure 1, in step 104, a fitness function may be adapted based upon the attribute values obtained in step 102. Thus, in one aspect, the fitness function differs for each different set of attribute values. For each of n attributes, a corresponding attribute value may be given as A„. As shown in the example of Figure 3, there are ten attributes and, thus, n is an integer between one and ten. In step 104, a multiplying factor F„ may be determined for each attribute. Where higher importance is indicated by a lower relative value, the multiplying factor for each attribute may be determined as difference between the assigned value and the maximum value. In the example, the maximum value is ten. Thus,
F„ = 10 - A„
As a particular example, assume that for the compatibility attribute, a value of three is assigned by the user. Because the compatibility attribute is the second often attributes, n = 2, and the multiplying factor is given as F2. F2 is determined as follows:
F2 = 10 - 3 = 7
However, where higher importance is indicated by a higher relative value, the multiplying factor for an attribute may be the same as the assigned value. Thus,
F„ = A„
In the example for the compatibility attribute in which a value of three was assigned, the multiplying factor F2, can be determined as follows:
; A2 = 3
Alternately, so that a value of one indicates no importance, F„ may be equal to A„-l.
The multiplying factors are then saved in step 104, such as in the computer system 200 of Figure 2 for further use in applying the fitness function, as described herein.
A specification of a set of components may be obtained in step 106. These components are available for selection to be included in the design. For the example in which the system being designed is a storage server, the components may include central processing units, volatile memory (e.g., RAM) and data storage devices, such as disk drives and/or disk arrays. It will be apparent that other components may be specified for a storage server, including, but not limited to: printed circuit boards, component racks, network interfaces, power supplies and/or software. It will also be apparent that different components may be specified for systems other than storage servers. Further, depending on the circumstances, certain components may be treated in combination. For example, where there is limited interchangeability among certain components, such as CPUs and volatile memory, feasible pairings of those components may be treated as a single component for purposes of step 106. Each component is preferably specified by its type, such as a CPU/memory combination component or a disk array, and by a unique identifier (e.g., one or more part numbers). In addition, each component is assigned values for each of the attributes specified for the system in step 102. Thus, where values are assigned to each often attributes 302 for the system, as shown in Figure 3, a value for each of these ten attributes is also assigned to each component in step 106. For example, each CPU/memory combination component is assigned a value between one and ten to indicate its rating with respect to the corresponding attribute. Where a ten indicates the component rates comparatively high with respect to the corresponding attribute, a CPU/memory combination component with high performance and high cost might be assigned a value of nine with respect performance and an eight with respect to cost. In one aspect, the assigned values may indicate percentile ratings with respect to the other available components. Thus, where a component exceeds the 90u percentile with respect to performance, the component may be rated a nine for that attribute. The values assigned in step 106 for each of n attributes for an available component maybe given as N„. The component specifications may be stored as a data file in the computer system 200 of Figure 2.
In step 108, a population of possible designs is created from the specification of the set of components obtained in step 106. For example, this may occur in response to the user activating a "Find a Server" button 308 of the interface 300 (Figure 3). In a first pass through the step 108, it may include generating predetermined number (i.e., a population size) of individual designs where each individual design consists of one component of each type to be included in the design. Thus, where the design is to include a CPU/memory combination component and a disk array, each individual may include a random pairing of CPU/memory combination component and a disk array.
In one aspect, the population size can be selected through the graphical user interface 300 of Figure 3. For example, by using a pointing device at an input field 310 (e.g., the user places a checkmark in the field 310 clicking on the field using a computer mouse), the user may advance to another display screen (not shown) that allows the user to select the population size.
Then, in step 110, the fitness function is applied to each of the individual designs created in step 108. Thus, for a design having i components, a fitness value may be computed for the design by computing products of each multiplying factor F„ (determined in step 104) and each of the corresponding values N/,„ for each of i components of the design and summing the products. Accordingly, the fitness may be given as follows:
Fitness = ∑(E^,„)
For example, assume that only the performance attribute Ay and the compatibility attributes A3 are of interest and that their corresponding multiplying factors are determined in step 104 as F; = 6 and V3 = 4. Assume also that an individual design includes two components (1, 2) a first of which has a performance value of 8 (i.e., YJ = 8) and a compatibility value of 3 (i.e., N ^ = 3) and a second of which has a performance value of 5 (i.e., N2,/ = 5) and compatibility value of 2 (i.e., N2,3 = 2). Accordingly, the fitness value for the design can be computed as follows:
Fitness = (¥]YU)+(¥1Y2 )+(F3 N,)3)+(F5Ny,;)
= (6x8)+(6x5)+(4x3)+(4x2) = 98
For some attributes, such as performance, compatibility, expandability, availability, reliability and supportability, a higher rating is generally desirable, whereas, for other attributes, such as cost, complexity, power requirements, and physical size, a lower rating is generally desirable. Thus, to take these negative attributes in account for computing the fitness value, their products may be subtracted from the products for the positive attributes: Fitness = ∑(FnV^)posmve_aimbutes - ∑(E„F, „) negative _ attributes
In a particular example, assume that the cost attribute A2 is also of concern. Thus, assume that the multiplying factor for cost is determined as F2 = 9. Assume that for the two components (1, 2), their cost values are given as Ny,2 = 1 and N2)2= 7. As before, assume also that Fy = 6, F3 = 4, Ny,y = 8 and N2,3 = 3. Thus, the fitness can be computed as follows:
Fitness = (FyNy,y)+(FyN2,y)+(F5 VW) (FjV;,;) - (F2Ny,2) - (F2V2,2)
= (6x8)+(6x5)+(4x3)+(4x2) - (9x1) - (9x7) = 26
In this way, a fitness value may be obtained for each design of the population. Designs of high fitness may be identified in step 112, for example, by identifying a number of designs having the highest fitness values relative to the other designs of the population. These individuals identified in step 112 as having high fitness may then be used as a basis for forming one or more successive generations (e.g., by returning to step 108).
The population generation performed in step 108 may be in accordance with conventional genetic algorithm techniques. Thus, each new generation may be based, in part, on the individual designs of the prior generation which were identified in step 112 as having high fitness, for example, by allowing those individuals to "reproduce" more often. Thus, designs of the new population will be more likely to include components from the designs of the prior generation that had high fitness values. This, in turn, is expected to increase the likelihood that designs of each successive generation will have higher fitness than those of the prior generation.
The process of creating new populations (step 108), determining their fitness values (110), and identifying individuals with high fitness values (112) as a basis for a next generation may be repeated a predetermined number of times m, thereby refining the designs in an iterative fashion. The number m may range from zero to one hundred generations or, depending on the circumstances, the number m may range to a greater number of generations. In one aspect, the user may select the number m via the graphical user interface 300 of Figure 3. Thus, from step 112, program flow may move to a step 114, in which a determination may be made as to whether the predetermined number m has been reached. If not, program flow returns to step 108. However, once the selected number of m generations have been created and refined, an individual having a high fitness value from among those identified thus far may be selected for the design. However, in a preferred embodiment, program flow moves to the step 116 once the selected number of generations have been created and refined.
In step 116, a comparison is made between earlier and later generations (e.g., the current and prior generation) to determine the amount of improvement in fitness. More particularly, the high fitness values (e.g., the highest value or an average of several of the high values) from different generations may be compared to determine the amount of improvement in fitness, if any, from generation-to-generation. For example, this may include a direct comparison of fitness values from two or more successive generations. Alternately, statistics relating to fitness values for a number of generations (e.g., a moving average) may be compared in step 116.
It is expected that generation-to-generation improvements in fitness will diminish over time as the population of designs becomes more refined through the genetic process. Thus, in step 118, a determination is made as to whether generation- to-generation improvements have diminished. This may be accomplished by comparing a statistic representative of improvements in to a predetermined threshold. A difference between generations indicates the amount of improvement. If the difference is greater than the threshold, this indicates that further improvements are likely. Thus, program flow returns to the step 108, in which a new generation is created. The process of creating new populations (step 108), determining their fitness values (step 110), identifying individuals with high fitness (step 112) and determining the extent of generation-to-generation improvements (step 116) may then be repeated until the generation-to-generation improvements fall below the threshold. In one embodiment, the generation-to-generation improvements may remain below the threshold for a number of generations (e.g., 10). This number may also be selected by the user (e.g., by clicking the field 310 of Figure 3). When a positive determination is made in step 120, this indicates that further generations are not likely to result in significantly higher fitness values.
Accordingly, program flow may move to a step 122 in which one or more individual designs are selected from among the high fitness designs obtained thus far. In step 116, this design may be displayed as the resulting design, as shown in Figure 4.
Figure 4 illustrates a graphical user interface 400 for displaying results of the method 100 in accordance with an aspect of the present invention. A single design is shown in Figure 4. For each component of the design, its identifier (e.g., one or more part numbers) may be displayed along with its type and cost. In addition, a description of each component and a total cost for the design may be displayed. In the example of Figure 4, the design is for a storage server. A first component, a type CPU/memory combination component, includes three part numbers (i.e. A6447A, A6448A and A6168A) that together make up the combination component. The component description is shown as "rx4610/800 w/1 GB RAM w/2cpu." A second component, a storage type component, includes two part numbers (i.e. A6265A and A6191A) and is described as "Virtual Array 7400 w/1890GB".
Because the number of generations created may depend on how quickly the generation-to-generation improvements diminish, the number of generations required before the generation-to-generation differences fall below the threshold will generally not be known until the method 100 is performed. Thus, as shown in Figure 4, the number of generations created may also be displayed. In the example, the displayed number is 238 generations. If the generational differences do not fall below the threshold after a predetermined number of generations (e.g., 1000) the method may be halted and an error message displayed. This maximum number of generations may also be selected by the user, e.g., by clicking the field 310 (Figure 3). Further, if identification of high fitness values in step 112 fails (e.g., all resulting fitness values are negative), the method may be halted and an error message displayed. For debugging purposes, the generational summary information may be provided to the user, such as the highest and lower fitness values obtained for several generations.
Thus, a novel genetic algorithm (GA) has been presented. In one aspect, values assigned to attributes for the design may be incorporated into an adaptive fitness function. In another aspect, multiple generations of designs are created, thereby refining the designs until a pre-selected fitness value is achieved or until generation-to-generation improvements in the high fitness values diminish.
While the foregoing has been with reference to particular embodiments of the invention, it will be appreciated by those skilled in the art that changes in these embodiments may be made without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims.

Claims

What is claimed is:
1. A computer-implemented system design method comprising: obtaining a set of desired attribute values for the system being designed according to a set of qualitative criteria; obtaining a specification of a set of components, each component having attribute values for the component that correspond to each of the plurality of qualitative criteria; and applying a genetic algorithm including generating a population of possible designs, each possible design specifying a combination of the components, applying a fitness function to one or more of the possible designs for determining a fitness value for the possible designs, the fitness function being based on the set of desired attribute values, and repeating said generating and applying the fitness function thereby refining the possible designs.
2. The method according to claim 1, wherein said obtaining the set of desired attribute values comprises providing a user interface by which a user selects a value for each of a plurality of qualitative criteria for the design for the system.
3. The method according to claim 1, where the system being designed is a computer system.
4. The method according to claim 3, wherein the computer system is a storage server.
5. The method according to claim 1, wherein said repeating said generating a population and applying the fitness function to the population is performed a predetermined number of times.
6. The method according to claim 5, further comprising selecting one of the possible designs for the design after said repeating said generating a population and applying the fitness function to the population is performed the predetermined number of times.
7. The method according to claim 1, further comprising repeating said generating a population and applying the fitness function to the population until generation-to-generation improvements are diminished and selecting a possible design having a high fitness value for the design.
8. The method according to claim 7, further comprising determining whether said generation-to-generation improvements have diminished by comparing a statistic representative of improvements in fitness values to a predetermined threshold.
9. The method according to claim 7, further comprising displaying an identifier and type for each component included in the selected design.
10. The method according to claim 9, further comprising displaying a sum of costs of each component including in the design.
11. The method according to claim 1, wherein the qualitative criteria include one or more of the following: performance, cost, compatibility, complexity, expandability, availability, reliability, supportability, power requirements and physical size.
12. The method according to claim 1, wherein said applying the fitness function to a possible design comprises: determining a multiplying factor for each of the set of qualitative criteria according to the corresponding attribute value for the system being designed; for each component of the possible design, multiplying each attribute value by the corresponding multiplying factor determined for the system being designed; and summing the products of the attribute values and the multiplying factors.
13. The method according to claim 12, further comprising assigning a positive value to each positive attribute value of the components of the possible design and a negative value to each negative attribute value of the components of the possible design.
14. A computer-implemented system design method comprising: obtaining a specification of a set of components, each component having attribute values for the component that correspond to each of a plurality of qualitative criteria; and applying a genetic algorithm including generating a population of possible designs, each possible design specifying a combination of the components, applying a fitness function to one or more of the possible designs for determining a fitness value for the possible designs, repeating said generating and applying the fitness function thereby refining the possible designs until generation-to-generation improvements in high fitness values of the possible designs are diminished, and selecting a possible design having a high fitness value for the design.
15. The method according to claim 14, further comprising obtaining a set of desired attribute values for the system being designed according to the qualitative criteria wherein the fitness function is based on the set of desired attribute values.
16. The method according to claim 14, wherein said obtaining the set of desired attribute values comprises providing a user interface by which a user selects a value for each of a plurality of qualitative criteria for the design for the system.
17. The method according to claim 14, where the system being designed is a computer system.
18. The method according to claim 17, wherein the computer system is a storage server.
19. The method according to claim 14, further comprising repeating said generating a population and applying the fitness function to the population a predetermined number of times before selecting the design.
20. The method according to claim 14, further comprising displaying an identifier and type for each component included in the selected design.
21. The method according to claim 20, further comprising displaying a sum of costs of each component including in the design.
22. The method according to claim 14, wherein the qualitative criteria include one or more of the following: performance, cost, compatibility, complexity, expandability, availability, reliability, supportability, power requirements and physical size.
23. The method according to claim 14, wherein said applying the fitness function to a possible design comprises: determining a multiplying factor for each of the set of qualitative criteria according to the corresponding attribute value for the system being designed; for each component of the possible design, multiplying each attribute value by the corresponding multiplying factor determined for the system being designed; and summing the products of the attribute values and the multiplying factors.
24. The method according to claim 23, further comprising assigning a positive value to each positive attribute value of the components of the possible design and a negative value to each negative attribute value of the components of the possible design.
25. The method according to claim 14, further comprising determining whether said generation-to-generation improvements have diminished by comparing a statistic representative of improvements in fitness values to a predetermined threshold.
26. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for system design using a genetic algorithm, said method steps including obtaining a set of desired attribute values for the system being designed according to a set of qualitative criteria; obtaining a specification of a set of components, each component having attribute values for the component that correspond to each of the plurality of qualitative criteria; and applying the genetic algorithm including generating a population of possible designs, each possible design specifying a combination of the components, applying a fitness function to one or more of the possible designs for determining a fitness value for the possible designs, the fitness function being based on the set of desired attribute values, and repeating said generating and applying the fitness function thereby refining the possible designs.
27. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for system design using a genetic algorithm, said method steps including obtaining a specification of a set of components, each component having attribute values for the component that correspond to each of a plurality of qualitative criteria; and applying a genetic algorithm including generating a population of possible designs, each possible design specifying a combination of the components, applying a fitness function to one or more of the possible designs for determining a fitness value for the possible designs, repeating said generating and applying the fitness function thereby refining the possible designs until generation-to-generation improvements in high fitness values of the possible designs are diminished, and selecting a possible design having a high fitness value for the design.
PCT/US2003/039579 2002-12-13 2003-12-12 System design using artifical intelligence Ceased WO2004055723A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
AU2003293534A AU2003293534A1 (en) 2002-12-13 2003-12-12 System design using artifical intelligence
GB0512727A GB2411502A (en) 2002-12-13 2003-12-12 System design using artifical intelligence
JP2004560821A JP2006510115A (en) 2002-12-13 2003-12-12 System design using artificial intelligence

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31903102A 2002-12-13 2002-12-13
US10/319,031 2002-12-13

Publications (2)

Publication Number Publication Date
WO2004055723A2 true WO2004055723A2 (en) 2004-07-01
WO2004055723A3 WO2004055723A3 (en) 2004-08-12

Family

ID=32592886

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/039579 Ceased WO2004055723A2 (en) 2002-12-13 2003-12-12 System design using artifical intelligence

Country Status (4)

Country Link
JP (1) JP2006510115A (en)
AU (1) AU2003293534A1 (en)
GB (1) GB2411502A (en)
WO (1) WO2004055723A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701544A (en) * 2016-01-11 2016-06-22 南京信息工程大学 Stochastic resonance weak signal detection method based on genetic algorithm and frequency modulation

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2434223C (en) * 2005-12-29 2010-08-25 Motorola Inc User interface for customising an electronic product
JP5295687B2 (en) * 2008-09-02 2013-09-18 一般財団法人電力中央研究所 Communication method and communication apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4985100A (en) * 1999-05-05 2000-11-17 Thomas Probert Fuzzy logic and genetic algorithms to maximize a utility function
GB0106459D0 (en) * 2001-03-15 2001-05-02 Marconi Comm Ltd Hardware design using evolutionary algorithms

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701544A (en) * 2016-01-11 2016-06-22 南京信息工程大学 Stochastic resonance weak signal detection method based on genetic algorithm and frequency modulation

Also Published As

Publication number Publication date
AU2003293534A1 (en) 2004-07-09
AU2003293534A8 (en) 2004-07-09
GB0512727D0 (en) 2005-07-27
WO2004055723A3 (en) 2004-08-12
JP2006510115A (en) 2006-03-23
GB2411502A (en) 2005-08-31

Similar Documents

Publication Publication Date Title
US7035919B1 (en) Method for calculating user weights for thin client sizing tool
US20060047794A1 (en) Application of genetic algorithms to computer system tuning
US20060230018A1 (en) Mahalanobis distance genetic algorithm (MDGA) method and system
JP5065296B2 (en) A method for modeling a free pool of resources
CN118401952A (en) Intelligent deployment using graph optimization
CN112258515B (en) Graph segmentation method based on fixed vertex
CN113687780B (en) QoS optimization method, system, terminal and storage medium for distributed storage server
US7979520B2 (en) Prescriptive architecture recommendations
US6662183B2 (en) Vendor independent network configuration tool method, system, and product
JP2019219741A (en) Learning control method and computer system
JP4736713B2 (en) Systems and methods to support the selection of project members
US7191107B2 (en) Method of determining value change for placement variable
US20070198252A1 (en) Optimum design management apparatus, optimum design calculation system, optimum design management method, and optimum design management program
US11093266B2 (en) Using a generative model to facilitate simulation of potential policies for an infrastructure as a service system
WO2004055723A2 (en) System design using artifical intelligence
CN107688901A (en) Data adjustment method and device
CN115460087A (en) Method and device for deploying business process in cloud computing environment
US9305068B1 (en) Methods and apparatus for database virtualization
CN112953781A (en) Particle swarm-based virtual service fault recovery method and device under network slice
CN114296775B (en) Intelligent operation and maintenance method and system based on big data
Alam et al. Multi-objective interdependent VM placement model based on cloud reliability evaluation
CN115795203A (en) Construction method, device, electronic device and storage medium of menu page
CN113515495A (en) Data file distribution method and device, intelligent equipment and computer storage medium
JP2005208709A (en) Data classification processing apparatus, data classification processing method and computer program
Stamatatos et al. Learning how to propagate using random probing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2004560821

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 0512727

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20031212

WWE Wipo information: entry into national phase

Ref document number: 0512727.9

Country of ref document: GB

122 Ep: pct application non-entry in european phase