WO2012176925A1 - Configuration management device, configuration management method, and program-recording medium storing configuration management program - Google Patents

Configuration management device, configuration management method, and program-recording medium storing configuration management program Download PDF

Info

Publication number
WO2012176925A1
WO2012176925A1 PCT/JP2012/066307 JP2012066307W WO2012176925A1 WO 2012176925 A1 WO2012176925 A1 WO 2012176925A1 JP 2012066307 W JP2012066307 W JP 2012066307W WO 2012176925 A1 WO2012176925 A1 WO 2012176925A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
devices
type
search
total
Prior art date
Application number
PCT/JP2012/066307
Other languages
French (fr)
Japanese (ja)
Inventor
育大 網代
一男 矢野尾
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2013521658A priority Critical patent/JP5949764B2/en
Publication of WO2012176925A1 publication Critical patent/WO2012176925A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules

Definitions

  • the present invention relates to a configuration management device, a configuration management method, and a configuration management program for deriving a combination of devices, and more particularly to a configuration management device, a configuration management method, and a configuration management program for deriving a combination of devices that satisfy a predetermined condition. .
  • Patent Document 1 describes a system proposal method and a system proposal device that outputs a configuration that satisfies performance requirements and price requirements within a predetermined error range as a configuration to be proposed.
  • the system configuration definition unit of the system proposing device accepts the components of the performance evaluation target system, the connection relationship of the components, the behavior of the application, the specifications and parameters of each resource, the performance requirements, and the price requirements.
  • the component include a database management system, a server side application, and a client side application.
  • the connection relationship of the component indicates how the component is connected to the network.
  • the behavior of the application is, for example, the number of processing steps, the number of times of issuing a DB (Database) search function and a DB update function.
  • the specifications and parameters of each resource are the number of CPUs (Central Processing Units) of the computer, MIPS (Million Instructions Per Second) values, disk seek time, setting parameters of the database management system, and the like.
  • System performance is response time.
  • the performance requirement is a value representing the performance of the system that outputs the configuration by the system proposing device, such as a response time of 5 seconds.
  • the price requirement is a value representing a price of a system for which the system proposing device outputs a configuration, such as 10 million yen.
  • the optimal configuration calculation unit of the system proposing device of this document formulates a configuration combining the components of the performance evaluation target system, the connection relationship of the components, the behavior of the application, the specifications and parameters of each resource, and the response to each configuration
  • the time is calculated by the performance simulator.
  • the optimum configuration calculation unit calculates the total price of the hardware and software of each formulated configuration. Based on the calculated response time and total price of each configuration, the optimal configuration calculation unit outputs a configuration that satisfies the performance requirement and the price requirement within a predetermined error range. Thereby, the structure which satisfy
  • Patent Document 2 describes a system construction mechanism that extracts components (parts) that match preset conditions, determines the system configuration, and outputs the system configuration.
  • the component is, for example, a CPU, a memory, or a disk.
  • the conditions for extracting parts are system specifications such as the number and number of CPU clocks, memory capacity, and disk capacity, and user requirements such as budget and delivery date.
  • the system construction mechanism of this document includes an extraction function and a determination function.
  • the extraction function extracts components such as a CPU, memory, and disk that satisfy the system specifications from the component specification table.
  • the judgment function excludes parts that cannot be delivered before the delivery deadline in the user requirements from the parts extracted by the extraction function. In addition, the judgment function excludes parts that would not satisfy the price limit when adopted.
  • Patent Document 3 describes a configuration derivation method and a configuration derivation device for calculating a system configuration in which the probability that a transaction processing time exceeds a predetermined response time is equal to or less than a predetermined value and the price is minimum.
  • the configuration deriving device of Patent Document 3 obtains a system configuration in which a performance function, which is a function representing performance, satisfies a constraint condition and minimizes a price function as an objective function, using Lagrange's undetermined multiplier method.
  • the performance function and the price function are functions having system configuration data as variables.
  • the constraint condition is that the probability that the transaction processing time is equal to or longer than the response time A is equal to or lower than B when executing the performance guarantee target job.
  • the system configuration parameters are CPU performance S, CPU number NCPU, total memory capacity M, I / O (Input / Output) processing speed I, and number of jobs that can be executed simultaneously NJ.
  • the configuration deriving device of Patent Document 3 repeats the following process while increasing the number of CPUs by 1 from 1 to the maximum number of CPUs that can be added.
  • the configuration deriving device of Patent Document 3 first calculates the optimum system parameters (S, M, I) when the number of CPUs NCPU is fixed by the Lagrange's undetermined multiplier method.
  • the configuration deriving device of Patent Literature 3 searches the price data for an actual system parameter set having the smallest distance to the optimum system parameter obtained by calculation.
  • the configuration deriving device of Patent Document 3 is a parameter set of a system configuration that minimizes the price from an optimized system configuration for each number of CPUs derived by increasing the number of CPUs from 1 to the maximum number of CPUs that can be added. (NCPU, S, M, I) is determined.
  • the configuration deriving device of Patent Document 3 calculates the number NJ of jobs that can be executed simultaneously for the calculated system variables (S, NCPU, M, I).
  • the system proposing device of Patent Document 1 formulates a plurality of configurations each combining system components, connection relationships between the components, application behavior, use of each resource, and parameter specification. And this system proposal apparatus calculates the response time and price of all the structure which were formulated, and outputs the structure which satisfy
  • the system construction mechanism of Patent Document 2 extracts parts for each type that satisfy the conditions defined for each type of part, and the total price of the parts selected for each type from the extracted parts is less than a predetermined value Select the combination of parts to become.
  • Patent Document 2 a combination of a plurality of types of components having two types of indexes, and the total of the other indexes among the combinations in which the total value of one of the components included in the combination is equal to or greater than a predetermined value.
  • the system configuration deriving device of Patent Document 3 calculates optimal system configuration parameters for all the CPU numbers from 1 to the maximum number of CPUs that can be added, and selects a system configuration parameter set with the lowest price from among them. It was.
  • the technique of Patent Document 3 has a problem that it is assumed that the performance of each CPU is the same.
  • An object of the present invention is to calculate a combination of a plurality of types of devices having two different indexes with a small number of device combinations in which the total of one index is equal to or greater than a predetermined value and the total of the other index is minimum.
  • the object is to provide a configuration management device derived by quantity.
  • the configuration management apparatus of the present invention is configured of devices associated with the first index value P1 and the second index value P2 for each of a plurality (J) of types, and a set of devices in which the total of P1 is equal to or greater than the necessary value N Is the satisfaction set, and the minimum value in the total satisfaction set of P2 is the minimum total, the device storage means for storing P1 and P2 for each device type, and the initial value is a value equal to or greater than the minimum total
  • Temporary solution storage means for storing information representing a provisional solution and a provisional set in which the sum of P2 is a set of devices that is the provisional solution, and 1st to jth (j is an integer from 1 to J-1)
  • Search range storage means for storing n (1) to n (j), which is the number of devices of the same type, and N, and n (j + 1) is changed from 0 to n (1) to n (j ) Only the 1st to jth types of devices and the j +
  • N (j + 1) is stored in the search range storage means while sequentially increasing to a predetermined value (j + 1) that is less than or equal to the minimum number p (j + 1) of the j + 1th type of devices, and N and 1 to j + 1th
  • the search that is a collection of satisfying sets in which the number of the first to j + 1 type devices from P1 and P2 of the types of devices is n (1) to n (j + 1) stored in the search range storage means.
  • the lower limit value of the sum of P2 of the set included in the range (j + 1) is calculated by removing the restriction that the number of devices is an integer, and when the lower limit value is smaller than the provisional solution, the search range (j + 1) ) From which the sum of P2 is smaller than the provisional solution, and the information indicating the sum of P2 of the extracted fulfillment set and the extracted satisfaction set is stored in the provisional solution storage means as a provisional solution and provisional set.
  • Store Search execution means that does not search the search range (j + 1) when the lower limit value is larger than the provisional solution; and output means that outputs the provisional set as a minimum set after the search is executed by the search execution means; including.
  • the configuration management method includes a set of devices each of which is associated with the first index value P1 and the second index value P2 for each of a plurality of types (J), and the total of P1 is equal to or greater than the necessary value N. Is the satisfaction set and the minimum value in the total satisfaction set of P2 is the minimum total, P1 and P2 are stored in the device storage means for each type of device, and the initial value is equal to or greater than the minimum total.
  • n (j + 1) is changed from 0 to n (1) to n (j )
  • n (j + 1) is stored in the search range storage means, and N and the 1st to j + 1th type devices From the devices P1 and P2, the search range (1 to j + 1) is a collection of satisfying sets in which n (1) to n (
  • j + 1) is calculated by removing the lower limit value of the total of P2 of the set included in the set, and the number of devices is an integer, and when the lower limit value is smaller than the provisional solution, from the search range (j + 1) , P2 is extracted with a sum smaller than the provisional solution, and the information indicating the sum of P2 and the extracted satisfaction set is stored as a provisional solution and provisional set in the provisional solution storage means. ,in front If the lower limit value is greater than the interim solution, without searching of the search range (j + 1), after the execution of the search, and outputs the provisional set as the minimum set.
  • the configuration management program of the present invention is composed of devices associated with the first index value P1 and the second index value P2 for each of a plurality (J) of types, and a set of devices in which the total of P1 is equal to or greater than the necessary value N Is the satisfaction set, the minimum value in the total satisfaction set of P2 is the minimum total, the computer is stored for each device type, device storage means for storing P1 and P2, and the initial value is equal to or greater than the minimum total
  • Temporary solution storage means for storing information representing a provisional solution that is a value, and a provisional set that is a set of devices for which the sum of P2 is the provisional solution, and 1st to jth (j is any one of 1 to J-1)
  • Search range storage means for storing n (1) to n (j), which is the number of devices of type (integer), and N, and n (j + 1) is changed from 0 to n (1), respectively.
  • n (j) 1st to jth type devices and j + 1th type devices Storing n (j + 1) in the search range storage means while sequentially increasing to a predetermined value (j + 1) which is less than or equal to the minimum number p (j + 1) of j + 1 type devices when a satisfaction set is configured with From P1 and P2 of N and 1 to j + 1 type devices, the number of 1 to j + 1 type devices is n (1) to n (j + 1) stored in the search range storage means
  • the lower limit value of the total of P2 of the set included in the search range (j + 1) that is a set of sets is calculated by removing the restriction that the number of devices is an integer, and the lower limit value is smaller than the provisional solution.
  • a satisfaction set in which the sum of P2 is smaller than the provisional solution is extracted from the search range (j + 1), and information indicating the sum of P2 of the extracted satisfaction sets and the extracted satisfaction set is obtained as the provisional solution and the provisional set.
  • the search execution means that does not search the search range (j + 1) and the temporary set is minimized after execution of the search by the search execution means. Operate as output means for outputting as a set.
  • a combination of a plurality of types of devices having two different indices that satisfies the condition that the sum of one index is equal to or greater than a predetermined value and that minimizes the other index is minimized.
  • FIG. 1 is a block diagram showing the configuration of the configuration management apparatus 1 according to the first embodiment of the present invention.
  • the configuration management apparatus 1 of the present embodiment includes a device storage unit 10, a provisional solution storage unit 11, a search range storage unit 12, a search execution unit 13, and an output unit 14.
  • the configuration management device 1 may include an initial solution calculation unit 15 and an index acquisition unit 16.
  • a terminal 2 is connected to the configuration management apparatus 1.
  • a server 3 including a file 31 may be connected to the configuration management device 1. Note that the server 3 does not exist, and the configuration management device 1 may include the file 31.
  • the configuration management apparatus 1 can be realized by a computer and a program for controlling the computer, dedicated hardware, or a combination of the computer and the program for controlling the computer and dedicated hardware.
  • the device storage unit 10, the provisional solution storage unit 11, and the search range storage unit 12 can be realized by a memory or a hard disk device included in the computer.
  • the search execution unit 13, the output unit 14, the initial solution calculation unit 15, and the index acquisition unit 16 are dedicated for realizing the function of each unit read into a memory from a recording medium that stores a program, for example. And a processor that executes the program.
  • the device storage unit 10 stores, for each type, two indexes of a plurality of types (J types) of devices having at least two different indexes.
  • the device is, for example, a calculation device such as a server, a CPU, or the like.
  • the first indicator (P1) is, for example, an indicator representing the performance of the device.
  • the index indicating the performance is, for example, an index such as a throughput, a MIPS value, or a FLOPS (Floating point number Operations Per Second) value.
  • the first index may be an index representing reliability, availability, and the like, for example.
  • the second indicator (P2) is, for example, an indicator representing the cost of the device.
  • the index representing the cost is an index that affects the cost of system construction and operation, such as price, power consumption, amount of exhaust heat, weight, installation space, and the like.
  • the second index may be a value such as the number of parts constituting the device, for example.
  • the first index represents performance
  • the second index is price
  • the performance of the computer system configured by a set of one or more devices selected from a plurality of types of devices Is represented by the sum of the first indices of the devices included in the set.
  • the price of this computer system is the total of the second index of the devices included in the set.
  • the set in which the sum of the second indexes is the smallest among the set of devices (satisfaction set) in which the sum of the first indexes exceeds a predetermined value (necessary value) is the minimum set.
  • the sum of the second index of the devices belonging to the minimum set is the minimum total.
  • the necessary value may be, for example, a value input to the device configuration apparatus 1 by the user via an input unit (not shown) provided in the terminal 2.
  • a set in which the sum of the second indices is the smallest among the satisfaction sets in which the search execution unit 13 described later has already performed a search described later is a provisional set.
  • index of the apparatus which belongs to a provisional set is a provisional solution.
  • the number of devices of each type that can be included in a set of devices is not limited. In general, the problem of deriving the optimal combination of devices under a predetermined condition without limiting the number of devices of each type that can be included in the set of devices is called an unlimited problem.
  • the index acquisition unit 16 may acquire these indexes from the file 31 as described later. Further, for example, the user may input these indices into the configuration management apparatus 1 via the terminal 2 and store them in the device storage unit 10.
  • the initial solution calculation unit 15 calculates the initial value (initial solution) of the provisional solution using, for example, a method (heuristics) for obtaining a reasonably good solution with high probability. Heuristics does not necessarily have to be a way to calculate the minimum total. The heuristics may be any method that can extract a set of devices in which the total of the first index exceeds the required value in a shorter time than the method of always calculating the minimum total. Since heuristics is not necessarily a method for calculating the minimum total, the initial value of the provisional solution calculated by the initial solution calculation unit 15 is a value equal to or greater than the minimum total. An example of heuristic used by the initial solution calculation unit 15 will be described later.
  • the initial solution calculation unit 15 stores the calculated initial value of the temporary solution and information indicating a corresponding set of devices (initial value of the temporary set) in the temporary solution storage unit 11.
  • the provisional solution storage unit 11 stores provisional solutions and information representing provisional sets. As described above, the provisional solution stored in the provisional solution storage unit 11 in the initial state and the information representing the provisional set represent, for example, the initial value of the provisional solution calculated by the initial solution calculation unit 15 and the initial value of the provisional set. Any information may be used.
  • the provisional solution storage unit 11 may not store the initial value of the provisional solution calculated by the initial solution calculation unit 15, but may store in advance a sufficiently large value that can be expressed on a computer as a provisional solution. In this case, the provisional solution storage unit 11 may not store a provisional set corresponding to the provisional solution in the initial state. Furthermore, in this case, the initial solution calculation unit 15 may not exist. However, in this case, there is a high possibility that the search efficiency is reduced.
  • the search range storage unit 12 stores n (1) to n (j), which is the number of devices of the first to jth (j is an integer of 1 to J-1) type.
  • the search execution unit 13 described later can read the number of devices stored in the search range storage unit 12 and set a set of devices determined based on the read number of devices as a search target. For example, when the search range storage unit 12 stores n (1) to n (j), which is the number of devices of the 1st to jth types, the search execution unit 13 selects the 1st to jth type of devices. A set of devices whose number of devices is n (1) to n (j), respectively, may be searched. In this case, n (1) to n (j) stored in the search range storage unit 12 represent a search range that is a set of devices to be searched.
  • the search execution unit 13 selects, from a search range that is a set of sets (the above-described satisfaction set) in which the sum of the first indices is equal to or greater than a necessary value among a set of devices composed of a plurality of types of devices, A search is performed to extract a combination of devices whose total index is equal to or less than the provisional solution.
  • the search execution unit 13 divides the search range into a plurality of search ranges during the search. And the search execution part 13 determines the presence or absence of possibility of including the minimum set for every divided
  • the provisional set after the search execution unit 13 completes the search for all the search ranges that are not excluded from the search targets is the minimum set.
  • the output unit 14 outputs information representing the temporary set stored in the temporary solution storage unit 11 to the terminal 2 as information representing the minimum set.
  • the terminal 2 displays information representing the minimum set output by the output unit 14.
  • the display by the terminal 2 may be in any format as long as it can be understood how many types of devices are included in the minimum set.
  • the index acquisition unit 16 extracts, for example, the first index and the second index of each device included in the file 31 stored in the server 3 and stores them in the device storage unit 10.
  • the server 3 may be the same device as the configuration management device 1, for example, may be another device that is communicably connected via a network.
  • the file 31 includes, for example, one or a plurality of files that make up one or a plurality of web pages in which specifications of each device are disclosed on the Internet by a vendor of each device, and specifications of each device. It is a file that makes up the database that contains it.
  • the index acquisition unit 16 acquires the file 31 in accordance with a user instruction that specifies a URI (Uniform Resource Identifier) that identifies a web page or the like via an input unit (not illustrated) of the terminal 2.
  • the index acquisition unit 16 uses the first index and the second index of each device included in the file 31 as a key, for example, a character string such as “performance”, “price”, “power consumption”, “number of parts”, etc. Extract.
  • the index acquisition unit 16 stores the extracted first index and second index of each device in the device storage unit 10.
  • the index acquisition unit 16 may acquire the first index and the second index from the database according to an instruction that specifies a query to the database or the like via an input unit (not illustrated) of the terminal 2.
  • the index acquisition unit 16 may extract information for obtaining an index (for example, the CPU and the number of clocks of the device) from the file 31. Then, the index acquisition unit 16 may acquire the first index and the second index from the database in which the index is stored based on the extracted information.
  • the index acquisition unit 16, the server 3, and the file 31 may not exist.
  • FIG. 2 is a flowchart illustrating an example of an operation in which the configuration management apparatus 1 according to the present embodiment acquires a device index.
  • the index acquisition unit 16 first receives an instruction via, for example, an input unit (not shown) of the terminal 2 and acquires a file 31 including a first index and a second index for each type of device. (Step S61).
  • FIG. 3 is a flowchart showing an overall example of an operation in which the configuration management apparatus 1 of the present embodiment extracts a minimum set (solution).
  • the search execution unit 13 of the configuration management apparatus 1 first receives the necessary value N via an input unit (not shown) of the terminal 2 (step S1).
  • the initial solution calculation unit 15 for example, based on the necessary value N received from the search execution unit 13 and the first index and the second index of each device type received from the device storage unit 10.
  • the initial value of the provisional solution is calculated using tics (step S2).
  • the initial solution calculation unit 15 stores the temporary solution storage unit 11 together with information representing the temporary set corresponding to the temporary solution.
  • Examples of heuristics in which the initial solution calculation unit 15 of the present embodiment calculates the initial value of the provisional solution are as follows. For example, the initial solution calculation unit 15 may calculate a ratio (index ratio) of the first index to the second index for each type of device. Then, the initial solution calculation unit 15 may calculate the minimum number of devices when the satisfaction set is configured by only the types of devices having the largest index ratio. The initial solution calculation unit 15 may set an initial value of the provisional set to a set composed of the types of devices having the smallest calculated index number and the largest index ratio.
  • FIG. 5 is a diagram illustrating an example of device information (first index and second index for each type of device) stored in the device storage unit 10.
  • the device storage unit 10 stores a first index and a second index of three types of devices, model A to model C.
  • the initial solution calculation unit 15 reads these indexes from the device storage unit 10 and calculates an index ratio for each type of device.
  • FIG. 6 is a diagram illustrating an index ratio calculated from the example of the device information illustrated in FIG. Referring to FIG.
  • model C has the largest index ratio, and the index ratio is 0.88.
  • the first index of the model C is 7, and 15/7 is about 2.14. Therefore, in order to satisfy the required value with only the model C, three models C are required. is necessary.
  • the total of the second index of the set composed of the three models C is 24.
  • the initial solution calculation unit 15 may store 24 as the temporary solution in the temporary solution storage unit 11. Then, the initial solution calculation unit 15 may store information representing a set including three models C as a temporary set in the temporary solution storage unit 11. FIG.
  • the search execution unit 13 includes a plurality of types of devices in combination, and the minimum set in which the total of the second index is the minimum from the set in which the total value of the first index is equal to or greater than the necessary value N
  • a search which is a process for extracting, is performed (step S3).
  • the search execution unit 13 performs a search based on the branch and bound method. Although details will be described in the description of FIG. 4, the search based on the branch and bound method is roughly as follows.
  • the search execution unit 13 divides the search range into a plurality of search ranges before exhaustively searching the search range that is a set of devices. Then, the search execution unit 13 determines whether or not there is a possibility that the minimum set is included in the divided search range.
  • the search execution unit 13 divides the search range by setting a set of devices that are included in the search range and the same number of devices of a certain type of device as a new search range. Good.
  • the search execution unit 13 searches for n (j) from n (1). What is necessary is just to read from the range memory
  • the search execution unit 13 may set a set of devices having the number of first to jth types of devices from n (1) to n (j) as a search range (search range (j)). For the search range (j) determined in this way when the search range storage unit 12 stores n (1) to n (j), the search performed by the search execution unit 13 is “search (j)”. It is. In the search (j), the search execution unit 13 divides the search range (j) read from the search range storage unit 12 by n (1) to n (j) into a plurality of search ranges. Then, the search execution unit 13 determines whether or not there is a possibility that the minimum set is included in the divided search range.
  • the search execution unit 13 may divide the search range (j) into a collection of sets in which the number of devices of the (j + 1) th type is the same. For example, when the search range (j) is divided and a set of devices having a certain value n (j + 1) of the number of j + 1th type devices is set as a new search range, the search execution unit 13 uses the value.
  • a certain n (j + 1) may be stored in the search range storage unit 12.
  • the search range determined by n (1) to n (j + 1) stored in the search range storage unit 12 is the search range (j + 1).
  • the search performed by the search execution unit 13 for the search range (j + 1) is the search (j + 1).
  • Search (0) is a search performed by the search execution unit 13 for the search range when the search range storage unit 12 does not store the number of devices of any type.
  • the search range when the search range storage unit 12 does not store the number of devices of any type is the initial value of the search range (search range (0)).
  • the search range (0) will be described later.
  • the search execution unit 13 may determine whether or not there is a possibility that the search range includes the minimum set by comparing the theoretical lower limit value of the second index of the device included in the search range with the provisional solution.
  • the search execution part 13 should just calculate this lower limit, for example using a relaxation method. When the lower limit value is larger than the provisional solution, there is no possibility that the search range includes a set in which the sum of the second indices is smaller than the provisional solution.
  • the search execution unit 13 excludes the search range from the search target (pruning) and does not perform a search for the search range. If the lower limit value is smaller than the provisional solution, these sets may include a set in which the sum of the second indices is a smaller value than the provisional solution. In this case, the search execution unit 13 executes a search for these sets. This determination process for determining whether to perform a search is a limited operation.
  • the search execution unit 13 may further divide the search range determined to require search into a plurality of search ranges and determine whether a search is necessary or unnecessary in each of the divided search ranges.
  • the search execution part 13 should just perform a search only in the search range determined to require a search among the further divided search ranges.
  • the search execution unit 13 does not have to include in the search range a sufficiency set in which the sum of the second indices is clearly not the minimum sum. For example, when the satisfaction set is composed of only the first type of device, the total of the second index of the satisfaction set including the first type of devices more than the minimum number of devices p (1) is Obviously not the minimum sum.
  • the search execution unit 13 may exclude such a set from the search range. For example, the search execution unit 13 calculates the minimum number p (1) of devices when a satisfaction set is configured by only the first type of device, and the first device is 0 or more and not more than p (1).
  • a collection of a certain satisfaction set may be used as an initial value of the search range (search range (0)).
  • the search execution unit 13 reads the first index and the second index of the first type of device from the device storage unit 10, and based on the necessary value N and the read first index and second index. , P (1) may be calculated. Note that the order of device types may be any order, but search efficiency may be improved if the index ratio is increased or decreased.
  • the process of step S3 will be described in detail in the description of FIG.
  • the output unit 14 reads information representing the temporary set stored in the temporary solution storage unit 11 and outputs the information to the terminal 2 (step S4).
  • the provisional solution stored in the provisional solution storage unit 11 is 20, and the information indicating the provisional set represents that “model A is one, model B is one, and model C is one”.
  • the output unit 14 may output information representing the provisional set to the terminal 2 in a predetermined format, for example. For example, even if the output format is data such as “((A, 1), (B, 1), (C, 1))”, “model A: 1 unit, model B: 1 unit, model A character string such as “C: 1” may be used.
  • the output unit 14 may output a provisional solution.
  • FIG. 4 is a flowchart showing an example of the operation of the configuration management apparatus 1 during the search in step S2. Referring to FIG. 4, the search execution unit 13 is given a j indicating the order of the device types (j is any integer from 1 to J ⁇ 1) and starts the search process.
  • the search range storage unit 12 stores the number of first to j-th types of devices (n (1) to n (j), respectively) at the start of the search operation.
  • the set of devices to be searched in search (j) is a set of devices in which the number of first to jth devices is n (1) to n (j), respectively. Therefore, the search range (j), which is a collection of devices to be searched in the search (j), is stored in each type of device stored in the search range storage unit 12 at the start of the search (j) operation.
  • the number n (1) to n (j) is determined. However, when j is 0, the number of devices is not stored in the search range storage unit 12.
  • the search range is an initial value (search range (0)).
  • the search (0) in step S3 in FIG. 3 means that the search execution unit 13 performs the process shown in FIG. 4 on the search range (0).
  • the search execution unit 13 reads the number n (1) to n (j) of the first to j ⁇ 1th types of devices from the search range storage unit 12. (Step S12).
  • the search range is a collection of a set of devices in which the number of first to jth devices is n (1) to n (j), respectively.
  • the search execution unit 13 sets the minimum of the (j + 1) th device when the satisfying set is composed of the 1st to jth types of devices having the number n (1) to n (j) and the (j + 1) th device.
  • the number p (j + 1) is calculated (step S13).
  • the search execution unit 13 calculates p (j + 1) from the necessary value N, the values from n (1) to n (j), and the first index of the first to j + 1th types of devices read from the device storage unit 10. ) May be calculated.
  • the minimum number p (j + 1) of j + 1 type devices when a satisfaction set is configured by only the 1st to j + 1 type devices according to the values from n (1) to n (j).
  • the method of calculating is “fine method”. Specifically, the search execution unit 13 may first calculate the sum of the first indices of n (1) to n (j) 1st to jth types of devices. Next, the search execution part 13 should just calculate the difference of the sum of the required value N and the calculated 1st parameter
  • the search execution unit 13 calculates the maximum number r (j + 1) of the (j + 1) th type devices included in the search target set (step S14).
  • the search execution unit 13 may set p (j + 1) to r (j + 1).
  • the search execution unit 13 determines the smaller one of p (j + 1) and the maximum number of j + 1 type devices as r (j + 1). ). In this case, the value of r (j + 1) is less than or equal to p (j + 1).
  • the search execution unit 13 may calculate the minimum number of devices when the satisfaction set is configured by only the j + 1th device, and may be set to r (j + 1). As described above, the minimum number when the satisfaction set is configured only by the (j + 1) th type of device is calculated and set as a search target regardless of the number of the first to jth types of devices constituting the device set.
  • the method of setting the maximum number of j + 1 type devices in the set of devices is the “rough method”.
  • the search execution unit 13 When calculating r (j + 1) by a rough method, the search execution unit 13 divides the necessary value by the first index of each model, and if it is not divisible, the value obtained by rounding up after the decimal point is set to r (j + 1). Good. When the number of j + 1 types of devices that can be included in the set is limited, the search execution unit 13 determines the minimum number of devices and the j + 1 type of devices when the satisfaction set is configured by only the j + 1th device. It is sufficient that the smaller one of the maximum number is set to r (j + 1). When calculating r (j + 1) by a rough method, the search execution part 13 does not need to perform the process of step S13.
  • R (j + 1) calculated by the rough method is a value equal to or larger than r (j + 1) calculated by the fine method.
  • the search execution unit 13 can perform processing by representing a set of devices to be searched as data of an existing search tree in an arbitrary format.
  • the search execution unit 13 may appropriately expand the search range into a search tree and store the search range in the search range storage unit 12, for example.
  • FIG. 8 is a diagram illustrating a part of an example of a search tree in the example of the device illustrated in FIG.
  • the model A, model B, and model C in FIG. 8 correspond to the first to third types of devices, respectively.
  • circles represent nodes, and lines connecting the nodes represent branches. This search tree has four hierarchies.
  • the node at the top is a root node
  • the node at the lowest (fourth hierarchy) is a leaf node
  • the nodes between them are intermediate nodes.
  • the second to fourth layers correspond to the first to third types of devices (in order, model A, model B, and model C).
  • the numbers written on the nodes in each layer other than the top represent the number of corresponding models.
  • Each path from the root node to the leaf node corresponds to a set of models. For example, the route from the root node to the number 0 of model A, the number 0 of model B, and the number 3 of model C in FIG. 5 represents a set of three models C.
  • a node corresponding to “0 model A” is represented as (A, 0), and a set of devices is represented by ((A, 0), (B, 0), (C, 3). ).
  • a search range in which the number n (1) of the first type (model A) is 0 and the number n (2) of the second type (model B) is 0 is represented.
  • the search execution unit 13 operates from the root node corresponding to the set of devices to the root node corresponding to the last (J-th) type device from the root node. This corresponds to extracting the minimum set by sequentially searching the route to the leaf node. For example, in the case of the example of FIG. 5, if the search execution unit 13 expands all the nodes, first, the nodes (A, 0) to (A, 5), which are the lower-level nodes of the root node, are expanded. To do.
  • the search execution unit 13 is the node (A, 0), which is the next lower node ((A, 0), (B, 0)) to ((A, 0), (B, 3)). Expand.
  • the search execution unit 13 performs a search by expanding the node in the lower layer because the node in the lower layer of the node ((A, 0), (B, 0)) is a leaf node.
  • the search execution unit 13 performs a search by expanding the nodes in the lower layer of ((A, 0), (B, 3)) from ((A, 0), (B, 1)).
  • the search execution unit 13 When the expansion and search of all the nodes on the route including the node (A, 0) are completed, the search execution unit 13 similarly expands and searches all the nodes on the route including the node (A, 1). .
  • the search execution part 13 of this embodiment does not necessarily expand and search all nodes, as will be described below.
  • the search execution unit 13 calculates the lower limit value of the second index of the set of devices corresponding to all the routes passing through the node in each expanded node, and when the lower limit value exceeds the provisional solution, “Pruning” is performed to exclude all routes passing through the node from the search target.
  • the search execution unit 13 calculates the total of the second index of the set of devices corresponding to the route to the leaf node when the leaf node is expanded without performing pruning at the intermediate node, and is compared with the provisional solution. To do. When the total of the calculated second index falls below the provisional solution, the search execution unit 13 sets the total as a new provisional solution and the corresponding set of devices as a new provisional set.
  • step S14 corresponds to calculating the number of branches to the node in the lower layer when each node expands the node in the lower layer. The number of branches from each node to the node one level lower is the branching coefficient.
  • the branch coefficient in the node corresponding to the j ⁇ 1th device is searched from the number of each of the 1st to j ⁇ 1th devices corresponding to the node. This is a value obtained by adding 1 to r (j) calculated by the unit 13.
  • the branching coefficient of the node below the third hierarchy corresponding to the second or more types of devices is calculated by the number of corresponding devices corresponding to the nodes on the route from the root node to the node.
  • This is a method of calculating based on the difference between the total of the first index and the required value. For example, in the case of a set corresponding to a route passing through a node represented by (A, 3), the total of the first indices of three models A corresponding to the node is 9.
  • the branching coefficient of the node represented by (A, 3) calculated by a fine method is a value obtained by adding 1 to the value obtained by rounding up the value obtained by dividing 6 by 5 which is the first index of model B. It is 3.
  • the detailed method has a feature that it is necessary to calculate a branching coefficient for each node, and a large amount of calculation is required to calculate the total number of combinations when there are many layers (when there are many types of devices).
  • the fine method is further characterized in that the number of nodes can be reduced and search efficiency can be improved. There is no possibility that the path corresponding to the minimum set passes through nodes other than the branch node based on the branch coefficient calculated by the fine method. Therefore, it is necessary to search only a route that passes through a branch node generated based on a branch coefficient calculated by a fine method.
  • the branch coefficient calculated by the rough method is a value equal to or greater than the branch coefficient calculated for each node by the fine method. Since the rough method calculates the branch coefficient for each type of device instead of calculating the branch coefficient for each node, the calculation amount for calculating the branch coefficient is smaller than that of the fine method.
  • the search execution unit 13 performs the following processing while sequentially increasing n (j + 1) representing the number of the j + 1th type of devices from 0 to r (j + 1) (step S15). First, the search execution unit 13 stores n (j + 1) representing the number of j + 1-th type devices in the search range storage unit 12 (step S16).
  • the search execution unit 13 searches for n (j + 1) in a form in which it is possible to determine that n (j + 1) represents the number of devices of the j + 1th type, for example, storing n (j + 1) in association with j + 1. What is necessary is just to store in the range memory
  • the number of devices of each type already stored in the search range storage unit 12 and n (j + 1) represent the search range (search range (j + 1)).
  • the search execution unit 13 sets the lower limit of the total value of the second index of the set included in the search range (j + 1) represented by n (1) to n (j + 1) stored in the search range storage unit 12. A value is calculated (step S17).
  • the search execution part 13 should just calculate a lower limit by the relaxation method as mentioned above.
  • the relaxation method is a method of calculating an optimal solution for a relaxation problem that eases the restriction of the original problem and makes it easy to explain.
  • the optimal solution of the relaxation problem is generally a better solution than the optimal solution of the original problem. For example, when the original problem is a problem of calculating a minimum value, the minimum value that is the optimal solution of the relaxation problem of the problem is generally smaller than the minimum value that is the solution of the original problem. Therefore, the solution of the relaxation problem can be the lower limit value of the solution of the original problem.
  • a typical mitigation problem is, for example, when the restriction that the device is used in units of one and the number of devices is an integer is imposed on the original problem, the restriction is relaxed and one device is Is a problem that allows the number of devices to be real numbers.
  • the relaxation of the restriction for the search execution unit 13 of the present embodiment to calculate the lower limit value may be to remove the restriction that the number of devices is an integer and to allow a real number.
  • the sum of the first index and the second index is the same as the case where the number of devices is an integer. It is the value multiplied by the number.
  • the minimum value of the total of the second index of the set of devices in which the total of the first index is equal to or greater than the predetermined value is the index ratio in which the total of the first index is the predetermined value. Is obtained by calculating the sum of the second index of the set of devices composed of only the types of devices having the largest. The sum of the second index of any set of devices in which the sum of the first index is equal to or greater than a predetermined value does not fall below this minimum value.
  • the number of 1st to j + 1th types of devices in the set included in the search range (j + 1) is n (1) to n (j + 1).
  • the remaining required value is a value obtained by subtracting the total of the first index of the 1st to j + 1th types of devices from n (1) to n (j + 1) from the required value.
  • the type of the device having the largest index value among the j + 2 to Jth types of devices is the model X.
  • the search execution unit 13 is included in the search range (j + 1), and a model of a satisfaction set composed of the first to j + 1th types of devices and the remaining types of devices (model X) having the largest index ratio.
  • the minimum number of Xs may be calculated by removing the restriction that the number of models X is an integer.
  • the search execution unit 13 calculates the total of the second index of the first to j + 1 type devices from n (1) to n (j + 1) units and the calculated minimum number of models X as the search range (j + 1).
  • the lower limit value of the total of the second indices may be used.
  • the search execution unit 13 may read the first index of the first to j + 1th types of devices from the device storage unit 10.
  • the search execution part 13 should just read n (1) to n (j + 1) which is the number of the 1st thru
  • the search execution unit 13 may add a value obtained by multiplying the first index of each type of device read from the device storage unit 10 by the number of corresponding types of devices read from the search range storage unit 12. In this way, the search execution unit 13 may calculate the sum of the first indices of the first to j + 1 type devices from n (1) to n (j + 1). Next, the search execution part 13 should just read each parameter
  • the search execution unit 13 may read the index ratios of the j + 2 to Jth type devices from the device storage unit 10 when selecting the type of device having the largest index ratio.
  • the search execution unit 13 selects a device having the largest index ratio among the devices of the j + 2 to Jth types.
  • the search execution unit 13 calculates a real value (relaxed number) obtained by dividing the difference between the necessary value and the calculated total of the first index by the first index of the device type having the largest index ratio.
  • the search execution unit 13 sets the second index of the first to j + 1 type devices from n (1) to n (j + 1) units, and the j + 2 type device having the calculated real value as the number. Calculate the total.
  • the search execution unit 13 sets the calculated sum as the lower limit value of the sum of the second index of the search range (j + 1).
  • the search execution unit 13 multiplies the value obtained by multiplying the calculated real value by the second index of the j + 2nd type device to the sum of the second index of the j + 2th type device using the calculated real value as the number of units. do it.
  • the device type with the largest index ratio is model C. In the case where the number is allowed to be a real number, the number of models C in which the total of the first index is 15 is 15/7.
  • the total of the second index of 15/7 model C is 15/7 ⁇ 8 ⁇ 17.14. Since the number of the model A is 0, this is the lower limit value regarding the sum of the second index obtained by the search after the intermediate node (A, 0). When model A is zero, it is theoretically impossible to obtain a solution smaller than 17.14 with respect to the total of the second index. Therefore, if the provisional solution is smaller than the calculated lower limit value of 17.14, there is no possibility that the sum of the second indices of the nodes in the route passing through the intermediate node (A, 0) is less than the provisional solution. . In this case, the search execution unit 13 does not search for a route that passes through the intermediate node (A, 0).
  • the search execution unit 13 searches for a route that passes through the intermediate node (A, 0).
  • the search execution unit 13 compares the provisional solution read from the provisional solution storage unit 11 with the lower limit value of the total of the second indexes of the calculated search range (j + 1).
  • the search range is represented by the intermediate node (A, 0) in FIG.
  • the lower limit value of the second index of the search range is about 17.14. So the lower limit is smaller than the provisional solution.
  • the search range (j + 1) includes a sufficient set in which the sum of the second indices is less than the provisional solution.
  • the search execution unit 13 does not search in the search range (j + 1) and returns to step S15.
  • the search execution unit 13 determines in step S18 that the provisional solution is below the lower limit (step S18, N).
  • the search execution unit 13 performs a search for the search range represented by the node (A, 2). Absent. Similarly, the search execution unit 13 does not perform a search for the search range represented by each of the nodes (A, 3), (A, 4), and (A, 5).
  • the search range (j + 1) includes a sufficient set in which the sum of the second indices is less than the provisional solution.
  • the search execution unit 13 searches for the minimum set in the search range (j + 1).
  • the search method for the search set is arbitrary.
  • the search execution unit 13 calculates the sum of the first indices of all the sets included in the search range (j + 1), and if the sum of the first indices is equal to or greater than the necessary value, the sum of the second indices A search may be performed by calculating and comparing with a provisional solution.
  • the search execution unit 13 may first calculate p (j + 2) by the same process as in step S13.
  • the search execution unit 13 may set an integer from 0 to p (j + 2) as the number of devices of the j + 2nd type in the set included in the search range (j + 1).
  • the search execution unit 13 may calculate p (j + 3) in the case where the number of devices of the j + 2nd type is 0 to p (j + 2) by the same process as in step S13.
  • the search execution unit 13 may perform the same processing as in step S13 in this way until all combinations of the numbers of j + 2 to Jth types of devices are derived. In this way, the search execution unit 13 can generate all sets included in the search range (j + 1).
  • the search execution part 13 may perform a search as follows. When j is smaller than J-2 (step S19, Y), the search execution unit 13 increments j by 1 and performs the search operation of FIG. 4 recursively (step S20).
  • the search execution unit 13 further divides the search range (j + 1) in the same manner as described above. Then, the search execution unit 13 includes a set in which the total of the second index is less than the provisional solution in each search range (j + 2) obtained by dividing the search range (j + 1) according to the number of devices of the j + 2nd type. To determine whether or not Then, the search execution unit 13 searches in the search range (j + 2) according to the determination result.
  • the search execution unit 13 may perform the search operation of FIG. 4 recursively while increasing j by 1 until j becomes J-2.
  • the search range is represented by the intermediate node (A, 0) of the search tree described above, the lower limit value is smaller than the provisional solution, and j is 0 and J is 3, so j is J-2. Smaller than. Therefore, the search execution part 13 should just perform the process of FIG. 4 from the beginning with respect to the search range (1) represented by a node (A, 0). In this case, the search execution unit 13 divides the search range (1) represented by the node (A, 0) according to the number of second device types (model B) ((A, 0).
  • the search execution unit 13 determines, in the search range (j + 1), if there is a set of devices whose total of the second index is less than the provisional solution. Let the sum of the second index be the new provisional solution and the set be the new provisional set. When a new provisional solution and provisional set are found, the search execution unit 13 stores the new provisional solution and information representing the new provisional solution in the provisional solution storage unit 11, and updates the provisional solution and provisional set (step) S21).
  • the search range (j + 1) is a set of devices (where j (J-1) is n (1) to n (J-1)) when j is J-2. Search range (J-1)).
  • the search execution unit 13 may first calculate p (J) in the same manner as in step S13, and calculate r (J) in the same manner as in step S14.
  • p (J) is calculated by the above-described fine method
  • p (J) is a set included in the search range (J-1), and the Jth of the sufficient set that minimizes the sum of the second indices. Number of types of equipment.
  • r (J) is p (J).
  • the search execution unit 13 calculates the total of the second index when the number of J-th type devices is r (J), and the calculated total of the second index is the provisional solution storage unit 11. Compare with the provisional solution read from.
  • r (J) is calculated by the above-described rough method
  • the minimum value p (J) of the J-th type device in the satisfaction set included in the search range (J-1) is equal to or less than r (J).
  • the search execution unit 13 sequentially increases the number n (J) of the Jth type device from 0 while being included in the search range (J-1), and the number of the Jth type devices is n.
  • the sum of the first index of the set (J) is calculated.
  • the search execution unit 13 compares the calculated total of the first index with the necessary value, and first calculates the total of the second index of the set in which the total of the first index exceeds the necessary value.
  • the search execution unit 13 may compare the calculated total of the second indices with the provisional solution read from the provisional solution storage unit 11. If n (J) reaches r (J) without the total of the first index exceeding the required value, the search execution unit 13 does not update the provisional solution and provisional set, and the process of step S21 Can be terminated. As a result of the comparison, when the total of the calculated second index is less than the provisional solution, the search execution unit 13 may set the calculated total of the second index as a new provisional solution.
  • the search execution unit 13 stores the search range storage unit 12 from n (1) to n (J), which is the number of the first to J-1th types of devices representing the search range (J-1). ⁇ 1) and the set represented by the number of J-th type devices r (J) may be a new provisional set.
  • the search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11. As a result of the comparison, if the calculated total of the second indices exceeds the provisional solution, the search execution unit 13 does not update the information representing the provisional solution and the provisional set, and ends the process of step S21.
  • the search execution part 13 performs the process of step S21.
  • the search execution unit 13 calculates ((A, 0), (B, 1), (C, 0)), ((A, 0), (B, 1) when calculating r (j) by a rough method. ), (C, 1)), the total of the first index of the set of devices represented by (C, 1)) and the comparison with the required value are sequentially performed.
  • the first index and the second index of these devices stored in the device storage unit 10 are as in the example of FIG.
  • the search execution unit 13 calculates the sum of the first index of the set of devices represented by ((A, 0), (B, 1), (C, 2)). Since the obtained total 19 is larger than the necessary value 15, the search execution unit 13 calculates the sum of the second index of the set of devices.
  • the provisional solution stored in the provisional solution storage unit 11 is 24, 23, which is the total of the calculated second indexes, is smaller than the provisional solution.
  • the search execution unit 13 uses the calculated second index total 23 corresponding to the new provisional solution ((A, 0), (B, 1), (C, 2)). Is a new provisional set.
  • the search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11. After the search by the search execution unit 13 is completed, the output unit 14 reads out information representing the temporary set stored in the temporary solution storage unit 11 as described in step S3 of FIG. Just output.
  • the search execution unit 13 determines whether or not there is a possibility that the search range includes the minimum set for each search range represented by the number of some types of devices.
  • the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
  • the number of devices for each type of device is not limited, whereas the number of devices for each type of device of this modification is one or zero (problem 01).
  • the configuration management apparatus 1 according to the present modification outputs a set that is a satisfiable set that does not include two or more devices of the same type and that has the minimum sum of the second indices.
  • FIG. 1 is a diagram illustrating a configuration of a configuration management apparatus 1 according to the present modification.
  • the configuration of the configuration management device 1 according to this modification is the same as the configuration of the configuration management device 1 according to the first embodiment. Therefore, the description regarding the configuration is omitted.
  • FIG. 3 is a flowchart showing an example of the operation of the overall configuration for extracting the minimum set by the configuration management apparatus 1 of the present modification.
  • An example of the operation in which the configuration management apparatus 1 of the present modification extracts the minimum set is an example of the operation in which the configuration management apparatus 1 of the first embodiment extracts the minimum set and the calculation of the initial solution in step S2.
  • the method differs from the search method in step S3.
  • FIG. 9 is a flowchart illustrating an example of an operation in which the configuration management apparatus 1 according to the present modification calculates an initial solution.
  • the initial solution calculation unit 15 reads out the first index and the second index of all device types from the device storage unit 10 (step S31).
  • the initial solution calculation unit 15 calculates an index ratio of all device types (step S32).
  • the initial solution calculation unit 15 may sort the device types in descending order of the calculated index ratio. Next, the initial solution calculation unit 15 selects one type of device having the largest index ratio among the types of unselected devices (step S33). For example, the initial solution calculation unit 15 may read information on the temporary set stored in the temporary solution storage unit 11. The initial solution calculation unit 15 may update the provisional set by adding information on one selected type of device to the read provisional set information. The initial solution calculation unit 15 may store information on the updated temporary set in the temporary solution storage unit 11. If the provisional solution storage unit 11 does not store information on the provisional set, the initial solution calculation unit 15 may generate information on the provisional set composed of one selected type of device. The initial solution calculation unit 15 may store the information on the provisional set in the provisional solution storage unit 11.
  • the initial solution calculation unit 15 calculates the total of the first index of the type of the device that has already been selected (step S34). Note that the initial solution calculation unit 15 may calculate the cumulative total of the second index when executing the operation of step S34. Then, the initial solution calculation unit 15 may store the calculated cumulative total of the second indices in the temporary solution storage unit 11 as a temporary solution. For example, the initial solution calculation unit 15 may read the provisional solution that is the cumulative total of the second indices from the provisional solution storage unit 11. Then, the initial solution calculation unit 15 may add the second index of the type of device newly selected in step S33 to the read provisional solution. Then, the initial solution calculation unit 15 may store the combined provisional solution in the provisional solution storage unit 11.
  • the second index of the device of the type newly selected in step S33 may be stored in the provisional solution storage unit 11 as a provisional solution.
  • the initial solution calculation unit 15 compares the accumulated value of the first index of the selected device type with the required value.
  • the initial solution calculation unit 15 calculates the cumulative total of the second indexes of the selected device type, which is the initial value of the provisional solution, when the sum of the first indexes is equal to or greater than the necessary value (step S35, Y). (Step S36).
  • the initial solution calculation unit 15 stores the calculated cumulative total of the second indices in the temporary solution storage unit 11 as the initial value of the temporary solution (step S37).
  • step S34 when the cumulative total of the second index is stored in the temporary solution storage unit 11 as a temporary solution, in step S36, the cumulative total of the second index of the selected device type is the initial value of the temporary solution. There is no need to store it as a value.
  • step S35, Y when all the device types have not been selected and there are device types that have not yet been selected (step S38, N), The process returns to step S33.
  • step S38, Y the initial solution calculation process is terminated.
  • FIG. 10 is a flowchart illustrating an example of a detailed operation of the search of the configuration management apparatus 1 according to this modification. Comparing the flowcharts representing the search operation of the first embodiment in FIG. 10 and FIG. 4, the present modification is different in that step S13 and step S14 are not included, and step S22 is included instead of step S15. In the present modification, the maximum number of devices of each type is 1, so r (j + 1) is always 1. Therefore, step S13 and step S14 for calculating r (j + 1) are unnecessary.
  • Step S22 corresponds to step S15 in the case where r (j + 1) is always 1. Further, the operation of the configuration management device 1 of this modification is different from the operation of the configuration management device 1 of the first embodiment in that the lower limit value is calculated by the relaxation method in step S17 and the provisional solution in step S21. And the operation of updating the provisional set is different. Since other points are the same as the operation of the first embodiment, the description is omitted.
  • FIG. 11 is a flowchart illustrating an example of an operation in which the search execution unit 13 of the configuration management device 1 of the present modification calculates the lower limit value in step S17. Referring to FIG.
  • the search execution unit 13 calculates the sum of the first indexes of the first to j + 1th devices based on the first index and the second index read from the device storage unit 10 (Ste S41). Next, the search execution unit 13 calculates a required remaining value obtained by subtracting the calculated first index of the 1st to (j + 1) th devices from the required value N (step S42). Next, the search execution unit 13 selects the device type having the largest index ratio calculated from the first index and the second index read from the device storage unit 10 from the types of the j + 2 to Jth unselected devices. Select (step S43). The search execution unit 13 calculates the sum of the first indices for the maximum number of devices of the selected type (step S44).
  • the search execution unit 13 since the maximum number of all types of devices is 1, the sum of the calculated first index is the first index itself of the type of device selected in step S43. If the calculated sum of the first indices is smaller than the necessary remaining value (step S45, N), the search execution unit 13 has already selected all the types of the j + 2 to Jth devices and has not yet been selected. If there is no such type (step S49), the process may be terminated. In this case, even if all the 1st to Jth types of devices are combined, the total of the first index does not reach the required value.
  • step S45, N the search execution unit 13 determines that there is a device type that has not yet been selected among the j + 2 to Jth device types.
  • the remaining necessary value is updated (step S50).
  • the search execution unit 13 may update the remaining required value by subtracting the sum of the first indices calculated in step S44 from the remaining required value to obtain a new required remaining value.
  • the search execution unit 13 returns to step S43.
  • the search execution unit 13 calculates a real value obtained by dividing the necessary remaining value by the first index of the selected type of device. (Step S46).
  • the calculated real value is the number of devices of the selected type (relaxed number) calculated by removing the restriction that the number of units is an integer so that the value of the first index becomes the remaining necessary value.
  • the maximum number of devices of each type is 1, so the number of mitigation calculated by the search execution unit 13 is a real value included in the range from 0 to 1.
  • the search execution part 13 calculates the 2nd parameter
  • the second index for the number of mitigation calculated by the search execution unit 13 is 0 or more, and the second index per device of the selected type is 2nd. The value is below the index.
  • the search execution unit 13 sets the second number of all selected devices except the last selected device and the first to j + 1 type devices, and the last selected device for the calculated number of mitigation, respectively. Calculate the sum of the indicators.
  • the search execution unit 13 sets the calculated total to the lower limit value (step S48).
  • the maximum number of each device is one.
  • the devices in order from the type with the best cost performance until the sum of the first indexes is equal to or greater than the required value. This is equivalent to selecting the type.
  • the above processing further divides the last selected device so that the total of the first index is exactly the required value when the total of the first index exceeds the required value, and the already selected device is selected.
  • step S21 in FIG. 10 of the configuration management apparatus 1 will be described.
  • the search execution unit 13 firstly, among the satisfaction sets included in the search range (J ⁇ 1), the number p (J) of the J-th type devices in the satisfaction set that minimizes the second index. J) may be calculated. Then, when p (J) is equal to or less than the maximum number of J-th devices (0 or 1 in the present modification), the search execution unit 13 may update the provisional solution / provisional set.
  • the search execution unit 13 updates the provisional solution / provisional set. Not performed.
  • the search execution unit 13 calculates the total of the second index when the number of J-th type devices is r (J), as in the first embodiment. What is necessary is just to calculate. Then, the search execution unit 13 may compare the calculated total of the second indices with the provisional solution read from the provisional solution storage unit 11.
  • the provisional solution / provisional set is updated when p (J) is equal to or less than the maximum number of J-th devices (1 in this modification), and r (J) is the maximum number of J-th types. In this case, r (J) is p (J).
  • the search execution unit 13 may set the calculated total of the second index as a new provisional solution.
  • the search execution unit 13 stores the search range storage unit 12 from n (1) to n (J), which is the number of the first to J-1th types of devices representing the search range (J-1). ⁇ 1) and the set represented by the number of J-th type devices r (J) may be a new provisional set.
  • FIG. 12 is a diagram illustrating a binary search tree that represents a set of devices to be searched by the search execution unit 13 of this modification. 12 differs from FIG. 8 in that the branching coefficient of each node is all 2 and the maximum number of devices of each type is limited to 1 in the search tree of FIG. In this modification described above, when the maximum number of devices of each type is 1, the condition that the sum of one index is equal to or greater than a predetermined value is satisfied, and the sum of the other index is minimized. There is an effect that a combination of a plurality of types of devices having two indexes can be derived with a small amount of calculation.
  • the search execution unit 13 minimizes the search range for each search range represented by the number of some types of devices under the condition that the maximum number of devices of each type is 1. This is because it is determined whether or not there is a possibility that a set is included. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included. (Second modification of the first embodiment) Next, a second modification of the first embodiment will be described in detail with reference to the drawings. In the second modification, there is a maximum number for each type of device.
  • the configuration management apparatus 1 according to the present modification outputs a set in which the total of the second index is the smallest in a sufficient set that does not include the same type of devices more than the maximum number of devices of that type.
  • FIG. 1 is a diagram illustrating a configuration of a configuration management apparatus 1 according to the present modification.
  • the configuration of the configuration management device 1 according to this modification is the same as the configuration of the configuration management device 1 according to the first embodiment.
  • the device storage unit 10 according to the present modification stores the maximum number for each device type in association with the device type.
  • the first index, the second index, and the maximum number of each type of device may be stored in the device storage unit 10 in advance.
  • the index acquisition unit 16 may extract the first index, the second index, and the maximum number of each type of device included in the file 31 and store them in the device storage unit 10.
  • FIG. 13 is a diagram illustrating an example of the first index, the second index, and the maximum number stored in the device storage unit 10 according to the present modification.
  • the maximum number of model A is four
  • the maximum number of model B is three
  • the maximum number of model C is two.
  • the other components of the configuration management apparatus 1 of the present modification are the same as the corresponding components of the first embodiment, and thus description thereof is omitted. Next, the operation of this modification will be described in detail with reference to the drawings.
  • FIG. 3 is a flowchart showing an example of the entire operation of extracting the minimum set by the configuration management apparatus 1 of the present modification.
  • An example of the operation in which the configuration management apparatus 1 of the present modification extracts the minimum set is compared with the example of the operation in which the configuration management apparatus 1 of the first embodiment extracts the minimum set.
  • the calculation method is different from the search method in step S3.
  • the search execution unit 13 calculates, for example, the minimum number of devices p (1) when a satisfaction set is configured by only the first type of device, and p (1) and the maximum of the first type of device. The smaller of the number is set to r (1).
  • FIG. 14 is a flowchart illustrating an example of an operation in which the configuration management apparatus 1 according to the present modification calculates an initial solution. The operation of calculating the initial solution of the configuration management apparatus 1 of the present modification shown in FIG. 14 is compared with the operation of calculating the initial solution of the configuration management apparatus 1 of the first modification shown in FIG. The difference is that the operation of step S39 is performed during S34.
  • the first modification in which the operation of calculating the total of the first index and the total of the second index in step S34 and the operation of calculating the initial value of the provisional solution in step S36 of the present modification correspond to each other.
  • the initial solution calculation unit 15 of the present modification example selects the device type having the largest index ratio among the unselected device types (step S33), and then sets the maximum number of selected device types to the device storage unit. 10 (step S38).
  • step S 34 the initial solution calculation unit 15 reads out the maximum number of the already selected device types from the first index and the maximum number of the already selected device types read from the device storage unit 10. The cumulative total of 1 index is calculated.
  • step S36 the initial solution calculation unit 15 selects all types of devices that have already been selected other than the last selected type of device and the maximum number of devices of each type and the number of devices of the last selected type.
  • the minimum number of devices of the last selected type in the satisfaction set composed of is calculated.
  • the initial solution calculation unit 15 has the maximum number of devices of each type, all the types of devices already selected other than the type of the last selected device, and the type of the last selected type of the calculated minimum number of devices.
  • a set composed of devices is set as an initial value of the provisional set.
  • the initial solution calculation unit 15 calculates the sum of the second index of the initial value of the provisional set and sets it as the initial value of the provisional solution.
  • FIG. 4 is a flowchart showing the operation at the time of searching for the minimum set of the configuration management apparatus 1 of the present modification.
  • the flowchart representing the operation at the time of searching for the minimum set of the configuration management device 1 of the present modification is the same as that of the first embodiment, but the method of calculating r (j + 1) in step S14 and the lower limit of step S17.
  • the value calculation method is different from the provisional solution / temporary set update method in step S21.
  • step S14 the search execution unit 13 compares p (j + 1) calculated in step S14 with the maximum number of j + 1 type devices read from the device storage unit 10, and sets the larger one to r (j + 1). .
  • FIG. 11 is a flowchart showing an operation in which the search execution unit 13 calculates the lower limit value in step S17 of the present modification.
  • the flowchart showing the operation of the search execution unit 13 of this modification calculating the lower limit value is the same as that of the first modification.
  • the maximum number of each type of device is one in the first modification
  • the maximum number of each type of device in this modification is not limited to one, and is associated with the type of device. The difference is that it is stored in the device storage unit 10.
  • step S44 the search execution unit 13 reads the maximum number of devices of the selected type from the device storage unit 10, and calculates the sum of the first indices for the maximum number of devices of the selected type.
  • the relaxed number calculated by the search execution unit 13 is a real value included in a range of 0 or more and the maximum number of selected devices read from the device storage unit 10.
  • step S48 the search execution unit 13 determines the maximum number of devices read from the device storage unit 10, all the selected devices except the last selected device, the first to j + 1 type devices, and the calculated mitigation number. Calculate the sum of the second index of the last selected device in minutes. The search execution unit 13 sets the calculated total as the lower limit value.
  • step S ⁇ b> 21 the search execution unit 13 firstly, among the satisfaction sets included in the search range (J ⁇ 1), the number p (J) of the J-th type devices in the satisfaction set that minimizes the second index. J) may be calculated. Then, when p (J) is equal to or less than the maximum number of devices of the Jth type, the search execution unit 13 may update the provisional solution / provisional set. If p (J) is larger than the maximum number of devices of the J-th type, the search range (J-1) does not include a sufficient set, so the search execution unit 13 updates the provisional solution / provisional set. Absent.
  • the search execution unit 13 When updating the provisional solution / provisional set, the search execution unit 13 calculates the total of the second index when the number of J-th type devices is r (J), as in the first embodiment. What is necessary is just to calculate. Then, the search execution unit 13 may compare the calculated total of the second indices with the provisional solution read from the provisional solution storage unit 11.
  • the provisional solution / provisional set is updated when p (J) is less than or equal to the maximum number of J-th devices, and r (J) is either the maximum number of the J-th type or p (J). In this case, r (J) is p (J) because it is the smaller value.
  • the search execution unit 13 may set the calculated total of the second index as a new provisional solution.
  • the search execution unit 13 stores the search range storage unit 12 from n (1) to n (J), which is the number of the first to J-1th types of devices representing the search range (J-1). ⁇ 1) and the set represented by the number of J-th type devices r (J) may be a new provisional set.
  • the search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11.
  • the search execution unit 13 performs a search represented by the number of some types of devices under the condition that the maximum number of devices of each type is the number stored in the device storage unit 10. This is because, for each range, it is determined whether or not there is a possibility that the minimum set is included in the search range. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
  • FIG. 15 is a diagram illustrating the configuration of the configuration management apparatus 1A according to the present embodiment.
  • the configuration management device 1A of the present embodiment is configured with devices associated with the first index value P1 and the second index value P2 for each of a plurality (J) types, and the total of P1 is required.
  • a device storage unit 10 that stores P1 and P2 for each type of device when the set of devices equal to or greater than the value N is a satisfaction set, and the minimum value in the total satisfaction set of P2 is the minimum total, and an initial value Is a provisional solution storage unit 11 for storing information representing a provisional solution whose value is greater than or equal to the minimum sum, and a provisional set in which the sum of P2 is a set of devices that is the provisional solution, and 1st to jth (j is 1 To (n-1), the search range storage unit 12 stores n (1) to n (j), which is the number of types of devices, and N is input, and n (j + 1) is set to 0.
  • n (1) to n (j) 1st to jth types of devices and j + 1th N (1 + 1) is stored in the search range storage unit 12 while sequentially increasing to a predetermined value (j + 1) that is equal to or less than the minimum number p (j + 1) of the j + 1th type of devices when a satisfaction set is configured with only types of devices. Then, from P1 and P2 of N and the 1st to j + 1th type devices, the number of 1st to j + 1th type devices is changed from n (1) to n (j + 1) stored in the search range storage unit 12.
  • the lower limit value of the sum of P2 of the set included in the search range (j + 1) that is a collection of satisfying sets is calculated by removing the restriction that the number of devices is an integer, and the lower limit value is calculated from the provisional solution. If it is smaller, a satisfying set in which the sum of P2 is smaller than the provisional solution is extracted from the search range (j + 1), and information indicating the sum of P2 of the extracted fulfillment set and the extracted satisfaction set is used as the provisional solution and provisional set.
  • the search execution unit 13 that does not search the search range (j + 1), and the output unit 14 that outputs the provisional set as a minimum set after the search execution unit 13 performs the search. including.
  • the search execution unit 13 determines whether or not there is a possibility that the search range includes the minimum set for each search range represented by the number of some types of devices. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
  • the present invention is suitable for an apparatus or system for keeping the cost of a system low in system construction.

Abstract

In a configuration management device which derives combinations of a plurality of types of apparatuses having two different indices, a combination of apparatuses in which the total of one of the indices is greater than or equal to a predetermined value, and the total of the other index is minimized, is derived with a lower amount of computation by performing a search using the branch-and-bound method.

Description

[規則37.2に基づきISAが決定した発明の名称] 構成管理装置、構成管理方法、及び構成管理プログラムを記憶するプログラム記録媒体[Name of invention determined by ISA based on Rule 37.2] Configuration management device, configuration management method, and program recording medium for storing configuration management program
 本発明は、機器の組み合わせを導出する構成管理装置、構成管理方法、及び構成管理プログラムに関し、特に、所定の条件を満たす機器の組み合わせを導出する構成管理装置、構成管理方法、及び構成管理プログラムに関する。 The present invention relates to a configuration management device, a configuration management method, and a configuration management program for deriving a combination of devices, and more particularly to a configuration management device, a configuration management method, and a configuration management program for deriving a combination of devices that satisfy a predetermined condition. .
 特許文献1には、性能要件及び価格要件を所定の誤差の範囲で満たす構成を提案対象の構成として出力するシステム提案方法及びシステム提案装置が記載されている。本文献によれば、システム提案装置のシステム構成定義部が、性能評価対象システムの構成要素、構成要素の接続関係、アプリケーションの挙動、各資源の仕様及びパラメタ、性能要件、価格要件を受け付ける。構成要素としては、たとえばデータベース管理システムやサーバ側アプリケーション、クライアント側アプリケーションがある。構成要素の接続関係は、構成要素がどのようにネットワーク接続されているかを示す。アプリケーションの挙動は、例えば、処理のステップ数や、DB(Database)検索関数及びDB更新関数の発行回数である。各資源の仕様及びパラメタは、コンピュータのCPU(Central Processing Unit)数やMIPS(Million Instructions Per Second)値、ディスクのシーク時間、データベース管理システムの設定パラメタ等である。システムの性能は、応答時間である。性能要件は、例えば応答時間5秒のような、システム提案装置が構成を出力するシステムの性能を表す値である。価格要件は、例えば1000万円のような、システム提案装置が構成を出力するシステムの価格を表す値である。
 本文献のシステム提案装置の最適構成算出部は、前記性能評価対象システムの構成要素、構成要素の接続関係、アプリケーションの挙動、各資源の仕様及びパラメタを組み合わせた構成を策定し、各構成に対する応答時間を性能シミュレータによって算出する。また、最適構成算出部は、策定した各構成のハードウェア及びソフトウェアの合計価格を算出する。算出した各構成の応答時間と合計価格を基に、最適構成算出部は、性能要件と価格要件を所定の誤差範囲で満たす構成を出力する。これにより、性能要件と価格要件を満たす構成を短時間で出力することができる。
 特許文献2には、予め設定された条件に合致する構成要素(部品)を抽出してシステムの構成を決定し、システムの構成を出力するシステム構築機構が記載されている。部品は、例えば、CPUやメモリ、ディスクである。部品を抽出するための条件は、CPUのクロック数や個数、メモリの容量、ディスクの容量等のシステム仕様や、予算や納入日などのユーザ要件である。本文献のシステム構築機構は、抽出機能と判定機能を含む。
 抽出機能は、部品諸元表から、システム仕様を満たすCPUやメモリ、ディスクなどの部品を抽出する。判定機能は、抽出機能が抽出した部品から、ユーザ要件のうちの納入期限以前に納入することができない部品を除く。また、判定機能は、採用すると価格の制限を満たさなくなる部品を除く。システム構築機構は、除かれなかった部品の情報を出力する。
 特許文献3には、トランザクションの処理時間が所定の応答時間を超える確率が所定の値以下であるシステム構成で、価格が最小になるものを算出する構成導出方法及び構成導出装置が記載されている。特許文献3の構成導出装置は、性能を表す関数である性能関数が制約条件を満たし、かつ、目的関数としての価格関数を最小にするシステム構成を、ラグランジュの未定乗数法により求める。性能関数及び価格関数は、システム構成データを変数とする関数である。制約条件は、性能保証対象のジョブ実行時に、トランザクションの処理時間が、応答時間A以上である確率がB以下であることである。システム構成パラメータは、CPU性能S、CPU数NCPU、全メモリ容量M、I/O(Input/Output)処理速度I、同時実行可能ジョブ数NJである。
 特許文献3の構成導出装置は、CPU数を1から増設可能な最大CPU数まで1ずつ増加させながら、次の処理を繰り返す。特許文献3の構成導出装置は、まず、CPU数NCPUを固定した時の最適システムパラメータ(S、M、I)をラグランジュの未定乗数法により算出する。特許文献3の構成導出装置は、次に、計算で得られた最適システムパラメータに対する距離が最も小さい現実のシステムパラメータセットを、価格データから探索する。
 特許文献3の構成導出装置は、CPU数を1から増設可能な最大CPU数まで1ずつ増加させて導出した各CPU数における最適化されたシステム構成から、価格が最低になるシステム構成のパラメータセット(NCPU、S、M、I)を決定する。特許文献3の構成導出装置は、次に、算出したシステム変数(S、NCPU、M、I)に対して、同時実行可能ジョブ数NJを算出する。
Patent Document 1 describes a system proposal method and a system proposal device that outputs a configuration that satisfies performance requirements and price requirements within a predetermined error range as a configuration to be proposed. According to this document, the system configuration definition unit of the system proposing device accepts the components of the performance evaluation target system, the connection relationship of the components, the behavior of the application, the specifications and parameters of each resource, the performance requirements, and the price requirements. Examples of the component include a database management system, a server side application, and a client side application. The connection relationship of the component indicates how the component is connected to the network. The behavior of the application is, for example, the number of processing steps, the number of times of issuing a DB (Database) search function and a DB update function. The specifications and parameters of each resource are the number of CPUs (Central Processing Units) of the computer, MIPS (Million Instructions Per Second) values, disk seek time, setting parameters of the database management system, and the like. System performance is response time. The performance requirement is a value representing the performance of the system that outputs the configuration by the system proposing device, such as a response time of 5 seconds. The price requirement is a value representing a price of a system for which the system proposing device outputs a configuration, such as 10 million yen.
The optimal configuration calculation unit of the system proposing device of this document formulates a configuration combining the components of the performance evaluation target system, the connection relationship of the components, the behavior of the application, the specifications and parameters of each resource, and the response to each configuration The time is calculated by the performance simulator. In addition, the optimum configuration calculation unit calculates the total price of the hardware and software of each formulated configuration. Based on the calculated response time and total price of each configuration, the optimal configuration calculation unit outputs a configuration that satisfies the performance requirement and the price requirement within a predetermined error range. Thereby, the structure which satisfy | fills performance requirements and price requirements can be output in a short time.
Patent Document 2 describes a system construction mechanism that extracts components (parts) that match preset conditions, determines the system configuration, and outputs the system configuration. The component is, for example, a CPU, a memory, or a disk. The conditions for extracting parts are system specifications such as the number and number of CPU clocks, memory capacity, and disk capacity, and user requirements such as budget and delivery date. The system construction mechanism of this document includes an extraction function and a determination function.
The extraction function extracts components such as a CPU, memory, and disk that satisfy the system specifications from the component specification table. The judgment function excludes parts that cannot be delivered before the delivery deadline in the user requirements from the parts extracted by the extraction function. In addition, the judgment function excludes parts that would not satisfy the price limit when adopted. The system construction mechanism outputs information on the parts that have not been removed.
Patent Document 3 describes a configuration derivation method and a configuration derivation device for calculating a system configuration in which the probability that a transaction processing time exceeds a predetermined response time is equal to or less than a predetermined value and the price is minimum. . The configuration deriving device of Patent Document 3 obtains a system configuration in which a performance function, which is a function representing performance, satisfies a constraint condition and minimizes a price function as an objective function, using Lagrange's undetermined multiplier method. The performance function and the price function are functions having system configuration data as variables. The constraint condition is that the probability that the transaction processing time is equal to or longer than the response time A is equal to or lower than B when executing the performance guarantee target job. The system configuration parameters are CPU performance S, CPU number NCPU, total memory capacity M, I / O (Input / Output) processing speed I, and number of jobs that can be executed simultaneously NJ.
The configuration deriving device of Patent Document 3 repeats the following process while increasing the number of CPUs by 1 from 1 to the maximum number of CPUs that can be added. The configuration deriving device of Patent Document 3 first calculates the optimum system parameters (S, M, I) when the number of CPUs NCPU is fixed by the Lagrange's undetermined multiplier method. Next, the configuration deriving device of Patent Literature 3 searches the price data for an actual system parameter set having the smallest distance to the optimum system parameter obtained by calculation.
The configuration deriving device of Patent Document 3 is a parameter set of a system configuration that minimizes the price from an optimized system configuration for each number of CPUs derived by increasing the number of CPUs from 1 to the maximum number of CPUs that can be added. (NCPU, S, M, I) is determined. Next, the configuration deriving device of Patent Document 3 calculates the number NJ of jobs that can be executed simultaneously for the calculated system variables (S, NCPU, M, I).
特開2002−183416号公報JP 2002-183416 A 特開2002−020568号公報JP 2002-020568 A 特開2004−030292号公報JP 2004-030292 A
 特許文献1のシステム提案装置は、システムの構成要素、各構成要素間の接続関係、アプリケーションの挙動、各資源の使用及びパラメタの指定をそれぞれ組み合わせた複数の構成を策定する。そして、本システム提案装置は、策定した全ての構成の応答時間及び価格を算出し、性能要件及び価格要件を所定の誤差の範囲で満たす構成を出力する。
 従って、特許文献1の技術には、一定以上の性能を満たす最も安価な構成を出力することができないという問題があった。
 特許文献2のシステム構築機構は、部品の種類毎に定められた条件を満たす部品を種類毎に抽出し、抽出した部品から種類毎に一つずつ選択した部品の合計価格が、所定の値以下になる部品の組み合わせを選択する。
 特許文献2の技術には、2種類の指標を持つ複数種類の部品を組み合わせて、組み合わせに含まれる部品の一方の指標の合計値が所定値以上である組み合わせの中で、他方の指標の合計値が最小である組み合わせを選択することができないという問題があった。
 特許文献3のシステム構成導出装置は、1から増設可能な最大CPU数までの全てのCPU数について、最適システム構成パラメータを算出し、その中から価格が最低になるシステム構成パラメータセットを選択していた。
 特許文献3の技術には、各CPUの性能が同一であることを前提としているという問題があった。
 本発明の目的は、異なる2つの指標を持つ複数の種類の機器の組合せに対して、一方の指標の合計が所定値以上で、他方の指標の合計が最小となる機器の組み合わせを、少ない計算量で導出する構成管理装置を提供することにある。
The system proposing device of Patent Document 1 formulates a plurality of configurations each combining system components, connection relationships between the components, application behavior, use of each resource, and parameter specification. And this system proposal apparatus calculates the response time and price of all the structure which were formulated, and outputs the structure which satisfy | fills a performance requirement and a price requirement in the range of a predetermined | prescribed error.
Therefore, the technique of Patent Document 1 has a problem that it is not possible to output the cheapest configuration that satisfies a certain level of performance.
The system construction mechanism of Patent Document 2 extracts parts for each type that satisfy the conditions defined for each type of part, and the total price of the parts selected for each type from the extracted parts is less than a predetermined value Select the combination of parts to become.
In the technique of Patent Document 2, a combination of a plurality of types of components having two types of indexes, and the total of the other indexes among the combinations in which the total value of one of the components included in the combination is equal to or greater than a predetermined value. There was a problem that a combination having the smallest value could not be selected.
The system configuration deriving device of Patent Document 3 calculates optimal system configuration parameters for all the CPU numbers from 1 to the maximum number of CPUs that can be added, and selects a system configuration parameter set with the lowest price from among them. It was.
The technique of Patent Document 3 has a problem that it is assumed that the performance of each CPU is the same.
An object of the present invention is to calculate a combination of a plurality of types of devices having two different indexes with a small number of device combinations in which the total of one index is equal to or greater than a predetermined value and the total of the other index is minimum. The object is to provide a configuration management device derived by quantity.
 本発明の構成管理装置は、複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、機器の種類毎に、P1及びP2を記憶する機器記憶手段と、初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を記憶する探索範囲記憶手段と、Nを入力して、n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、n(j+1)を前記探索範囲記憶手段に格納して、N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、前記下限値が前記暫定解より小さい場合、前記探索範囲(j+1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、前記下限値が前記暫定解より大きい場合、前記探索範囲(j+1)の探索を行わない探索実行手段と、前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段とを含む。
 本発明の構成管理方法は、複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、機器の種類毎に、P1及びP2を機器記憶手段に記憶し、初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を暫定解記憶手段に記憶し、1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を探索範囲記憶手段に記憶し、Nを入力して、n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、n(j+1)を前記探索範囲記憶手段に格納して、N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、前記下限値が前記暫定解より小さい場合、前記探索範囲(j+1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、前記下限値が前記暫定解より大きい場合、前記探索範囲(j+1)の探索を行わず、前記探索の実行後、前記暫定集合を最小集合として出力する。
 本発明の構成管理プログラムは、複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、コンピュータを、機器の種類毎に、P1及びP2を記憶する機器記憶手段と、初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を記憶する探索範囲記憶手段と、Nを入力して、n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、n(j+1)を前記探索範囲記憶手段に格納して、N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、前記下限値が前記暫定解より小さい場合、前記探索範囲(j+1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、前記下限値が前記暫定解より大きい場合、前記探索範囲(j+1)の探索を行わない探索実行手段と、前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段として動作させる。
The configuration management apparatus of the present invention is configured of devices associated with the first index value P1 and the second index value P2 for each of a plurality (J) of types, and a set of devices in which the total of P1 is equal to or greater than the necessary value N Is the satisfaction set, and the minimum value in the total satisfaction set of P2 is the minimum total, the device storage means for storing P1 and P2 for each device type, and the initial value is a value equal to or greater than the minimum total Temporary solution storage means for storing information representing a provisional solution and a provisional set in which the sum of P2 is a set of devices that is the provisional solution, and 1st to jth (j is an integer from 1 to J-1) Search range storage means for storing n (1) to n (j), which is the number of devices of the same type, and N, and n (j + 1) is changed from 0 to n (1) to n (j ) Only the 1st to jth types of devices and the j + 1th type of devices form a satisfaction set. N (j + 1) is stored in the search range storage means while sequentially increasing to a predetermined value (j + 1) that is less than or equal to the minimum number p (j + 1) of the j + 1th type of devices, and N and 1 to j + 1th The search that is a collection of satisfying sets in which the number of the first to j + 1 type devices from P1 and P2 of the types of devices is n (1) to n (j + 1) stored in the search range storage means. The lower limit value of the sum of P2 of the set included in the range (j + 1) is calculated by removing the restriction that the number of devices is an integer, and when the lower limit value is smaller than the provisional solution, the search range (j + 1) ) From which the sum of P2 is smaller than the provisional solution, and the information indicating the sum of P2 of the extracted fulfillment set and the extracted satisfaction set is stored in the provisional solution storage means as a provisional solution and provisional set. Store Search execution means that does not search the search range (j + 1) when the lower limit value is larger than the provisional solution; and output means that outputs the provisional set as a minimum set after the search is executed by the search execution means; including.
The configuration management method according to the present invention includes a set of devices each of which is associated with the first index value P1 and the second index value P2 for each of a plurality of types (J), and the total of P1 is equal to or greater than the necessary value N. Is the satisfaction set and the minimum value in the total satisfaction set of P2 is the minimum total, P1 and P2 are stored in the device storage means for each type of device, and the initial value is equal to or greater than the minimum total. Information representing a provisional solution and a provisional set in which the sum of P2 is a set of devices for which the total of P2 is the provisional solution is stored in the provisional solution storage means, and 1st to jth (j is an integer from 1 to J-1) N (1) to n (j), which are the number of devices of the type, are stored in the search range storage means, N is input, n (j + 1) is changed from 0 to n (1) to n (j ) When a sufficiency set is composed of only the 1st to jth types of devices and the j + 1th type of devices While sequentially increasing to a predetermined value (j + 1) that is less than or equal to the minimum number p (j + 1) of the j + 1th type devices, n (j + 1) is stored in the search range storage means, and N and the 1st to j + 1th type devices From the devices P1 and P2, the search range (1 to j + 1) is a collection of satisfying sets in which n (1) to n (j + 1) are stored in the search range storage means. j + 1) is calculated by removing the lower limit value of the total of P2 of the set included in the set, and the number of devices is an integer, and when the lower limit value is smaller than the provisional solution, from the search range (j + 1) , P2 is extracted with a sum smaller than the provisional solution, and the information indicating the sum of P2 and the extracted satisfaction set is stored as a provisional solution and provisional set in the provisional solution storage means. ,in front If the lower limit value is greater than the interim solution, without searching of the search range (j + 1), after the execution of the search, and outputs the provisional set as the minimum set.
The configuration management program of the present invention is composed of devices associated with the first index value P1 and the second index value P2 for each of a plurality (J) of types, and a set of devices in which the total of P1 is equal to or greater than the necessary value N Is the satisfaction set, the minimum value in the total satisfaction set of P2 is the minimum total, the computer is stored for each device type, device storage means for storing P1 and P2, and the initial value is equal to or greater than the minimum total Temporary solution storage means for storing information representing a provisional solution that is a value, and a provisional set that is a set of devices for which the sum of P2 is the provisional solution, and 1st to jth (j is any one of 1 to J-1) Search range storage means for storing n (1) to n (j), which is the number of devices of type (integer), and N, and n (j + 1) is changed from 0 to n (1), respectively. n (j) 1st to jth type devices and j + 1th type devices Storing n (j + 1) in the search range storage means while sequentially increasing to a predetermined value (j + 1) which is less than or equal to the minimum number p (j + 1) of j + 1 type devices when a satisfaction set is configured with From P1 and P2 of N and 1 to j + 1 type devices, the number of 1 to j + 1 type devices is n (1) to n (j + 1) stored in the search range storage means The lower limit value of the total of P2 of the set included in the search range (j + 1) that is a set of sets is calculated by removing the restriction that the number of devices is an integer, and the lower limit value is smaller than the provisional solution. In this case, a satisfaction set in which the sum of P2 is smaller than the provisional solution is extracted from the search range (j + 1), and information indicating the sum of P2 of the extracted satisfaction sets and the extracted satisfaction set is obtained as the provisional solution and the provisional set. As before If the lower limit is larger than the provisional solution, the search execution means that does not search the search range (j + 1) and the temporary set is minimized after execution of the search by the search execution means. Operate as output means for outputting as a set.
 本発明には、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる2つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。 In the present invention, a combination of a plurality of types of devices having two different indices that satisfies the condition that the sum of one index is equal to or greater than a predetermined value and that minimizes the other index is minimized. There is an effect that it can be derived.
第1の実施形態の構成管理装置1の構成の例を表すブロック図である。It is a block diagram showing the example of a structure of the configuration management apparatus 1 of 1st Embodiment. 第1の実施形態の構成管理装置1が機器の指標を取得する動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement in which the structure management apparatus 1 of 1st Embodiment acquires the parameter | index of an apparatus. 第1の実施形態の構成管理装置1の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the configuration management apparatus 1 of 1st Embodiment. 第1の実施形態及び第1の実施形態の第2の変形例の構成管理装置1の探索の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the search of the structure management apparatus 1 of the 2nd modification of 1st Embodiment and 1st Embodiment. 機器情報の第1の例を表す図である。It is a figure showing the 1st example of apparatus information. 指標比の例を表す図であるIt is a figure showing the example of index ratio 暫定解及び暫定集合の例を表す図である。It is a figure showing the example of a provisional solution and a provisional set. 第1の実施形態の構成管理装置1による解の探索過程を図示した探索木の第1の例を表す図である。It is a figure showing the 1st example of the search tree which illustrated the search process of the solution by the configuration management apparatus 1 of 1st Embodiment. 第1の実施形態の第1の変形例の構成管理装置1が初期解を算出する動作の例を表すフローチャートである。It is a flowchart showing the example of the operation | movement in which the configuration management apparatus 1 of the 1st modification of 1st Embodiment calculates an initial solution. 第1の実施形態の第1の変形例の構成管理装置1の探索の動作の例を表すフローチャートである。It is a flowchart showing the example of the operation | movement of the search of the configuration management apparatus 1 of the 1st modification of 1st Embodiment. 第1の実施形態の第1及び第2の変形例の構成管理装置が下限値を算出する動作の例を表すフローチャートである。It is a flowchart showing the example of the operation | movement which the structure management apparatus of the 1st and 2nd modification of 1st Embodiment calculates a lower limit. 第1の実施形態の構成管理装置による解の探索過程を図示した探索木の第2の例を表す図である。It is a figure showing the 2nd example of the search tree which illustrated the search process of the solution by the configuration management apparatus of 1st Embodiment. 機器情報の第2の例を表す図である。It is a figure showing the 2nd example of apparatus information. 第1の実施形態の第2の変形例の構成管理装置1が初期解を算出する動作の例を表すフローチャートである。It is a flowchart showing the example of the operation | movement in which the configuration management apparatus 1 of the 2nd modification of 1st Embodiment calculates an initial solution. 2の実施形態の構成管理装置1の構成の例を表すブロック図である。It is a block diagram showing the example of a structure of the configuration management apparatus 1 of 2 embodiment.
 次に、本発明の実施形態について図面を参照して詳細に説明する。
 (第1の実施形態)
 図1は本発明の第1の実施形態の構成管理装置1の構成を表すブロック図である。
 図1を参照すると、本実施形態の構成管理装置1は、機器記憶部10と、暫定解記憶部11と、探索範囲記憶部12と、探索実行部13と、出力部14を含む。構成管理装置1は、初期解算出部15と、指標取得部16を含んでいてもよい。また、構成管理装置1には、端末2が接続されている。構成管理装置1には、ファイル31を含むサーバ3が接続されていてもよい。なお、サーバ3は存在せず、構成管理装置1がファイル31を含んでいてもよい。
 本実施形態の構成管理装置1は、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。機器記憶部10と、暫定解記憶部11と、探索範囲記憶部12は、コンピュータが含むメモリやハードディスク装置により実現することができる。また、探索実行部13と、出力部14と、初期解算出部15と、指標取得部16は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。あるいは、機器記憶部10と、暫定解記憶部11と、探索範囲記憶部12と、探索実行部13と、出力部14と、初期解算出部15と、指標取得部16の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
 機器記憶部10は、少なくとも2つの異なる指標を持つ複数の種類(J個の種類)の機器の、2つの指標を、種類毎に記憶する。機器は、例えばサーバなどの計算装置やCPU等である。2つの指標のうち、第1の指標(P1)は、例えば、機器の性能を表す指標である。性能を表す指標は、例えば、スループットや、MIPS値、FLOPS(Floating point number Operations Per Second)値等の指標である。また、第1の指標は、例えば、信頼性や可用性等を表す指標であってもよい。2つの指標のうち、第2の指標(P2)は、例えば、機器のコストを表す指標である。コストを表す指標は、例えば、価格、消費電力、排熱量、重量、設置スペース等の、システムの構築や運用の費用に影響する指標である。また、第2の指標は、例えば、機器を構成する部品数などの値であってもよい。複数の機器に対するこれらの2つの指標は、それぞれの機器の2つの指標を合計した値である。
 例えば、機器が計算装置であり、第1の指標が性能を表し、第2の指標が価格である場合、複数種類の機器から選択した1台以上の機器の集合で構成される計算機システムの性能は、集合に含まれる機器の、第1の指標の合計で表される。また、この計算機システムの価格は、集合に含まれる機器の、第2の指標の合計である。
 以下の説明では、第1の指標の合計が所定値(必要値)を上回る機器の集合(充足集合)のうち、第2の指標の合計が最小となる集合が、最小集合である。最小集合に属する機器の第2の指標の合計が最小合計である。必要値は、例えば、ユーザが、端末2が備える図示しない入力手段を介して、機器構成装置1に入力した値であればよい。また、後述の探索実行部13が、後述の探索を既に行った各充足集合の中で、第2の指標の合計が最小となる集合が暫定集合である。そして、暫定集合に属する機器の第2の指標の合計が暫定解である。
 なお、本実施形態では、機器の集合が含みうる各種類の機器の台数に制限はない。一般に、機器の集合が含みうる各種類の機器の台数に制限を設けず、所定の条件下で最適な機器の組合せを導出する問題は、無制限問題と呼ばれる。例えば、複数種類の計算機から選択した1台以上の計算機で構成される情報処理システムを新たに導入する場合に、導入する各種類の機器の台数に制限がなければ、所定の性能を満たし、最もコストの安い計算機を導出する問題は、無制限問題である。
 機器記憶部10が記憶する各機器の第1の指標及び第2の指標は、予め与えられていればよい。あるいは、後述するように、指標取得部16が、これらの指標をファイル31から取得してもよい。また、例えば、ユーザが、端末2を介して、これらの指標を構成管理装置1に入力し、機器記憶部10に記憶させてもよい。
 初期解算出部15は、例えば、それなりによい解を高い確率で求める手法(ヒューリスティクス)を使って、暫定解の初期値(初期解)を算出する。ヒューリスティクスは、必ず最小合計を算出する方法である必要はない。ヒューリスティクスは、第1の指標の合計が必要値を上回る機器の集合を、最小合計を必ず算出する方法よりおおむね短時間で抽出できる方法であればよい。ヒューリスティクスは必ず最小合計を算出する手法ではないので、初期解算出部15が算出する暫定解の初期値は、最小合計以上の値である。初期解算出部15が使うヒューリスティクスの例については後述する。一般的なヒューリスティクスの例として、遺伝的アルゴリズムや焼きなまし法、ニューラルネットを利用したアルゴリズムなどがある。
 初期解算出部15は、算出した暫定解の初期値と、対応する機器の集合(暫定集合の初期値)を表す情報を、暫定解記憶部11に格納する。
 暫定解記憶部11は、暫定解と、暫定集合を表す情報を記憶する。暫定解記憶部11が初期状態で記憶する暫定解と、暫定集合を表す情報は、前述のように、例えば初期解算出部15が算出した暫定解の初期値と、暫定集合の初期値を表す情報であればよい。
 暫定解記憶部11は、初期状態で、初期解算出部15が算出した暫定解の初期値を記憶せず、コンピュータ上で表現できる十分大きな値を、暫定解としてあらかじめ記憶していてもよい。この場合、暫定解記憶部11は、初期状態では暫定解に対応する暫定集合を記憶していなくてよい。さらに、この場合、初期解算出部15は存在しなくてもよい。ただし、この場合は、探索の効率が低下する可能性が高くなる。
 探索範囲記憶部12は、1からj番目(jは1以上J−1以下の整数)の種類の機器の台数である、n(1)からn(j)を記憶する。後述の探索実行部13は、探索範囲記憶部12に格納されている機器の台数を読み出し、読み出した機器の台数に基づき定めた機器の集合を探索の対象とすることができる。例えば、探索範囲記憶部12に、1からj番目の種類の機器の台数であるn(1)からn(j)が格納されている場合、探索実行部13は、1からj番目の種類の機器の台数が、それぞれn(1)からn(j)である機器の集合を探索の対象とすればよい。この場合、探索範囲記憶部12が記憶するn(1)からn(j)は、探索の対象となる機器の集合の集まりである探索範囲を表す。
 探索実行部13は、複数種類の機器で構成される機器の集合のうち、第1の指標の合計が必要値以上である集合(前述の充足集合)の集まりである探索範囲から、第2の指標の合計が暫定解以下となる機器の組合せを抽出する探索を行う。探索実行部13は、探索の際、探索範囲を複数の探索範囲に分割する。そして、探索実行部13は、分割した探索範囲毎に最小集合を含む可能性の有無を判定する。探索実行部13は、判定の結果最小集合を含む可能性がない探索範囲を、探索の対象から除外する。探索については、本実施形態の動作の説明において詳細に述べる。探索実行部13が、探索の対象から除外しなかった探索範囲全て対する探索を終了した後の暫定集合が、最小集合である。
 出力部14は、探索実行部13による探索の終了後、暫定解記憶部11が記憶する暫定集合を表す情報を、最小集合を表す情報として、端末2に出力する。
 端末2は、出力部14が出力する最小集合を表す情報を表示する。端末2による表示は、最小集合にどの種類の機器が何台含まれるか分かる形式であれば、どのような形式の表示であっても構わない。
 指標取得部16は、例えばサーバ3が記憶するファイル31に含まれる各機器の第1の指標及び第2の指標を抽出し、機器記憶部10に格納する。
 サーバ3は、構成管理装置1と同一の装置であってもよく、例えばネットワークで通信可能に接続された他の装置であってもよい。
 ファイル31は、例えば、各機器のベンダがインタネット上で公開している、各機器の仕様が記載された1つ又は複数のウェブページを構成する1つ又は複数のファイルや、各機器の仕様を含むデータベースを構成するファイルである。
 指標取得部16は、例えば、端末2の図示しない入力部等を介した、ウェブページ等を特定するURI(Uniform Resource Identifier)等を指定したユーザの指示により、ファイル31を取得する。指標取得部16は、ファイル31に含まれる各機器の第1の指標及び第2の指標を、例えば「性能」や「価格」、「消費電力」、「部品数」などの文字列をキーに抽出する。指標取得部16は、抽出した各機器の第1の指標及び第2の指標を、機器記憶部10に格納する。また、指標取得部16は、端末2の図示しない入力部等を介した、データベースに対するクエリ等を指定した指示により、データベースから第1の指標及び第2の指標を取得してもよい。指標取得部16は、ファイル31から、指標を得るための情報(例えば機器のCPUやクロック数等)を抽出してもよい。そして、指標取得部16は、抽出した情報を元に、指標が格納されているデータベースから第1の指標及び第2の指標を取得してもよい。
 なお、指標取得部16、サーバ3及びファイル31は、存在しなくてもよい。その場合、機器記憶部10が、あらかじめ、少なくとも2つの異なる指標を持つ複数の種類(J個の種類)の機器の2つの指標を、種類毎に記憶していればよい。
 次に、本実施形態の構成管理装置1の動作について、図面を参照して詳細に説明する。
 図2は、本実施形態の構成管理装置1が機器の指標を取得する動作の例を表すフローチャートである。
 図2を参照すると、指標取得部16は、まず、例えば端末2の図示しない入力部を介した指示を受け、機器の種類毎の第1の指標及び第2の指標を含むファイル31を取得する(ステップS61)。
 指標取得部16は、次に、取得したファイル31から、機器の種類毎の第1の指標及び第2の指標を抽出する(ステップS62)。
 指標抽出部16は、抽出した機器の種類毎の第1の指標及び第2の指標を、機器の種類に対応付けて機器記憶部10に格納する(ステップS63)。
 図3は、本実施形態の構成管理装置1が最小集合(解)を抽出する動作の例の全体を表すフローチャートである。
 図3を参照すると、構成管理装置1の探索実行部13が、まず、端末2の図示しない入力部などを介して、必要値Nを受信する(ステップS1)。
 次に、初期解算出部15が、例えば探索実行部13から受信した必要値Nと、機器記憶部10から受信した機器の種類各々の第1の指標及び第2の指標をもとに、ヒューリスティクスを使って暫定解の初期値を算出する(ステップS2)。初期解算出部15は、暫定解に対応する暫定集合を表す情報と共に、暫定解記憶部11に格納する。
 本実施形態の初期解算出部15が暫定解の初期値を算出するヒューリスティクスの例は、次の通りである。初期解算出部15は、例えば、機器の種類毎に第2の指標に対する第1の指標の比(指標比)を算出すればよい。そして、初期解算出部15は、指標比が最も大きい種類の機器のみで充足集合を構成した場合の機器の最小台数を算出すればよい。初期解算出部15は、算出した最小台数の、指標比が最も大きい種類の機器で構成される集合を暫定集合の初期値にすればよい。そして、初期解算出部15は、暫定集合の初期値の第2の指標の合計を暫定解の初期値にすればよい。なお、第1の指標が性能を表し、第2の指標がコストを表す場合、指標比はコストパフォーマンス(コスト性能比)を表す。
 図5は、機器記憶部10が記憶する機器情報(機器の種類毎の第1の指標及び第2の指標)の一例を表す図である。図5の例では、機器記憶部10は、機種Aから機種Cの3種類の機器の第1の指標及び第2の指標を記憶する。
 初期解算出部15はこれらの指標を機器記憶部10から読み出し、機器の種類毎に指標比を算出する。
 図6は、図5に示す機器情報の例から算出した指標比を表す図である。図6を参照すると、この場合、指標比が最も大きいのは機種Cであり、その指標比は0.88である。
 例えば、必要値Nが15の場合、機種Cの第1の指標は7であり、15/7は約2.14なので、機種Cのみで必要値を満たすためには、3台の機種Cが必要である。3台の機種Cで構成される集合の第2の指標の合計は24である。この場合、初期解算出部15は、暫定解として24を、暫定解記憶部11に格納すればよい。そして、初期解算出部15は、暫定集合として3台の機種Cで構成される集合を表す情報を、暫定解記憶部11に格納すればよい。
 図7は、暫定解が24、暫定集合が3台の機種Cで構成される集合である場合の、暫定解記憶部11が記憶する暫定解及び暫定集合を表す情報を表す図である。
 次に、探索実行部13が、複数種類の機器をあわせて1台以上含み、第1の指標の合計値が必要値N以上である集合から、第2の指標の合計が最小である最小集合を抽出する処理である探索を行う(ステップS3)。
 探索実行部13は、分枝限定法に基づいた探索を行う。詳細は図4の説明で述べるが、分枝限定法に基づく探索は、概略以下の通りである。
 探索実行部13は、機器の集合の集まりである探索範囲に対して網羅的に探索を行う前に、探索範囲を複数の探索範囲に分割する。そして、探索実行部13は、分割した探索範囲に最小集合が含まれる可能性の有無の判定を行う。探索実行部13は、探素範囲に含まれる機器の集合で、所定の一部の種類の機器の台数が同じ集合の集まりを、新たな探索範囲にすることで、探索範囲の分割を行えばよい。
 前述のように、探索範囲記憶部12がn(1)からn(j)を記憶している場合、探索実行部13は、探索実行部13は、n(1)からn(j)を探索範囲記憶部12から読み出せばよい。そして、探索実行部13は、読み出したn(1)からn(j)によって探索範囲を定めればよい。探索実行部13は、1からj番目の種類の機器の台数がそれぞれn(1)からn(j)である機器の集合の集まりを探索範囲(探索範囲(j))にすればよい。
 探索範囲記憶部12がn(1)からn(j)を記憶している場合にこのようにして定まる探索範囲(j)に対して、探索実行部13行う探索が、「探索(j)」である。探索(j)において、探索実行部13は、探索範囲記憶部12から読み出した、n(1)からn(j)によって定めた探索範囲(j)を、複数の探索範囲に分割する。そして、探索実行部13は、分割した探索範囲に最小集合が含まれる可能性の有無の判定を行う。探索実行部13は、たとえば、探索範囲(j)をj+1番目の種類の機器の台数が同じ集合の集まりに分割すればよい。たとえば、探索範囲(j)を分割して、j+1番目の種類の機器の台数n(j+1)がある値である機器の集合を新たな探索範囲にする場合、探索実行部13は、その値のであるn(j+1)を探索範囲記憶部12に記憶させればよい。この場合に探索範囲記憶部12が記憶するn(1)からn(j+1)で定まる探索範囲が探索範囲(j+1)である。また、探索範囲(j+1)に対して探索実行部13が行う探索が、探索(j+1)である。
 また、探索(0)は、探索範囲記憶部12がいずれの種類の機器の台数も記憶していない場合の探索範囲に対して、探索実行部13が行う探索である。探索範囲記憶部12がいずれの種類の機器の台数も記憶していない場合の探索範囲は、探索範囲の初期値(探索範囲(0))である。探索範囲(0)については後述する。
 探索実行部13は、探索範囲に最小集合が含まれる可能性の有無の判定を、その探索範囲が含む機器の第2の指標の理論上の下限値と暫定解の比較によって行えばよい。探索実行部13は、例えば緩和法を用いてこの下限値を算出すればよい。この下限値が暫定解より大きい場合、その探索範囲に、第2の指標の合計が暫定解より小さい値である集合が含まれる可能性はない。この場合、探索実行部13は、その探索範囲を探索の対象から除外し(枝刈り、pruning)、その探索範囲に対する探索を行わない。下限値が暫定解よりも小さい場合は、これらの集合に、第2の指標の合計が暫定解よる小さい値である集合が含まれる可能性がある。この場合、探索実行部13は、これらの集合に対して探索を実行する。この、探索を行うか否かを判定する判定処理が、限定操作である。
 探索実行部13は、探索が必要と判定した探索範囲を、さらに複数の探索範囲に分割し、分割した各探索範囲で探索が必要か不要かを判定してもよい。探索実行部13は、さらに分割した各探索範囲のうち、探索が必要と判定した探索範囲のみで探索を実行すればよい。
 探索実行部13は、第2の指標の合計が明らかに最小合計ではない充足集合を、探索範囲に含める必要はない。例えば、1番目の種類の機器のみで充足集合を構成した時の、機器の最小台数p(1)より多くの台数の1番目の種類の機器を含む充足集合の、第2の指標の合計は、明らかに最小合計ではない。探索実行部13は、このような集合を、探索範囲から除外しておけばよい。探索実行部13は、例えば、1番目の種類の機器のみで充足集合を構成した時の機器の最小台数p(1)を算出し、1番目の機器が0台以上p(1)台以下である充足集合の集まりを、探索範囲の初期値(探索範囲(0))にすればよい。探索実行部13が、1番目の種類の機器の第1の指標及び第2の指標を機器記憶部10から読み出し、必要値Nと、読み出した第1の指標及び第2の指標をもとに、p(1)を算出すればよい。なお、機器の種類の順番は任意の順番でよいが、指標比が大きい順または小さい順にすると探索効率が向上する場合がある。
 ステップS3の処理については、図4の説明において詳細に述べる。
 出力部14は、探索実行部13による探索の終了後、暫定解記憶部11に格納されている暫定集合を表す情報を読み出し、端末2に対して出力する(ステップS4)。
 例えば、暫定解記憶部11に格納されている暫定解が20であり、暫定集合を表す情報が、「機種Aが1台、機種Bが1台、機種Cが1台」であることを表す情報であった場合、出力部14は、暫定集合を表す情報を、例えば端末2に、所定の形式で出力すればよい。出力の形式は、例えば「((A,1),(B,1),(C,1))」のようなデータであっても、「機種A:1台、機種B:1台、機種C:1台」のような文字列であってもよい。また、出力部14は、暫定解を出力してもよい。
 図4は、ステップS2の探索時の構成管理装置1の動作の例を表すフローチャートである。
 図4を参照すると、探索実行部13は、機器の種類の順番を表すj(jは1以上J−1以下のいずれかの整数)を与えられて探索の処理を開始する。
 探索範囲記憶部12は、探索の動作の開始時に、1乃至j番目の種類の機器の台数(それぞれn(1)からn(j))を記憶している。探索(j)における探索の対象となる機器の集合は、1番目からj番目の機器の台数がそれぞれn(1)からn(j)である機器の集合である。従って、探索(j)における探索の対象となる機器の集合の集まりである探索範囲(j)は、探索(j)の動作の開始時に探索範囲記憶部12が記憶している各種類の機器の台数n(1)からn(j)によって定まる。ただし、jが0である場合、探索範囲記憶部12に機器の台数は格納されていない。
 jが0である場合(ステップS11、N)、探索範囲は初期値(探索範囲(0))である。図3のステップS3の探索(0)は、探索実行部13が、探索範囲(0)に対して、図4に示す処理を行うことを意味する。
 jが0より大きい場合(ステップS11、Y)、探索実行部13は、探索範囲記憶部12から、1番目からj−1番目の種類の機器の台数n(1)からn(j)を読み出す(ステップS12)。この場合の探索範囲は、1番目からj番目の機器の台数がそれぞれn(1)からn(j)である機器の集合の集まりである。
 次に、探索実行部13は、台数がそれぞれn(1)からn(j)の1乃至j番目の種類の機器とj+1番目の機器で充足集合を構成する場合の、j+1番目の機器の最小台数p(j+1)を算出する(ステップS13)。探索実行部13は、必要値Nと、n(1)からn(j)までの値と、機器記憶部10から読み出した1乃至j+1番目の種類の機器の第1の指標から、p(j+1)の算出を行えばよい。このように、n(1)からn(j)までの値に応じて、1乃至j+1番目の種類の機器のみで充足集合を構成する場合のj+1番目の種類の機器の最小台数p(j+1)を算出する方法が、「細かい方法」である。具体的には、探索実行部13は、まず、それぞれn(1)からn(j)台の1乃至j番目の種類の機器の、第1の指標の合計を算出すればよい。次に探索実行部13は、必要値Nと算出した第1の指標の合計の差を算出すればよい。探索実行部13は、算出した差をj+1番目の種類の機器の第1の指標の値で割り、小数点以下の端数を切り上げた値をp(j+1)にすればよい。探索実行部13は、1番目からj番目の種類の機器の台数がそれぞれn(1)からn(j)であり、j+1番目の種類の機器の台数がp(j+1)+1台以上である集合を、探索の対象にする必要はない。
 次に、探索実行部13は、探索の対象となる集合が含むj+1番目の種類の機器の最大台数r(j+1)を算出する(ステップS14)。
 本実施形態では、各種類の機器の台数に制限はないので、探索実行部13は、p(j+1)をr(j+1)にすればよい。なお、集合が含むことができるj+1種類の機器の台数に限りがある場合、探索実行部13は、p(j+1)とj+1番目の種類の機器の最大台数のいずれか小さい方を、r(j+1)にすればよい。この場合、r(j+1)の値はp(j+1)以下である。集合が含むことができる機器の種類毎の台数に限りがある場合については、後述の変形例1及び変形例2において詳細に説明する。
 あるいは、探索実行部13は、j+1番目の機器のみで充足集合を構成した場合の機器の最小台数を算出し、r(j+1)にしてもよい。このように、機器の集合を構成する1乃至j番目の種類の機器の台数によらず、j+1番目の種類の機器のみで充足集合を構成した場合の最小台数を算出し、探索の対象とする機器の集合のj+1番目の種類の機器の最大台数とする方法が、「荒い方法」である。荒い方法でr(j+1)を算出する場合、探索実行部13は、必要値を各機種の第1の指標で割り、割り切れない場合は小数点以下を切り上げた値を、r(j+1)にすればよい。なお、集合が含むことができるj+1種類の機器の台数に限りがある場合、探索実行部13は、j+1番目の機器のみで充足集合を構成した場合の機器の最小台数とj+1番目の種類の機器の最大台数のいずれか小さい方を、r(j+1)にすればよい。荒い方法でr(j+1)を算出する場合、探索実行部13は、ステップS13の処理を行わなくてよい。
 前述の細かい方法でr(j+1)を算出する場合、1番目からj番目の種類の機器の台数によってr(j+1)の値は異なる。しかし、荒い方法でr(j+1)の算出を行う場合、1番目からj番目の種類の機器の台数によらずr(j+1)の値は一定である。例えば、必要値が15である場合、j+1番目の種類の機器が前述の機種Aであれば、r(j+1)は、15/3=5なので、1番目からj番目の種類の機器の台数によらず5である。同様に、j+1番目の種類の機器が前述の機種Bであれば、r(j+1)は、15/5=3なので、1番目からj番目の種類の機器の台数によらず3である。また、j+1番目の種類の機器が前述の機種Cであれば、r(j+1)は、15/7=2.14...なので、1番目からj番目の種類の機器の台数によらず3である。荒い方法で算出したr(j+1)は、細かい方法で算出したr(j+1)以上の値である。
 ところで、探索実行部13が探索の対象とする機器の集合を、探索木の形で図示することが可能である。探索実行部13は、探索の対象となる機器の集合を、既存の任意の形式の探索木のデータとして表し、処理を行うこともできる。探索実行部13は、探索時に、探索範囲を適宜探索木に展開し、例えば探索範囲記憶部12に格納してもよい。
 図8は、図5に示す機器の例における、探索木の例の一部を表す図である。図8の機種A、機種B、機種Cが、それぞれ1乃至3番目の種類の機器に相当する。
 図8の探索木において、円はノードを表し、ノード間を結ぶ線は枝を表す。この探索木は4つの階層をもち、最上部(第1階層)のノードが根ノード、最下層(第4階層)のノードが葉ノード、これらの間にあるノードが中間ノードである。
 第2から第4の3つの階層は、1から3番目の種類の機器(順に、機種A、機種B、機種C)に対応する。
 最上部以外の各階層のノードに表記された数字は、対応する機種の台数を表している。そして、根ノードから葉ノードへと至る各経路が、機種の集合に対応している。たとえば、図5中の、根ノードから、機種Aの台数0、機種Bの台数0、機種Cの台数3に至る経路は、3台の機種Cの集合を表す。以降の説明では、便宜上、「0台の機種A」に対応するノードを(A,0)と表記し、機器の集合を((A,0),(B,0),(C,3))のように表記する。
 例えば、ノード(A,0)に対応するのは、1番目の種類(機種A)の台数n(1)が0である機器の集合の集まりである。すなわち、ノード(A,0)は、n(1)=0で表される探索範囲を表す。同様に、「0台の機種A、0台の機種B」に対応するノード((A,0),(B,0))は、n(1)=0及びn(2)=0で表され、1番目の種類(機種A)の台数n(1)が0、2番目の種類(機種B)の台数n(2)が0である探索範囲を表す。
 探索実行部13の動作は、根ノードから最後(J番目)の種類の機器に相当する根ノードまで、各ノードの一段下層のノードを順次展開しながら、機器の集合に相当する根ノードから各葉ノードにいたる経路を、順次探索して最小集合を抽出することに相当する。例えば、図5の例の場合、探索実行部13は、全てのノードを展開するのであれば、まず根ノードで一段下層のノードである(A,0)から(A,5)のノードを展開する。探索実行部13は、次に、(A,0)のノードで一段下層のノードである((A,0),(B,0))から((A,0),(B,3))を展開する。探索実行部13は、ノード((A,0),(B,0))の一段下層のノードは葉ノードなので、一段下層のノードを展開して探索を行う。探索実行部13は、同様に((A,0),(B,1))から((A,0),(B,3))の一段下層のノードを展開して探索を行う。探索実行部13は、ノード(A,0)を含む経路上の全てのノードの展開及び探索が終了すると、同様にノード(A,1)を含む経路上の全てのノードの展開及び探索を行う。ただし、本実施形態の探索実行部13は、以下で説明するように、全てのノードの展開及び探索を行う訳ではない。
 探索実行部13は、展開した各ノードにおいて、そのノードを通る経路全てに相当する機器の集合の集まりの、第2の指標の下限値を算出し、その下限値が暫定解を上回る場合は、そのノードを通る経路全てを探索の対象から除外する「枝刈り」を行う。探索実行部13は、途中のノードで枝刈りを行わずに葉ノードを展開した場合に、葉ノードまでの経路に相当する機器の集合の第2の指標の合計を算出し、暫定解と比較する。探索実行部13は、算出した第2の指標の合計が暫定解を下回った場合、その合計を新しい暫定解に、対応する機器の集合を新しい暫定集合にする。
 以上の動作において、ステップS14は、各ノードで、一段下層のノードを展開する際の、一段下層のノードへの枝の数を算出することに相当する。
 各ノードから一段下層のノードへの枝の数が分岐係数である。種類毎の機器の台数は0台の場合もあるので、例えばj−1番目の機器に対応するノードにおける分岐係数は、そのノードに対応する1乃至j−1番目の機器各々の台数から探索実行部13が算出したr(j)に1を加算した値である。
 荒い方法で分岐係数を算出する場合、上位の各ノードから、1段下のノードに対応する機器の種類の分岐係数の数のノードが必ず分岐する。したがって、荒い方法で分岐係数を算出する場合、図5に示す各機器に対応する探索木では、機器の組合せ総数に対応する葉ノードの数は、各機種の分岐係数を積算した6×4×4=96である。
 一方、細かい方法は、2番目以上の種類の機器に対応する、第3の階層以下のノードの分枝係数を、根ノードからそのノードまでの経路上のノードに対応する台数の対応する機器の第1の指標の合計と、必要値との差に基づき算出する方法である。
 たとえば(A,3)で表されるノードを通る経路に対応する集合の場合、そのノードに対応する3台の機種Aの第1の指標の合計は9である。荒い方法で分岐計数を算出したこのノードの分岐係数は、2番目の機器の種類である機種Bの第1の指標が5なので、15/5=3(前述の荒い方法で算出した機種Bのr(j))に1を加えた4である。しかし、ノード(A,3)以降のノードの第2の指標の合計は、必要値15とノード(A,3)の第1の指標の合計9との差である、6以上であれば充分である。細かい方法で算出した(A,3)で表されるノードの分岐係数は、6を機種Bの第1の指標である5で割った値の小数点以下を切り上げた値に、1を加えた値である3である。
 細かい方法には、ノード毎に分岐係数を算出する必要があり、階層が多い場合(機器の種類が多い場合)組合せの総数を算出するのに多くの計算量が必要になるという特徴がある。細かい方法には、さらに、ノード数を削減し、探索効率を改善することができるという特徴がある。最小集合に対応する経路は、細かい方法で算出した分岐係数に基づく分岐のノード以外を通る可能性はない。従って、探索を行う必要があるのは、細かい方法で算出した分岐係数に基づき生成した分岐のノードを経由する経路だけである。
 一方、荒い方法で算出する分岐係数は、細かい方法でノード毎に算出する分岐係数以上の値である。荒い方法は、ノード毎に分岐係数を算出する代わりに機器の種類毎に分岐係数を算出するので、分岐係数の算出のための計算量は、細かい方法より少なくなる。しかし、荒い方法で算出する分岐係数は、細かい方法でノード毎に算出した分岐係数以上の値になり、通常は細かい方法よりノード数が増え探索効率が悪い。
 次に、探索実行部13は、j+1番目の種類の機器の台数を表すn(j+1)を、0からr(j+1)まで順次増加させながら、以下の処理を行う(ステップS15)。
 まず、探索実行部13は、j+1番目の種類の機器の台数を表すn(j+1)を、探索範囲記憶部12に格納する(ステップS16)。探索実行部13は、例えばn(j+1)をj+1と対応付けて格納するなど、n(j+1)がj+1番目の種類の機器の台数を表すことが判別可能な形で、n(j+1)を探索範囲記憶部12に格納すればよい。探索範囲記憶部12に既に格納されている各種類の機器の台数と、n(j+1)が探索範囲(探索範囲(j+1))を表す。
 次に、探索実行部13は、探索範囲記憶部12に格納されているn(1)からn(j+1)が表す探索範囲(j+1)に含まれる集合の、第2の指標の合計値の下限値を算出する(ステップS17)。
 探索実行部13は、前述のように、緩和法により下限値の算出を行えばよい。緩和法は、元の問題の制約を緩和して説きやすくした緩和問題に対する最適解を算出する方法である。緩和問題の最適解は、一般に、元の問題の最適解よりよい解である。例えば、元の問題が最小値を算出する問題である場合、その問題の緩和問題の最適解である最小値は、一般に、元の問題の解である最小値より小さい。従って、緩和問題の解は、元の問題の解の下限値になりうる。典型的な緩和問題は、たとえば、機器は1台単位で使用し、機器の台数は整数であるという制限がもとの問題に課されている場合に、その制限を緩和し、1台の機器を分割して使用することを可能にして、機器の台数が実数であることを許容した問題である。
 本実施形態の探索実行部13が下限値を算出する上での制約の緩和は、機器の台数は整数であるという制約を外し、実数の台数を許容することであってよい。ただし、機器の台数が整数でない場合も、第1の指標や第2の指標の合計は、台数が整数である場合と同様に、機器の種類毎のそれぞれの指標に、対応する種類の機器の台数を掛けた値である。
 台数が実数である場合の、第1の指標の合計が所定値以上となる機器の集合の、第2の指標の合計の最小値は、第1の指標の合計が所定値となる、指標比が最も大きい種類の機器のみで構成される機器の集合の第2の指標の合計を算出することで得られる。第1の指標の合計が所定値以上となるいずれの機器の集合の第2の指標の合計も、この最小値を下回ることはない。
 探索範囲(j+1)に含まれる集合の、1乃至j+1番目の種類の機器の台数は、それぞれn(1)台からn(j+1)台である。以下の説明で、それぞれn(1)台からn(j+1)台の1乃至j+1番目の種類の機器の、第1の指標の合計を、必要値から引いた値が、残存必要値である。また、j+2乃至J番目の種類の機器で、指標値が最も大きい機器の種類が機種Xである。
 探索実行部13は、探索範囲(j+1)に含まれ、1乃至j+1番目の種類の機器と、残りの種類で最も指標比の大きい種類の機器(機種X)で構成される充足集合の、機種Xの最小台数を、機種Xの台数が整数であるという制約を外して算出すればよい。探索実行部13は、それぞれn(1)台からn(j+1)台の1乃至j+1番目の種類の機器と、算出した最小台数の機種Xの第2の指標の合計を、探索範囲(j+1)の第2の指標の合計の下限値にすればよい。
 そのために、まず、探索実行部13は、機器記憶部10から、1乃至j+1番目の種類の機器の第1の指標を読み出せばよい。また、探索実行部13は、探索範囲記憶部12から、1乃至j+1番目の種類の機器の台数であるn(1)からn(j+1)を読み出せばよい。探索実行部13は、機器記憶部10から読み出した各種類の機器の第1の指標に、探索範囲記憶部12から読み出した対応する種類の機器の台数を掛けた値を足し合わせればよい。探索実行部13は、このようにして、それぞれn(1)台からn(j+1)台の1乃至j+1番目の種類の機器の第1の指標の合計を算出すればよい。
 次に、探索実行部13は、機器記憶部10から、j+2乃至J番目の種類の機器の種類の各指標を読み出して、指標比を算出すればよい。あるいは、探索実行部13は、各種類の機器の指標比を予め算出し、例えば機器記憶部10に機器の種類に対応付けて格納しておいてもよい。そして、探索実行部13は、指標比が最も大きい種類の機器の選択の際、j+2乃至J番目の種類の機器の指標比を、機器記憶部10から読み出してもよい。探索実行部13は、j+2乃至J番目の種類の機器で、指標比が最も大きい種類の機器を選択する。
 探索実行部13は、必要値と算出した第1の指標の合計との差を、指標比の最も大きい機器の種類の第1の指標で割った実数値(緩和台数)を算出する。
 探索実行部13は、それぞれn(1)台からn(j+1)台の1乃至j+1番目の種類の機器と、算出した実数値を台数としたj+2番目の種類の機器の、第2の指標の合計を算出する。探索実行部13は、算出した合計を、探索範囲(j+1)の第2の指標の合計の下限値にする。探索実行部13は、算出した実数値をj+2番目の種類の機器の第2の指標に掛けた値を、算出した実数値を台数としたj+2番目の種類の機器の第2の指標の合計にすればよい。
 例えば、図8の中間ノード(A,0)では、必要値が15である場合、機種Aの台数は0なので、残存必要値は15である。残りの機器の種類のうち、指標比が最も大きい機器の種類は機種Cである。台数が実数であることを許容した場合の、第1の指標の合計が15となる機種Cの台数は、15/7である。15/7台の機種Cの、第2の指標の合計は15/7×8≒17.14である。機種Aの台数は0なので、これが中間ノード(A,0)以降の探索によって得られる第2の指標の合計に関する下限値である。機種Aを0台とした場合、第2の指標の合計に関して、17.14より小さな解を得ることは理論的に不可能である。従って、もし暫定解が、算出した下限値である17.14より小さい場合、中間ノード(A,0)を経由する経路における各ノードの第2の指標の合計が暫定解を下回る可能性はない。この場合、探索実行部13は、中間ノード(A,0)を経由する経路の探索を行わない。一方、暫定解が算出した下限値である17.14より大きい場合、中間ノード(A,0)を経由する経路のいずれかに、第2の指標の合計が暫定解を上回る経路が存在する可能性がある。この場合、探索実行部13は、中間ノード(A,0)を経由する経路の探索を行う。
 次に、探索実行部13は、暫定解記憶部11から読み出した暫定解と、算出した探索範囲(j+1)の第2の指標の合計の下限値を比較する。
 探索範囲が図8の中間ノード(A,0)で表される場合、暫定解記憶部11が記憶する暫定解が24であれば、探索範囲の第2の指標の下限値は約17.14なので、下限値の方が暫定解より小さい。
 比較の結果、暫定解が下限値を下回る場合(ステップS18、N)、探索範囲(j+1)に、第2の指標の合計が暫定解を下回る充足集合が含まれる可能性はない。この場合、探索実行部13は、探索範囲(j+1)では探索を行わず、ステップS15に戻る。
 例えば、探索範囲が、図8の中間ノード(A,2)で表される場合、2台の機種Aの第1の指標の合計は3×2=6である。必要値が15である場合、探索実行部13が算出する残存必要値は9である。機種Aの第2の指標は5、残りの機器の種類(機種B及び機種C)で最も指標比の大きい機種Cの第1の指標は7、第2の指標は8である。従って、探索実行部13が算出する下限値は、約20.29(=10+8×9/7)である。暫定解記憶部11が記憶する暫定解が20、対応する暫定集合が((A,1),(B,1),(C,1))で表される機器の集合である場合、探索実行部13は、ステップS18で、暫定解が下限値を下回ると判定する(ステップS18、N)。この場合、ノード(A,2)で表される探索範囲には最小集合は含まれる可能性がないので、探索実行部13は、ノード(A,2)で表される探索範囲に対する探索は行わない。探索実行部13は、同様に、ノード(A,3)、(A,4)、(A,5)の各々で表される探索範囲に対する探索も行わない。
 比較の結果、暫定解が下限値を下回る場合(ステップS18、Y)、探索範囲(j+1)に、第2の指標の合計が暫定解を下回る充足集合が含まれる可能性がある。探索実行部13は、探索範囲(j+1)で、最小集合の探索を行う。探索集合の探索方法は任意である。
 探索実行部13は、例えば、探索範囲(j+1)に含まれる全ての集合の第1の指標の合計を算出し、第1の指標の合計が必要値以上である場合、第2の指標の合計を算出して暫定解と比較することで、探索を行ってもよい。探索範囲(j+1)に含まれる全ての集合の生成において、探索実行部13は、例えば、まず、ステップS13と同様の処理によりp(j+2)を算出すればよい。探索実行部13は、0からp(j+2)までの整数を、探索範囲(j+1)に含まれる集合の、j+2番目の種類の機器の台数にすればよい。探索実行部13は、j+2番目の種類の機器の台数が0からp(j+2)までそれぞれの場合のp(j+3)を、ステップS13と同様の処理により算出すればよい。探索実行部13は、このようにステップS13と同様の処理を、j+2乃至J番目の種類の機器の台数の全ての組合せを導出するまで順次行えばよい。このようにして、探索実行部13は、探索範囲(j+1)に含まれる全ての集合を生成することができる。
 また、探索実行部13は、以下のように探索を行ってもよい。
 探索実行部13は、jがJ−2より小さい場合(ステップS19、Y)、jを1増加させ、図4の探索の動作を再帰的に行う(ステップS20)。すなわち、探索範囲(j+1)に第2の指標の合計が暫定解を下回る暫定集合が含まれる可能性がある場合、探索範囲記憶部12に台数が格納されていない機器の種類が複数存在するなら、探索実行部13は、以上で述べた処理と同様にして、探索範囲(j+1)を更に分割する。そして、探索実行部13は、探索範囲(j+1)をj+2番目の種類の機器の台数に応じて分割したそれぞれの探索範囲(j+2)に、第2の指標の合計が暫定解を下回る集合が含まれる可能性の有無を判定する。そして、探索実行部13は、判定結果に応じて探索範囲(j+2)で探索を行う。このように、探索実行部13は、jがJ−2になるまでjを1ずつ増加させながら、再帰的に図4の探索の動作を行えばよい。
 例えば、探索範囲が前述の探索木の中間ノード(A,0)で表される場合、下限値が暫定解より小さく、また、jは0でありJは3であるので、jがJ−2より小さい。従って、探索実行部13は、ノード(A,0)で表される探索範囲(1)に対して、図4の処理を最初から行えばよい。この場合、探索実行部13は、ノード(A,0)で表される探索範囲(1)を、2番目の機器の種類(機種B)の台数に応じて分割した、((A,0),(B,0)、((A,0),(B,1))、…で表される探索範囲(2)に対して、同様にステップS17以降の処理を行えばよい。
 探索実行部13は、jがJ−2である場合(ステップS19、N)、探索範囲(j+1)で、第2の指標の合計が暫定解を下回る機器の集合が存在すれば、その集合の第2の指標の合計を新しい暫定解に、その集合を新しい暫定集合とする。新しい暫定解及び暫定集合が見つかった場合、探索実行部13は、新しい暫定解と、新しい暫定解を表す情報を、暫定解記憶部11に格納し、暫定解及び暫定集合の更新を行う(ステップS21)。
 探索範囲(j+1)は、jがJ−2である場合、1番目乃至J−1番目の種類の機器の台数がそれぞれn(1)からn(J−1)である機器の集合の集まり(探索範囲(J−1))である。ステップS21で、探索実行部13は、まず、ステップS13と同様にしてp(J)を算出し、ステップS14と同様にしてr(J)を算出すればよい。
 前述の細かい方法でp(J)を算出する場合、p(J)は、探索範囲(J−1)に含まれる集合で、第2の指標の合計が最小となる充足集合の、J番目の種類の機器の台数である。また、本実施形態では機器の台数に制限は無いので、r(J)はp(J)である。従って、探索実行部13は、J番目の種類の機器の台数がr(J)である場合の第2の指標の合計を算出し、算出した第2の指標の合計を、暫定解記憶部11から読み出した暫定解と比較すればよい。
 一方、前述の荒い方法でr(J)を算出する場合、探索範囲(J−1)に含まれる充足集合における、J番目の種類の機器の最小値p(J)は、r(J)以下のいずれかの値である。この場合、探索実行部13は、J番目の種類の機器の台数n(J)を0から順次増加させながら、探索範囲(J−1)に含まれ、J番目の種類の機器の台数がn(J)である集合の、第1の指標の合計を算出する。探索実行部13は、算出した第1の指標の合計を必要値と比較し、最初に第1の指標の合計が必要値を上回った集合の、第2の指標の合計を算出する。探索実行部13は、算出した第2の指標の合計を、暫定解記憶部11から読み出した暫定解と比較すればよい。なお、第1の指標の合計が必要値を上回らないまま、n(J)がr(J)に達した場合、探索実行部13は暫定解及び暫定集合の更新を行わず、ステップS21の処理を終了すればよい。
 比較の結果、算出した第2の指標の合計が暫定解を下回る場合、探索実行部13は、算出した第2の指標の合計を新しい暫定解にすればよい。また、探索実行部13は、探索範囲記憶部12が記憶している、探索範囲(J−1)を表す1乃至J−1番目の種類の機器の台数であるn(1)からn(J−1)と、J番目の種類の機器の台数r(J)で表される集合を、新しい暫定集合とすればよい。探索実行部13は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部11に格納する。
 比較の結果、算出した第2の指標の合計が暫定解を上回る場合、探索実行部13は暫定解及び暫定集合を表す情報の更新は行わず、ステップS21の処理を終了する。
 例えば、ステップS19で、探索範囲が前述の探索木のノード((A,0),(B,1))で表される探索範囲(2)である場合、j(=1)はJ−2(1)より小さくない(ステップS19、N)ので、探索実行部13は、ステップS21の処理を行う。
 探索実行部13は、荒い方法でr(j)の算出を行う場合、((A,0),(B,1),(C,0))、((A,0),(B,1),(C,1))で表される機器の集合の第1の指標の合計の算出及び必要値との比較を、順に行う。機器記憶部10に格納されているこれらの機器の第1の指標及び第2の指標は、図5の例の通りである。従って、これらの機器の集合の第1の指標の合計は、必要値より小さい。探索実行部13は、次に、((A,0),(B,1),(C,2))で表される機器の集合の第1の指標の合計を算出する。得られた合計である19は、必要値である15より大きいので、探索実行部13は、この機器の集合の第2の指標の合計を算出する。暫定解記憶部11に格納されている暫定解が24の場合、算出した第2の指標の合計である23は、暫定解より小さい。この場合、探索実行部13は、算出した第2の指標の合計23を新しい暫定解に、対応する((A,0),(B,1),(C,2))で表される機器の集合を新しい暫定集合にする。探索実行部13は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部11に格納する。
 探索実行部13による探索の終了後、上述の図3のステップS3の説明ように、出力部14が、暫定解記憶部11に格納されている暫定集合を表す情報を読み出し、端末2に対して出力すればよい。
 以上で説明した本実施形態には、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる2つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
 その理由は、探索実行部13が、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部13は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
 (第1の実施形態の第1の変形例)
 次に、本発明の第1の実施形態の、第1の変形例について説明する。
 前述の第1の実施形態では機器の種類毎の台数に制限は無かったのに対し、本変形例の機器の種類毎の台数は、1台又は0台である(01問題)。本変形例の構成管理装置1は、同じ種類の機器を2台以上含まない充足集合で、第2の指標の合計が最小となる集合を出力する。
 まず、本変形例の構成管理装置1の構成について、図面を参照して詳細に説明する。
 図1は、本変形例の構成管理装置1の構成を表す図である。本変形例の構成管理装置1の構成は、第1の実施形態の構成管理装置1の構成と同じである。したがって、構成に関する説明は省略する。
 図3は、本変形例の構成管理装置1が最小集合を抽出する動作全体を動作の例を表すフローチャートである。
 本変形例の構成管理装置1が最小集合を抽出する動作の例は、前述の第1の実施形態の構成管理装置1が最小集合を抽出する動作の例と、ステップS2における初期解の算出の方法と、ステップS3における探索の方法が異なる。
 また、探索実行部13は、1番目の機器が0台以上1台以下である充足集合の集まりを、探索範囲の初期値(探索範囲(0))にすればよい。
 本変形例の構成管理装置1のその他の動作は、第1の実施形態の構成管理装置1の動作と同じなので、説明を省略する。
 図9は、本変形例の構成管理装置1が初期解を算出する動作の例を表すフローチャートである。
 図9を参照すると、初期解算出部15は、機器記憶部10から全ての機器の種類の第1の指標及び第2の指標を読み出す(ステップS31)。
 次に、初期解算出部15は、全ての機器の種類の指標比を算出する(ステップS32)。初期解算出部15は、算出した指標比が大きい順に、機器の種類をソートしてもよい。
 次に、初期解算出部15は、未選択の機器の種類の中で、指標比が最も大きい機器の種類を1つ選択する(ステップS33)。
 初期解算出部15は、例えば、暫定解記憶部11に格納されている暫定集合の情報を読み出せばよい。初期解算出部15は、読み出した暫定集合の情報に1台の選択した種類の機器の情報を追加する暫定集合の更新を行えばよい。初期解算出部15は、更新を行った暫定集合の情報を暫定解記憶部11に格納すればよい。初期解算出部15は、暫定解記憶部11に暫定集合の情報が格納されていない場合、1台の選択した種類の機器で構成される暫定集合の情報を生成すればよい。初期解算出部15は、その暫定集合の情報を、暫定解記憶部11に格納すればよい。
 初期解算出部15は、既に選択した機器の種類の、第1の指標の累計を算出する(ステップS34)。
 なお、初期解算出部15は、ステップS34の動作の実行時に、第2の指標の累計を算出してもよい。そして、初期解算出部15は、算出した第2の指標の累計を、暫定解として暫定解記憶部11に格納してもよい。初期解算出部15は、例えば、暫定解記憶部11から第2の指標の累計である暫定解を読み出せばよい。そして、初期解算出部15は、読み出した暫定解にステップS33で新しく選択した種類の機器の第2の指標を合算すればよい。そして、初期解算出部15は、合算した暫定解を暫定解記憶部11に格納すればよい。この場合、暫定解記憶部11に暫定解が記憶されてなければ、ステップS33で新しく選択した種類の機器の第2の指標を、暫定解として暫定解記憶部11に格納すればよい。
 初期解算出部15は、選択済みの機器の種類の第1の指標の累計と必要値を比較する。初期解算出部15は、第1の指標の合計が必要値以上である場合(ステップS35、Y)、暫定解の初期値となる、選択済みの機器の種類の第2の指標の累計を算出する(ステップS36)。
 初期解算出部15は、算出した第2の指標の累計を、暫定解の初期値として暫定解記憶部11に格納する(ステップS37)。
 なお、ステップS34で、第2の指標の累計を暫定解として暫定解記憶部11に格納している場合、ステップS36では、選択済みの機器の種類の第2の指標の累計を暫定解の初期値として格納する必要はない。
 第1の指標の累計が必要値以上でない場合(ステップS35、Y)、全ての機器の種類を選択されておらず、まだ選択されていない機器の種類が存在する場合(ステップS38、N)、ステップS33に戻る。
 全ての機器の種類を選択されており、まだ選択されていない機器の種類が残っていない場合(ステップS38、Y)、初期解の算出の処理を終了する。この場合、機器の集合が機器記憶部10に各指標が格納されている全ての機器を含んでいても、その集合の第1の指標の合計は必要値未満なので、充足集合は存在しない。
 図10は、本変形例の構成管理装置1の探索の詳細な動作の例を表すフローチャートである。
 図10と図4の第1の実施形態の探索の動作を表すフローチャートを比較すると、本変形例はステップS13及びステップS14を含まず、ステップS15の代わりにステップS22を含む点が異なる。本変形例では、各種類の機器の台数は最大1台なので、r(j+1)は常に1である。従って、r(j+1)を算出するためのステップS13及びステップS14は不要である。また、ステップS22は、r(j+1)が常に1である場合のステップS15に相当する。
 また、本変形例の構成管理装置1の動作は、第1の実施形態の構成管理装置1の動作と比較して、ステップS17の緩和法によって下限値を算出する動作と、ステップS21の暫定解及び暫定集合を更新する動作が異なる。その他の点は第1の実施形態の動作と同じであるので、説明を省略する。
 図11は、ステップS17で、本変形例の構成管理装置1の探索実行部13が下限値を算出する動作の例を表すフローチャートである。
 図11を参照すると、探索実行部13は、機器記憶部10から読み出した第1の指標及び第2の指標をもとに、1乃至j+1番目の機器の第1の指標の合計を算出する(ステップS41)。
 次に、探索実行部13は、必要値Nから、算出した1乃至j+1番目の機器の第1の指標の合計を引いた残存必要値を算出する(ステップS42)。
 次に、探索実行部13は、j+2乃至J番目で未選択の機器の種類から、機器記憶部10から読み出した第1の指標及び第2の指標から算出した指標比が最も大きい機器の種類を選択する(ステップS43)。
 探索実行部13は、選択した種類の機器の最大台数分の、第1の指標の和を算出する(ステップS44)。なお、本変形例では、全ての種類の機器の最大台数は1なので、算出する第1の指標の和は、ステップS43で選択した種類の機器の第1の指標そのものである。
 探索実行部13は、算出した第1の指標の和が残存必要値より小さい場合(ステップS45、N)、j+2乃至J番目の機器の種類を既に全て選択しており、まだ選択されていない機器の種類が存在しないなら(ステップS49)、処理を終了すればよい。この場合、1乃至J番目の種類の機器を全て組み合わせても、第1の指標の合計が必要値に届かないことになる。
 探索実行部13は、算出した第1の指標の和が残存必要値より小さい場合(ステップS45、N)、j+2乃至J番目の機器の種類に、まだ選択されていない機器の種類が存在するなら、残存必要値を更新する(ステップS50)。探索実行部13は、ステップS44で算出した第1の指標の和を残存必要値から減算して、新しい残存必要値とすることで、残存必要値の更新を行えばよい。
 探索実行部13は、ステップS50の動作を行った後、ステップS43に戻る。
 探索実行部13は、算出した第1の指標の和が残存必要値より大きい場合(ステップS45、Y)、残存必要値を、選択した種類の機器の第1の指標で割った実数値を算出する(ステップS46)。算出した実数値は、第1の指標の値が残存必要値となるように、台数が整数であるという制約を外して算出した、選択した種類の機器の台数(緩和台数)である。なお、本変形例では、各種類の機器の最大台数は1なので、探索実行部13が算出した緩和台数は0以上1以下の範囲に含まれる実数値である。
 探索実行部13は、次に、選択した種類の機器の、算出した緩和台数分の第2の指標を算出する(ステップS47)。本変形例では、各種類の機器の最大台数は1なので、探索実行部13が算出した緩和台数分の第2の指標は、0以上で、選択した種類の機器の1台当たりの第2の指標以下の値である。
 探索実行部13は、それぞれ最大台数の、最後に選択した機器を除く全ての選択済みの機器及び1乃至j+1番目の種類の機器と、算出した緩和台数分の最後に選択した機器の、第2の指標の合計を算出する。探索実行部13は、算出した合計を、下限値にする(ステップS48)。なお、前述のように、本変形例では、各機器の最大台数は1台である。
 以上の処理は、例えば第1の指標が性能を表し、第2の指標がコストを表す場合、第1の指標の合計が必要値以上になるまで、コストパフォーマンスのよい種類の機器から順に、機器の種類を選択することに相当する。以上の処理は、さらに、第1の指標の合計が必要値を上回った場合、第1の指標の合計がちょうど必要値になるよう最後に選択した機器を分割し、分割した機器と、既に選択していた全ての機器の第2の指標の和を算出し、第2の指標の下限値にすることに相当する。
 次に、本変形例の構成管理装置1の、図10のステップS21の動作について説明する。
 ステップS21で、探索実行部13は、まず、探索範囲(J−1)に含まれる充足集合の中で、第2の指標が最小となる充足集合の、J番目の種類の機器の台数p(J)を算出すればよい。そして、探索実行部13は、p(J)がJ番目の機器の最大台数以下(本変形例では0又は1)である場合、暫定解・暫定集合の更新を行えばよい。p(J)がJ番目の機器の最大台数である1より大きい場合は、探索範囲(J−1)に充足集合は含まれないので、探索実行部13は、暫定解・暫定集合の更新を行わない。
 暫定解・暫定集合の更新を行う場合、探索実行部13は、第1の実施形態と同様に、J番目の種類の機器の台数がr(J)である場合の第2の指標の合計を算出すればよい。そして、探索実行部13は、算出した第2の指標の合計を、暫定解記憶部11から読み出した暫定解と比較すればよい。なお、暫定解・暫定集合の更新を行うのはp(J)がJ番目の機器の最大台数(本変形例では1)以下の場合であり、r(J)はJ番目の種類の最大台数とp(J)のいずれか小さい方の値であるので、この場合r(J)はp(J)である。
 比較の結果、算出した第2の指標の合計が暫定解を下回る場合、探索実行部13は、算出した第2の指標の合計を新しい暫定解にすればよい。また、探索実行部13は、探索範囲記憶部12が記憶している、探索範囲(J−1)を表す1乃至J−1番目の種類の機器の台数であるn(1)からn(J−1)と、J番目の種類の機器の台数r(J)で表される集合を、新しい暫定集合とすればよい。探索実行部13は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部11に格納する。
 図12は、本変形例の探索実行部13の探索の対象となる機器の集合を表す二分探索木を表す図である。
 図12を図8と比較すると、図12の探索木の場合、各ノードの分岐係数が全て2であり、各種類の機器の最大台数が1に制限されている点が異なる。
 以上で説明した本変形例には、各種類の機器の最大台数が1の場合に、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる2つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
 その理由は、探索実行部13が、各種類の機器の最大台数が1であるという条件のもとで、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部13は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
 (第1の実施形態の第2の変形例)
 次に、第1の実施形態の第2の変形例について、図面を参照して詳細に説明する。
 第2の変形例では、機器の種類毎に最大台数が存在する。本変形例の構成管理装置1は、同じ種類の機器をその種類の機器の最大台数以上含まない充足集合で、第2の指標の合計が最小となる集合を出力する。
 図1が、本変形例の構成管理装置1の構成を表す図である。本変形例の構成管理装置1の構成は、第1の実施形態の構成管理装置1の構成と同じである。
 ただし、本変形例の機器記憶部10は、第1の指標及び第2の指標に加えて、機器の種類毎の最大台数を、機器の種類に対応付けて記憶する。各種類の機器の第1の指標、第2の指標及び最大台数は、予め機器記憶部10に格納されていればよい。あるいは、ファイル31に含まれている各種類の機器の第1の指標、第2の指標及び最大台数を、指標取得部16が抽出し、機器記憶部10に格納してもよい。
 図13は、本変形例の機器記憶部10が記憶する、第1の指標、第2の指標、及び最大台数の一例を表す図である。
 図13の例では、機種Aの最大台数は4台、機種Bの最大台数は3台、機種Cの最大台数は2台である。
 本変形例の構成管理装置1の他の構成要素は、第1の実施形態の対応する構成要素と同じなので、説明を省略する。
 次に、本変形例の動作について、図面を参照して詳細に説明する。
 図3が、本変形例の構成管理装置1が最小集合を抽出する動作全体を動作の例を表すフローチャートである。
 本変形例の構成管理装置1が最小集合を抽出する動作の例は、前述の第1の実施形態の構成管理装置1が最小集合を抽出する動作の例と比較すると、ステップS2における初期解の算出の方法と、ステップS3における探索の方法が異なる。
 また、探索実行部13は、例えば、1番目の種類の機器のみで充足集合を構成した時の機器の最小台数p(1)を算出し、p(1)と1番目の種類の機器の最大台数のいずれか小さい方をr(1)にする。そして、探索実行部13は、1番目の機器が0台以上r(1)台以下である充足集合の集まりを、探索範囲の初期値(探索範囲(0))にすればよい。
 本変形例の構成管理装置1のその他の動作は、第1の実施形態の構成管理装置1の動作と同じなので、説明を省略する。
 図14は、本変形例の構成管理装置1が初期解を算出する動作の例を表すフローチャートである。
 図14に示す本変形例の構成管理装置1の初期解を算出する動作は、図4に示す第1の変形例の構成管理装置1の初期解を算出する動作と比較すると、ステップS33とステップS34の間にステップS39の動作を行う点が異なる。また、本変形例の、ステップS34の第1の指標の累計及び第2の指標の累計を算出する動作と、ステップS36の暫定解の初期値を算出する動作が、それぞれ対応する第1の変形例の動作と異なる。
 本変形例の初期解算出部15は、未選択の機器の種類の中で指標比が最も大きい機器の種類を選択した(ステップS33)後、選択した機器の種類の最大台数を、機器記憶部10から読み出す(ステップS38)。
 ステップS34で、初期解算出部15は、機器記憶部10から読み出した、既に選択した機器の種類各々の、第1の指標及び最大台数から、既に選択した機器の種類各々の最大台数分の第1の指標の累計を算出する。
 ステップS36で、初期解算出部15は、最後に選択した種類の機器と、台数がそれぞれの種類の機器の最大台数である、最後に選択した機器の種類以外の既に選択した全ての種類の機器で構成される充足集合の、最後に選択した種類の機器の最小台数を算出する。初期解算出部15は、台数がそれぞれの種類の機器の最大台数である、最後に選択した機器の種類以外の既に選択した全ての種類の機器と、算出した最小台数の最後に選択した種類の機器で構成される集合を、暫定集合の初期値にする。初期解算出部15は、暫定集合の初期値の第2の指標の合計を算出し、暫定解の初期値にする。
 図14における本変形例の構成管理装置1の他の動作は、図4の第1の変形例の構成管理装置1の同一の符号を付したステップの動作と同じであるので、説明を省略する。
 次に、本変形例の構成管理装置1の最小集合の探索時の動作について、図面を参照して詳細に説明する。
 図4が、本変形例の構成管理装置1の最小集合の探索時の動作を表すフローチャートである。本変形例の構成管理装置1の最小集合の探索時の動作を表すフローチャートは、第1の実施形態のものと同じであるが、ステップS14のr(j+1)の算出方法と、ステップS17の下限値の算出方法と、ステップS21の暫定解・暫定集合の更新方法が異なる。
 ステップS14で、探索実行部13は、ステップS14で算出したp(j+1)と、機器記憶部10から読み出したj+1番目の種類の機器の最大台数を比較し、大きい方をr(j+1)にする。
 図11は、本変形例のステップS17において、探索実行部13が下限値を算出する動作を表すフローチャートである。本変形例の探索実行部13が下限値を算出する動作を表すフローチャートは、第1の変形例のものと同じである。しかし、第1の変形例では各種類の機器の最大台数は1台であったのに対し、本変形例の各種類の機器の最大台数は1台に限らず、機器の種類に対応付けて機器記憶部10に格納されている点が異なる。
 ステップS44で、探索実行部13は、機器記憶部10から選択した種類の機器の最大台数分を読み出し、選択した種類の機器の最大台数分の、第1の指標の和を算出する。
 ステップS46で、探索実行部13が算出する緩和台数は、0以上、機器記憶部10から読み出した、選択した機器の最大台数以下の範囲に含まれる実数値である。
 ステップS48で、探索実行部13は、それぞれ機器記憶部10から読み出した最大台数の、最後に選択した機器を除く全ての選択済みの機器及び1乃至j+1番目の種類の機器と、算出した緩和台数分の最後に選択した機器の、第2の指標の合計を算出する。探索実行部13は、算出した合計を、下限値にする。
 次に、本変形例の構成管理装置1の、図4のステップS21の動作について説明する。
 ステップS21で、探索実行部13は、まず、探索範囲(J−1)に含まれる充足集合の中で、第2の指標が最小となる充足集合の、J番目の種類の機器の台数p(J)を算出すればよい。そして、探索実行部13は、p(J)がJ番目の種類の機器の最大台数以下である場合、暫定解・暫定集合の更新を行えばよい。p(J)がJ番目の種類の機器の最大台数より大きい場合は、探索範囲(J−1)に充足集合は含まれないので、探索実行部13は、暫定解・暫定集合の更新を行わない。
 暫定解・暫定集合の更新を行う場合、探索実行部13は、第1の実施形態と同様に、J番目の種類の機器の台数がr(J)である場合の第2の指標の合計を算出すればよい。そして、探索実行部13は、算出した第2の指標の合計を、暫定解記憶部11から読み出した暫定解と比較すればよい。なお、暫定解・暫定集合の更新を行うのはp(J)がJ番目の機器の最大台数以下の場合であり、r(J)はJ番目の種類の最大台数とp(J)のいずれか小さい方の値であるので、この場合r(J)はp(J)である。
 比較の結果、算出した第2の指標の合計が暫定解を下回る場合、探索実行部13は、算出した第2の指標の合計を新しい暫定解にすればよい。また、探索実行部13は、探索範囲記憶部12が記憶している、探索範囲(J−1)を表す1乃至J−1番目の種類の機器の台数であるn(1)からn(J−1)と、J番目の種類の機器の台数r(J)で表される集合を、新しい暫定集合とすればよい。探索実行部13は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部11に格納する。
 以上で説明した本変形例には、各種類の機器の最大台数がそれぞれ定まっている場合に、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる2つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
 その理由は、探索実行部13が、各種類の機器の最大台数が機器記憶部10に格納されている台数であるという条件のもとで、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部13は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
 次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
 図15は、本実施形態の構成管理装置1Aの構成を表す図である。
 図15を参照すると、本実施形態の構成管理装置1Aは、複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、機器の種類毎に、P1及びP2を記憶する機器記憶部10と、初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶部11と、1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を記憶する探索範囲記憶部12と、Nを入力して、n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、n(1+1)を探索範囲記憶部12に格納して、N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、探索範囲記憶部12に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、下限値が暫定解より小さい場合、探索範囲(j+1)から、P2の合計が暫定解より小さい充足集合を抽出し、抽出した充足集合のP2の合計及び抽出した充足集合を表す情報を、暫定解及び暫定集合として暫定解記憶部11に格納し、下限値が暫定解より大きい場合、探索範囲(j+1)の探索を行わない探索実行部13と、探索実行部13による探索の実行後、暫定集合を最小集合として出力する出力部14とを含む。
 以上で説明した本実施形態には、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる2つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
 その理由は、探索実行部13が、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部13は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
 以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
 この出願は、2011年6月20日に出願された日本出願特願2011−136489を基礎とする優先権を主張し、その開示の全てをここに取り込む。
Next, embodiments of the present invention will be described in detail with reference to the drawings.
(First embodiment)
FIG. 1 is a block diagram showing the configuration of the configuration management apparatus 1 according to the first embodiment of the present invention.
Referring to FIG. 1, the configuration management apparatus 1 of the present embodiment includes a device storage unit 10, a provisional solution storage unit 11, a search range storage unit 12, a search execution unit 13, and an output unit 14. The configuration management device 1 may include an initial solution calculation unit 15 and an index acquisition unit 16. A terminal 2 is connected to the configuration management apparatus 1. A server 3 including a file 31 may be connected to the configuration management device 1. Note that the server 3 does not exist, and the configuration management device 1 may include the file 31.
The configuration management apparatus 1 according to the present embodiment can be realized by a computer and a program for controlling the computer, dedicated hardware, or a combination of the computer and the program for controlling the computer and dedicated hardware. The device storage unit 10, the provisional solution storage unit 11, and the search range storage unit 12 can be realized by a memory or a hard disk device included in the computer. Further, the search execution unit 13, the output unit 14, the initial solution calculation unit 15, and the index acquisition unit 16 are dedicated for realizing the function of each unit read into a memory from a recording medium that stores a program, for example. And a processor that executes the program. Alternatively, some or all of the device storage unit 10, the provisional solution storage unit 11, the search range storage unit 12, the search execution unit 13, the output unit 14, the initial solution calculation unit 15, and the index acquisition unit 16 Also, it can be realized by a dedicated circuit for realizing the function of each unit.
The device storage unit 10 stores, for each type, two indexes of a plurality of types (J types) of devices having at least two different indexes. The device is, for example, a calculation device such as a server, a CPU, or the like. Of the two indicators, the first indicator (P1) is, for example, an indicator representing the performance of the device. The index indicating the performance is, for example, an index such as a throughput, a MIPS value, or a FLOPS (Floating point number Operations Per Second) value. The first index may be an index representing reliability, availability, and the like, for example. Of the two indicators, the second indicator (P2) is, for example, an indicator representing the cost of the device. The index representing the cost is an index that affects the cost of system construction and operation, such as price, power consumption, amount of exhaust heat, weight, installation space, and the like. Further, the second index may be a value such as the number of parts constituting the device, for example. These two indices for a plurality of devices are the sum of the two indices for each device.
For example, when the device is a computing device, the first index represents performance, and the second index is price, the performance of the computer system configured by a set of one or more devices selected from a plurality of types of devices Is represented by the sum of the first indices of the devices included in the set. The price of this computer system is the total of the second index of the devices included in the set.
In the following description, the set in which the sum of the second indexes is the smallest among the set of devices (satisfaction set) in which the sum of the first indexes exceeds a predetermined value (necessary value) is the minimum set. The sum of the second index of the devices belonging to the minimum set is the minimum total. The necessary value may be, for example, a value input to the device configuration apparatus 1 by the user via an input unit (not shown) provided in the terminal 2. In addition, a set in which the sum of the second indices is the smallest among the satisfaction sets in which the search execution unit 13 described later has already performed a search described later is a provisional set. And the sum total of the 2nd parameter | index of the apparatus which belongs to a provisional set is a provisional solution.
In the present embodiment, the number of devices of each type that can be included in a set of devices is not limited. In general, the problem of deriving the optimal combination of devices under a predetermined condition without limiting the number of devices of each type that can be included in the set of devices is called an unlimited problem. For example, when an information processing system composed of one or more computers selected from a plurality of types of computers is newly introduced, if there is no limit on the number of devices of each type to be introduced, the predetermined performance is satisfied, and the most The problem of deriving a low-cost computer is an unlimited problem.
The 1st parameter | index and 2nd parameter | index of each apparatus which the apparatus memory | storage part 10 memorize | stores should just be given previously. Alternatively, the index acquisition unit 16 may acquire these indexes from the file 31 as described later. Further, for example, the user may input these indices into the configuration management apparatus 1 via the terminal 2 and store them in the device storage unit 10.
The initial solution calculation unit 15 calculates the initial value (initial solution) of the provisional solution using, for example, a method (heuristics) for obtaining a reasonably good solution with high probability. Heuristics does not necessarily have to be a way to calculate the minimum total. The heuristics may be any method that can extract a set of devices in which the total of the first index exceeds the required value in a shorter time than the method of always calculating the minimum total. Since heuristics is not necessarily a method for calculating the minimum total, the initial value of the provisional solution calculated by the initial solution calculation unit 15 is a value equal to or greater than the minimum total. An example of heuristic used by the initial solution calculation unit 15 will be described later. Examples of general heuristics include genetic algorithms, annealing methods, and algorithms using neural networks.
The initial solution calculation unit 15 stores the calculated initial value of the temporary solution and information indicating a corresponding set of devices (initial value of the temporary set) in the temporary solution storage unit 11.
The provisional solution storage unit 11 stores provisional solutions and information representing provisional sets. As described above, the provisional solution stored in the provisional solution storage unit 11 in the initial state and the information representing the provisional set represent, for example, the initial value of the provisional solution calculated by the initial solution calculation unit 15 and the initial value of the provisional set. Any information may be used.
In the initial state, the provisional solution storage unit 11 may not store the initial value of the provisional solution calculated by the initial solution calculation unit 15, but may store in advance a sufficiently large value that can be expressed on a computer as a provisional solution. In this case, the provisional solution storage unit 11 may not store a provisional set corresponding to the provisional solution in the initial state. Furthermore, in this case, the initial solution calculation unit 15 may not exist. However, in this case, there is a high possibility that the search efficiency is reduced.
The search range storage unit 12 stores n (1) to n (j), which is the number of devices of the first to jth (j is an integer of 1 to J-1) type. The search execution unit 13 described later can read the number of devices stored in the search range storage unit 12 and set a set of devices determined based on the read number of devices as a search target. For example, when the search range storage unit 12 stores n (1) to n (j), which is the number of devices of the 1st to jth types, the search execution unit 13 selects the 1st to jth type of devices. A set of devices whose number of devices is n (1) to n (j), respectively, may be searched. In this case, n (1) to n (j) stored in the search range storage unit 12 represent a search range that is a set of devices to be searched.
The search execution unit 13 selects, from a search range that is a set of sets (the above-described satisfaction set) in which the sum of the first indices is equal to or greater than a necessary value among a set of devices composed of a plurality of types of devices, A search is performed to extract a combination of devices whose total index is equal to or less than the provisional solution. The search execution unit 13 divides the search range into a plurality of search ranges during the search. And the search execution part 13 determines the presence or absence of possibility of including the minimum set for every divided | segmented search range. The search execution unit 13 excludes a search range that may not include the minimum set as a result of the determination from the search target. The search will be described in detail in the description of the operation of the present embodiment. The provisional set after the search execution unit 13 completes the search for all the search ranges that are not excluded from the search targets is the minimum set.
After the search by the search execution unit 13 is completed, the output unit 14 outputs information representing the temporary set stored in the temporary solution storage unit 11 to the terminal 2 as information representing the minimum set.
The terminal 2 displays information representing the minimum set output by the output unit 14. The display by the terminal 2 may be in any format as long as it can be understood how many types of devices are included in the minimum set.
The index acquisition unit 16 extracts, for example, the first index and the second index of each device included in the file 31 stored in the server 3 and stores them in the device storage unit 10.
The server 3 may be the same device as the configuration management device 1, for example, may be another device that is communicably connected via a network.
The file 31 includes, for example, one or a plurality of files that make up one or a plurality of web pages in which specifications of each device are disclosed on the Internet by a vendor of each device, and specifications of each device. It is a file that makes up the database that contains it.
For example, the index acquisition unit 16 acquires the file 31 in accordance with a user instruction that specifies a URI (Uniform Resource Identifier) that identifies a web page or the like via an input unit (not illustrated) of the terminal 2. The index acquisition unit 16 uses the first index and the second index of each device included in the file 31 as a key, for example, a character string such as “performance”, “price”, “power consumption”, “number of parts”, etc. Extract. The index acquisition unit 16 stores the extracted first index and second index of each device in the device storage unit 10. In addition, the index acquisition unit 16 may acquire the first index and the second index from the database according to an instruction that specifies a query to the database or the like via an input unit (not illustrated) of the terminal 2. The index acquisition unit 16 may extract information for obtaining an index (for example, the CPU and the number of clocks of the device) from the file 31. Then, the index acquisition unit 16 may acquire the first index and the second index from the database in which the index is stored based on the extracted information.
The index acquisition unit 16, the server 3, and the file 31 may not exist. In that case, the device storage unit 10 may store in advance two indexes of a plurality of types (J types) of devices having at least two different indexes for each type.
Next, the operation of the configuration management apparatus 1 of this embodiment will be described in detail with reference to the drawings.
FIG. 2 is a flowchart illustrating an example of an operation in which the configuration management apparatus 1 according to the present embodiment acquires a device index.
Referring to FIG. 2, the index acquisition unit 16 first receives an instruction via, for example, an input unit (not shown) of the terminal 2 and acquires a file 31 including a first index and a second index for each type of device. (Step S61).
Next, the index acquisition unit 16 extracts the first index and the second index for each type of device from the acquired file 31 (step S62).
The index extraction unit 16 stores the extracted first index and second index for each device type in the device storage unit 10 in association with the device type (step S63).
FIG. 3 is a flowchart showing an overall example of an operation in which the configuration management apparatus 1 of the present embodiment extracts a minimum set (solution).
Referring to FIG. 3, the search execution unit 13 of the configuration management apparatus 1 first receives the necessary value N via an input unit (not shown) of the terminal 2 (step S1).
Next, the initial solution calculation unit 15, for example, based on the necessary value N received from the search execution unit 13 and the first index and the second index of each device type received from the device storage unit 10. The initial value of the provisional solution is calculated using tics (step S2). The initial solution calculation unit 15 stores the temporary solution storage unit 11 together with information representing the temporary set corresponding to the temporary solution.
Examples of heuristics in which the initial solution calculation unit 15 of the present embodiment calculates the initial value of the provisional solution are as follows. For example, the initial solution calculation unit 15 may calculate a ratio (index ratio) of the first index to the second index for each type of device. Then, the initial solution calculation unit 15 may calculate the minimum number of devices when the satisfaction set is configured by only the types of devices having the largest index ratio. The initial solution calculation unit 15 may set an initial value of the provisional set to a set composed of the types of devices having the smallest calculated index number and the largest index ratio. Then, the initial solution calculation unit 15 may set the sum of the second indices of the initial values of the temporary set as the initial value of the temporary solution. When the first index represents performance and the second index represents cost, the index ratio represents cost performance (cost performance ratio).
FIG. 5 is a diagram illustrating an example of device information (first index and second index for each type of device) stored in the device storage unit 10. In the example of FIG. 5, the device storage unit 10 stores a first index and a second index of three types of devices, model A to model C.
The initial solution calculation unit 15 reads these indexes from the device storage unit 10 and calculates an index ratio for each type of device.
FIG. 6 is a diagram illustrating an index ratio calculated from the example of the device information illustrated in FIG. Referring to FIG. 6, in this case, model C has the largest index ratio, and the index ratio is 0.88.
For example, when the required value N is 15, the first index of the model C is 7, and 15/7 is about 2.14. Therefore, in order to satisfy the required value with only the model C, three models C are required. is necessary. The total of the second index of the set composed of the three models C is 24. In this case, the initial solution calculation unit 15 may store 24 as the temporary solution in the temporary solution storage unit 11. Then, the initial solution calculation unit 15 may store information representing a set including three models C as a temporary set in the temporary solution storage unit 11.
FIG. 7 is a diagram illustrating information representing the provisional solution and the provisional set stored in the provisional solution storage unit 11 when the provisional solution is 24 and the provisional set is a set composed of three models C.
Next, the search execution unit 13 includes a plurality of types of devices in combination, and the minimum set in which the total of the second index is the minimum from the set in which the total value of the first index is equal to or greater than the necessary value N A search, which is a process for extracting, is performed (step S3).
The search execution unit 13 performs a search based on the branch and bound method. Although details will be described in the description of FIG. 4, the search based on the branch and bound method is roughly as follows.
The search execution unit 13 divides the search range into a plurality of search ranges before exhaustively searching the search range that is a set of devices. Then, the search execution unit 13 determines whether or not there is a possibility that the minimum set is included in the divided search range. The search execution unit 13 divides the search range by setting a set of devices that are included in the search range and the same number of devices of a certain type of device as a new search range. Good.
As described above, when the search range storage unit 12 stores n (1) to n (j), the search execution unit 13 searches for n (j) from n (1). What is necessary is just to read from the range memory | storage part 12. And the search execution part 13 should just define a search range by n (j) read from n (j). The search execution unit 13 may set a set of devices having the number of first to jth types of devices from n (1) to n (j) as a search range (search range (j)).
For the search range (j) determined in this way when the search range storage unit 12 stores n (1) to n (j), the search performed by the search execution unit 13 is “search (j)”. It is. In the search (j), the search execution unit 13 divides the search range (j) read from the search range storage unit 12 by n (1) to n (j) into a plurality of search ranges. Then, the search execution unit 13 determines whether or not there is a possibility that the minimum set is included in the divided search range. For example, the search execution unit 13 may divide the search range (j) into a collection of sets in which the number of devices of the (j + 1) th type is the same. For example, when the search range (j) is divided and a set of devices having a certain value n (j + 1) of the number of j + 1th type devices is set as a new search range, the search execution unit 13 uses the value. A certain n (j + 1) may be stored in the search range storage unit 12. In this case, the search range determined by n (1) to n (j + 1) stored in the search range storage unit 12 is the search range (j + 1). The search performed by the search execution unit 13 for the search range (j + 1) is the search (j + 1).
Search (0) is a search performed by the search execution unit 13 for the search range when the search range storage unit 12 does not store the number of devices of any type. The search range when the search range storage unit 12 does not store the number of devices of any type is the initial value of the search range (search range (0)). The search range (0) will be described later.
The search execution unit 13 may determine whether or not there is a possibility that the search range includes the minimum set by comparing the theoretical lower limit value of the second index of the device included in the search range with the provisional solution. The search execution part 13 should just calculate this lower limit, for example using a relaxation method. When the lower limit value is larger than the provisional solution, there is no possibility that the search range includes a set in which the sum of the second indices is smaller than the provisional solution. In this case, the search execution unit 13 excludes the search range from the search target (pruning) and does not perform a search for the search range. If the lower limit value is smaller than the provisional solution, these sets may include a set in which the sum of the second indices is a smaller value than the provisional solution. In this case, the search execution unit 13 executes a search for these sets. This determination process for determining whether to perform a search is a limited operation.
The search execution unit 13 may further divide the search range determined to require search into a plurality of search ranges and determine whether a search is necessary or unnecessary in each of the divided search ranges. The search execution part 13 should just perform a search only in the search range determined to require a search among the further divided search ranges.
The search execution unit 13 does not have to include in the search range a sufficiency set in which the sum of the second indices is clearly not the minimum sum. For example, when the satisfaction set is composed of only the first type of device, the total of the second index of the satisfaction set including the first type of devices more than the minimum number of devices p (1) is Obviously not the minimum sum. The search execution unit 13 may exclude such a set from the search range. For example, the search execution unit 13 calculates the minimum number p (1) of devices when a satisfaction set is configured by only the first type of device, and the first device is 0 or more and not more than p (1). A collection of a certain satisfaction set may be used as an initial value of the search range (search range (0)). The search execution unit 13 reads the first index and the second index of the first type of device from the device storage unit 10, and based on the necessary value N and the read first index and second index. , P (1) may be calculated. Note that the order of device types may be any order, but search efficiency may be improved if the index ratio is increased or decreased.
The process of step S3 will be described in detail in the description of FIG.
After the search by the search execution unit 13 is completed, the output unit 14 reads information representing the temporary set stored in the temporary solution storage unit 11 and outputs the information to the terminal 2 (step S4).
For example, the provisional solution stored in the provisional solution storage unit 11 is 20, and the information indicating the provisional set represents that “model A is one, model B is one, and model C is one”. If it is information, the output unit 14 may output information representing the provisional set to the terminal 2 in a predetermined format, for example. For example, even if the output format is data such as “((A, 1), (B, 1), (C, 1))”, “model A: 1 unit, model B: 1 unit, model A character string such as “C: 1” may be used. The output unit 14 may output a provisional solution.
FIG. 4 is a flowchart showing an example of the operation of the configuration management apparatus 1 during the search in step S2.
Referring to FIG. 4, the search execution unit 13 is given a j indicating the order of the device types (j is any integer from 1 to J−1) and starts the search process.
The search range storage unit 12 stores the number of first to j-th types of devices (n (1) to n (j), respectively) at the start of the search operation. The set of devices to be searched in search (j) is a set of devices in which the number of first to jth devices is n (1) to n (j), respectively. Therefore, the search range (j), which is a collection of devices to be searched in the search (j), is stored in each type of device stored in the search range storage unit 12 at the start of the search (j) operation. The number n (1) to n (j) is determined. However, when j is 0, the number of devices is not stored in the search range storage unit 12.
When j is 0 (step S11, N), the search range is an initial value (search range (0)). The search (0) in step S3 in FIG. 3 means that the search execution unit 13 performs the process shown in FIG. 4 on the search range (0).
When j is larger than 0 (step S11, Y), the search execution unit 13 reads the number n (1) to n (j) of the first to j−1th types of devices from the search range storage unit 12. (Step S12). In this case, the search range is a collection of a set of devices in which the number of first to jth devices is n (1) to n (j), respectively.
Next, the search execution unit 13 sets the minimum of the (j + 1) th device when the satisfying set is composed of the 1st to jth types of devices having the number n (1) to n (j) and the (j + 1) th device. The number p (j + 1) is calculated (step S13). The search execution unit 13 calculates p (j + 1) from the necessary value N, the values from n (1) to n (j), and the first index of the first to j + 1th types of devices read from the device storage unit 10. ) May be calculated. In this way, the minimum number p (j + 1) of j + 1 type devices when a satisfaction set is configured by only the 1st to j + 1 type devices according to the values from n (1) to n (j). The method of calculating is “fine method”. Specifically, the search execution unit 13 may first calculate the sum of the first indices of n (1) to n (j) 1st to jth types of devices. Next, the search execution part 13 should just calculate the difference of the sum of the required value N and the calculated 1st parameter | index. The search execution unit 13 may divide the calculated difference by the value of the first index of the (j + 1) th type device and set the value obtained by rounding up the fractional part to p (j + 1). The search execution unit 13 is a set in which the number of first to jth type devices is n (1) to n (j), respectively, and the number of j + 1th type devices is p (j + 1) +1 or more. Need not be the target of the search.
Next, the search execution unit 13 calculates the maximum number r (j + 1) of the (j + 1) th type devices included in the search target set (step S14).
In the present embodiment, since the number of each type of device is not limited, the search execution unit 13 may set p (j + 1) to r (j + 1). When the number of j + 1 type devices that can be included in the set is limited, the search execution unit 13 determines the smaller one of p (j + 1) and the maximum number of j + 1 type devices as r (j + 1). ). In this case, the value of r (j + 1) is less than or equal to p (j + 1). The case where the number of devices that can be included in the set is limited will be described in detail in Modification 1 and Modification 2 described later.
Alternatively, the search execution unit 13 may calculate the minimum number of devices when the satisfaction set is configured by only the j + 1th device, and may be set to r (j + 1). As described above, the minimum number when the satisfaction set is configured only by the (j + 1) th type of device is calculated and set as a search target regardless of the number of the first to jth types of devices constituting the device set. The method of setting the maximum number of j + 1 type devices in the set of devices is the “rough method”. When calculating r (j + 1) by a rough method, the search execution unit 13 divides the necessary value by the first index of each model, and if it is not divisible, the value obtained by rounding up after the decimal point is set to r (j + 1). Good. When the number of j + 1 types of devices that can be included in the set is limited, the search execution unit 13 determines the minimum number of devices and the j + 1 type of devices when the satisfaction set is configured by only the j + 1th device. It is sufficient that the smaller one of the maximum number is set to r (j + 1). When calculating r (j + 1) by a rough method, the search execution part 13 does not need to perform the process of step S13.
When r (j + 1) is calculated by the fine method described above, the value of r (j + 1) varies depending on the number of first to jth types of devices. However, when r (j + 1) is calculated by a rough method, the value of r (j + 1) is constant regardless of the number of devices of the first to jth types. For example, if the required value is 15, and the j + 1 type of device is the above-mentioned model A, r (j + 1) is 15/3 = 5, so the number of devices of the first to jth types is It is 5 regardless. Similarly, if the j + 1 type device is the above-described model B, r (j + 1) is 3 because it is 15/5 = 3, regardless of the number of the first to jth types of devices. If the (j + 1) th type device is the above-mentioned model C, r (j + 1) is 15/7 = 2.14. . . Therefore, it is 3 regardless of the number of devices of the first to jth types. R (j + 1) calculated by the rough method is a value equal to or larger than r (j + 1) calculated by the fine method.
By the way, it is possible to illustrate a set of devices to be searched by the search execution unit 13 in the form of a search tree. The search execution unit 13 can perform processing by representing a set of devices to be searched as data of an existing search tree in an arbitrary format. The search execution unit 13 may appropriately expand the search range into a search tree and store the search range in the search range storage unit 12, for example.
FIG. 8 is a diagram illustrating a part of an example of a search tree in the example of the device illustrated in FIG. The model A, model B, and model C in FIG. 8 correspond to the first to third types of devices, respectively.
In the search tree of FIG. 8, circles represent nodes, and lines connecting the nodes represent branches. This search tree has four hierarchies. The node at the top (first hierarchy) is a root node, the node at the lowest (fourth hierarchy) is a leaf node, and the nodes between them are intermediate nodes.
The second to fourth layers correspond to the first to third types of devices (in order, model A, model B, and model C).
The numbers written on the nodes in each layer other than the top represent the number of corresponding models. Each path from the root node to the leaf node corresponds to a set of models. For example, the route from the root node to the number 0 of model A, the number 0 of model B, and the number 3 of model C in FIG. 5 represents a set of three models C. In the following description, for convenience, a node corresponding to “0 model A” is represented as (A, 0), and a set of devices is represented by ((A, 0), (B, 0), (C, 3). ).
For example, the node (A, 0) corresponds to a set of devices whose number n (1) of the first type (model A) is 0. That is, the node (A, 0) represents a search range represented by n (1) = 0. Similarly, nodes ((A, 0), (B, 0)) corresponding to “0 model A, 0 model B” are represented by n (1) = 0 and n (2) = 0. A search range in which the number n (1) of the first type (model A) is 0 and the number n (2) of the second type (model B) is 0 is represented.
The search execution unit 13 operates from the root node corresponding to the set of devices to the root node corresponding to the last (J-th) type device from the root node. This corresponds to extracting the minimum set by sequentially searching the route to the leaf node. For example, in the case of the example of FIG. 5, if the search execution unit 13 expands all the nodes, first, the nodes (A, 0) to (A, 5), which are the lower-level nodes of the root node, are expanded. To do. Next, the search execution unit 13 is the node (A, 0), which is the next lower node ((A, 0), (B, 0)) to ((A, 0), (B, 3)). Expand. The search execution unit 13 performs a search by expanding the node in the lower layer because the node in the lower layer of the node ((A, 0), (B, 0)) is a leaf node. Similarly, the search execution unit 13 performs a search by expanding the nodes in the lower layer of ((A, 0), (B, 3)) from ((A, 0), (B, 1)). When the expansion and search of all the nodes on the route including the node (A, 0) are completed, the search execution unit 13 similarly expands and searches all the nodes on the route including the node (A, 1). . However, the search execution part 13 of this embodiment does not necessarily expand and search all nodes, as will be described below.
The search execution unit 13 calculates the lower limit value of the second index of the set of devices corresponding to all the routes passing through the node in each expanded node, and when the lower limit value exceeds the provisional solution, “Pruning” is performed to exclude all routes passing through the node from the search target. The search execution unit 13 calculates the total of the second index of the set of devices corresponding to the route to the leaf node when the leaf node is expanded without performing pruning at the intermediate node, and is compared with the provisional solution. To do. When the total of the calculated second index falls below the provisional solution, the search execution unit 13 sets the total as a new provisional solution and the corresponding set of devices as a new provisional set.
In the above operation, step S14 corresponds to calculating the number of branches to the node in the lower layer when each node expands the node in the lower layer.
The number of branches from each node to the node one level lower is the branching coefficient. Since the number of devices for each type may be zero, for example, the branch coefficient in the node corresponding to the j−1th device is searched from the number of each of the 1st to j−1th devices corresponding to the node. This is a value obtained by adding 1 to r (j) calculated by the unit 13.
When the branch coefficient is calculated by a rough method, the nodes of the number of branch coefficients of the device type corresponding to the node one level below always branch from each upper node. Therefore, when the branch coefficient is calculated by a rough method, in the search tree corresponding to each device shown in FIG. 5, the number of leaf nodes corresponding to the total number of combinations of devices is 6 × 4 × obtained by adding the branch coefficients of each model. 4 = 96.
On the other hand, in the detailed method, the branching coefficient of the node below the third hierarchy corresponding to the second or more types of devices is calculated by the number of corresponding devices corresponding to the nodes on the route from the root node to the node. This is a method of calculating based on the difference between the total of the first index and the required value.
For example, in the case of a set corresponding to a route passing through a node represented by (A, 3), the total of the first indices of three models A corresponding to the node is 9. The branch coefficient of this node for which the branch count was calculated by the rough method is 15/5 = 3 (the model B of the model B calculated by the rough method described above) because the first index of the model B which is the second device type is 5. 4 obtained by adding 1 to r (j)). However, the sum of the second indexes of the nodes after the node (A, 3) is 6 or more, which is the difference between the necessary value 15 and the total 9 of the first indexes of the node (A, 3). It is. The branching coefficient of the node represented by (A, 3) calculated by a fine method is a value obtained by adding 1 to the value obtained by rounding up the value obtained by dividing 6 by 5 which is the first index of model B. It is 3.
The detailed method has a feature that it is necessary to calculate a branching coefficient for each node, and a large amount of calculation is required to calculate the total number of combinations when there are many layers (when there are many types of devices). The fine method is further characterized in that the number of nodes can be reduced and search efficiency can be improved. There is no possibility that the path corresponding to the minimum set passes through nodes other than the branch node based on the branch coefficient calculated by the fine method. Therefore, it is necessary to search only a route that passes through a branch node generated based on a branch coefficient calculated by a fine method.
On the other hand, the branch coefficient calculated by the rough method is a value equal to or greater than the branch coefficient calculated for each node by the fine method. Since the rough method calculates the branch coefficient for each type of device instead of calculating the branch coefficient for each node, the calculation amount for calculating the branch coefficient is smaller than that of the fine method. However, the branch coefficient calculated by the rough method becomes a value equal to or greater than the branch coefficient calculated for each node by the fine method, and usually the number of nodes is increased and the search efficiency is poor as compared with the fine method.
Next, the search execution unit 13 performs the following processing while sequentially increasing n (j + 1) representing the number of the j + 1th type of devices from 0 to r (j + 1) (step S15).
First, the search execution unit 13 stores n (j + 1) representing the number of j + 1-th type devices in the search range storage unit 12 (step S16). The search execution unit 13 searches for n (j + 1) in a form in which it is possible to determine that n (j + 1) represents the number of devices of the j + 1th type, for example, storing n (j + 1) in association with j + 1. What is necessary is just to store in the range memory | storage part 12. The number of devices of each type already stored in the search range storage unit 12 and n (j + 1) represent the search range (search range (j + 1)).
Next, the search execution unit 13 sets the lower limit of the total value of the second index of the set included in the search range (j + 1) represented by n (1) to n (j + 1) stored in the search range storage unit 12. A value is calculated (step S17).
The search execution part 13 should just calculate a lower limit by the relaxation method as mentioned above. The relaxation method is a method of calculating an optimal solution for a relaxation problem that eases the restriction of the original problem and makes it easy to explain. The optimal solution of the relaxation problem is generally a better solution than the optimal solution of the original problem. For example, when the original problem is a problem of calculating a minimum value, the minimum value that is the optimal solution of the relaxation problem of the problem is generally smaller than the minimum value that is the solution of the original problem. Therefore, the solution of the relaxation problem can be the lower limit value of the solution of the original problem. A typical mitigation problem is, for example, when the restriction that the device is used in units of one and the number of devices is an integer is imposed on the original problem, the restriction is relaxed and one device is Is a problem that allows the number of devices to be real numbers.
The relaxation of the restriction for the search execution unit 13 of the present embodiment to calculate the lower limit value may be to remove the restriction that the number of devices is an integer and to allow a real number. However, even when the number of devices is not an integer, the sum of the first index and the second index is the same as the case where the number of devices is an integer. It is the value multiplied by the number.
In the case where the number of devices is a real number, the minimum value of the total of the second index of the set of devices in which the total of the first index is equal to or greater than the predetermined value is the index ratio in which the total of the first index is the predetermined value. Is obtained by calculating the sum of the second index of the set of devices composed of only the types of devices having the largest. The sum of the second index of any set of devices in which the sum of the first index is equal to or greater than a predetermined value does not fall below this minimum value.
The number of 1st to j + 1th types of devices in the set included in the search range (j + 1) is n (1) to n (j + 1). In the following description, the remaining required value is a value obtained by subtracting the total of the first index of the 1st to j + 1th types of devices from n (1) to n (j + 1) from the required value. Also, the type of the device having the largest index value among the j + 2 to Jth types of devices is the model X.
The search execution unit 13 is included in the search range (j + 1), and a model of a satisfaction set composed of the first to j + 1th types of devices and the remaining types of devices (model X) having the largest index ratio. The minimum number of Xs may be calculated by removing the restriction that the number of models X is an integer. The search execution unit 13 calculates the total of the second index of the first to j + 1 type devices from n (1) to n (j + 1) units and the calculated minimum number of models X as the search range (j + 1). The lower limit value of the total of the second indices may be used.
For this purpose, first, the search execution unit 13 may read the first index of the first to j + 1th types of devices from the device storage unit 10. Moreover, the search execution part 13 should just read n (1) to n (j + 1) which is the number of the 1st thru | or j + 1 type apparatus from the search range memory | storage part 12. FIG. The search execution unit 13 may add a value obtained by multiplying the first index of each type of device read from the device storage unit 10 by the number of corresponding types of devices read from the search range storage unit 12. In this way, the search execution unit 13 may calculate the sum of the first indices of the first to j + 1 type devices from n (1) to n (j + 1).
Next, the search execution part 13 should just read each parameter | index of the kind of j + 2 thru | or the J-th kind apparatus from the apparatus memory | storage part 10, and should just calculate an index ratio. Alternatively, the search execution unit 13 may calculate the index ratio of each type of device in advance, and store it in the device storage unit 10 in association with the type of device, for example. Then, the search execution unit 13 may read the index ratios of the j + 2 to Jth type devices from the device storage unit 10 when selecting the type of device having the largest index ratio. The search execution unit 13 selects a device having the largest index ratio among the devices of the j + 2 to Jth types.
The search execution unit 13 calculates a real value (relaxed number) obtained by dividing the difference between the necessary value and the calculated total of the first index by the first index of the device type having the largest index ratio.
The search execution unit 13 sets the second index of the first to j + 1 type devices from n (1) to n (j + 1) units, and the j + 2 type device having the calculated real value as the number. Calculate the total. The search execution unit 13 sets the calculated sum as the lower limit value of the sum of the second index of the search range (j + 1). The search execution unit 13 multiplies the value obtained by multiplying the calculated real value by the second index of the j + 2nd type device to the sum of the second index of the j + 2th type device using the calculated real value as the number of units. do it.
For example, in the intermediate node (A, 0) in FIG. 8, when the required value is 15, the number of model A is 0, so the remaining required value is 15. Of the remaining device types, the device type with the largest index ratio is model C. In the case where the number is allowed to be a real number, the number of models C in which the total of the first index is 15 is 15/7. The total of the second index of 15/7 model C is 15/7 × 8≈17.14. Since the number of the model A is 0, this is the lower limit value regarding the sum of the second index obtained by the search after the intermediate node (A, 0). When model A is zero, it is theoretically impossible to obtain a solution smaller than 17.14 with respect to the total of the second index. Therefore, if the provisional solution is smaller than the calculated lower limit value of 17.14, there is no possibility that the sum of the second indices of the nodes in the route passing through the intermediate node (A, 0) is less than the provisional solution. . In this case, the search execution unit 13 does not search for a route that passes through the intermediate node (A, 0). On the other hand, when the provisional solution is larger than the calculated lower limit value of 17.14, there is a possibility that a route whose total of the second index exceeds the provisional solution exists in any of the routes that pass through the intermediate node (A, 0). There is sex. In this case, the search execution unit 13 searches for a route that passes through the intermediate node (A, 0).
Next, the search execution unit 13 compares the provisional solution read from the provisional solution storage unit 11 with the lower limit value of the total of the second indexes of the calculated search range (j + 1).
When the search range is represented by the intermediate node (A, 0) in FIG. 8, if the provisional solution stored in the provisional solution storage unit 11 is 24, the lower limit value of the second index of the search range is about 17.14. So the lower limit is smaller than the provisional solution.
As a result of the comparison, when the provisional solution falls below the lower limit (step S18, N), there is no possibility that the search range (j + 1) includes a sufficient set in which the sum of the second indices is less than the provisional solution. In this case, the search execution unit 13 does not search in the search range (j + 1) and returns to step S15.
For example, when the search range is represented by the intermediate node (A, 2) in FIG. 8, the sum of the first indices of the two models A is 3 × 2 = 6. When the required value is 15, the remaining required value calculated by the search execution unit 13 is 9. The second index of the model A is 5, the first index of the model C having the largest index ratio among the remaining device types (model B and model C) is 7, and the second index is 8. Therefore, the lower limit value calculated by the search execution unit 13 is approximately 20.29 (= 10 + 8 × 9/7). When the provisional solution stored in the provisional solution storage unit 11 is 20, and the corresponding provisional set is a set of devices represented by ((A, 1), (B, 1), (C, 1)), search execution is performed. The unit 13 determines in step S18 that the provisional solution is below the lower limit (step S18, N). In this case, since the search range represented by the node (A, 2) may not include the minimum set, the search execution unit 13 performs a search for the search range represented by the node (A, 2). Absent. Similarly, the search execution unit 13 does not perform a search for the search range represented by each of the nodes (A, 3), (A, 4), and (A, 5).
As a result of the comparison, when the provisional solution falls below the lower limit value (step S18, Y), there is a possibility that the search range (j + 1) includes a sufficient set in which the sum of the second indices is less than the provisional solution. The search execution unit 13 searches for the minimum set in the search range (j + 1). The search method for the search set is arbitrary.
For example, the search execution unit 13 calculates the sum of the first indices of all the sets included in the search range (j + 1), and if the sum of the first indices is equal to or greater than the necessary value, the sum of the second indices A search may be performed by calculating and comparing with a provisional solution. In generating all sets included in the search range (j + 1), for example, the search execution unit 13 may first calculate p (j + 2) by the same process as in step S13. The search execution unit 13 may set an integer from 0 to p (j + 2) as the number of devices of the j + 2nd type in the set included in the search range (j + 1). The search execution unit 13 may calculate p (j + 3) in the case where the number of devices of the j + 2nd type is 0 to p (j + 2) by the same process as in step S13. The search execution unit 13 may perform the same processing as in step S13 in this way until all combinations of the numbers of j + 2 to Jth types of devices are derived. In this way, the search execution unit 13 can generate all sets included in the search range (j + 1).
Moreover, the search execution part 13 may perform a search as follows.
When j is smaller than J-2 (step S19, Y), the search execution unit 13 increments j by 1 and performs the search operation of FIG. 4 recursively (step S20). That is, if there is a possibility that the search range (j + 1) includes a provisional set in which the total of the second indices is less than the provisional solution, if there are a plurality of types of devices whose number is not stored in the search range storage unit 12 The search execution unit 13 further divides the search range (j + 1) in the same manner as described above. Then, the search execution unit 13 includes a set in which the total of the second index is less than the provisional solution in each search range (j + 2) obtained by dividing the search range (j + 1) according to the number of devices of the j + 2nd type. To determine whether or not Then, the search execution unit 13 searches in the search range (j + 2) according to the determination result. In this way, the search execution unit 13 may perform the search operation of FIG. 4 recursively while increasing j by 1 until j becomes J-2.
For example, when the search range is represented by the intermediate node (A, 0) of the search tree described above, the lower limit value is smaller than the provisional solution, and j is 0 and J is 3, so j is J-2. Smaller than. Therefore, the search execution part 13 should just perform the process of FIG. 4 from the beginning with respect to the search range (1) represented by a node (A, 0). In this case, the search execution unit 13 divides the search range (1) represented by the node (A, 0) according to the number of second device types (model B) ((A, 0). , (B, 0), ((A, 0), (B, 1)),...,...
When j is J−2 (step S19, N), the search execution unit 13 determines, in the search range (j + 1), if there is a set of devices whose total of the second index is less than the provisional solution. Let the sum of the second index be the new provisional solution and the set be the new provisional set. When a new provisional solution and provisional set are found, the search execution unit 13 stores the new provisional solution and information representing the new provisional solution in the provisional solution storage unit 11, and updates the provisional solution and provisional set (step) S21).
The search range (j + 1) is a set of devices (where j (J-1) is n (1) to n (J-1)) when j is J-2. Search range (J-1)). In step S21, the search execution unit 13 may first calculate p (J) in the same manner as in step S13, and calculate r (J) in the same manner as in step S14.
When p (J) is calculated by the above-described fine method, p (J) is a set included in the search range (J-1), and the Jth of the sufficient set that minimizes the sum of the second indices. Number of types of equipment. In this embodiment, since there is no limit to the number of devices, r (J) is p (J). Therefore, the search execution unit 13 calculates the total of the second index when the number of J-th type devices is r (J), and the calculated total of the second index is the provisional solution storage unit 11. Compare with the provisional solution read from.
On the other hand, when r (J) is calculated by the above-described rough method, the minimum value p (J) of the J-th type device in the satisfaction set included in the search range (J-1) is equal to or less than r (J). One of the values. In this case, the search execution unit 13 sequentially increases the number n (J) of the Jth type device from 0 while being included in the search range (J-1), and the number of the Jth type devices is n. The sum of the first index of the set (J) is calculated. The search execution unit 13 compares the calculated total of the first index with the necessary value, and first calculates the total of the second index of the set in which the total of the first index exceeds the necessary value. The search execution unit 13 may compare the calculated total of the second indices with the provisional solution read from the provisional solution storage unit 11. If n (J) reaches r (J) without the total of the first index exceeding the required value, the search execution unit 13 does not update the provisional solution and provisional set, and the process of step S21 Can be terminated.
As a result of the comparison, when the total of the calculated second index is less than the provisional solution, the search execution unit 13 may set the calculated total of the second index as a new provisional solution. In addition, the search execution unit 13 stores the search range storage unit 12 from n (1) to n (J), which is the number of the first to J-1th types of devices representing the search range (J-1). −1) and the set represented by the number of J-th type devices r (J) may be a new provisional set. The search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11.
As a result of the comparison, if the calculated total of the second indices exceeds the provisional solution, the search execution unit 13 does not update the information representing the provisional solution and the provisional set, and ends the process of step S21.
For example, when the search range is the search range (2) represented by the nodes ((A, 0), (B, 1)) of the above-described search tree in step S19, j (= 1) is J-2. Since it is not smaller than (1) (step S19, N), the search execution part 13 performs the process of step S21.
The search execution unit 13 calculates ((A, 0), (B, 1), (C, 0)), ((A, 0), (B, 1) when calculating r (j) by a rough method. ), (C, 1)), the total of the first index of the set of devices represented by (C, 1)) and the comparison with the required value are sequentially performed. The first index and the second index of these devices stored in the device storage unit 10 are as in the example of FIG. Therefore, the sum of the first index of the set of these devices is smaller than the required value. Next, the search execution unit 13 calculates the sum of the first index of the set of devices represented by ((A, 0), (B, 1), (C, 2)). Since the obtained total 19 is larger than the necessary value 15, the search execution unit 13 calculates the sum of the second index of the set of devices. When the provisional solution stored in the provisional solution storage unit 11 is 24, 23, which is the total of the calculated second indexes, is smaller than the provisional solution. In this case, the search execution unit 13 uses the calculated second index total 23 corresponding to the new provisional solution ((A, 0), (B, 1), (C, 2)). Is a new provisional set. The search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11.
After the search by the search execution unit 13 is completed, the output unit 14 reads out information representing the temporary set stored in the temporary solution storage unit 11 as described in step S3 of FIG. Just output.
In the present embodiment described above, a combination of a plurality of types of devices having two different indices that satisfies the condition that the sum of one index is equal to or greater than a predetermined value and the sum of the other index is minimized. There is an effect that it can be derived with a small amount of calculation.
The reason is that the search execution unit 13 determines whether or not there is a possibility that the search range includes the minimum set for each search range represented by the number of some types of devices. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
(First modification of the first embodiment)
Next, a first modification of the first embodiment of the present invention will be described.
In the first embodiment described above, the number of devices for each type of device is not limited, whereas the number of devices for each type of device of this modification is one or zero (problem 01). The configuration management apparatus 1 according to the present modification outputs a set that is a satisfiable set that does not include two or more devices of the same type and that has the minimum sum of the second indices.
First, the configuration of the configuration management apparatus 1 according to this modification will be described in detail with reference to the drawings.
FIG. 1 is a diagram illustrating a configuration of a configuration management apparatus 1 according to the present modification. The configuration of the configuration management device 1 according to this modification is the same as the configuration of the configuration management device 1 according to the first embodiment. Therefore, the description regarding the configuration is omitted.
FIG. 3 is a flowchart showing an example of the operation of the overall configuration for extracting the minimum set by the configuration management apparatus 1 of the present modification.
An example of the operation in which the configuration management apparatus 1 of the present modification extracts the minimum set is an example of the operation in which the configuration management apparatus 1 of the first embodiment extracts the minimum set and the calculation of the initial solution in step S2. The method differs from the search method in step S3.
Moreover, the search execution part 13 should just make the collection of satisfying sets whose 1st apparatuses are 0 or more and 1 or less into the initial value (search range (0)) of a search range.
Since other operations of the configuration management apparatus 1 of the present modification are the same as the operations of the configuration management apparatus 1 of the first embodiment, description thereof will be omitted.
FIG. 9 is a flowchart illustrating an example of an operation in which the configuration management apparatus 1 according to the present modification calculates an initial solution.
Referring to FIG. 9, the initial solution calculation unit 15 reads out the first index and the second index of all device types from the device storage unit 10 (step S31).
Next, the initial solution calculation unit 15 calculates an index ratio of all device types (step S32). The initial solution calculation unit 15 may sort the device types in descending order of the calculated index ratio.
Next, the initial solution calculation unit 15 selects one type of device having the largest index ratio among the types of unselected devices (step S33).
For example, the initial solution calculation unit 15 may read information on the temporary set stored in the temporary solution storage unit 11. The initial solution calculation unit 15 may update the provisional set by adding information on one selected type of device to the read provisional set information. The initial solution calculation unit 15 may store information on the updated temporary set in the temporary solution storage unit 11. If the provisional solution storage unit 11 does not store information on the provisional set, the initial solution calculation unit 15 may generate information on the provisional set composed of one selected type of device. The initial solution calculation unit 15 may store the information on the provisional set in the provisional solution storage unit 11.
The initial solution calculation unit 15 calculates the total of the first index of the type of the device that has already been selected (step S34).
Note that the initial solution calculation unit 15 may calculate the cumulative total of the second index when executing the operation of step S34. Then, the initial solution calculation unit 15 may store the calculated cumulative total of the second indices in the temporary solution storage unit 11 as a temporary solution. For example, the initial solution calculation unit 15 may read the provisional solution that is the cumulative total of the second indices from the provisional solution storage unit 11. Then, the initial solution calculation unit 15 may add the second index of the type of device newly selected in step S33 to the read provisional solution. Then, the initial solution calculation unit 15 may store the combined provisional solution in the provisional solution storage unit 11. In this case, if the provisional solution is not stored in the provisional solution storage unit 11, the second index of the device of the type newly selected in step S33 may be stored in the provisional solution storage unit 11 as a provisional solution.
The initial solution calculation unit 15 compares the accumulated value of the first index of the selected device type with the required value. The initial solution calculation unit 15 calculates the cumulative total of the second indexes of the selected device type, which is the initial value of the provisional solution, when the sum of the first indexes is equal to or greater than the necessary value (step S35, Y). (Step S36).
The initial solution calculation unit 15 stores the calculated cumulative total of the second indices in the temporary solution storage unit 11 as the initial value of the temporary solution (step S37).
In step S34, when the cumulative total of the second index is stored in the temporary solution storage unit 11 as a temporary solution, in step S36, the cumulative total of the second index of the selected device type is the initial value of the temporary solution. There is no need to store it as a value.
When the cumulative total of the first index is not greater than or equal to the required value (step S35, Y), when all the device types have not been selected and there are device types that have not yet been selected (step S38, N), The process returns to step S33.
When all the device types have been selected and there are no device types that have not yet been selected (step S38, Y), the initial solution calculation process is terminated. In this case, even if the set of devices includes all devices in which each index is stored in the device storage unit 10, the sum of the first index of the set is less than the required value, so there is no sufficient set.
FIG. 10 is a flowchart illustrating an example of a detailed operation of the search of the configuration management apparatus 1 according to this modification.
Comparing the flowcharts representing the search operation of the first embodiment in FIG. 10 and FIG. 4, the present modification is different in that step S13 and step S14 are not included, and step S22 is included instead of step S15. In the present modification, the maximum number of devices of each type is 1, so r (j + 1) is always 1. Therefore, step S13 and step S14 for calculating r (j + 1) are unnecessary. Step S22 corresponds to step S15 in the case where r (j + 1) is always 1.
Further, the operation of the configuration management device 1 of this modification is different from the operation of the configuration management device 1 of the first embodiment in that the lower limit value is calculated by the relaxation method in step S17 and the provisional solution in step S21. And the operation of updating the provisional set is different. Since other points are the same as the operation of the first embodiment, the description is omitted.
FIG. 11 is a flowchart illustrating an example of an operation in which the search execution unit 13 of the configuration management device 1 of the present modification calculates the lower limit value in step S17.
Referring to FIG. 11, the search execution unit 13 calculates the sum of the first indexes of the first to j + 1th devices based on the first index and the second index read from the device storage unit 10 ( Step S41).
Next, the search execution unit 13 calculates a required remaining value obtained by subtracting the calculated first index of the 1st to (j + 1) th devices from the required value N (step S42).
Next, the search execution unit 13 selects the device type having the largest index ratio calculated from the first index and the second index read from the device storage unit 10 from the types of the j + 2 to Jth unselected devices. Select (step S43).
The search execution unit 13 calculates the sum of the first indices for the maximum number of devices of the selected type (step S44). In the present modification, since the maximum number of all types of devices is 1, the sum of the calculated first index is the first index itself of the type of device selected in step S43.
If the calculated sum of the first indices is smaller than the necessary remaining value (step S45, N), the search execution unit 13 has already selected all the types of the j + 2 to Jth devices and has not yet been selected. If there is no such type (step S49), the process may be terminated. In this case, even if all the 1st to Jth types of devices are combined, the total of the first index does not reach the required value.
If the calculated sum of the first indices is smaller than the required remaining value (step S45, N), the search execution unit 13 determines that there is a device type that has not yet been selected among the j + 2 to Jth device types. The remaining necessary value is updated (step S50). The search execution unit 13 may update the remaining required value by subtracting the sum of the first indices calculated in step S44 from the remaining required value to obtain a new required remaining value.
After performing the operation of step S50, the search execution unit 13 returns to step S43.
When the calculated sum of the first indices is larger than the necessary remaining value (step S45, Y), the search execution unit 13 calculates a real value obtained by dividing the necessary remaining value by the first index of the selected type of device. (Step S46). The calculated real value is the number of devices of the selected type (relaxed number) calculated by removing the restriction that the number of units is an integer so that the value of the first index becomes the remaining necessary value. In the present modification, the maximum number of devices of each type is 1, so the number of mitigation calculated by the search execution unit 13 is a real value included in the range from 0 to 1.
Next, the search execution part 13 calculates the 2nd parameter | index for the calculated mitigation number of the apparatus of the selected kind (step S47). In the present modification, since the maximum number of devices of each type is 1, the second index for the number of mitigation calculated by the search execution unit 13 is 0 or more, and the second index per device of the selected type is 2nd. The value is below the index.
The search execution unit 13 sets the second number of all selected devices except the last selected device and the first to j + 1 type devices, and the last selected device for the calculated number of mitigation, respectively. Calculate the sum of the indicators. The search execution unit 13 sets the calculated total to the lower limit value (step S48). As described above, in this modification, the maximum number of each device is one.
In the above processing, for example, when the first index represents performance and the second index represents cost, the devices in order from the type with the best cost performance until the sum of the first indexes is equal to or greater than the required value. This is equivalent to selecting the type. The above processing further divides the last selected device so that the total of the first index is exactly the required value when the total of the first index exceeds the required value, and the already selected device is selected. This is equivalent to calculating the sum of the second indices of all the devices that have been used and setting the lower limit of the second index.
Next, the operation of step S21 in FIG. 10 of the configuration management apparatus 1 according to this modification will be described.
In step S <b> 21, the search execution unit 13 firstly, among the satisfaction sets included in the search range (J−1), the number p (J) of the J-th type devices in the satisfaction set that minimizes the second index. J) may be calculated. Then, when p (J) is equal to or less than the maximum number of J-th devices (0 or 1 in the present modification), the search execution unit 13 may update the provisional solution / provisional set. When p (J) is larger than 1, which is the maximum number of J-th devices, the search range (J-1) does not include a sufficient set, so the search execution unit 13 updates the provisional solution / provisional set. Not performed.
When updating the provisional solution / provisional set, the search execution unit 13 calculates the total of the second index when the number of J-th type devices is r (J), as in the first embodiment. What is necessary is just to calculate. Then, the search execution unit 13 may compare the calculated total of the second indices with the provisional solution read from the provisional solution storage unit 11. The provisional solution / provisional set is updated when p (J) is equal to or less than the maximum number of J-th devices (1 in this modification), and r (J) is the maximum number of J-th types. In this case, r (J) is p (J).
As a result of the comparison, when the total of the calculated second index is less than the provisional solution, the search execution unit 13 may set the calculated total of the second index as a new provisional solution. In addition, the search execution unit 13 stores the search range storage unit 12 from n (1) to n (J), which is the number of the first to J-1th types of devices representing the search range (J-1). −1) and the set represented by the number of J-th type devices r (J) may be a new provisional set. The search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11.
FIG. 12 is a diagram illustrating a binary search tree that represents a set of devices to be searched by the search execution unit 13 of this modification.
12 differs from FIG. 8 in that the branching coefficient of each node is all 2 and the maximum number of devices of each type is limited to 1 in the search tree of FIG.
In this modification described above, when the maximum number of devices of each type is 1, the condition that the sum of one index is equal to or greater than a predetermined value is satisfied, and the sum of the other index is minimized. There is an effect that a combination of a plurality of types of devices having two indexes can be derived with a small amount of calculation.
The reason is that the search execution unit 13 minimizes the search range for each search range represented by the number of some types of devices under the condition that the maximum number of devices of each type is 1. This is because it is determined whether or not there is a possibility that a set is included. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
(Second modification of the first embodiment)
Next, a second modification of the first embodiment will be described in detail with reference to the drawings.
In the second modification, there is a maximum number for each type of device. The configuration management apparatus 1 according to the present modification outputs a set in which the total of the second index is the smallest in a sufficient set that does not include the same type of devices more than the maximum number of devices of that type.
FIG. 1 is a diagram illustrating a configuration of a configuration management apparatus 1 according to the present modification. The configuration of the configuration management device 1 according to this modification is the same as the configuration of the configuration management device 1 according to the first embodiment.
However, in addition to the first index and the second index, the device storage unit 10 according to the present modification stores the maximum number for each device type in association with the device type. The first index, the second index, and the maximum number of each type of device may be stored in the device storage unit 10 in advance. Alternatively, the index acquisition unit 16 may extract the first index, the second index, and the maximum number of each type of device included in the file 31 and store them in the device storage unit 10.
FIG. 13 is a diagram illustrating an example of the first index, the second index, and the maximum number stored in the device storage unit 10 according to the present modification.
In the example of FIG. 13, the maximum number of model A is four, the maximum number of model B is three, and the maximum number of model C is two.
The other components of the configuration management apparatus 1 of the present modification are the same as the corresponding components of the first embodiment, and thus description thereof is omitted.
Next, the operation of this modification will be described in detail with reference to the drawings.
FIG. 3 is a flowchart showing an example of the entire operation of extracting the minimum set by the configuration management apparatus 1 of the present modification.
An example of the operation in which the configuration management apparatus 1 of the present modification extracts the minimum set is compared with the example of the operation in which the configuration management apparatus 1 of the first embodiment extracts the minimum set. The calculation method is different from the search method in step S3.
In addition, the search execution unit 13 calculates, for example, the minimum number of devices p (1) when a satisfaction set is configured by only the first type of device, and p (1) and the maximum of the first type of device. The smaller of the number is set to r (1). And the search execution part 13 should just make the collection of sufficient sets whose 1st apparatuses are 0 or more r (1) or less into the initial value (search range (0)) of a search range.
Since other operations of the configuration management apparatus 1 of the present modification are the same as the operations of the configuration management apparatus 1 of the first embodiment, description thereof will be omitted.
FIG. 14 is a flowchart illustrating an example of an operation in which the configuration management apparatus 1 according to the present modification calculates an initial solution.
The operation of calculating the initial solution of the configuration management apparatus 1 of the present modification shown in FIG. 14 is compared with the operation of calculating the initial solution of the configuration management apparatus 1 of the first modification shown in FIG. The difference is that the operation of step S39 is performed during S34. In addition, the first modification in which the operation of calculating the total of the first index and the total of the second index in step S34 and the operation of calculating the initial value of the provisional solution in step S36 of the present modification correspond to each other. Different from the example behavior.
The initial solution calculation unit 15 of the present modification example selects the device type having the largest index ratio among the unselected device types (step S33), and then sets the maximum number of selected device types to the device storage unit. 10 (step S38).
In step S 34, the initial solution calculation unit 15 reads out the maximum number of the already selected device types from the first index and the maximum number of the already selected device types read from the device storage unit 10. The cumulative total of 1 index is calculated.
In step S36, the initial solution calculation unit 15 selects all types of devices that have already been selected other than the last selected type of device and the maximum number of devices of each type and the number of devices of the last selected type. The minimum number of devices of the last selected type in the satisfaction set composed of is calculated. The initial solution calculation unit 15 has the maximum number of devices of each type, all the types of devices already selected other than the type of the last selected device, and the type of the last selected type of the calculated minimum number of devices. A set composed of devices is set as an initial value of the provisional set. The initial solution calculation unit 15 calculates the sum of the second index of the initial value of the provisional set and sets it as the initial value of the provisional solution.
Other operations of the configuration management apparatus 1 of this modification in FIG. 14 are the same as the operations of the steps denoted by the same reference numerals in the configuration management apparatus 1 of the first modification of FIG. .
Next, the operation at the time of searching for the minimum set of the configuration management apparatus 1 according to this modification will be described in detail with reference to the drawings.
FIG. 4 is a flowchart showing the operation at the time of searching for the minimum set of the configuration management apparatus 1 of the present modification. The flowchart representing the operation at the time of searching for the minimum set of the configuration management device 1 of the present modification is the same as that of the first embodiment, but the method of calculating r (j + 1) in step S14 and the lower limit of step S17. The value calculation method is different from the provisional solution / temporary set update method in step S21.
In step S14, the search execution unit 13 compares p (j + 1) calculated in step S14 with the maximum number of j + 1 type devices read from the device storage unit 10, and sets the larger one to r (j + 1). .
FIG. 11 is a flowchart showing an operation in which the search execution unit 13 calculates the lower limit value in step S17 of the present modification. The flowchart showing the operation of the search execution unit 13 of this modification calculating the lower limit value is the same as that of the first modification. However, while the maximum number of each type of device is one in the first modification, the maximum number of each type of device in this modification is not limited to one, and is associated with the type of device. The difference is that it is stored in the device storage unit 10.
In step S44, the search execution unit 13 reads the maximum number of devices of the selected type from the device storage unit 10, and calculates the sum of the first indices for the maximum number of devices of the selected type.
In step S46, the relaxed number calculated by the search execution unit 13 is a real value included in a range of 0 or more and the maximum number of selected devices read from the device storage unit 10.
In step S48, the search execution unit 13 determines the maximum number of devices read from the device storage unit 10, all the selected devices except the last selected device, the first to j + 1 type devices, and the calculated mitigation number. Calculate the sum of the second index of the last selected device in minutes. The search execution unit 13 sets the calculated total as the lower limit value.
Next, the operation of step S21 in FIG. 4 of the configuration management apparatus 1 according to this modification will be described.
In step S <b> 21, the search execution unit 13 firstly, among the satisfaction sets included in the search range (J−1), the number p (J) of the J-th type devices in the satisfaction set that minimizes the second index. J) may be calculated. Then, when p (J) is equal to or less than the maximum number of devices of the Jth type, the search execution unit 13 may update the provisional solution / provisional set. If p (J) is larger than the maximum number of devices of the J-th type, the search range (J-1) does not include a sufficient set, so the search execution unit 13 updates the provisional solution / provisional set. Absent.
When updating the provisional solution / provisional set, the search execution unit 13 calculates the total of the second index when the number of J-th type devices is r (J), as in the first embodiment. What is necessary is just to calculate. Then, the search execution unit 13 may compare the calculated total of the second indices with the provisional solution read from the provisional solution storage unit 11. The provisional solution / provisional set is updated when p (J) is less than or equal to the maximum number of J-th devices, and r (J) is either the maximum number of the J-th type or p (J). In this case, r (J) is p (J) because it is the smaller value.
As a result of the comparison, when the total of the calculated second index is less than the provisional solution, the search execution unit 13 may set the calculated total of the second index as a new provisional solution. In addition, the search execution unit 13 stores the search range storage unit 12 from n (1) to n (J), which is the number of the first to J-1th types of devices representing the search range (J-1). −1) and the set represented by the number of J-th type devices r (J) may be a new provisional set. The search execution unit 13 stores information representing the new provisional solution and provisional set in the provisional solution storage unit 11.
In this modification described above, when the maximum number of each type of device is determined, the condition that the sum of one index is equal to or greater than a predetermined value is satisfied, and the sum of the other index is minimized. There is an effect that a combination of a plurality of types of devices having two different indexes can be derived with a small amount of calculation.
The reason is that the search execution unit 13 performs a search represented by the number of some types of devices under the condition that the maximum number of devices of each type is the number stored in the device storage unit 10. This is because, for each range, it is determined whether or not there is a possibility that the minimum set is included in the search range. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.
FIG. 15 is a diagram illustrating the configuration of the configuration management apparatus 1A according to the present embodiment.
Referring to FIG. 15, the configuration management device 1A of the present embodiment is configured with devices associated with the first index value P1 and the second index value P2 for each of a plurality (J) types, and the total of P1 is required. A device storage unit 10 that stores P1 and P2 for each type of device when the set of devices equal to or greater than the value N is a satisfaction set, and the minimum value in the total satisfaction set of P2 is the minimum total, and an initial value Is a provisional solution storage unit 11 for storing information representing a provisional solution whose value is greater than or equal to the minimum sum, and a provisional set in which the sum of P2 is a set of devices that is the provisional solution, and 1st to jth (j is 1 To (n-1), the search range storage unit 12 stores n (1) to n (j), which is the number of types of devices, and N is input, and n (j + 1) is set to 0. From n (1) to n (j) 1st to jth types of devices and j + 1th N (1 + 1) is stored in the search range storage unit 12 while sequentially increasing to a predetermined value (j + 1) that is equal to or less than the minimum number p (j + 1) of the j + 1th type of devices when a satisfaction set is configured with only types of devices. Then, from P1 and P2 of N and the 1st to j + 1th type devices, the number of 1st to j + 1th type devices is changed from n (1) to n (j + 1) stored in the search range storage unit 12. The lower limit value of the sum of P2 of the set included in the search range (j + 1) that is a collection of satisfying sets is calculated by removing the restriction that the number of devices is an integer, and the lower limit value is calculated from the provisional solution. If it is smaller, a satisfying set in which the sum of P2 is smaller than the provisional solution is extracted from the search range (j + 1), and information indicating the sum of P2 of the extracted fulfillment set and the extracted satisfaction set is used as the provisional solution and provisional set. In the storage unit 11 If the lower limit value is larger than the provisional solution, the search execution unit 13 that does not search the search range (j + 1), and the output unit 14 that outputs the provisional set as a minimum set after the search execution unit 13 performs the search. including.
In the present embodiment described above, a combination of a plurality of types of devices having two different indices that satisfies the condition that the sum of one index is equal to or greater than a predetermined value and the sum of the other index is minimized. There is an effect that it can be derived with a small amount of calculation.
The reason is that the search execution unit 13 determines whether or not there is a possibility that the search range includes the minimum set for each search range represented by the number of some types of devices. Then, the search execution unit 13 does not perform a search in the search range when there is no possibility that the minimum set is included.
The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2011-136487 for which it applied on June 20, 2011, and takes in those the indications of all here.
 本発明は、システム構築において、システムの原価を低く抑えるための装置またはシステムに好適である。 The present invention is suitable for an apparatus or system for keeping the cost of a system low in system construction.
 1、1A 構成管理装置
 2 端末
 3 サーバ
 10 機器記憶部
 11 暫定解記憶部
 12 探索範囲記憶部
 13 探索実行部
 14 出力部
 15 初期解算出部
 16 指標取得部
 31 ファイル
1, 1A configuration management device 2 terminal 3 server 10 device storage unit 11 provisional solution storage unit 12 search range storage unit 13 search execution unit 14 output unit 15 initial solution calculation unit 16 index acquisition unit 31 file

Claims (10)

  1.  複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、
     機器の種類毎に、P1及びP2を記憶する機器記憶手段と、
     初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、
     1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を記憶する探索範囲記憶手段と、
     Nを入力して、
     n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、
     n(j+1)を前記探索範囲記憶手段に格納して、
     N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、
     前記下限値が前記暫定解より小さい場合、
     前記探索範囲(j+1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、
     前記下限値が前記暫定解より大きい場合、前記探索範囲(j+1)の探索を行わない
     探索実行手段と、
     前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段と
     を含む構成管理装置。
    A set of devices each of which is associated with the first index value P1 and the second index value P2 for each of a plurality of types (J) and the total of P1 is equal to or greater than the necessary value N is a sufficient set, and the total of P2 If the smallest value in the sufficient set is the smallest sum,
    Device storage means for storing P1 and P2 for each device type;
    A provisional solution storing means for storing information representing a provisional solution whose initial value is a value equal to or greater than the minimum total, and a provisional set in which the sum of P2 is a set of devices serving as the provisional solution;
    Search range storage means for storing n (1) to n (j), which is the number of devices of the 1st to jth types (j is an integer from 1 to J-1);
    Enter N
    n (j + 1) is a j + 1-th type when a satisfying set is composed only of n (1) -n (j) 1st to j-th type devices and j + 1-th type devices from 0, respectively. While sequentially increasing to a predetermined value (j + 1) below the minimum number of devices p (j + 1),
    n (j + 1) is stored in the search range storage means,
    From P1 and P2 of N and 1 to j + 1 type devices, the number of 1 to j + 1 type devices is n (1) to n (j + 1) stored in the search range storage means Calculating the lower limit value of the total P2 of the set included in the search range (j + 1) which is a set of sets, excluding the restriction that the number of devices is an integer;
    When the lower limit value is smaller than the provisional solution,
    From the search range (j + 1), a satisfaction set in which the sum of P2 is smaller than the provisional solution is extracted. Stored in provisional solution storage means,
    When the lower limit value is larger than the provisional solution, search execution means that does not search the search range (j + 1);
    A configuration management device comprising: output means for outputting the provisional set as a minimum set after execution of search by the search execution means.
  2.  前記機器情報記憶手段は、各種類の機器の最大台数q(j)(1≦j≦J)を、機器の種類と対応付けて記憶し、
     前記探索実行手段は、p(j)と前記機器情報記憶手段から入力したq(j)(1≦j≦J)のいずれか小さい方を、p(j)以下の前記所定値(j)とする
     請求項1に記載の構成管理装置。
    The device information storage means stores the maximum number q (j) (1 ≦ j ≦ J) of each type of device in association with the type of device,
    The search execution means determines the smaller one of p (j) and q (j) (1 ≦ j ≦ J) input from the device information storage means as the predetermined value (j) equal to or less than p (j). The configuration management apparatus according to claim 1.
  3.  前記探索実行手段は、
     前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
     前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j<J)番目の種類の機器の、P1の合計を算出し、算出した前記合計をNから引いた残存必要値を算出し、
     j+1番目からJ番目の種類の機器の中で前記指標値が最も大きい機器(機器X)のP1で前記残存必要値を割った実数値である緩和台数を算出し、
     それぞれn(1)からn(j)の台数の1からj番目の種類の機器のP2の合計と、前記機器XのP2に前記緩和台数を掛けた値を足した値を、前記探索範囲(j)の前記下限値とする
     請求項1に記載の構成管理装置。
    The search execution means includes
    An index ratio obtained by dividing P1 stored by the device storage means by P2 is calculated for each type of device,
    The total of P1 of the 1st to j (1 ≦ j <J) type devices of the number n (1) to n (j) respectively stored in the search range storage unit is calculated, and the calculated total is calculated. Calculate the remaining required value subtracted from N,
    Calculate the mitigation number that is a real value obtained by dividing the remaining required value by P1 of the device (device X) having the largest index value among the devices of the j + 1th to Jth types,
    The total of P2 of the 1st to jth types of devices of n (1) to n (j) and the value obtained by adding the value obtained by multiplying P2 of the device X by the relaxed number is the search range ( The configuration management apparatus according to claim 1, wherein j is the lower limit value.
  4.  前記探索実行手段は、
     前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
     前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j<J)番目の種類の機器の、P1の合計を算出して既定必要値とし、P2の合計を算出して暫定下限値とし、Nから前記既存必要値を引いた値を残存必要値とし、
     前記指標値が大きい順に、j+1番目からJ番目の機器の種類から、機器の種類を順次選択しながら、
     選択した種類の機器(S番目の種類)の、前記機器情報記憶手段に記憶されている最大台数q(S)分のP1の合計を算出し、
     前記合計が前記残存必要値より小さい場合、前記合計を前記既定必要値に加算し、前記を前記残存必要値から減算し、q(S)台のS番目の種類の機器のP2の合計を前記暫定下限値に加算し、
     前記合計が前記残存必要値以上の場合、S番目の種類の機器のP1で前記残存必要値を割った実数値である緩和台数を算出し、前記緩和台数分のS番目の種類の機器のP2の合計を前記暫定下限値に加算して、
     前記探索範囲(j)の前記下限値にする
     請求項2に記載の構成管理装置。
    The search execution means includes
    An index ratio obtained by dividing P1 stored by the device storage means by P2 is calculated for each type of device,
    The total of P1 of the 1st to j (1 ≦ j <J) type devices of the number n (1) to n (j) stored in the search range storage means is calculated as the default required value, The total of P2 is calculated as a provisional lower limit, and the value obtained by subtracting the existing required value from N is set as the remaining required value.
    While selecting the device type sequentially from the j + 1st to Jth device types in descending order of the index value,
    Calculate the sum of P1 for the maximum number q (S) stored in the device information storage means of the selected type of device (Sth type),
    If the total is less than the remaining required value, add the total to the predetermined required value, subtract it from the remaining required value, and add the sum of P2 of q (S) S-type devices Add to the provisional lower limit,
    If the total is equal to or greater than the remaining required value, a relaxed number that is a real value obtained by dividing the remaining required value by P1 of the Sth type device is calculated, and P2 of the Sth type device corresponding to the relaxed number Is added to the provisional lower limit value,
    The configuration management apparatus according to claim 2, wherein the lower limit value of the search range (j) is set.
  5.  複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、
     機器の種類毎に、P1及びP2を機器記憶手段に記憶し、
     初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を暫定解記憶手段に記憶し、
     1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を探索範囲記憶手段に記憶し、
     Nを入力して、
     n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、
     n(j+1)を前記探索範囲記憶手段に格納して、
     N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、
     前記下限値が前記暫定解より小さい場合、
     前記探索範囲(j+1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、
     前記下限値が前記暫定解より大きい場合、前記探索範囲(j+1)の探索を行わず、
     前記探索の実行後、前記暫定集合を最小集合として出力する
     構成管理方法。
    A set of devices each of which is associated with the first index value P1 and the second index value P2 for each of a plurality of types (J) and the total of P1 is equal to or greater than the necessary value N is a sufficient set, and the total of P2 If the smallest value in the sufficient set is the smallest sum,
    For each device type, P1 and P2 are stored in the device storage means,
    Information indicating a provisional solution whose initial value is a value equal to or greater than the minimum total and a provisional set that is a set of devices in which the sum of P2 is the provisional solution is stored in the provisional solution storage unit;
    N (1) to n (j), which are the number of devices of the 1st to jth types (j is an integer from 1 to J-1), are stored in the search range storage means,
    Enter N
    n (j + 1) is a j + 1-th type when a satisfying set is composed only of n (1) -n (j) 1st to j-th type devices and j + 1-th type devices from 0, respectively. While sequentially increasing to a predetermined value (j + 1) below the minimum number of devices p (j + 1),
    n (j + 1) is stored in the search range storage means,
    From P1 and P2 of N and 1 to j + 1 type devices, the number of 1 to j + 1 type devices is n (1) to n (j + 1) stored in the search range storage means Calculating the lower limit value of the total P2 of the set included in the search range (j + 1) which is a set of sets, excluding the restriction that the number of devices is an integer;
    When the lower limit value is smaller than the provisional solution,
    From the search range (j + 1), a satisfaction set in which the sum of P2 is smaller than the provisional solution is extracted. Stored in provisional solution storage means,
    When the lower limit value is larger than the provisional solution, the search of the search range (j + 1) is not performed,
    A configuration management method for outputting the temporary set as a minimum set after execution of the search.
  6.  各種類の機器の最大台数q(j)(1≦j≦J)を、機器の種類と対応付けて前記機器情報記憶手段に記憶し、
     p(j)と前記機器情報記憶手段から入力したq(j)(1≦j≦J)のいずれか小さい方を、p(j)以下の前記所定値(j)とする
     請求項5に記載の構成管理方法。
    The maximum number q (j) (1 ≦ j ≦ J) of each type of device is stored in the device information storage unit in association with the type of device,
    The smaller one of p (j) and q (j) (1 ≦ j ≦ J) input from the device information storage means is set to the predetermined value (j) equal to or less than p (j). Configuration management method.
  7.  複数(J)の種類毎に第1の指標値P1と第2の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、
     コンピュータを、
     機器の種類毎に、P1及びP2を記憶する機器記憶手段と、
     初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、
     1乃至j番目(jは1乃至J−1のいずれかの整数)の種類の機器の台数であるn(1)からn(j)を記憶する探索範囲記憶手段と、
     Nを入力して、
     n(j+1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とj+1番目の種類の機器のみで充足集合を構成したときのj+1番目の種類の機器の最小台数p(j+1)以下の所定値(j+1)まで順次増加させながら、
     n(j+1)を前記探索範囲記憶手段に格納して、
     N及び1乃至j+1番目の種類の機器のP1及びP2から、1乃至j+1番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からn(j+1)である充足集合の集まりである前記探索範囲(j+1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、
     前記下限値が前記暫定解より小さい場合、
     前記探索範囲(j+1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、
     前記下限値が前記暫定解より大きい場合、前記探索範囲(j+1)の探索を行わない
     探索実行手段と、
     前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段と
     して動作させる構成管理プログラムを記憶するプログラム記録媒体。
    A set of devices each of which is associated with the first index value P1 and the second index value P2 for each of a plurality of types (J) and the total of P1 is equal to or greater than the necessary value N is a sufficient set, and the total of P2 If the smallest value in the sufficient set is the smallest sum,
    Computer
    Device storage means for storing P1 and P2 for each device type;
    A provisional solution storing means for storing information representing a provisional solution whose initial value is a value equal to or greater than the minimum total, and a provisional set in which the sum of P2 is a set of devices serving as the provisional solution;
    Search range storage means for storing n (1) to n (j), which is the number of devices of the 1st to jth types (j is an integer from 1 to J-1);
    Enter N
    n (j + 1) is a j + 1-th type when a satisfying set is composed only of n (1) -n (j) 1st to j-th type devices and j + 1-th type devices from 0, respectively. While sequentially increasing to a predetermined value (j + 1) below the minimum number of devices p (j + 1),
    n (j + 1) is stored in the search range storage means,
    From P1 and P2 of N and 1 to j + 1 type devices, the number of 1 to j + 1 type devices is n (1) to n (j + 1) stored in the search range storage means Calculating the lower limit value of the total P2 of the set included in the search range (j + 1) which is a set of sets, excluding the restriction that the number of devices is an integer;
    When the lower limit value is smaller than the provisional solution,
    From the search range (j + 1), a satisfaction set in which the sum of P2 is smaller than the provisional solution is extracted. Stored in provisional solution storage means,
    When the lower limit value is larger than the provisional solution, search execution means that does not search the search range (j + 1);
    A program recording medium for storing a configuration management program to be operated as output means for outputting the provisional set as a minimum set after execution of search by the search execution means.
  8.  各種類の機器の最大台数q(j)(1≦j≦J)を、機器の種類と対応付けて記憶する前記機器情報記憶手段と、
     p(j)と前記機器情報記憶手段から入力したq(j)(1≦j≦J)のいずれか小さい方を、p(j)以下の前記所定値(j)とする前記探索実行手段と
     して動作させる構成管理プログラムを記憶する請求項7に記載のプログラム記録媒体。
    The device information storage means for storing the maximum number q (j) (1 ≦ j ≦ J) of each type of device in association with the type of device;
    the search execution means for setting the smaller one of p (j) and q (j) (1 ≦ j ≦ J) input from the device information storage means to the predetermined value (j) equal to or less than p (j); The program recording medium according to claim 7, wherein a configuration management program to be operated is stored.
  9.  コンピュータを、
     前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
     前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j<J)番目の種類の機器の、P1の合計を算出し、算出した前記合計をNから引いた残存必要値を算出し、
     j+1番目からJ番目の種類の機器の中で前記指標値が最も大きい機器(機器X)のP1で前記残存必要値を割った実数値である緩和台数を算出し、
     それぞれn(1)からn(j)の台数の1からj番目の種類の機器のP2の合計と、前記機器XのP2に前記緩和台数を掛けた値を足した値を、前記探索範囲(j)の前記下限値とする前記探索実行手段と
     して動作させる構成管理プログラムを記憶する請求項7に記載のプログラム記録媒体。
    Computer
    An index ratio obtained by dividing P1 stored by the device storage means by P2 is calculated for each type of device,
    The total of P1 of the 1st to j (1 ≦ j <J) type devices of the number n (1) to n (j) respectively stored in the search range storage unit is calculated, and the calculated total is calculated. Calculate the remaining required value subtracted from N,
    Calculate the mitigation number that is a real value obtained by dividing the remaining required value by P1 of the device (device X) having the largest index value among the devices of the j + 1th to Jth types,
    The total of P2 of the 1st to jth types of devices of n (1) to n (j) and the value obtained by adding the value obtained by multiplying P2 of the device X by the relaxed number is the search range ( The program recording medium according to claim 7, wherein a configuration management program that is operated as the search execution unit that sets the lower limit of j) is stored.
  10.  コンピュータを、
     前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
     前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j<J)番目の種類の機器の、P1の合計を算出して既定必要値とし、P2の合計を算出して暫定下限値とし、Nから前記既存必要値を引いた値を残存必要値とし、
     前記指標値が大きい順に、j+1番目からJ番目の機器の種類から、機器の種類を順次選択しながら、
     選択した種類の機器(S番目の種類)の、前記機器情報記憶手段に記憶されている最大台数q(S)分のP1の合計を算出し、
     前記合計が前記残存必要値より小さい場合、前記合計を前記既定必要値に加算し、前記を前記残存必要値から減算し、q(S)台のS番目の種類の機器のP2の合計を前記暫定下限値に加算し、
     前記合計が前記残存必要値以上の場合、S番目の種類の機器のP1で前記残存必要値を割った実数値である緩和台数を算出し、前記緩和台数分のS番目の種類の機器のP2の合計を前記暫定下限値に加算して、
     前記探索範囲(j)の前記下限値にする前記探索実行手段と
     して動作させる構成管理プログラムを記憶する請求項8に記載のプログラム記録媒体。
    Computer
    An index ratio obtained by dividing P1 stored by the device storage means by P2 is calculated for each type of device,
    The total of P1 of the 1st to j (1 ≦ j <J) type devices of the number n (1) to n (j) stored in the search range storage means is calculated as the default required value, The total of P2 is calculated as a provisional lower limit, and the value obtained by subtracting the existing required value from N is set as the remaining required value.
    While selecting the device type sequentially from the j + 1st to Jth device types in descending order of the index value,
    Calculate the sum of P1 for the maximum number q (S) stored in the device information storage means of the selected type of device (Sth type),
    If the total is less than the remaining required value, add the total to the predetermined required value, subtract it from the remaining required value, and add the sum of P2 of q (S) S-type devices Add to the provisional lower limit,
    If the total is equal to or greater than the remaining required value, a relaxed number that is a real value obtained by dividing the remaining required value by P1 of the Sth type device is calculated, and P2 of the Sth type device corresponding to the relaxed number Is added to the provisional lower limit value,
    The program recording medium according to claim 8, wherein a configuration management program to be operated as the search execution means for setting the lower limit value of the search range (j) is stored.
PCT/JP2012/066307 2011-06-20 2012-06-20 Configuration management device, configuration management method, and program-recording medium storing configuration management program WO2012176925A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013521658A JP5949764B2 (en) 2011-06-20 2012-06-20 Configuration management apparatus, configuration management method, and program recording medium for storing configuration management program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-136489 2011-06-20
JP2011136489 2011-06-20

Publications (1)

Publication Number Publication Date
WO2012176925A1 true WO2012176925A1 (en) 2012-12-27

Family

ID=47422751

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/066307 WO2012176925A1 (en) 2011-06-20 2012-06-20 Configuration management device, configuration management method, and program-recording medium storing configuration management program

Country Status (2)

Country Link
JP (1) JP5949764B2 (en)
WO (1) WO2012176925A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024029022A1 (en) * 2022-08-04 2024-02-08 日本電信電話株式会社 Device for accelerating branch-and-bound method, method, and program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183416A (en) * 2000-12-15 2002-06-28 Hitachi Ltd System proposing method, device for performing it, storage medium storing its processing program
JP2004030292A (en) * 2002-06-26 2004-01-29 Hitachi Ltd Method and device for deriving system configuration of computer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183416A (en) * 2000-12-15 2002-06-28 Hitachi Ltd System proposing method, device for performing it, storage medium storing its processing program
JP2004030292A (en) * 2002-06-26 2004-01-29 Hitachi Ltd Method and device for deriving system configuration of computer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024029022A1 (en) * 2022-08-04 2024-02-08 日本電信電話株式会社 Device for accelerating branch-and-bound method, method, and program

Also Published As

Publication number Publication date
JP5949764B2 (en) 2016-07-13
JPWO2012176925A1 (en) 2015-02-23

Similar Documents

Publication Publication Date Title
JP5369154B2 (en) System and method for ranking search results using click distance
JP2006004307A (en) Business assessment support method
JP6982557B2 (en) Reward function generation method and computer system
US20090287675A1 (en) Extending OLAP Navigation Employing Analytic Workflows
US20070233532A1 (en) Business process analysis apparatus
US20200278960A1 (en) Method and system for deriving a procedure for querying data
KR101975272B1 (en) System and method for recommending component reuse based on collaboration dependency
JP5949764B2 (en) Configuration management apparatus, configuration management method, and program recording medium for storing configuration management program
Ploskas et al. A triangulation and fill-reducing initialization procedure for the simplex algorithm
JP2012133694A (en) Demand prediction method
JP6487820B2 (en) Risk assessment device, risk assessment method, and risk assessment program
JP5761029B2 (en) Dictionary creation device, word collection method, and program
CN113515517A (en) Method for querying data set based on tree structure data and computer equipment
JP4059970B2 (en) Information source recommendation device
CN103970816B (en) The method and system of mark content to be issued
JP5900341B2 (en) Configuration management apparatus, configuration management method, and configuration management program
JP5555238B2 (en) Information processing apparatus and program for Bayesian network structure learning
JP2012181739A (en) Man-hour estimation device, man-hour estimation method, and man-hour estimation program
WO2022018899A1 (en) System for extracting subtree from kpi tree
US11397715B2 (en) Defining indexing fields for matching data entities
US7577649B2 (en) Engine for validating proposed changes to an electronic entity
JP2018060379A (en) Searching means selecting program, searching means selecting method and searching means selecting device
JP5899587B2 (en) File search method, file search device, and program
JP6221593B2 (en) Data management method, data management program, and data management apparatus
JP2012128802A (en) Retrieval algorithm evaluation system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12802838

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013521658

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12802838

Country of ref document: EP

Kind code of ref document: A1