SE520367C2 - Method and device for interactive configuration - Google Patents

Method and device for interactive configuration

Info

Publication number
SE520367C2
SE520367C2 SE0002335A SE0002335A SE520367C2 SE 520367 C2 SE520367 C2 SE 520367C2 SE 0002335 A SE0002335 A SE 0002335A SE 0002335 A SE0002335 A SE 0002335A SE 520367 C2 SE520367 C2 SE 520367C2
Authority
SE
Sweden
Prior art keywords
user
choices
subset
rule base
previous
Prior art date
Application number
SE0002335A
Other languages
Swedish (sv)
Other versions
SE0002335L (en
SE0002335D0 (en
Inventor
Andreas Johansson
Johan Maartensson
Claes Strannegaard
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 SE0002335A priority Critical patent/SE520367C2/en
Publication of SE0002335D0 publication Critical patent/SE0002335D0/en
Priority to PCT/SE2001/001391 priority patent/WO2001098896A1/en
Priority to AU2001266471A priority patent/AU2001266471A1/en
Publication of SE0002335L publication Critical patent/SE0002335L/en
Publication of SE520367C2 publication Critical patent/SE520367C2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

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

40 45 55 60 65 5520 367 2 nödvändighet. 40 45 55 60 65 5520 367 2 necessity.

Behovet av konfiguration uppstår på olika nivåer. Naturligtvis krävs kon- figurationslösningar på produktionssidan, d.v.s. vid produktkonstruktion, men efterfrågan ökar även på konsumtionssidan. Konsumenterna kräver i allt större utsträckning produkter som är skräddarsydda efter deras specifika behov och smak. Med avseende på särskilda produktsegment (såsom PC- system, bilar och många andra segment) finns det alltså en efterfrågan på datorbaserade system för konfigurationshantering, som kan skötas av en försäljare eller kunden själv (t.ex. en konsument som ska beställa en kon- figurerbar produkt via Internet).The need for configuration arises at different levels. Of course, configuration solutions are required on the production side, i.e. in product design, but demand is also increasing on the consumption side. Consumers are increasingly demanding products that are tailored to their specific needs and tastes. With regard to special product segments (such as PC systems, cars and many other segments), there is thus a demand for computer-based systems for configuration management, which can be handled by a seller or the customer himself (eg a consumer who has to order a fi gureable product via the Internet).

Det finns idag fiera kommersiellt tillgängliga konfigurationshanteringssys- tem för såväl produktkonstruktion som konsumtion. Dessa är baserade på oli- ka kärnteknologier, såsom omfattande databassökning, programmering av ex- plicita begränsningar (constraint programming), satslogiska SAT-algoritmer o.s.v. Ur användarperspektiv är det stor skillnad på ett system där man först gör en serie val och endast i efterhand får reda på om valen överensstämmer med en giltig konfiguration eller ej, och ett system som bara presenterar de alternativ som tillsammans med redan gjorda val utgör del av en giltig konfiguration. Föreliggande uppfinning är integrerad i ett system av det an- dra slaget som använder sig av en boolesk SAT-algoritm och den hänför sig till ett specifikt problem som kan uppstå under konfigurationsprocessen med systemet i fråga. I något skede av konfiguratíonsprocessen kan det hända att användaren upptäcker att vissa val hon önskar göra inte är möjliga på grund av redan gjorda val. I en sådan situation finns det inte någon giltig konfiguration som inbegriper det val som användaren önskar göra samt alla tidigare gjorda val. I det här läget är det önskvärt att användaren erbjuds valmöjligheter som är sådana att hon faktiskt kan göra aktuellt val samtidigt som hon behåller en delmängd av tidigare gjorda val, som är förenlig med det aktuella valet och som skapats med utgångspunkt från hennes önskemål.Today, there are commercially available configuration management systems for both product design and consumption. These are based on various core technologies, such as extensive database search, programming of explicit constraints (constraint programming), batch logic SAT algorithms, etc. From a user perspective, there is a big difference between a system where you first make a series of choices and only afterwards find out if the choices correspond to a valid configuration or not, and a system that only presents the alternatives that together with already made choices form part of a valid configuration. The present invention is integrated into a system of the second kind using a Boolean SAT algorithm and it relates to a specific problem which may arise during the configuration process with the system in question. At some point in the configuration process, the user may find that certain choices they wish to make are not possible due to choices already made. In such a situation, there is no valid configuration that includes the choice the user wishes to make and all previously made choices. In this situation, it is desirable that the user be offered choices that are such that she can actually make the current choice while retaining a subset of previously made choices, which are compatible with the current choice and created based on her wishes.

Redogörelse för uppfinningen Föreliggande uppfinning löser ett specifikt problem som uppstår i interak- tiva konfigurationssystem av en viss sort. Programmet implementeras också som en del av ett specifikt system av detta slag. Konfiguratorer av den- na typ erbjuder användaren valbara moduler omfattande ömsesidigt utes- lutande alternativ, t.ex. i form av menyer som presenterar ömsesidigt utes- 75 85 90 95 100 105 5É2 0 316 7 lutande alternativ för vissa aspekter av den konfigurerbara produkten. I en sådan meny kan det finnas listor över färger på bilar, olika monitorer för PC-system m.m., allt efter vilken produkt som ska konfigureras. Vissa al- ternativ under en särskild meny kan programmet ha markerat som icke tillgängligt, detta på grund av att användaren tidigare gjort val som är oförenliga med aktuellt val. Användaren kan markera högst ett av resterande alternativ som valt, vilket innebär att det ska inkluderas i den slutgiltiga konfigurationen, eller ett / flera av alternativen som bortvalt vilket i sin tur innebär att alternativet/en inte får inkluderas i konfigurationen. Konfigura- torn har en regelbas (bestående av satslogiska formler) som innehåller (1) formler som uttrycker oförenlighets- och beroendeförhållanden m.m. mellan de olika alternativen; (2) formler som uttrycker vad som är en fullständig konfiguration och (3) formler som anger vilka alternativ som är ömsesidigt uteslutande. När användaren markerar ett alternativ som valt, tillfogas den atomära formel som motsvarar alternativet till regelbasen. Om ett alterna- tiv å andra sidan markeras som bortvalt, läggs negationen av motsvarande atomära formel till i regelbasen. Konfiguratorn tillämpar därefter en boolesk SNF-algoritm för att kontrollera huruvida ytterligare alternativ utgör del av en giltig konfiguration tillsammans med de alternativ som redan markerats som valda (valt). Om det för ett särskilt alternativ inte förhåller sig så, markerar konfiguratorn alternativet som icke tillgängligt.Description of the invention The present invention solves a specific problem that arises in interactive configuration systems of a certain type. The program is also implemented as part of a specific system of this kind. Configurators of this type offer the user selectable modules comprising mutually exclusive alternatives, e.g. in the form of menus presenting mutually exclusive alternatives for certain aspects of the configurable product. In such a menu, there may be lists of colors of cars, different monitors for PC systems, etc., depending on which product is to be competed. Some options under a special menu may have been marked as unavailable by the user, because the user has previously made selections that are incompatible with the current selection. The user can select at most one of the remaining options as selected, which means that it must be included in the final configuration, or one / fl of the options that have been deselected, which in turn means that the option / one may not be included in the configuration. The configurator has a rule base (consisting of batch logic formulas) which contains (1) formulas that express incompatibility and dependency ratios etc. between the different options; (2) formulas that express what constitutes a complete configuration and (3) formulas that indicate which options are mutually exclusive. When the user selects an option that is selected, the atomic formula corresponding to the option is added to the rule base. If, on the other hand, an alternative is marked as deselected, the negation of the corresponding atomic formula is added to the rule base. The configurator then applies a Boolean SNF algorithm to check whether additional options are part of a valid configuration along with the options already marked as selected (selected). If this is not the case for a particular option, the configurator marks the option as unavailable.

För att illustrera detta kan vi t.ex. beskriva en konfiguration av ett PC-system med hjälp av den här sortens konfigurator - men som tidigare nämnts kan uppfinningen användas inom många andra områden. För varje valbart alternativ under menyerna _ och även för menyerna själva - finns motsvarande atomära formler. Atomära satslogiska formler är odelbara syn- taktiska enheter som används för att ange att något är fallet. Om användaren exempelvis har markerat menyalternativen hárdvarazprocessor:Pentium III 550Mhz, hårdvarazmonitorzTrinitron 17' ' och programvarazoszLinux som valt, tillfogar konfiguratorn de motsvarande atomära formlerna pIII550, trinitron17 och linux till regelbasen. Icke-atomära formler byggs upp från atomära med hjälp av konnektiver såsom negation (n), konjunktion (A), dis- junktíon (V), materiell ímplikatíon (->) o.s.v. Dessa konnektiver uttrycker sanningsfunktioner (booleska funktioner). Exempelvis har formeln -wwindows värdet sann om och endast om formeln windows har värdet falsk; formeln (pIII550 A trinitronl7) har värdet sann om och endast om både pIII550 110 115 120 125 130 135 140 5l2 0 .. 3.6 7 4"/ och trinitron17 har värdet sann; formeln (pIII550 V trinitron17) har värdet sann om och endast om minst en av formlerna pIII550 och trinitron17 har värdet sann; och slutligen har formeln (pIII550 -> trinitron17) värdet sann om och endast om pIII550 har värdet falsk eller trinitronl? har värdet sann.To illustrate this, we can e.g. describe a configuration of a PC system using this type of controller - but as previously mentioned, the invention can be used in many other areas. For each selectable option under the menus _ and also for the menus themselves - there are corresponding atomic formulas. Atomic batch logic formulas are indivisible syntactic units that are used to indicate that something is the case. For example, if the user has selected the menu options hardware processor: Pentium III 550Mhz, hardwaremonitorzTrinitron 17 "and softwareazoszLinux selected, the configurator adds the corresponding atomic formulas pIII550, trinitron17 and linux to the rule base. Non-atomic formulas are built from atomic by means of connectives such as negation (n), conjunction (A), disjunction (V), material implication (->) and so on. These connectives express truth functions (Boolean functions). For example, the formula -windows has the value true if and only if the formula windows has the value false; the formula (pIII550 A trinitron17) has the value true if and only if both pIII550 110 115 120 125 130 135 140 5l2 0 .. 3.6 7 4 "/ and trinitron17 have the value true; the formula (pIII550 V trinitron17) has the value true if and only if at least one of the formulas pIII550 and trinitron17 has the value true, and finally the formula (pIII550 -> trinitron17) has the value true if and only if pIII550 has the value false or trinitronl? has the value true.

Om användaren har markerat ett menyalternativ som bortvalt, till- fogas negationen av motsvarande formel till regelbasen. Om användaren exempelvis har markerat menyalternativet hàrdvarazhárddisk: 1 ,4GB som bortvalt, läggs formeln -hd1.4 till i regelbasen.If the user has marked a menu item as deselected, the negation of the corresponding formula is added to the rule base. For example, if the user has selected the menu item hard disk hard disk: 1, 4GB as deselected, the formula -hd1.4 is added to the rule base.

Utöver de formler som resulterar från användarvalen, innehåller regel- basen som vi tidigare nämnt: (1) formler som uttrycker beroende- och oförenlighetsförhållanden mellan de valbara alternativen, som t.ex. formlerna ((linux/\pIII550) -> -zip) som anger att ett datorsystem med Pentium III 550 MHz CPU som kör opera- tivsystemet Linux inte kan utrustas med en zip-drive, och (fievmsoffice) -> (windows V macos)) som anger att programmen Internet Explorer och Mi- crosoft Oflice kräver något av operativsystemen Microsoft Windows eller Ma- cOS; (2) formler som uttrycker vad som är en fullständig konfiguration, i det- ta fall ett fullständigt datorsystem, Detta görs med hjälp av en formel av följande slag: (processor/\minne/\hårddiskAtangentbordA. . ./\os), där de olika konjunkterna (processor, minne, hårddisk, tangentbord, . . . ,os) definieras av formler såsom (processor -+ (pII350 V pII400 V pIII400 V ...V pIII850)), (minne -> (32MB V 64MB V 128 MB V.. .V l024MB)), o.s.v. Slutligen; (3) formler som anger vilka alternativ som är ömsesidigt uteslutande såsom (pII350 -> (flpII400 /\ -\pIII400 /\ . . . /\ -fipIII85Û)) /\ (pII400 -> ( Formler av det andra slaget krävs för att undvika situationer där användaren har gjort ett antal val som är förenliga med varandra men som ändå inte utgör del av en fullständig konfiguration, d.v.s. det fullständiga systemet kräver en viss del som inte är förenlig med användarens val. SAT-problemet med avseende på en mängd satslogiska formler är att avgöra huruvida samtliga formler i mängden i fråga samtidigt kan vara sanna eller ej, d.v.s. huruvida de tillsammans är satisfierbara. Om vi antar att mängden i fråga innehåller adekvata och tillräckligt starka formler av typen (1-3) ovan, i kombination 145 150 155 160 165 170 175 520 367 med formlerna som representerar användarvalen, innebär fastställandet av huruvida formlerna i denna mängd tillsammans är satisfierbara väsentligen samma sak som att fastställa huruvida användarvalen ingår i en giltig kon- figuration, d.v.s. i en möjlig (och tillgänglig) kombination av delar som till- sammans utgör en helhet av slaget i fråga. En SAT-algoritm accepterar som input en formelmängd av nämnda slag och avgör huruvida de atomära form- ler som förekommer i inmatade formler kan tilldelas sanningsvärden, så att alla inmatade formler har värdet sann.In addition to the formulas that result from user choices, the rule base as we mentioned earlier contains: (1) formulas that express dependencies and incompatibilities between the selectable alternatives, such as the formulas ((linux / \ pIII550) -> -zip) which state that a computer system with a Pentium III 550 MHz CPU running the Linux operating system cannot be equipped with a zip drive, and (fi evmsof fi ce) -> (windows V macos) ) indicating that the Internet Explorer and Microsoft O fl ice programs require one of the operating systems Microsoft Windows or MacOS; (2) formulas that express what is a complete configuration, in this case a complete computer system, This is done using a formula of the following kind: (processor / \ memory / \ hard diskKeyboardA.. ./\Os), where the different conjunctions (processor, memory, hard disk, keyboard,..., os) are defined by formulas such as (processor - + (pII350 V pII400 V pIII400 V ... V pIII850)), (memory -> (32MB V 64MB V 128 MB V .. .V l024MB)), etc. Finally; (3) formulas indicating which alternatives are mutually exclusive such as (pII350 -> (fl pII400 / \ - \ pIII400 / \... / \ -Fi pIII85Û)) / \ (pII400 -> (Formulas of the second kind are required to: avoid situations where the user has made a number of choices that are compatible with each other but still do not form part of a complete configuration, ie the complete system requires a certain part that is not compatible with the user's choice. formulas is to determine whether all the formulas in the set in question can be true or not at the same time, ie whether they are satisfactory together.If we assume that the set in question contains adequate and sufficiently strong formulas of the type (1-3) above, in combination 145 150 155 160 165 170 175 520 367 with the formulas representing the user choices, determining whether the formulas in this set together are satisfactory essentially means essentially the same thing as determining whether the user choices are included in a guild tig configuration, i.e. in a possible (and accessible) combination of parts which together form a whole of the kind in question. A SAT algorithm accepts as input a set of formulas of the kind mentioned and determines whether the atomic formulas that occur in input formulas can be assigned truth values, so that all input formulas have the value true.

Uppfinningen avser specifikt en situation där användaren under en in- teraktiv konfiguration medelst en konfigurator av ovan beskrivna typ, kom- mer till en punkt där hon vill välja ett särskilt alternativ som redan uteslu- tits på grund av hennes tidigare gjorda val, d.v.s. alternativet är markerat som icke tillgängligt. Exempelvis kan en användare som konfigurerar ett PC-system i något skede upptäcka att det inte går att välja alternativet hàrdvarazminnezlO24MB. Anledningen till detta kan vara att användaren precis i början av konfigurationen valt hárdvarazprocessor:Pentium II 25OMI-Iz och det finns inte några moderkort med tillräcklig minnesplats för 1024MB RAM-minne, som är kompatibla med denna typ av processor och därför innehåller konfiguratorns regelbas en begränsning i detta avseende.The invention specifically refers to a situation where the user during an interactive configuration by means of a configurator of the type described above, comes to a point where she wants to choose a particular alternative that has already been excluded due to her previously made choices, i.e. the option is marked as unavailable. For example, a user who configures a PC system at some stage may find that it is not possible to select the hardware memory memory24MB option. The reason for this may be that the user just at the beginning of the configuration chose the hardware processor: Pentium II 25OMI-Iz and there are no motherboards with enough memory space for 1024MB RAM, which are compatible with this type of processor and therefore the controller base base contains a limitation in this regard.

Användaren kanske mycket hellre önskar få l024MB RAM-minne än vald typ av processor. Om hon fick veta att hon skulle kunna få 1024MB RAM- minne om hon bara valde en annan processor skulle hon förmodligen gärna göra detta och på så sätt vara mycket mer tillfreds med konfigurationen än annars.The user may much prefer to have l024MB of RAM than the selected type of processor. If she did not know that she could get 1024MB of RAM if she just chose another processor, she would probably like to do this and thus be much more satisfied with the configuration than otherwise.

I situationen som beskrivs ovan strider användarens aktuella önskemål (att välja ett visst alternativ) mot hennes tidigare gjorda val. Eftersom det val hon nu önskar göra inte är förenligt med (vissa av) hennes tidigare val måste hon avmarkera minst ett (och förmodligen flera) av dessa tidigare val för att kunna få sin önskan uppfylld. Om hon anser att de tidigare valen är viktigare än det aktuella önskemålet, måste hon självfallet acceptera att hon inte kan välja det. I annat fall skulle hon däremot kanske vilja annullera motstridiga val som är av mindre vikt för henne så att de aktuella önskemålen i stället kan uppfyllas. En metod som erbjuder användaren denna möjlighet skulle tillföra henne verkligt mervärde eftersom hon i en dylik situation med hjälp av pro- grammet skulle kunna konfigurera en produkt som bättre överensstämmer med hennes önskemål än annars. En sådan metod skulle därför vara yt- 180 185 190 195 200 210 5210 367 terst värdefull i processen att uppnå en optimal konfiguration. Föreliggande uppfinning avser en metod som har exakt denna förmåga.In the situation described above, the user's current wishes (choosing a particular option) conflict with her previously made choices. Since the choice she now wishes to make is not compatible with (some of) her previous choices, she must deselect at least one (and probably fl era) of these previous choices in order to have her wish fulfilled. If she considers that the previous choices are more important than the current wish, she must of course accept that she cannot choose it. Otherwise, however, she might want to cancel conflicting choices that are of less importance to her so that the current wishes can instead be fulfilled. A method that offers the user this opportunity would add real value to her because in such a situation she would be able to use the program to configure a product that better suits her wishes than otherwise. Such a method would therefore be extremely valuable in the process of achieving an optimal configuration. The present invention relates to a method having exactly this ability.

Om användaren alltså insisterar på att göra ett val som inte är förenligt med hennes tidigare val, ombeds hon enligt föreliggande uppfinning att ran- gordna sina tidigare val med avseende på deras relativa betydelse för henne.Thus, if the user insists on making a choice that is not compatible with her previous choices, she is asked according to the present invention to rank her previous choices with respect to their relative importance to her.

Därefter avmarkerar konfiguratorn tidigare gjorda val i följd (dock ligger de fortfarande kvar i minnet). Konfiguratorn börjar med det minst priorit- erade valet och arbetar sig uppåt genom att i varje steg kontrollera huru- vida resterande mängd användarval är förenlig med användarens aktuella önskemål och stannar slutligen när så är fallet. Denna avmarkering är ku- mulatív eller additív i meningen att tidigare avmarkerade alternativ' förblir avmarkerade under processen, och nya avmarkerade val successivt läggs till bland mängden avmarkerade val. På så sätt kommer algoritmen att detek- tera en (lägsta) punkt (i prioritetsordningen), sådan att mängden av de valda (valt) och bortvalda (bortvalt) alternativ som befinner sig ovanför denna punkt, är förenlig med det icke tillgängliga (icke tillgängligt) alternativ som användaren insisterar på att välja. En alternativ, men logiskt ekvivalent metod är att först avmarkera alla tidigare gjorda val och därefter mata in dem från minnet igen i (fallande) prioritetsordning, kumulativt (d.v.s. de adderas successivt till mängden val som matas in på nytt) och därefter för varje på detta sätt prioriterade delmängd av användarens tidigare val, kontrollera hu- ruvida denna är förenlig med det icke tillgängliga (icke tillgängligt) al- ternativet i fråga och terminera vid den sista (och största) förenliga mängden.Thereafter, the configurator deselects previously made selections in succession (however, they still remain in memory). The controller starts with the least priority selection and works its way up by checking in each step whether the remaining amount of user selection is compatible with the user's current wishes and finally stops when this is the case. This deselection is cumulative or additive in the sense that previously deselected alternatives' remain deselected during the process, and new deselected choices are gradually added to the set of deselected choices. In this way, the algorithm will detect a (lowest) point (in the order of priority), such that the set of the selected (selected) and deselected (deselected) alternatives above this point is compatible with the unavailable (unavailable) ) options that the user insists on choosing. An alternative, but logically equivalent method is to first deselect all previously made choices and then enter them from memory again in (descending) order of priority, cumulatively (ie they are added gradually to the amount of choices entered again) and then for each on this prioritize subset of the user's previous selection, check whether it is compatible with the unavailable (unavailable) option in question and terminate at the last (and largest) compatible amount.

Vilken av dessa metoder som bör väljas är en lämplighetsfråga _ båda algoritmerna terminerar på samma ställe i listan. Emellertid kan en av dem vara snabbare än den andra bl.a. beroende på termineringspunktens relativa position. Slutligen hämtar algoritmen samtliga av användarens tidigare mark- erade alternativ från minnet och matar in dem på nytt. Användaren får nu veta att om hon tilldelar det icke tillgängliga (icke tillgängligt) alterna- tivet i fråga högre prioritet än de från mängden uteslutna alternativen enligt denna beräkning, kan hon välja alternativet eftersom det då blir förenligt med den beräknande mängden valda (valt) och bortvalda (bortvalt) alternativ med högre prioritet än de uteslutna.Which of these methods should be chosen is a question of suitability _ both algorithms terminate at the same place in the list. However, one of them can be faster than the other, e.g. depending on the relative position of the termination point. Finally, the algorithm retrieves all of the user's previously selected options from memory and re-enters them. The user is now informed that if she gives the unavailable (unavailable) alternative in question a higher priority than the options excluded from the set according to this calculation, she can choose the option because it will then be compatible with the calculated set selected (and selected) and deselected (deselected) alternatives with a higher priority than the excluded ones.

Om användaren gör denna omprioritering och nu försöker välja icke tillgängligt alternativ i fråga får hon veta att detta är möjligt men att de lägre prioriterade alternativ (och bortvalda alternativ) som hon tidigare 215 220 225 230 235 240 245 I5201 367 ~7 markerat, och som är oförenliga med det nya valet, i så fall kommer att raderas. Om användaren nu väljer icke tillgängligt alternativ i fråga, kommer alternativen med lägre prioritet först att avmarkeras (dvs. inte längre markeras som antingen valt eller bortvalt. Dock kommer informa- tionen om användarens tidigare val som är knutna till dessa parametrar att ligga kvar i minnet. Därefter försöker algoritmen att mata in de tidigare markerade alternativen på nytt, ett och ett i fallande prioritetsordning, för att erhålla en maximal delmängd av tidigare användarval, som är förenlig med regelbasen och tidigare icke tillgängligt alternativ.If the user makes this re-prioritization and now tries to select the unavailable option in question, she will be told that this is possible but that the lower priority options (and deselected options) that she previously marked 215 220 225 230 235 240 245 I5201 367 ~ 7, and which are incompatible with the new option, in which case it will be deleted. If the user now selects the unavailable option in question, the lower priority options will first be deselected (ie no longer marked as either selected or deselected. However, the information about the user's previous selections associated with these parameters will remain in memory The algorithm then attempts to re-enter the previously selected options, one by one in descending order of priority, to obtain a maximum subset of previous user choices, which is compatible with the rule base and previously unavailable options.

En avsevärd fördel med denna metod är att användaren kan välja ett al- ternativ som markerats som icke tillgängligt på grund av tidigare gjor- da val med vilka det inte är förenligt, samtidigt som hon får möjlighet att behålla så många av de tidigare alternativen som möjligt. På så sätt kan användaren erhålla en produkt som överensstämmer med hennes önskemål och som hon kan känna sig mycket nöjdare med - på kortare tid och med lägre arbetsinsats än annars.A significant advantage of this method is that the user can choose an alternative that has been marked as unavailable due to previously made choices with which it is not compatible, while at the same time being given the opportunity to keep as many of the previous alternatives as possible. . In this way, the user can obtain a product that conforms to her wishes and with which she can feel much more satisfied - in a shorter time and with lower work effort than otherwise.

Tidigare känd teknik I “7099/13411 beskrivs en tidigare känd teknik som hänför sig till ett prob- lem av samma slag som kan lösas av föreliggande uppfinning. Metoden i fråga är tänkt att integreras i en interaktiv konfigurator av den sort som beskrivs i VVO99/l3413 av samma patentsökande.Prior Art 7099/13411 discloses a prior art relating to a problem of the same kind which can be solved by the present invention. The method in question is intended to be integrated into an interactive configurator of the type described in VVO99 / l3413 by the same patent applicant.

När en användare av denna konfigurator vill välja ett valbart alternativ, som på grund av tidigare val redan markerats som icke tillgängligt, kommer systemet att identifiera alla maximala mängder av tidigare användarval som är förenliga med det icke tillgängliga alternativet i fråga samt regelbasen.When a user of this configurator wants to select an selectable option, which due to previous selections has already been marked as unavailable, the system will identify all maximum amounts of previous user selections that are compatible with the unavailable option in question as well as the rule base.

En lista över maximala mängder presenteras nu för användaren som ombeds välja en utav dem. En sådan här mängdlista kan naturligtvis vara ganska lång i vissa fall och även svår att överblicka. För att underlätta urvalet får användaren möjlighet att välja ut några av de tidigare valen som måste ingå i de maximala mängder som presenteras för henne. På det här sättet kan antalet alternativ som användaren får reduceras.A list of maximum quantities is now presented to the user who is asked to select one of them. Such a list of quantities can of course be quite long in some cases and also difficult to overview. To facilitate the selection, the user is given the opportunity to select some of the previous choices that must be included in the maximum quantities presented to her. In this way, the number of options that the user may have can be reduced.

Enligt denna tidigare kända metod identifieras maximala mängder av tidigare gjorda val genom att alla alternativa sätt att avmarkera något av de tidigare valen gås igenom och därefter alla alternativa sätt att avmarkera två tidigare val o.s.v. Varje gång kontrolleras huruvida mängden resterande val 250 255 260 265 270 275 280 1520, 367 är förenlig med det icke tillgängliga alternativet i fråga och regelbasen. Om vi låter P = {p1, . . . pk} representera alla (k) tidigare gjorda val, och q represen- tera det icke tillgängliga alternativet som användaren insisterar på att göra, kontrollerar metoden först huruvida någon av mängderna P\{p1}, P\{p2}, . . . P\{pk} är förenlig med q och regelbasen. Därefter går den vidare med att kontrollera om någon av mängderna P\{p1,p2}, P\{p1,p3}, .. .P\{pk_1,pk} är förenlig o.s.v. På så vis identifieras alla maximala mängder av P som är förenliga med regelbasen och q.According to this prior art method, maximum amounts of previously made choices are identified by going through all alternative ways of deselecting one of the previous choices and then all alternative ways of deselecting two previous choices and so on. Each time it is checked whether the amount of remaining choices 250 255 260 265 270 275 280 1520, 367 is compatible with the unavailable alternative in question and the rule base. If we let P = {p1,. . . pk} represent all (k) previously made choices, and q represent the unavailable option that the user insists on making, the method first checks whether any of the sets P \ {p1}, P \ {p2},. . . P \ {pk} is compatible with q and the rule base. Then it goes on to check if any of the sets P \ {p1, p2}, P \ {p1, p3}, .. .P \ {pk_1, pk} are compatible and so on. In this way, all maximum amounts of P that are compatible with the rule base and q are identified.

En stor nackdel hos denna tidigare kända teknik, jämfört med föreliggande uppfinning, är att antalet satisfierbarhetskontroller är mycket större, vilket resulterar i betydligt mer tidskrävande beräkningar och självfallet nedsatt användarifänlighet. Enligt föreliggande uppfinning krävs endast ett (1) sätt för att annullera ett användarval i P = {p1, . . .pk}, medan det i metoden som beskrivs i WO99/l3411 finns k sätt att beakta vid annullering av ett val. Vidare krävs bara ett (1) sätt för att annullera två val i stället för och vanligtvis bara 1 sätt för att annullera n val i stället för olika sätt.A major disadvantage of this prior art, compared to the present invention, is that the number of compatibility checks is much larger, which results in significantly more time consuming calculations and, of course, reduced user-friendliness. According to the present invention, only one (1) method is required to cancel a user selection in P = {p1,. . .pk}, while in the method described in WO99 / l3411 there are k ways to consider when canceling a selection. Furthermore, only one (1) way is required to cancel two choices instead of and usually only 1 way to cancel n choices instead of different ways.

Följaktligen blir största antalet upprepningar, enligt föreliggande uppfinning, lika stort som antalet tidigare gjorda användarval minus ett (eftersom den tomma mängden Q) inte behöver kontrolleras), medan antalet i den metod som beskrivs i \vo99/1s411 uppgår nu gig, _ 1 = zk _ 2, där k är antalet tidigare gjorda användarval.Consequently, the largest number of repetitions, according to the present invention, becomes equal to the number of previously made user choices minus one (since the empty set Q) does not need to be checked), while the number in the method described in \ vo99 / 1s411 now amounts to gig, _ 1 = zk _ 2, where k is the number of previously made user selections.

Avsedd implementation En lämplig implementation av uppfinningen illustreras med hjälp av ett antal flödesscheman (fig. 1-4) som kommenteras nedan.Intended implementation A suitable implementation of the invention is illustrated by means of a number of flow charts (fi g. 1-4) which are commented on below.

I flödesschemana beskrivs algoritmer som företrädesvis implementeras i ett datorprogram. Detta ska kunna köras i en monitoransluten dator som är kopplad till några inmatningsenheter, som t.ex. tangentbord och mus. Med hjälp av detta program kommer ett menysystem i enlighet med beskrivningen ovan att visas på monitorn. Användaren kan med hjälp av inmatningsenheter- na markera ett menyalternativ på monitorn som valt eller bortvalt. Vissa alternativ kan även markeras som tex. icke tillgängligt på grund av pro- gramaktivitet. Även andra inmatnings- och utmatningshändelser utväxlas via dessa inmatnings- och utmatningsenheter mellan användaren och datorn som programmet körs i. Datorn som kör programmet kan vara uppställd på en plats och vara ansluten till monitorn och inmatningsenheterna - direkt 285 290 295 300 305 315 -520- 367. 9 eller indirekt - via en dator som står någon annanstans. Det kan också vara så att delar av nämnda program exekveras i en dator och en annan del i någon annan dator som är ansluten till den första.Flowcharts describe algorithms that are preferably implemented in a computer program. It must be possible to run it in a monitor-connected computer that is connected to some input devices, such as keyboard and mouse. Using this program, a menu system as described above will be displayed on the monitor. Using the input devices, the user can mark a menu item on the monitor as selected or deselected. Some options can also be marked as e.g. not available due to program activity. Other input and output events are also exchanged via these input and output devices between the user and the computer in which the program is running. The computer running the program may be set up in one place and connected to the monitor and input devices - directly 285 290 295 300 305 315 -520- 367. 9 or indirectly - via a computer located elsewhere. It may also be the case that parts of said program are executed in a computer and another part in another computer connected to the first.

För att underlätta följande beskrivning börjar vi med att definiera nâgra termer: Menyalternativen som användaren kan markera som valt eller bortvalt och som programmet i uppfinningen kan markera som icke tillgängligt, kallar vi valbara alternativ. I nämnda avsedda implementation motsvaras var- je valbart alternativ av en variabel som representerar detta. Dessa variabler kallar vi valbara variabler. De valbara variablerna förhåller sig till de valbara alternativen på så sätt att de antar värdet 1 när motsvarande valbara alter- nativ markeras som valt, och 0 när motsvarande valbara alternativ markeras som bortvalt. Vidare motsvaras varje valbar variabel av en atomär satslo- gisk formel som uttrycker värdet för variabeln i fråga. Om p refererar till en valbar variabel använder vi p för att referera till motsvarande atomära formel. Att exempelvis värdet för p är 1 uttrycks med formeln p, och att det är 0 genom negationen -p av formeln p. Om variabeln p å andra sidan inte är definierad - vilket är fallet när motsvarande menyalternativ' inte är mark- erat ~ finns det ingen formel som uttrycker detta. Frånvaron av både formel p och -=p indikerar således att motsvarande variabel p inte är definierad och att motsvarande menyalternativ inte är markerat.To facilitate the following description, we start by defining a few terms: The menu options that the user can mark as selected or deselected and that the program can mark as unavailable, we call selectable options. In the said intended implementation, each selectable alternative corresponds to a variable that represents this. We call these variables selectable variables. The selectable variables relate to the selectable alternatives in such a way that they assume the value 1 when the corresponding selectable alternatives are marked as selected, and 0 when the corresponding selectable alternatives are marked as deselected. Furthermore, each selectable variable corresponds to an atomic theorem formula that expresses the value of the variable in question. If p refers to a selectable variable, we use p to refer to the corresponding atomic formula. For example, that the value of p is 1 is expressed by the formula p, and that it is 0 by the negation -p of the formula p. If the variable on the other hand is not finiered - which is the case when the corresponding menu item 'is not highlighted ~ fi no formula expresses this. The absence of both formula p and - = p thus indicates that the corresponding variable p is not defined and that the corresponding menu item is not selected.

Vi refererar till det valbara alternativet som motsvarar den valbara vari- abeln p med p. I kraft av' dessa motsvarigheter kommer vi för enkelhetens skull i fortsättningen att tala om mängder av valbara variabler som är förenliga eller oförenliga med regelbasen. Vad som alltså menas är naturligtvis att den formelmängd som uttrycker värdet för dessa variabler antingen är förenlig eller oförenlig med regelbasen.We refer to the selectable alternative that corresponds to the selectable variable p with p. By virtue of 'these equivalents, we will in the future for the sake of simplicity talk about quantities of selectable variables that are compatible or incompatible with the rule base. What is meant, of course, is that the set of formulas that express the value of these variables is either compatible or incompatible with the rule base.

I den avsedd implementationen av uppfinningen kommer programmet efter varje användarinmatning, dvs. efter det att användaren markerat ett menyalternativ som antingen valt eller bortvalt, att gå igenom de menyal- ternativ som användaren ännu inte markerat. För vart och ett av alternativen q läggs motsvarande formel q till i formelmängden som motsvarar mängden pl . . .pk av valbara variabler som representerar tidigare användarval. Mängden kommer sedan tillsammans med en mängd formler som uttrycker olika be- gränsningar för de valbara alternativen (regelbasen) att sändas till en imple- mentation av en SAT-algoritm för att fastställa om mängden är konsistent.In the intended implementation of the invention, the program comes after each user input, ie. after the user has selected a menu item that is either selected or deselected, to go through the menu items that the user has not yet selected. For each of the alternatives q, the corresponding formula q is added to the formula set corresponding to the set p1. . .pk of selectable variables that represent previous user selections. The set will then be sent together with a set of formulas that express different constraints for the selectable alternatives (rule base) to an implementation of a SAT algorithm to determine if the set is consistent.

Om så inte är fallet kommer menyalternativet (q som motsvaras av variabeln 320 325 335 340 345 350 355 520" 367 /0 q att markeras som icke tillgängligt. Om mängden å andra sidan är kon- sistent, kommer nästa omarkerade alternativ att kontrolleras på samma sätt.If not, the menu option (q corresponding to the variable 320 325 335 340 345 350 355 520 "367/0 q will be marked as unavailable. If the quantity on the other hand is consistent, the next unselected option will be checked on the same way.

Vi kallar ett alternativ som markerats som icke tillgängligt helt enkelt för icke tillgängligt menyalternativ och talar generellt om tillgängligheten för ett sådant menyalternativ och avser då huruvida det är tillgängligt eller ej, allteftersom det faller sig. Mängden pl . . . pk av tidigare användarval tillde- las en förinställd (default) prioritetsordning, som exempelvis är baserad på i vilken ordning som användaren markerat alternativen i fråga, eller på någon användarprofil som hänför sig till den specifike användaren, eller på någon annan princip.We call an option marked as unavailable simply unavailable menu item and generally talk about the availability of such a menu item and then refer to whether it is available or not, as appropriate. The amount pl. . . pk of previous user selections are assigned a default order of priority, which is based, for example, on the order in which the user marked the options in question, or on any user profile that relates to the specific user, or on some other principle.

Flödesschemat i figur 1 beskriver följande tänkbara implementation i en- lighet med uppfinningen: Algoritmen aktiveras när en användare önskar välja ett valbart alternativ F; som är markerat som icke tillgängligt på grund av tidigare gjorda användarval som representeras av de valbara variablerna pl . . pk. Till att börja med tilldelas variablerna en förinställd (default) prior- itetsordning i vilken pl har högsta och pk lägsta prioritet. För 1 g n, m g k om m < n så antas pm ha högre prioritet än pm d.v.s. det finns inga alter- nativ som har samma prioritetsgrad. Först får användaren frågan om hon vill rangordna sina tidigare val med utgångspunkt från hur viktiga de är för henne, m.a.o. göra en omprioritering. Om hon svarar Nej kommer algoritmen att tillämpa den för-definierade prioritetsordningen och direkt kalla subrutin S2 (fig. 3) som identifierar en mängd P valbara variabler som representer- ar tidigare val som är förenliga med q och regelbasen. Denna delmängd av {p1 . . .pk} är maximal och prioriterad på ett sätt som kommer att redogöras för nedan (fig. 3). Om användaren i stället svarar Ja går algoritmen först in i subrutin S1 (fig. 2), som gör det möjligt för henne att omprioritera sina tidigare val pl . . pk, för att därefter gå vidare till subrutin S2. Eftersom P U {q} är förenlig med regelbasen är valet (i förenligt med användarens önskemål. Detta förutsatt att q tilldelas en prioritetsgrad som är minst lika hög som för något av alternativen i P, eller m.a.o. högre än för samtliga alternativ i {p1 . . .pk}\P (se förklaring till lig. 3). Användaren får nu därför frågan om (1 har högre prioritet för henne än alla de alternativ som motsvarar {p1 _ . .pk}\P. Om användaren svarar Nej avslutas algoritmen då valet av al- ternativet G1 (som motsvarar variabel q) uppenbarligen inte är förenligt med användarens önskemål, vilket hon också informeras om. Om användaren å andra sidan svarar Ja går algoritmen in i subrutin S3 (fig. 4) som identifierar 360 365 370 375 380 385 390 = s2o 567 ll en mängd Q så att P Q Q C_l {pl . . .pk}, Q U {q} är förenlig med regelbasen, och Q är maximal på ett sätt som vi kommer att redogöra för nedan (fig. 4).The flow chart in Figure 1 describes the following possible implementation in accordance with the invention: The algorithm is activated when a user wishes to select an optional alternative F; which is marked as not available due to previously made user selections represented by the selectable variables pl. . pk. To begin with, the variables are assigned a default order of priority in which pl has the highest and pk the lowest priority. For 1 g n, m g k if m <n then pm is assumed to have a higher priority than pm i.e. there are no alternatives that have the same degree of priority. First, the user is asked if she wants to rank her previous choices based on how important they are to her, i.e. make a re-prioritization. If she answers No, the algorithm will apply the pre-specified priority order and directly call subroutine S2 (fi g. 3) which identifies a set of P selectable variables that represent previous choices that are compatible with q and the rule base. This subset of {p1. . .pk} is maximized and prioritized in a way that will be outlined below (fi g. 3). If the user instead answers Yes, the algorithm first enters subroutine S1 (fi g. 2), which enables her to re-prioritize her previous choices pl. . pk, to then proceed to subroutine S2. Since PU {q} is compatible with the rule base, the choice is in accordance with the user's wishes. This is provided that q is assigned a priority level that is at least as high as for any of the options in P, or in other words higher than for all options in {p1. .pk} \ P (see explanation of lig. 3) The user is now asked if (1 has a higher priority for her than all the options corresponding to {p1 _. .pk} \ P. If the user answers No, the algorithm then ends the choice of the alternative G1 (which corresponds to variable q) is obviously not compatible with the user's wishes, which she is also informed about.If the user on the other hand answers Yes, the algorithm enters subroutine S3 (fi g. 4) which identifies 360 365 370 375 380 385 390 = s2o 567 ll an amount Q so that PQQ C_l {pl. .Pk}, QU {q} is compatible with the rule base, and Q is maximum in a way that we will explain below (fi g. 4) .

Flödesschemat i fig. 2 beskriver subrutin S1 av algoritmen som återges i fig. 1. Subrutinen börjar med en mängd pl. . .pk av valbara variabler som representerar tidigare användarval rangordnade i fallande prioritetsordning enligt ovan (fig. 1). Först ombeds användaren att välja ut ett alternativ från listan pl . . .pk för att omprioritera det, d.v.s. ett alternativ som hon vill tilldela en annan, relativ prioritet i förhållande till övriga alternativ i lis- tan. Användaren väljer ett sådant alternativ pm (vi kallar denna variabel s).The flow chart in fi g. 2 describes subroutine S1 of the algorithm represented in fi g. 1. The subroutine begins with a plurality of pl. . .pk of selectable variables that represent previous user choices ranked in descending order of priority as above (fi g. 1). First, the user is asked to select an option from the list pl. . .pk to re-prioritize it, i.e. an alternative that she wants to assign a different, relative priority in relation to the other alternatives in the list. The user selects such an option pm (we call this variable s).

Resterande variabler pl . . . pm_l, pmil . . .pk behåller sina respektive platser i ordningen. Vi kommer hädanefter att kalla dem pl . . .pk_l (för m < n § k, får pk nu benämningen p,,_l).Remaining variables pl. . . pm_l, pmil. . .pk keeps its respective places in order. We will henceforth call them pl. . .pk_l (for m <n § k, pk now gets the name p ,, _ l).

Användaren ombeds i detta skede att välja en ny prioritetsgrad (ett av för det valda alternativet s, varpå hon väljer ny prioritetsgrad n 6 {1 . . . Därefter ordnar algoritmen variablerna pl . _ .pk_l och s på följande sätt: Förj < n behåller respektive pj sin plats i listan; s tilldelas position n och för n í j < k, tilldelas pJ- position j + 1.At this stage, the user is asked to select a new priority level (one of for the selected option s, whereupon she selects a new priority level n 6 {1.... Then the algorithm arranges the variables pl. _ .Pk_l and s as follows: Förj <n retains respectively pj its place in the list; s assigned position n and for n í j <k, assigned pJ position j + 1.

Användaren får nu frågan om hon är nöjd med den nya prioritetsordnin- gen pl . . .pk för variablerna eller om hon vill göra ytterligare omprioriteringar.The user is now asked if she is satisfied with the new priority scheme pl. . .pk for the variables or if she wants to make further reprioritisations.

Om användaren väljer Ja går algoritmen in i subrutinen igen. Väljer hon i stället Nej går algoritmen ut ur denna subrutin. Subrutinen producerar återigen en lista över användarval pl . . .pk som nu är rangordnade utifrån användarens önskemål. Subrutinen kan självfallet implementeras av stan- dardrutiner för manipulation av ordnade datastrukturer.If the user selects Yes, the algorithm enters the subroutine again. If she chooses No instead, the algorithm goes out of this subroutine. The subroutine again produces a list of user choices pl. . .pk which are now ranked based on user preferences. The subroutine can of course be implemented by standard routines for manipulating ordered data structures.

Flödesschemat i fig. 3 beskriver subrutin S2 av algoritmen som återges i fig. 1. Precis som subrutin S1 börjar subrutinen med en mängd {pl . . .pk} variabler som representerar tidigare användarval, rangordnade i fallande pri- oritetsordning och en variabel q som representerar något icke tillgängligt valbart alternativ som användaren insisterar på att välja. Först initialiserar subrutinen en räknare l till platsen för sista alternativet i mängden {pl . _ .pk}, d.v.s. l tilldelas värdet k. Därefter tillfogas atomära formler och negationer av atomära formler som motsvarar variablerna pl . . .pl_l och q = 1 till regel- basen (q och för 1 g m 3 l - 1 antingen pm eller ppm beroende på om värdet för pm är l eller O), och en SAT-algoritm anropas för att kontrollera huruvida denna formelmängd är satisfierbar. Om den inte är det kontrollerar subrutinen först om mängden {pl . . .pl_l} är tom ({pl . . .pll} är den tomma 395 400 405 410 415 420 425 52 0. . 3.67 /-'¿ mängden (Û). I så fall är q inte förenlig med regelbasen vilket innebär att det inte går att välja det valbara alternativet q om inte regelbasen ändras. Därför terminerar algoritmen i detta fall. Om å andra sidan mängden (pl . . . p¿_1} inte är tom, tas 1 bort från räknaren l och subrutinen fortsätter att kon- trollera delmängden {p1 . . .p,_2} av {p1 . . .pk} på samma sätt.The flow chart in fi g. Fig. 3 describes subroutine S2 of the algorithm shown in Fig. 1. Just as subroutine S1, the subroutine begins with an amount {pl. . .pk} variables that represent previous user selections, ranked in descending order of priority, and a variable q that represents any unavailable selectable option that the user insists on selecting. First, the subroutine initializes a counter l to the location of the last option in the set {pl. _ .pk}, i.e. l is assigned the value k. Then atomic formulas and negations of atomic formulas corresponding to the variables p1 are added. . .pl_l and q = 1 to the rule base (q and for 1 gm 3 l - 1 either pm or ppm depending on whether the value for pm is 1 or 0), and a SAT algorithm is called to check whether this set of formulas is satisfactory . If it is not, the subroutine first checks for the amount {pl. . .pl_l} is empty ({pl... pll} is the empty 395 400 405 410 415 420 425 52 0.. 3.67 / - '¿set (Û). In that case q is not compatible with the rule base which means that it it is not possible to select the selectable option q unless the rule base is changed, therefore the algorithm terminates in this case. On the other hand, if the set (pl... p¿_1} is not empty, 1 is removed from the counter l and the subroutine continues to con- conjure the subset {p1.. .p, _2} of {p1.. .pk} in the same way.

Vid varje upprepning tar subrutinen på detta vis bort det lägst prioriter- ade alternativet varför borttagandet i detta avseende blir (omvänt) successivt.In each repetition, the subroutine in this way removes the lowest-priority alternative, which is why the removal in this respect becomes (reverse) successive.

Borttagandet är även kumulativt i den bemärkelsen att borttagna alternativ förblir borttagna och nya borttagna alternativ vid varje upprepning tillfogas till mängden tidigare borttagna alternativ.The deletion is also cumulative in the sense that deleted alternatives remain deleted and new deleted alternatives are added to the amount of previously deleted alternatives with each repetition.

Om q är förenlig med regelbasen kommer det för något l > O då att finnas en delmängd (pl . . .p¿_1} av {p1 . . .pk} som är förenlig med q och regelbasen.If q is compatible with the rule base, then for some l> 0 there will be a subset (pl.. .P¿_1} of {p1.. .Pk} that is compatible with q and the rule base.

Subrutinen kommer att hitta en delmängd P som är beskaffad på så sätt att varje element i P (om något sådant finnes) har högre prioritet än samtliga element i {p1...pk}\P. Sålunda är denna delmängd ett initialsegment av {p1.. .pk}. Mängden P är i detta avseende prioriterad. P = {p1. . .p¿_1} är även maximal i det avseendet att om l' > l så är {p1...p¿f_1} inte förenlig med q och regelbasen. På så sätt är P det maximala initialsegmentet av {p1 ...pk}, som är förenligt med q och regelbasen. När mängden P identi- fierats på detta sätt, avslutas subrutinen med att q, {p1...pk} returneras och l indikerar det element p, i {p1...pk} som har högsta prioritet utanför mängden P.The subroutine will find a subset of P that is structured in such a way that each element in P (if any) has a higher priority than all elements in {p1 ... pk} \ P. Thus, this subset is an initial segment of {p1 .. .pk}. The amount P is prioritized in this respect. P = {p1. . .p¿_1} is also maximum in the sense that if l '> l then {p1 ... p¿f_1} is not compatible with q and the rule base. In this way, P is the maximum initial segment of {p1 ... pk}, which is compatible with q and the rule base. When the set P is identified in this way, the subroutine ends with q, {p1 ... pk} being returned and l indicating the element p, i {p1 ... pk} which has the highest priority outside the set P.

Flödesschemat i fig. 4 beskriver subrutin S3 för algoritmen som återges i fig. 1. Subrutin S3 börjar med parametrarna q, (111 . . .pk} och l som överförts från subrutin S2 och som representerar icke tillgängligt valbart alter- nativ q som användaren önskar välja samt den maximala och prioriterade (på det sätt som beskrivs i figur-förklaringen ovan) delmängden P som är förenlig med q och regelbasen. Subrutinen har till uppgift att identifiera en maximal delmängd R av {p1...pk}\P så att Q = R U P blir förenlig med q och regelbasen och genereras med hänsyn tagen till den relativa prioritet som användaren tilldelar elementen i mängden {p1 . . .p,,}\P enligt följande: Låt RB vara regelbasen. Vi säger att en delmängd S av (191 . . .pk} är maxi'- malt q-konsistent (med avseende på RB) om S U {q} U RB är en maximalt konsistent mängd i förhållande till {p1...pk}, d.v.s. om S U {q} U RB är konsistent och om r E {p1 . . .pk}\S så är SU {r} U {q} U RB inte konsistent.The flow chart in fi g. 4 describes subroutine S3 for the algorithm represented in fi g. Subroutine S3 starts with the parameters q, (111... Pk} and l which are transferred from subroutine S2 and which represent unavailable optional alternative q that the user wishes to select as well as the maximum and priority (in the manner described in fi gur the explanation above) the subset P that is compatible with q and the rule base The subroutine has the task of identifying a maximum subset R of {p1 ... pk} \ P so that Q = RUP becomes compatible with q and the rule base and is generated taking into account to the relative priority that the user assigns the elements in the set {p1... p ,,} \ P as follows: Let RB be the rule base. We say that a subset S of (191... pk} is maxi'- malt q- consistent (with respect to RB) if SU {q} U RB is a maximum consistent amount relative to {p1 ... pk}, ie if SU {q} U RB is consistent and if r E {p1... pk } \ S then SU {r} U {q} U RB is not consistent.

Q är uppenbarligen en maximalt q-konsistent extension (superset) av P i 430 435 440 445 450 520 367 /3 detta avseende. Om Q' är någon annan maximalt q-konsistent extension av p innebär det att något element i r i Q\Q' har högre prioritet än samtliga element i Q'\Q. Således genereras Q på ett sätt som battre överensstämmer med användarens önskemål än samtliga alternativa maximalt q-konsistenta mängder.Q is obviously a maximum q-consistent extension (superset) of P in 430 435 440 445 450 520 367/3 in this respect. If Q 'is any other maximum q-consistent extension of p, it means that any element in r in Q \ Q' has a higher priority than all elements in Q '\ Q. Thus, Q is generated in a manner that better conforms to the user's desires than all alternative maximum q-consistent amounts.

Först initialiseras en räknarvariabel n tilll. Därefter tillfogas formelmängden som motsvarar variablerna {p1 _ . _ p,,} och formeln q till regelbasen och därefter skickas formelmängden till SAT-algoritmen. Om formelmängden inte är satis- fierbar (vilket förstås är fallet om n = l), kommer värdet för variabeln p” att ställas in på odefinierad vilket motsvarar en avmarkering av motsvarande valbara alternativ. Om formelmängden å andra sidan är satisfierbar förblir värdet för p” oförändrat. Därefter kontrolleras huruvida n < k och om så inte är fallet avslutas subrutinen. Annars ökar räknaren n stegvis och subru- tinen påbörjar en ny upprepning. Om {p1 . . .p,,} nu innehåller odefinierade variabler måste vi ha klart för oss att inga formler som motsvarar dessa variabler räknas med bland de formler som motsvarar variablerna i denna mängd, eftersom det i så fall ~ som vi tidigare poängterade ~ inte finns några motsvarande formler.First, a counter variable n tilll is initialized. Then the formula set corresponding to the variables {p1 _ is added. _ p ,,} and the formula q to the rule base and then the formula set is sent to the SAT algorithm. If the set of formulas is not satisfactory (which of course is the case if n = 1), the value of the variable p ”will be set to undefined, which corresponds to a delimitation of the corresponding selectable alternatives. If, on the other hand, the set of formulas is satisfactory, the value of p 'remains unchanged. Then it is checked whether n <k and if not the end of the subroutine. Otherwise, the counter n increases incrementally and the subroutine begins a new iteration. If {p1. . .p ,,} now contains undefined variables, we must be clear that no formulas corresponding to these variables are included among the formulas corresponding to the variables in this set, because in that case ~ as we previously pointed out ~ there are no corresponding formulas .

Subrutinen fungerar således på ett .successivt sätt i den bemärkelsen att den går igenom listan med alternativ p¿ . . .pk i ordningsföljd. Dessutom är den kumulatív eller addítw i det att de alternativ som under tidigare up- prepningar tillförts den mängd vars förenlighet skall kontrolleras, ligger kvar trots att nya alternativ tillkommer.The subroutine thus works in a .successful way in the sense that it goes through the list of alternatives. . .pk in order. In addition, it is cumulative or addítw in that the alternatives that have been added during previous preparations the amount whose compatibility is to be checked, remains despite the addition of new alternatives.

Claims (3)

520" 367 f? Patentkrav520 "367 f? Patent claim 1. Metod för interaktiv konfiguration i ett interaktivt konfigurationssys- tem med hjälp av vilket en användare kan konfigurera en konfigurerbar produkt genom att successivt välja, d.v.s. inkludera olika valmöjligheter (alternativ) som representerar olika produktdelar i konfigurationen, sådan att åtkomligheten för ytterligare valmöjligheter fastställs med hjälp av en algoritm som inbegriper en boolesk SAT-algoritm som avgör satisfierbarheten hos formler, inklusive satslogiska sådana, som repre- senterar användarvalen och ovan nämnda ytterligare valmöjligheter till- sammans med en regelbas bestående av formler som uttrycker oförenlig- hets- och beroendeförhållanden kännetecknad av att en användare som önskar välja ett på grund av tidigare användarval icke tillgängligt al- ternativ, får möjlighet att annullera ett minimalt antal tidigare val för att på så sätt kunna behålla en maximal delmängd av tidigare val, som är förenlig med regelbasen och det icke tillgängliga alternativet. An- nulleringen utförs i enlighet med användarens relativa preferenser med avseende på tidigare gjorda val genom att följande steg utförs: a) tidigare användarval tilldelas en prioritetsordning, därefter b) fastställs en maximal delmängd av tidigare användarval med högre prioritet än samtliga de val som inte ingår i nämnda delmängd, sådan att denna delmängd är förenlig med regelbasen och nämnda icke tillgängliga alternativ; och slutligen, c) om användaren tilldelar nämnda icke tillgängliga alternativ högre prioritet än alla tidigare val som uteslutits från nämnda delmängd så genereras en extension av nämnda delmängd av användarval, som är en maximal delmängd av användarval, som är förenlig med regelbasen och nämnda icke tillgängliga alternativ, skapad med utgångspunkt från användarens önskemål.Method of interactive configuration in an interactive configuration system by means of which a user can configure a configurable product by successively selecting, i.e. include different options (alternatives) that represent different product parts of the configuration, such that the availability of additional options is determined using an algorithm that includes a Boolean SAT algorithm that determines the satiability of formulas, including batch logic ones, which represent the user choices mentioned above and above. additional choices together with a rule base consisting of formulas expressing incompatibilities and dependencies, characterized in that a user who wishes to choose an alternative that is not available due to previous user choices, is given the opportunity to cancel a minimum number of previous choices in order to thus being able to maintain a maximum subset of previous choices, which is compatible with the rule base and the unavailable alternative. The cancellation is performed in accordance with the user's relative preferences with regard to previously made choices by performing the following steps: a) previous user selections are assigned a priority order, then b) a maximum subset of previous user selections with higher priority is determined than all the selections not included in said subset, such that this subset is compatible with the rule base and said unavailable alternatives; and finally, c) if the user assigns said unavailable alternative a higher priority than all previous selections excluded from said subset, then an extension of said subset of user selections is generated, which is a maximum subset of user selections compatible with the rule base and said unavailable options, created based on the user's wishes. 2. Metod enligt patentkrav 1, kännetecknad av att åtkomsten till ytterli- gare alternativ fastställs efter varje användarinmatning av nämnda slag.Method according to claim 1, characterized in that the access to further alternatives is determined after each user entry of said kind. 3. Metod enligt patentkrav 1, kännetecknad av att användaren även kan bortvälja, d.v.s. utesluta, olika alternativ som representerar produkt- delar från konfigurationen. 35 40 45 55 60 10. 11. 520 367 IS' . Metod enligt patentkrav 1 kännetecknad av att regelbasen innehåller formler som uttrycker krav på fullständighet. Metod enligt patentkrav 1 kännetecknad av att den delmängd som fastställts i steg (b) uppnås genom att successivt och kumulativt an- nullera nämnda tidigare gjorda val, i stigande prioritetsordning samt att vid varje upprepning kontrollera med nämnda algoritm huruvi- da mängden resterande användarval är förenlig med regelbasen och nämnda icke tillgängliga alternativ. Metod enligt patentkrav 1 kännetecknad av att den delmängd som fastställs i steg (b) uppnås genom att successivt och kumulativt ska- pa en delmängd av nämnda tidigare val, i fallande prioritetsordning och att vid varje upprepning kontrollera med nämnda algoritm huru- vida denna delmängd av användarval är förenlig med regelbasen och nämnda icke tillgängliga alternativ. . Metod enligt patentkrav 1 kännetecknar! av att den delmängd som skapas i steg (c) uppnås genom att successivt och kumulativt, i fal- lande prioritetsordning lägga till nämnda uteslutna alternativ till den delmängd som fastställs i steg (b), och vid varje upprepning kontrollera med nämnda algoritm huruvida extensionen av nämnda delmängd som skapats på detta sätt är förenlig med regelbasen och nämnda icke tillgängliga alternativ, och om så är fallet, behålla det uteslutna al- ternativet, och om så inte är fallet utesluta det. . Metod enligt patentkrav 1, kännetecknaa' av att prioritetsordningen som tilldelas tidigare användarval i steg (a) utförs av användaren själv. . Metod enligt patentkrav 1, kännetecknad av att tidigare användarval i steg (a) tilldelas en förinställd (default) prioritetsordning. Metod enligt patentkrav 9, kánnetecknad av av att användaren i efter- hand kan modifiera den förinställda prioritetsordningen. Metod enligt patentkrav 9, kännetecknar! av att förinställd prioritet- sordning fastställs med utgångspunkt från i vilken ordning användaren gjort sina tidigare val. 70 75 80 90 95 100 12. 13. 520 367 /6 Metod enligt patentkrav 9, kännetecknar! av att den förinställda pri- oritetsordningen fastställs utifrån en användarprofil som hänför sig till användaren i fråga. Anordning som inbegriper en terminal med monitor och inmatningsen- heter, anslutna till en dator i vilken körs ett program som via monitorn presenterar ett menysystem för användaren så att denna med hjälp av inmatningsenheterna kan utföra en interaktiv konfiguration av en produkt genom att successivt välja, d.v.s. i konfigurationen inkludera olika menyalternativ som representerar produktdelar och där program- met implementerar en metod som efter varje användarinmatning gör att åtkomligheten för ytterligare menyalternativ fastställs med hjälp av en algoritm som inbegriper en boolesk SAT-algoritm som avgör satis- fierbarheten för formlerna ~ inklusive satslogiska sådana w som rep- resenterar användarens val samt ytterligare menyalternativ, tillsam- mans med en rcgelbas med formler som uttrycker oförenlighets- och beroendeförhållanden samt där åtkomsten till ytterligare menyalter- nativ presenteras för användaren via monitorn kännetecknad av att en användare som önskar välja ett på grund av tidigare användarval icke tillgängligt alternativ får möjlighet att annullera ett minimalt an- tal tidigare användarval för att på så sätt kunna behålla en maximal delmängd av tidigare val, som är förenlig med regelbasen och nämnda icke tillgängliga alternativ. Annulleringen görs utifrån användarens rel- ativa preferenser med avseende på tidigare gjorda val genom att följande steg utförs: a) tidigare användarval tilldelas en priorítetsordning, därefter b) fastställs en maximal delmängd av tidigare användarval med högre prioritet än samtliga av de val som inte ingår i nämnda delmängd, sådan att denna delmängd är förenlig med regelbasen och nämnda icke tillgängliga alternativ; och slutligen, c) om användaren tilldelar nämnda icke tillgängliga alternativ högre prioritet än alla tidigare val som uteslutits från nämnda delmängd så genereras en extension av nämnda delmängd av användarval som är en maximal delmängd av användarval som är förenlig med regelbasen och nämnda icke tillgängliga alternativ, skapad i en- lighet med användarens önskemål.Method according to claim 1, characterized in that the user can also deselect, i.e. exclude, different options that represent product parts from the configuration. 35 40 45 55 60 10. 11. 520 367 IS '. Method according to claim 1, characterized in that the rule base contains formulas which express requirements for completeness. Method according to claim 1, characterized in that the subset determined in step (b) is achieved by successively and cumulatively canceling said previously made choices, in ascending order of priority and in each repetition checking with said algorithm whether the amount of remaining user choices is compatible with the rule base and the said unavailable alternatives. Method according to claim 1, characterized in that the subset determined in step (b) is achieved by successively and cumulatively creating a subset of said previous selections, in descending order of priority and in each repetition checking with said algorithm whether this subset of user selection is compatible with the rule base and the said unavailable options. . Method according to claim 1, characterized by! that the subset created in step (c) is obtained by successively and cumulatively, in descending order of priority, adding said excluded alternative to the subset determined in step (b), and in each repetition checking with said algorithm whether the extension of said subset created in this way is compatible with the rule base and said unavailable alternatives, and if so, retain the excluded alternative, and if not exclude it. . Method according to claim 1, characterized in that the order of priority assigned to previous user selections in step (a) is performed by the user himself. . Method according to claim 1, characterized in that previous user selection in step (a) is assigned a default order of priority. Method according to claim 9, characterized in that the user can subsequently modify the preset priority order. Method according to claim 9, characterized in! of the preset order of priority being determined on the basis of the order in which the user made his previous choices. 70 75 80 90 95 100 100 13. 13. 520 367/6 Method according to claim 9, characterized in! that the preset order of priority is determined on the basis of a user profile relating to the user in question. Device comprising a terminal with monitor and input units, connected to a computer in which a program is run which via the monitor presents a menu system to the user so that it can use the input units to perform an interactive configuration of a product by successively selecting, i.e. in the configuration include various menu options that represent product parts and where the program implements a method that after each user input makes the availability of additional menu options determined using an algorithm that includes a Boolean SAT algorithm that determines the satiability of such formulas ~ including batch logic w which represents the user's choice and additional menu options, together with a rule base with formulas expressing incompatibilities and dependencies and where access to additional menu options is presented to the user via the monitor characterized by a user wishing to select one due to previous user selection not available alternative is given the opportunity to cancel a minimum number of previous user choices in order to be able to maintain a maximum subset of previous choices, which is compatible with the rule base and the said unavailable alternatives. The cancellation is made on the basis of the user's relative preferences with regard to previously made choices by performing the following steps: a) previous user choices are assigned a priority order, then b) a maximum subset of previous user choices with higher priority is determined than all of the choices not included said subset, such that this subset is compatible with the rule base and said unavailable alternatives; and finally, c) if the user assigns said unavailable options a higher priority than all previous selections excluded from said subset, then an extension of said subset of user selections is generated which is a maximum subset of user selections compatible with the rule base and said unavailable options, created in accordance with the user's wishes.
SE0002335A 2000-06-21 2000-06-21 Method and device for interactive configuration SE520367C2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE0002335A SE520367C2 (en) 2000-06-21 2000-06-21 Method and device for interactive configuration
PCT/SE2001/001391 WO2001098896A1 (en) 2000-06-21 2001-06-19 A method for interactive configuration
AU2001266471A AU2001266471A1 (en) 2000-06-21 2001-06-19 A method for interactive configuration

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
SE0002335D0 SE0002335D0 (en) 2000-06-21
SE0002335L SE0002335L (en) 2001-12-22
SE520367C2 true SE520367C2 (en) 2003-07-01

Family

ID=20280194

Family Applications (1)

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

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318702B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Multi-valued decision diagram reversible restriction

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235050A1 (en) * 2002-05-30 2005-10-20 Keith Baker Configuration of software applications on a target terminal
CN112835645B (en) * 2021-02-05 2022-09-30 杭州迪普科技股份有限公司 Rule configuration method and device

Family Cites Families (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
DE69428426T2 (en) * 1993-09-17 2002-05-29 Bull S.A., Louveciennes AUTOMATIC PROOF PROCESS
US6223170B1 (en) * 1997-09-09 2001-04-24 Baan Development B.V. Method and apparatus for inference of partial knowledge in interactive configuration
US6272390B1 (en) * 1997-09-09 2001-08-07 Beologic A/S Method for interactive configuration and computer readable medium encoded with a program for performing said method
US5963953A (en) * 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318702B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Multi-valued decision diagram reversible restriction
US10318703B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Maximally standard automatic completion using a multi-valued decision diagram
US10318701B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Resolving configuration conflicts using a multi-valued decision diagram
US10325063B2 (en) 2016-01-19 2019-06-18 Ford Motor Company Multi-valued decision diagram feature state determination

Also Published As

Publication number Publication date
SE0002335L (en) 2001-12-22
SE0002335D0 (en) 2000-06-21
WO2001098896A1 (en) 2001-12-27
AU2001266471A1 (en) 2002-01-02

Similar Documents

Publication Publication Date Title
US5297054A (en) Expert system for automically generating gear designs
US7149983B1 (en) User interface and method to facilitate hierarchical specification of queries using an information taxonomy
US5897639A (en) Electronic catalog system and method with enhanced feature-based search
US5726688A (en) Predictive, adaptive computer interface
EP2312478A1 (en) Method and apparatus for maintaining and configuring systems
US5893105A (en) Executable flowchart
EP1051686A4 (en) Computer based system for imaging and analysing an engineering object system and indicating values of specific design changes
EP1073992A1 (en) Method, and system for product configuration
US7734628B2 (en) Method and apparatus for displaying and interacting with hierarchical information and time varying rule priority
US20070214154A1 (en) Data Storage And Retrieval
CN102622335A (en) Automated table transformations from examples
CN106897350A (en) Guide progressive search system and method
US7457789B2 (en) Configuration assistance for complex products
Lang et al. Hidden uncertainty in the logical representation of desires
US20040227759A1 (en) Plotting numerical data
US5793933A (en) Computer-implemented system and method for constructing a system
SE520367C2 (en) Method and device for interactive configuration
US6671871B2 (en) Technical information management system
CN104137107A (en) Method, software and graphical user interface for forming a prediction model for chemometric analysis
US7844919B1 (en) Method and apparatus for maintaining and configuring systems
US8078562B2 (en) Decomposing configuration problems
Amman et al. The DualI/DualPC software for optimal control models: User’s guide
Houze et al. A hybrid artificial intelligence approach in well test interpretation
US20030122877A1 (en) Graphical user interface tools for specifying preferences in e-commerce applications
EP1012754B1 (en) A method and a computer system for configuring a set of objects

Legal Events

Date Code Title Description
NUG Patent has lapsed