WO2001098896A1 - A method for interactive configuration - Google Patents

A method for interactive configuration Download PDF

Info

Publication number
WO2001098896A1
WO2001098896A1 PCT/SE2001/001391 SE0101391W WO0198896A1 WO 2001098896 A1 WO2001098896 A1 WO 2001098896A1 SE 0101391 W SE0101391 W SE 0101391W WO 0198896 A1 WO0198896 A1 WO 0198896A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
choices
subset
earlier
item
Prior art date
Application number
PCT/SE2001/001391
Other languages
French (fr)
Inventor
Johan MÅRTENSSON
Andreas Johansson
Claes STRANNEGÅRD
Original Assignee
Safelogic Ab
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 Safelogic Ab filed Critical Safelogic Ab
Priority to AU2001266471A priority Critical patent/AU2001266471A1/en
Publication of WO2001098896A1 publication Critical patent/WO2001098896A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Definitions

  • This invention relates to an aspect of computer-aided configuration.
  • Most industrial products consist of parts. Those parts may in many cases be chosen from several alternatives. This is especially evident if the product in question has a modular composition, i.e., there is some standard that each part of a certain type must meet.
  • a instructive example of this is a desktop computer system.
  • a system of this kind comprises a motherboard, at least one hard-drive, some RAM units, a floppy-disk unit, a keyboard, and so on.
  • There are industry standards specifying physical properties (such as external dimensions, maximal heat production, energy requirements) as well as logical properties (such as interface protocols) of such parts.
  • parts may be mutually incompatible. They may for instance conform to different standards (such as a SCSI hard- drive and an ATA connector). There may also exist relations of dependence among parts such that e.g. a part of a certain type (a certain motherboard for instance) requires another part of a certain type (such as a certain type of RAM-unit). Since the number of combinations to consider when solving configuration problems is in many cases very large, it is often impossible even for experts in the field in question to survey all the relevant possibilities when deciding which parts to include in a configuration in order to obtain a system with suitable properties. Hence computer-aided configuration is a necessity in such cases.
  • this system will identify all maximal sets of prior user choices compatible with the inaccessible item in question and the rule base. The user is then presented with a list of those maximal sets and asked to choose one of them. Such a list of sets may of course in certain cases be quite long and also difficult to survey. To facilitate this selection the user is offered to single out some of the previous choices as cardinal ones that must be included in the maximal sets that are presented to the user. In this way the number of alternatives presented to the user may be reduced.
  • the maximal sets of earlier choices are identified according to this prior art technology by first going through all alternative ways of un-marking one of the prior choices, then all alternative ways of un-marking two prior choices, and so forth, each time checking whether the set of remaining choices are compatible with the inaccessible item in question and the rule base.
  • P ⁇ Pi, ⁇ ⁇ -Pk ⁇ represent all (k) earlier choices and q represent the inaccessible item insisted on by the user.
  • the method in question first checks whether any of the sets . . . P ⁇ P k ⁇ is compatible with q and the rule base, then goes on and checks whether any of the sets . . - P ⁇ pk- ⁇ , P k ⁇ are thus compatible and so on. In this way all maximal subsets of P compatible with the rule base and q are identified.
  • a distinct drawback of this prior art with respect to the present invention is that the number of satisfiability checks is much greater, which results in a much more time consuming computation, which of course may be of considerable inconvenience to the user.
  • the present invention solves a particular problem that arises for interactive no configuration systems of a certain kind. It is also implemented as a part of a particular system of this kind.
  • Configurators of this kind present the user with selectable modules comprising mutually exclusive alternatives e.g. in the form of menus under which mutually exclusive alternatives regarding some aspect of the configurable product appear. For instance, one such menu us might list different colors of a car, different monitors of a desktop computer system, depending on the product to be configured. Some of the items under a given menu might be marked as inaccessible by the program, due to previous user choices incompatible with that particular item.
  • the user may mark at most one of the remaining items as selected, meaning that he i2o wishes to include that item in the final configuration, or one or more of those items as deselected, meaning that he wants to exclude that or those items from it.
  • the configurator contains a rule base (that consists of formulas of propositional logic) comprising (1) formulas stating relations of incompatibility, dependence, and so forth between the alternatives, (2) formulas stating
  • HO configurator then uses a boolean SAT algorithm to check whether further alternatives are part of a valid configuration including the items that are already marked as selected and excluding the items marked as deselected. If this is not the case with regard to some alternative the configurator marks this alternative as inaccessible.
  • MO syntactical units used to state that something is the case. If, for instance, the user has marked the menu items hardware : processor : Pentium III 550Mhz, hardware : monitor : Trinitron 17 ' ' and software : os : Linux as selected the configurator adds the corresponding atomic formulas pIII550, trinitronlJ and linux to the rule base.
  • Non- atomic formulas are built us up from atomic ones by means of connectives such as negation (X), conjunction ( ⁇ ) , disjunction (V), material implication (— ) and so on. These connectives express truth-functions (boolean functions). E.g.
  • the formula -windows is evaluated as true if and only if the formula windows is evaluated as false, the formula (pIII550 ⁇ trinitronlJ) is evaluated as true if i5o and only if both pIII550 and trinitron.17 are evaluated as true, the formula (pIII550 V trinitronlJ) is evaluated as true if and only if at least one of pIII550 and trimtronlJ are evaluated as true, and finally the formula (pIII550 — Y trinitronl7) is evaluated as true if and only if pIII550 is evaluated as false or trinitronl is evaluated as true.
  • Formulas of the second kind are required in order to avoid situations in which the user has made a number of selections compatible with each other i8o that nevertheless are not part of a complete valid configuration, i.e., there is some part required by a complete system that is not compatible with the user selections.
  • the SAT-problem with regard to a set of formulas of propositional logic is the problem of determining whether all the formulas of the set in question
  • 185 may be simultaneously true or not, i.e., whether they are jointly satisfiable. Assuming that the set in question contains adequate and sufficient formulas of the types (1-3) above, together with the formulas representing the user choices, determining whether the formulas in this set are jointly satisfiable is essentially the same as determining whether the user choices are part of wo a valid configuration, i.e., of a possible (and available) combination of parts that together constitute a whole of the kind in question.
  • a SAT-algorithm accepts as input a set of formulas of this kind and determines whether there is an evaluation of the atomic formulas occurring in the input formulas such that all input formulas are true.
  • the invention specifically addresses a situation in which a user when completing an interactive configuration — using a configurator of the kind just described — reaches a point at which he wishes to choose a particular item that is already excluded by the user's previous selections, i.e. it is marked as inaccessible. For instance, a user configuring a desktop computer
  • the configurator un-marks the earlier choices in succession (while retaining them in memory) starting with the least prioritized and working upwards at each point checking whether the set of remaining user selections is now compatible with the present wish of the user, terminating when this is achieved.
  • This un-marking is cumulative or additive in the sense that previously un-marked items stays un-marked during this process, and newly unmarked items are successively added to the set of unmarked items.
  • the algorithm will detect a (least) point (in the order of priority) such that the set of those selected or deselected items that occur above this point is compatible with the inaccessible alternative the user wishes to insist on.
  • An alternative, but logically equivalent method is first to un-mark all the previous selections then re-enter them from memory in their order of (falling) priority, cumulatively (i.e., they are successively added to the set of thus re-entered items), and then for each, in this way prioritized, subset of the user's prior choices, check whether it is compatible with the inaccessible item in question, terminating at the last (and largest) such compatible set.
  • the algorithm retrieves from memory and re-enters all the user's previous marks. At this point the user is told that if he accords a higher
  • the user may, by means of the input devices, mark various menu items thus presented on the monitor as selected or deselected. Items may also be marked e.g. as inaccessible due to program activity. Also other input and output events will be exchanged between the user and the computer running this program via those input and output devices.
  • 285 computer running this program may reside at one location and be connected to the monitor and input devices either directly or indirectly through some other computer residing at some other location. It may even be the case that part of said program is executed on one computer and an other part is executed on some other computer connected to the first one.
  • selectable items The menu items that the user may mark as selected or deselected and that may be marked as inaccessible by the program implementing the invention, will be referred to as selectable items.
  • selectable items In the preferred embodiment of the invention, to each selectable item there will correspond a variable
  • selectable variables are related to the selectable items in such a way that they assume the value 1 whenever the corresponding selectable item is marked as selected and 0 whenever the corresponding selectable item is marked as deselected. Further, to each selectable variable there will correspond an
  • this implementation will progress through the menu items not yet marked by the user and for each of them q add the formula q corresponding to it, to the set of formulas corresponding to the set p ⁇ . . . u of selectable variables representing earlier user choices.
  • This set will then together with a set of formulas expressing various constraints on the selectable items (the rule base) be sent to an implementation of a SAT algorithm to determine whether this set is consistent, if not, the menu item q corresponding to the variable q will be marked as inaccessible. If on the other hand it is consistent, the next unmarked item will be checked in the same way.
  • menu items thus marked as inaccessible as inaccessible menu items and generally talk about the accessibility of such menu items referring to their status as being inaccessible or not, as the case may be.
  • the set p ⁇ . . . p k of earlier user choices will be accorded a default order of priority based on e.g. the order the user has marked the items in question, or some user profile pertaining to the user in question or on some other principle.
  • Figure 1 shows a flow chart describing a possible implementation in accordance with the invention: This algorithm is activated whenever a user wishes to select a selectable item q that is marked as inaccessible due to earlier user choices represented by the selectable variables ⁇ . . .p k - These variables are initially accorded a default order of priority with pi having the highest and p k the lowest priority. It is also assumed that for 1 ⁇ n, m ⁇ k if m ⁇ n then p m has higher priority than p n , so there are no ties, i.e. items with the same degree of priority.
  • subroutine S2 Figure 3 which identifies a set P of selectable variables representing earlier choices compatible with q and the rule base. This subset of ⁇ pi . . . p k ⁇ is maximal and prioritized in a sense that will be explained below ( Figure 3). If he, on the other hand, answers Yes the algorithm first enters subroutine SI ( Figure 2) which allows the user to prioritize his earlier choices pi . . -P k , and then progresses to subroutine S2.
  • Figure 2 shows a flow chart describing subroutine SI of the algorithm
  • This subroutine starts with a set p-y . . .p k of selectable variables representing earlier user choices, enumerated in order of falling priority as described above ( Figure 1). First the user is asked to select an item in the list p ⁇ . . .p k for re-prioritization, i.e., an item to which he wants to assign a different relative priority with respect to the other items in the list.
  • the user is now asked to select a new level of priority (one of 1 . . . k) for
  • this subroutine is entered again. If on the other hand he selects Mo the algorithm exits this subroutine. The output of this subroutine is again a list of user choices p ⁇ . . - k now ordered in accordance with the user's preferences.
  • This subroutine may of course be implemented by various
  • Figure 3 shows a flow chart describing subroutine S2 of the algorithm described in Figure 1.
  • this subroutine starts with a set ⁇ Pi ⁇ ⁇ -Pk ⁇ o variables representing earlier user choices, enumerated in order of falling priority and a variable q representing some inaccessible selectable
  • First the subroutine initializes a counter I to the position of the last item in the set ⁇ pi . . .p k ⁇ , i.e., I is assigned the value k.
  • a SAT algorithm is called to check whether this set of formulas is satisfiable. If this is not the case then the subroutine first checks whether the set ⁇ pi . . .p ⁇ - ⁇ is empty ⁇ pi . . .p 0 ⁇ is the empty set 0), if so q is not compatible with the rule base so selectable item q may not be selected if the rule base is not changed. Therefore in this case the algorithm exits altogether. If
  • This subroutine will find such a subset P that is such that every element of P (if any) has higher priority than all of the elements in ⁇ p ⁇ . . .p k ⁇ P, it is thus an initial segment of ⁇ pi . . .p k ⁇ - In this sense the set P is prioritized.
  • P — ⁇ Pi ⁇ ⁇ -P ⁇ - ⁇ is also maximal in the sense that if I' > I then ⁇ pi . . .pv- ⁇ is not compatible with q and the rule base, P is thus the maximal initial
  • Figure 4 shows a flow chart describing subroutine S3 of the algorithm
  • This subroutine S3 starts with the parameters q, ⁇ Pi • ⁇ -P k ⁇ and I passed on from subroutine S2, representing the inaccessible selectable item q insisted on by the user and the maximal and prioritized (in the sense described above in the explanation to figure ) subset P compatible with q and the rule base.
  • the point of this subroutine is to identify a
  • n is initialized to I.
  • the set of formulas corresponding to the variables pi . . .p n ⁇ and the formula q is added to the rule base.
  • This subroutine thus acts in a way that is successive in the sense that it progresses through the list of items pi . . .p k in their order of succession. It is further cumulative or additive in the sense that the items added during previous iterations to the set to be checked for compatibility, remain there when new such items are thus added.

Abstract

A method for interactive configuration, in an interactive configuration system, by which a user may configure a configurable product by successively selecting i.e. including in the configuration, various items representing product parts, such that after user actions of this kind the accessibility of further items, is determined by means of an algorithm including a boolean SAT algorithm, that ascertains the satisfiability of formulas including those of propositional logic, representing the user choices, and said further items, together with a rule base of formulas stating relations of incompatibility and dependence characterized in that a user when wishing to select an item that is inaccessible due to earlier user choices is provided with a possibility of having a minimal number of earlier choices undone so as to retain a maximal subset of earlier choices compatible with the rule base and said inaccessible item, said undoing being in accordance with the user's relative preferences with regard to said earlier choices, by performing the following steps: (a) assigning an order of priority to the user's earlier choices, then (b) determining a maximal subset of earlier user choices with higher priority than all choices not included in said subset, said subset being compatible with the rule base and said inaccessible item, finally c) if the user accords a higher priority to said inaccessible item than to all previous choices excluded from said subset, forming a superset of said subset of user choices, being a maximal subset of user choices compatible with the rule base and said inaccessible item, formed in accordance with user priorities.

Description

A Method for Interactive Configuration.
Background of the Invention.
This invention relates to an aspect of computer-aided configuration. Most industrial products consist of parts. Those parts may in many cases be chosen from several alternatives. This is especially evident if the product in question has a modular composition, i.e., there is some standard that each part of a certain type must meet. A instructive example of this is a desktop computer system. A system of this kind comprises a motherboard, at least one hard-drive, some RAM units, a floppy-disk unit, a keyboard, and so on. There are industry standards specifying physical properties (such as external dimensions, maximal heat production, energy requirements) as well as logical properties (such as interface protocols) of such parts. The fact that several alternative units meeting the same standards are available, makes possible a wide array of alternative ways of combining parts in assembling the complete system. Such different ways of composing a product from parts are called different configurations. Although two parts may meet the same standards in some respects and thus be interchangeable, in the sense that each may be substituted for the other in a well functioning system, they may still differ in other respects with consequences for the properties of the system as a whole (e.g. two different hard-drives may have the same physical dimensions and the same interface, but have widely different storage capacity). One notable problem of configuration is thus to find a configuration (among a vast array of possible configurations) that results in desirable properties of the system as a whole. Another problem of configuration, related to the first one, is that notwithstanding the existence of standards, parts may be mutually incompatible. They may for instance conform to different standards (such as a SCSI hard- drive and an ATA connector). There may also exist relations of dependence among parts such that e.g. a part of a certain type (a certain motherboard for instance) requires another part of a certain type (such as a certain type of RAM-unit). Since the number of combinations to consider when solving configuration problems is in many cases very large, it is often impossible even for experts in the field in question to survey all the relevant possibilities when deciding which parts to include in a configuration in order to obtain a system with suitable properties. Hence computer-aided configuration is a necessity in such cases.
The need for configuration arises on different levels. Of course, configuration is required on the level of production, i.e., on the level of product construction, but increasingly the demand for solutions to configuration problems is also evident at the level of consumption. Increasingly consumers request products that are tailored to fit their specific needs and tastes, hence with respect to certain product segments (such as desktop computer systems, cars, and in many other segments) there is a demand for computer-based systems of configuration management that can be administered by a salesperson or by the consumer himself, for instance, by a consumer ordering a configurable product via the Internet.
There are today several commercially available systems for configuration management both at the level of product construction and at the level of consumption. These rely on different core technologies, like extensive database search, constraint programming, propositional logic SAT algorithms and so on. From a user perspective there is an important difference between systems where the user first makes a set of selections and is only subsequently told whether his choices represent a valid configuration or not, and systems where the user is only presented with alternatives that together with the choices already made constitute part of a valid configuration. The present invention is integrated in a system of the second kind that utilizes as boolean SAT algorithm, and relates to a specific problem that may arise during the process of configuration by means of the system in question. At some point during the configuration process the user may find that some choice he wishes to make is excluded by the selections he has already made. In this situation there is no valid configuration comprising the item the user wants to select and also all the items previously selected. In this situation it is desirable that the user is presented with alternatives that are such that he may indeed choose the present item and also retain a subset of previously selected items, compatible with the present item, that is singled out in accordance with the user's priorities. The present invention regards precisely a method for achieving this. Prior Art
A relevant prior art is described in W099/13411, that regards an invention addressing a problem of the same sort as that which is solved by the present invention. The technology in question is meant to be integrated in an interactive configurator of the sort described in W099/13413 by the same applicant.
When a user of that configurator insists on selecting a selectable item that is already marked as inaccessible due to earlier user choices, this system will identify all maximal sets of prior user choices compatible with the inaccessible item in question and the rule base. The user is then presented with a list of those maximal sets and asked to choose one of them. Such a list of sets may of course in certain cases be quite long and also difficult to survey. To facilitate this selection the user is offered to single out some of the previous choices as cardinal ones that must be included in the maximal sets that are presented to the user. In this way the number of alternatives presented to the user may be reduced.
The maximal sets of earlier choices are identified according to this prior art technology by first going through all alternative ways of un-marking one of the prior choices, then all alternative ways of un-marking two prior choices, and so forth, each time checking whether the set of remaining choices are compatible with the inaccessible item in question and the rule base. Let P = {Pi, ■ ■ -Pk} represent all (k) earlier choices and q represent the inaccessible item insisted on by the user. The method in question first checks whether any of the sets
Figure imgf000005_0001
. . . P\{Pk} is compatible with q and the rule base, then goes on and checks whether any of the sets
Figure imgf000005_0002
. . - P\{pk-ι, Pk} are thus compatible and so on. In this way all maximal subsets of P compatible with the rule base and q are identified.
A distinct drawback of this prior art with respect to the present invention is that the number of satisfiability checks is much greater, which results in a much more time consuming computation, which of course may be of considerable inconvenience to the user.
According to the present invention only one (1) way of undoing one user choice in P = {p1 ; . . .pk} needs to be considered whereas according to the method presented in WO99/13411 there are k ways of undoing one choice that must be considered. According to the present invention only one (1) way of undoing two choices must be considered instead of [ Yj , and generally only 1 ways of undoing n choices instead of ( j different ways. The maximal number of iterations according to the present invention is hence the same toe as the number of prior user choices minus one k — 1 (since the empty set 0 need not be checked) whereas that of the method described in W099/13411 is ∑i=ι C ) — 1 = 2k — 2 where k is the number of prior user choices.
Summary of the Invention.
The present invention solves a particular problem that arises for interactive no configuration systems of a certain kind. It is also implemented as a part of a particular system of this kind. Configurators of this kind present the user with selectable modules comprising mutually exclusive alternatives e.g. in the form of menus under which mutually exclusive alternatives regarding some aspect of the configurable product appear. For instance, one such menu us might list different colors of a car, different monitors of a desktop computer system, depending on the product to be configured. Some of the items under a given menu might be marked as inaccessible by the program, due to previous user choices incompatible with that particular item. The user may mark at most one of the remaining items as selected, meaning that he i2o wishes to include that item in the final configuration, or one or more of those items as deselected, meaning that he wants to exclude that or those items from it. The configurator contains a rule base (that consists of formulas of propositional logic) comprising (1) formulas stating relations of incompatibility, dependence, and so forth between the alternatives, (2) formulas stating
125 what is a complete configuration and (3) formulas stating what alternatives are mutually exclusive. When the user marks one alternative as selected the (atomic) formula corresponding to that alternative is added to the rule base. When, on the other hand an alternative is marked as deselected the negation of the corresponding atomic formula is added to that base. The
HO configurator then uses a boolean SAT algorithm to check whether further alternatives are part of a valid configuration including the items that are already marked as selected and excluding the items marked as deselected. If this is not the case with regard to some alternative the configurator marks this alternative as inaccessible.
135 We may exemplify this by a configuration of a desktop computer system by means of a configurator of this kind, although, as mentioned earlier, the invention is also applicable in many other fields. Now, to each selectable item under the menus and also to the menus themselves there are corresponding atomic formulas. Atomic formulas of propositional logic are indivisible
MO syntactical units used to state that something is the case. If, for instance, the user has marked the menu items hardware : processor : Pentium III 550Mhz, hardware : monitor : Trinitron 17 ' ' and software : os : Linux as selected the configurator adds the corresponding atomic formulas pIII550, trinitronlJ and linux to the rule base. Non- atomic formulas are built us up from atomic ones by means of connectives such as negation (X), conjunction (Λ) , disjunction (V), material implication (— ) and so on. These connectives express truth-functions (boolean functions). E.g. the formula -windows is evaluated as true if and only if the formula windows is evaluated as false, the formula (pIII550 Λ trinitronlJ) is evaluated as true if i5o and only if both pIII550 and trinitron.17 are evaluated as true, the formula (pIII550 V trinitronlJ) is evaluated as true if and only if at least one of pIII550 and trimtronlJ are evaluated as true, and finally the formula (pIII550 — Y trinitronl7) is evaluated as true if and only if pIII550 is evaluated as false or trinitronl is evaluated as true.
155 If the user has marked a menu item as deselected the negation of the corresponding formula is added to the rule base. E.g. if the user has marked the menu item hardware -.harddrive : 1.4GB as deselected the formula -ιhdl.4 is added to the rule base.
In addition to the formulas resulting from user-choices the rule base con- i6o tains (as previously said)
(1) formulas stating relations of incompatibility, and dependence between the selectable items, such as e.g., the formulas ((linux Λ pIII550) -x ->zip) stating that a computer system with a Pentium III 550 MHz CPU running Linux may not be furnished with a zip drive, and ((ie V msoffice) —
165 (windows V macos)) stating that the applications Internet Explorer as well as Microsoft Office require one of the operating systems Microsoft Windows or MacOS,
(2) formulas stating what is a complete configuration, in this case a complete computer system. This is accomplished by a formula of the following no kind (processor Λ memory Λ harddrive Λ keyboard Λ . . . Λ os) , where the various conjuncts (processor, memory, harddrive, keyboard, . . . , os) are defined by formulas such as (processor — > (pII350 V pII400 V pIII400 V . . .VpIH850)), (memory → (32MB V 64MB V 128 MBV. . .V1024MB)), and so on. Finally
175 (3) formulas stating what alternatives are mutually exclusive, such as
(pII350 → (^pII400Λ^pIII400Λ. . .Λ^pIIl850))Λ(pII400 → (-.pIII400Λ -πpIII450 . . . Λ ^pIII850)) Λ . . . Λ (pIII800 -> -.pIII850).
Formulas of the second kind are required in order to avoid situations in which the user has made a number of selections compatible with each other i8o that nevertheless are not part of a complete valid configuration, i.e., there is some part required by a complete system that is not compatible with the user selections.
The SAT-problem with regard to a set of formulas of propositional logic is the problem of determining whether all the formulas of the set in question
185 may be simultaneously true or not, i.e., whether they are jointly satisfiable. Assuming that the set in question contains adequate and sufficient formulas of the types (1-3) above, together with the formulas representing the user choices, determining whether the formulas in this set are jointly satisfiable is essentially the same as determining whether the user choices are part of wo a valid configuration, i.e., of a possible (and available) combination of parts that together constitute a whole of the kind in question.
A SAT-algorithm accepts as input a set of formulas of this kind and determines whether there is an evaluation of the atomic formulas occurring in the input formulas such that all input formulas are true.
195 The invention specifically addresses a situation in which a user when completing an interactive configuration — using a configurator of the kind just described — reaches a point at which he wishes to choose a particular item that is already excluded by the user's previous selections, i.e. it is marked as inaccessible. For instance, a user configuring a desktop computer
2oo system may at some point discover that he cannot choose the alternative hardware .-memory: 1024MB. The actual reason for this is that right at the beginning of the configuration session, the user selected hardware : processor : Pentium II 250MHz and there are in fact no motherboards with enough memory slots for housing 1024MB of RAM, compatible with this processor type, and there-
2 5 fore the rule base of the configurator contains a constraint to this effect. The user's preferences for 1024MB of RAM might be much stronger than his preferences for this particular processor type. Hence, if he is told that if he selects some other processor instead he can have 1024MB of RAM, he would gladly do so and end up with a much more satisfying configuration than otherwise. In the relevant situation there is a conflict between the user's present wish (to choose a certain item) and his previous choices. Since the item he presently wishes to choose is incompatible with (some of) his earlier choices, he must undo at least one (and possibly more than one) of those earlier choices in order to be able to fulfill his present wish. If he regards those previous choices as more important than his present wish he has to accept, of course, that his present wish cannot be fulfilled, but if not, he might want to be able to un-select conflicting items of less importance to him so as to be able to fulfill his present wish. A method that presents a user with a means for doing this would add real value for him since by means of such a method, in such a situation, the user would be able to configure a product that would correspond better to his preferences than otherwise, and hence such a method would be instrumental in achieving an optimal configuration. The present invention regards a method with precisely this ability.
In situations of this kind, according to the present invention, if the user insists on selecting the item that is incompatible with his earlier choices the user is requested to order those previous choices according to their relative importance for him. Next, the configurator un-marks the earlier choices in succession (while retaining them in memory) starting with the least prioritized and working upwards at each point checking whether the set of remaining user selections is now compatible with the present wish of the user, terminating when this is achieved. This un-marking is cumulative or additive in the sense that previously un-marked items stays un-marked during this process, and newly unmarked items are successively added to the set of unmarked items. In this way the algorithm will detect a (least) point (in the order of priority) such that the set of those selected or deselected items that occur above this point is compatible with the inaccessible alternative the user wishes to insist on. An alternative, but logically equivalent method is first to un-mark all the previous selections then re-enter them from memory in their order of (falling) priority, cumulatively (i.e., they are successively added to the set of thus re-entered items), and then for each, in this way prioritized, subset of the user's prior choices, check whether it is compatible with the inaccessible item in question, terminating at the last (and largest) such compatible set.
Which of these methods should be chosen is a matter of convenience — both algorithms will terminate at the same point in the list. However, one of them may be faster than the other depending, among other things, on the relative position of the point of termination.
Finally, the algorithm retrieves from memory and re-enters all the user's previous marks. At this point the user is told that if he accords a higher
250 priority to the inaccessible item in question than the items excluded from the set of items calculated in this way he may indeed choose it since it is then compatible with the set of all selected and deselected items with higher priority than those excluded items, this set being identical with the calcualted set.
255 If the user makes this re-prioritizing and now tries to select the inaccessible item in question he is told that he may indeed do so but that his prior selections (and de-selections) of a lower priority that conflict with this selection will be erased in that case. If the user now selects the inaccessible item in question, the items with lower priority will first be unmarked (i.e. no longer
260 be marked as either selected or deselected), but information of the user's previous choices with regard to those parameters will be retained in memory. Next, the algorithm will try to re-enter those previous marks one by one in the order of falling priority, so as to obtain a maximal subset of previous user choices compatible with the rule base and the previously inaccessible
265 item.
It is a considerable advantage of this method that the user may in this way select items that have been marked as inaccessible as a result of earlier choices made by the user, being incompatible with those earlier choices, and at the same time retain as many as possible of those earlier choices in a way
270 that is in accordance with the user's preferences. In this way the user may obtain a much more satisfying product, in shorter time and with less effort than otherwise.
Preferred Implementation
A preferred embodiment of the invention will be described by means of a 275 number of flow-charts (Figure 1-4) that are commented upon below.
These flow charts describe algorithms that are preferably implemented in a computer program that may be run on a computer connected to a monitor and some input devices such as e.g. a keyboard and a mouse. By means of this program there will be presented on the monitor a system of menus as
280 described above. The user may, by means of the input devices, mark various menu items thus presented on the monitor as selected or deselected. Items may also be marked e.g. as inaccessible due to program activity. Also other input and output events will be exchanged between the user and the computer running this program via those input and output devices. The
285 computer running this program may reside at one location and be connected to the monitor and input devices either directly or indirectly through some other computer residing at some other location. It may even be the case that part of said program is executed on one computer and an other part is executed on some other computer connected to the first one.
290 Some terminological conventions will facilitate the following description:
The menu items that the user may mark as selected or deselected and that may be marked as inaccessible by the program implementing the invention, will be referred to as selectable items. In the preferred embodiment of the invention, to each selectable item there will correspond a variable
295 representing that item. We call those variables selectable variables. The selectable variables are related to the selectable items in such a way that they assume the value 1 whenever the corresponding selectable item is marked as selected and 0 whenever the corresponding selectable item is marked as deselected. Further, to each selectable variable there will correspond an
3oo atomic formula of propositional logic expressing the state of the variable in question. If p refers to a selectable variable we will refer to the corresponding atomic formula by p; e.g. that the value of p is 1 will be expressed by the formula p and that it is 0 by the negation ->p of the formula p. If on the other hand the variable p is undefined, as is the case when the corresponding menu
305 item is not marked, then there is no formula expressing this. The absence of both formulas p and ->p is thus an indication that the corresponding variable p is undefined and that the corresponding menu item is not marked.
We will refer to the selectable item corresponding to the selectable variable p by p. In virtue of these correspondences we will in the following,
3io for simplicity, talk about sets of selectable variables being compatible or not compatible with the rule base. What is meant is of course that the set of formulas expressing the values of those variables are thus compatible or incompatible with the rule base respectively.
In the preferred implementation of the invention after each user action,
3i5 i.e., after the user has marked some menu item as either selected or deselected, this implementation will progress through the menu items not yet marked by the user and for each of them q add the formula q corresponding to it, to the set of formulas corresponding to the set p\ . . . u of selectable variables representing earlier user choices. This set will then together with a set of formulas expressing various constraints on the selectable items (the rule base) be sent to an implementation of a SAT algorithm to determine whether this set is consistent, if not, the menu item q corresponding to the variable q will be marked as inaccessible. If on the other hand it is consistent, the next unmarked item will be checked in the same way. We will refer to menu items thus marked as inaccessible as inaccessible menu items, and generally talk about the accessibility of such menu items referring to their status as being inaccessible or not, as the case may be.
The set p\ . . . pk of earlier user choices will be accorded a default order of priority based on e.g. the order the user has marked the items in question, or some user profile pertaining to the user in question or on some other principle.
Figure 1 shows a flow chart describing a possible implementation in accordance with the invention: This algorithm is activated whenever a user wishes to select a selectable item q that is marked as inaccessible due to earlier user choices represented by the selectable variables \ . . .pk- These variables are initially accorded a default order of priority with pi having the highest and pk the lowest priority. It is also assumed that for 1 < n, m < k if m < n then pm has higher priority than pn, so there are no ties, i.e. items with the same degree of priority. First the user is asked if he wishes to order his earlier choices with respect to their importance for him, i.e., re-prioritize them. If he answers Mo the algorithm will use the default priority order and directly enter subroutine S2 (Figure 3) which identifies a set P of selectable variables representing earlier choices compatible with q and the rule base. This subset of {pi . . . pk} is maximal and prioritized in a sense that will be explained below (Figure 3). If he, on the other hand, answers Yes the algorithm first enters subroutine SI (Figure 2) which allows the user to prioritize his earlier choices pi . . -Pk, and then progresses to subroutine S2. Since P U {q} is compatible with the rule base, choosing q is compatible with the user's preferences, provided that q is assigned a priority at least as high as some item in P, or in other words, higher than all the items in {pi . . -Pk}\P (see explanation to figure 3). Therefore at this stage the user is asked whether q has higher priority for him than all the items corresponding to {pi . .
Figure imgf000012_0001
If the user answers No the algorithm terminates because choosing item q (which corresponds to variable q) is apparently not compatible with the user's pref-
355 erences and the user is told so. If on the other hand the user answers Yes the algorithm enters subroutine S3 (Figure 4) which identifies a set Q such that P C Q C {px . . . pk}, Q U {q} is compatible with the rule base, and Q is maximal in a sense that will be explained below (Figure 4).
Figure 2 shows a flow chart describing subroutine SI of the algorithm
360 described in Figure 1. This subroutine starts with a set p-y . . .pk of selectable variables representing earlier user choices, enumerated in order of falling priority as described above (Figure 1). First the user is asked to select an item in the list p\ . . .pk for re-prioritization, i.e., an item to which he wants to assign a different relative priority with respect to the other items in the list.
365 The user chooses one such item pm (We will refer to this variable as s) . The remaining variables p\ . . .pm-ι,Pm+ι ■ ■ -Pk retain their relative order. However we will now refer to them as p . . -Pk-i (for m < n < k, pn will thus now be referred to as pn-ι)-
The user is now asked to select a new level of priority (one of 1 . . . k) for
370 the selected item s. The user then selects such a level of priority n G {1 . . . k}. Next, the algorithm orders variables pi . . - Pk-i and s thus: For j < n each Pj retains its position (j), s is assigned position n and for n < j < k, pj is assigned to position j + 1.
The user is now asked if he is satisfied with the new ordering \ . . . pk
375 of the variables or if he wishes to perform further re-prioritization. If the user selects Yes the subroutine is entered again. If on the other hand he selects Mo the algorithm exits this subroutine. The output of this subroutine is again a list of user choices p\ . . - k now ordered in accordance with the user's preferences. This subroutine may of course be implemented by various
380 standard routines for handling ordered data structures.
Figure 3 shows a flow chart describing subroutine S2 of the algorithm described in Figure 1. Like subroutine SI this subroutine starts with a set {Pi ■ ■ -Pk} o variables representing earlier user choices, enumerated in order of falling priority and a variable q representing some inaccessible selectable
385 item that the user insist on selecting. First the subroutine initializes a counter I to the position of the last item in the set {pi . . .pk}, i.e., I is assigned the value k. Next atomic formulas and negations of atomic formulas corresponding to the variables p . . . pι-ι and q = 1 are added to the rule base (q and for 1 < m < I — 1 either pra or -ιpm depending on whether the value of pm is
390 1 or 0) and a SAT algorithm is called to check whether this set of formulas is satisfiable. If this is not the case then the subroutine first checks whether the set {pi . . .pι-ι} is empty {pi . . .p0} is the empty set 0), if so q is not compatible with the rule base so selectable item q may not be selected if the rule base is not changed. Therefore in this case the algorithm exits altogether. If
395 on the the other hand the set {pt . . .pι-χ} is not empty, 1 is subtracted from the counter I and the subroutine proceeds to check the subset {pi . . .pι-ι} of {Pi • • -Pk} in the same way.
In this way, at each iteration the subroutine takes away the least prioritized of the remaining items. In this sense this subtraction is (reversely)
4oo successive. It is also cumulative in the sense that subtracted items stay subtracted and that at each iteration new subtracted items are added to the set of thus subtracted items.
If q is compatible with the rule base, then for some I > 0 there will be a subset {pi . . . pι-ι} of {pi . . .pk} compatible with q and the rule base.
405 This subroutine will find such a subset P that is such that every element of P (if any) has higher priority than all of the elements in {p± . . .pk}\P, it is thus an initial segment of {pi . . .pk}- In this sense the set P is prioritized. P — {Pi ■ ■ -Pι-ι} is also maximal in the sense that if I' > I then {pi . . .pv-ι} is not compatible with q and the rule base, P is thus the maximal initial
4io segment of {pi . . . pk} compatible with q and the rule base. When the set P has been identified in this way the subroutine exits with output q, {pi . . .p } and I indicating the element pi of {pi . . .pk} with highest priority outside of P.
Figure 4 shows a flow chart describing subroutine S3 of the algorithm
4i5 described in Figure 1. This subroutine S3 starts with the parameters q, {Pi • ■ -Pk} and I passed on from subroutine S2, representing the inaccessible selectable item q insisted on by the user and the maximal and prioritized (in the sense described above in the explanation to figure ) subset P compatible with q and the rule base. The point of this subroutine is to identify a
420 maximal subset R of {pi . . -Pk}\P such that Q = R U P is compatible with q and the rule base, generated in a way that respects the relative priority assigned by the user to the elements of the set {pi . . . pk}\P, in the following sense: Let RB be the rule base. We say that a subset S of {pi . . .pk} is maximally q- compatible (with respect to RB) if S U {q} U RB is a maximally consistent set relative to {pi . . .pk}, i.e., if S U {q} U RB is consistent and if r G {pi . . -Pk}\S then S U {r} U {q} U RB is not consistent. Q is obviously a maximally g-compatible superset of P in this sense. If Q' is some other maximally g-compatible superset of p then there is an element r of Q\Q' that has higher priority than all elements of Q'\Q. In this sense Q is generated in a way that accords better with user priorities than all alternative maximally g-compatible sets.
First a counter variable n is initialized to I. Next the set of formulas corresponding to the variables pi . . .pn} and the formula q is added to the rule base. This set of formulas is sent to the SAT algorithm. If this set of formulas is not satisfiable (which will certainly be the case when n = ϊ) the value of variable pn will be set to undefined which corresponds to an un-marking of the corresponding selectable item. If on the other hand this set of formulas is satisfiable the value of pn will be left unchanged. Next it is checked whether n < k. If not, the subroutine exits. Otherwise the counter n is incremented and the subroutine enters a new iteration. If {pi . . .pn} now contains undefined variables, it should be understood that no formulas corresponding to those variables are counted among the formulas corresponding to the variables of this set, since as said above, in that case there are no such corresponding formulas.
This subroutine thus acts in a way that is successive in the sense that it progresses through the list of items pi . . .pk in their order of succession. It is further cumulative or additive in the sense that the items added during previous iterations to the set to be checked for compatibility, remain there when new such items are thus added.

Claims

Patent Claims
1. A method for interactive configuration, in an interactive configuration system, by which a user may configure a configurable product by successively selecting i.e. including in the configuration, various items rep-
5 resenting product parts, such that after user actions of this kind the accessibility of further items, is determined by means of an algorithm including a boolean SAT algorithm, that ascertains the satisfiability of formulas including those of propositional logic, representing the user choices, and said further items, together with a rule base of formulas o stating relations of incompatibility and dependence characterized in that a user when wishing to select an item that is inaccessible due to earlier user choices is provided with a possibility of having a minimal number of earlier choices undone so as to retain a maximal subset of earlier choices compatible with the rule base and said inaccessible item, s said undoing being in accordance with the user's relative preferences with regard to said earlier choices, by performing the following steps: a) assigning an order of priority to the user's earlier choices, next b) determining a maximal subset of earlier user choices with higher priority than all choices not included in said subset, said subset o being compatible with the rule base and said inaccessible item, finally c) if the user accords a higher priority to said inaccessible item than to all previous choices excluded from said subset, forming a superset of said subset of user choices, being a maximal subset of user 5 choices compatible with the rule base and said inaccessible item, formed in accordance with user priorities.
2. A method according to claim 1, characterized in that the accessibility of further items is determined after each user action of said kind.
3. A method according to claim 1, characterized in that the user may also 0 de-select i.e. exclude from the configuration various items representing product parts.
4. A method according to claim 1, characterized in that the rule base contains formulas expressing requirements of completeness.
5. A method according to claim 1, characterized in that the subset deter- mined in step (b) is obtained by successively and cumulatively undoing said previous choices, in the order of rising priority, at each iteration checking with said algorithm whether the set of remaining user choices is compatible with the rule base and said inaccessible item.
6. A method according to claim 1, characterized in that the subset deter- mined in step (b) is obtained by successively and cumulatively creating a subset of said previous choices, in the order of falling priority, at each iteration checking with said algorithm whether this subset of user choices is compatible with the rule base and said inaccessible item.
7. A method according to claim 1, characterized in that the subset formed in step (c) is obtained by successively and cumulatively, in the order of falling priority, adding said excluded items to the subset determined in step (b) , at each iteration checking with said algorithm whether the superset of said subset formed in this way is compatible with the rule base and said inaccessible item, whenever this is the case, retaining said excluded item, and when not, discharging it.
8. A method according to claim 1, characterized in that the order of priority assigned to the user's earlier choices at step (a) is based on user assignment.
9. A method according to claim 1, characterized in that at step (a) the user's previous choices are assigned a default order of priority.
10. A method according to claim 9, characterized in that the user may subsequently modify said default order of priority.
11. A method according to claim 9, characterized in that said default order of priority is determined by the order in which the user performed said previous choices.
12. A method according to claim 9, characterized in that said default order of priority is determined by some user profile pertaining to that particular user.
13. A device comprising a terminal with a monitor and input device con- nected to a computer at which runs a program that by means of the monitor presents a user with a system of menus such that using the input device he can perform an interactive configuration of a product by successively selecting i.e. including in the configuration various menu items representing product parts, said program implementing a method such that after user actions of this kind the accessibility of further menu items, is determined by means of an algorithm including a boolean SAT algorithm, that ascertains the satisfiability of formulas including those of propositional logic, representing the user choices, and said further menu items, together with a rule base of formulas stating relations of incompatibility and dependence, said accessibility of further menu items being presented to the user by means of said monitor characterized in that a user when wishing to select a menu item that is inaccessible due to earlier user choices is provided with a possibility of having a minimal number of earlier choices undone so as to retain a maximal subset of earlier choices compatible with the rule base and said inaccessible item, said undoing being in accordance with the user's relative preferences with regard to said earlier choices, by performing the following steps:
a) assigning an order of priority to the user's earlier choices, then b) determining a maximal subset of earlier user choices with higher priority than all choices not included in said subset, said subset being compatible with the rule base and said inaccessible item, finally c) if the user accords a higher priority to said inaccessible item than to all previous choices excluded from said subset, forming a superset of said subset of user choices, being a maximal subset of user choices compatible with the rule base and said inaccessible item, formed in accordance with user priorities.
PCT/SE2001/001391 2000-06-21 2001-06-19 A method for interactive configuration WO2001098896A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001266471A AU2001266471A1 (en) 2000-06-21 2001-06-19 A method for interactive configuration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE0002335A SE520367C2 (en) 2000-06-21 2000-06-21 Method and device for interactive configuration
SE0002335-8 2000-06-21

Publications (1)

Publication Number Publication Date
WO2001098896A1 true WO2001098896A1 (en) 2001-12-27

Family

ID=20280194

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2001/001391 WO2001098896A1 (en) 2000-06-21 2001-06-19 A method for interactive configuration

Country Status (3)

Country Link
AU (1) AU2001266471A1 (en)
SE (1) SE520367C2 (en)
WO (1) WO2001098896A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003102775A2 (en) * 2002-05-30 2003-12-11 Koninklijke Philips Electronics N.V. Configuration of software applications on a target terminal
US10318702B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Multi-valued decision diagram reversible restriction
CN112835645A (en) * 2021-02-05 2021-05-25 杭州迪普科技股份有限公司 Rule configuration method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515524A (en) * 1993-03-29 1996-05-07 Trilogy Development Group Method and apparatus for configuring systems
WO1999013411A2 (en) * 1997-09-09 1999-03-18 Baan Development B.V. A method of enabling invalid choices in interactive configuration systems
US5905977A (en) * 1993-09-17 1999-05-18 Bull S.A. Method for automatic demonstration
US5963953A (en) * 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
US6223170B1 (en) * 1997-09-09 2001-04-24 Baan Development B.V. Method and apparatus for inference of partial knowledge in interactive configuration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515524A (en) * 1993-03-29 1996-05-07 Trilogy Development Group Method and apparatus for configuring systems
US5905977A (en) * 1993-09-17 1999-05-18 Bull S.A. Method for automatic demonstration
WO1999013411A2 (en) * 1997-09-09 1999-03-18 Baan Development B.V. A method of enabling invalid choices in interactive configuration systems
US6223170B1 (en) * 1997-09-09 2001-04-24 Baan Development B.V. Method and apparatus for inference of partial knowledge in interactive configuration
US5963953A (en) * 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GU JUN: "Local search for satisfiability (SAT) problem", IEEE TRANSACTIONS ON SYSTEMS, MAN AND CYBERNETICS, vol. 23, no. 4, July 1993 (1993-07-01), pages 1108 - 1129, XP002949457 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003102775A2 (en) * 2002-05-30 2003-12-11 Koninklijke Philips Electronics N.V. Configuration of software applications on a target terminal
WO2003102775A3 (en) * 2002-05-30 2004-10-28 Koninkl Philips Electronics Nv Configuration of software applications on a target terminal
US10318702B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Multi-valued decision diagram reversible restriction
US10318701B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Resolving configuration conflicts using a multi-valued decision diagram
US10318703B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Maximally standard automatic completion using a multi-valued decision diagram
US10325063B2 (en) 2016-01-19 2019-06-18 Ford Motor Company Multi-valued decision diagram feature state determination
CN112835645A (en) * 2021-02-05 2021-05-25 杭州迪普科技股份有限公司 Rule configuration method and device

Also Published As

Publication number Publication date
SE0002335L (en) 2001-12-22
AU2001266471A1 (en) 2002-01-02
SE0002335D0 (en) 2000-06-21
SE520367C2 (en) 2003-07-01

Similar Documents

Publication Publication Date Title
US6405308B1 (en) Method and apparatus for maintaining and configuring systems
CA2851352C (en) A method and a device for data analysis in a multidimensional cube data structure
EP1796005B1 (en) A method of configuring a device
DE69434975T2 (en) METHOD AND DEVICE FOR CONFIGURING SYSTEMS
US6115547A (en) Flash configuration cache
EP1073992A1 (en) Method, and system for product configuration
JP2001516103A (en) Method and computer system for interactive configuration
JPH11514115A (en) Method and apparatus for automatic and interactive configuration of custom products
Yu et al. A configuration tool to increase product competitiveness
US7457789B2 (en) Configuration assistance for complex products
EP1016007B1 (en) A method of enabling to undo invalid choices in interactive configuration systems
US20040227759A1 (en) Plotting numerical data
WO2001098896A1 (en) A method for interactive configuration
Peltonen et al. Concepts for modeling configurable products
Ok et al. Comparative rationality of random choice behaviors
WO2000036544A9 (en) System and method for configuring a product
EP1012756B1 (en) A method and a computer system for configuring a set of objects
JP2002500397A (en) Automatic generation of evaluation order of function block diagram and detection of related errors
US8078562B2 (en) Decomposing configuration problems
CN104137107A (en) Method, software and graphical user interface for forming a prediction model for chemometric analysis
EP1012754B1 (en) A method and a computer system for configuring a set of objects
Darr et al. Part-selection triptych: A representation, problem properties and problem definition, and problem-solving method
Van Leeuwen et al. Modelling with Features and the formalisation of early design knowledge
Bomi Reddy et al. Formulation and search of assembly sequence design spaces for efficient use of assembly plant resources for new products
Lee An Information Structure Graph: A Structural Formalization of Information Semantics

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

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

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP