DE69806396T2 - Ein verfahren und ein computersystem zum konfigurieren eines objektsatzes - Google Patents

Ein verfahren und ein computersystem zum konfigurieren eines objektsatzes

Info

Publication number
DE69806396T2
DE69806396T2 DE69806396T DE69806396T DE69806396T2 DE 69806396 T2 DE69806396 T2 DE 69806396T2 DE 69806396 T DE69806396 T DE 69806396T DE 69806396 T DE69806396 T DE 69806396T DE 69806396 T2 DE69806396 T2 DE 69806396T2
Authority
DE
Germany
Prior art keywords
values
configuration
objects
algorithm
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69806396T
Other languages
English (en)
Other versions
DE69806396D1 (de
Inventor
J Rgen Skovgaard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baan Development BV
Original Assignee
Baan Development BV
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 Baan Development BV filed Critical Baan Development BV
Publication of DE69806396D1 publication Critical patent/DE69806396D1/de
Application granted granted Critical
Publication of DE69806396T2 publication Critical patent/DE69806396T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Description

  • Diese Erfindung bezieht sich auf ein computergestütztes Verfahren zum Konfigurieren eines Satzes von Objekten in einem Computer, indem einem Benutzer ermöglicht wird, einen aus einer Anzahl von vorbestimmten Objekt-Werten den Objekten zuzuordnen, die nicht vorbestimmte Objekt-Werte haben, wobei die Zuordnung von Objekt-Werten zu den Objekten, die durch eine Regel-Basis eingeschränkt ist, definiert, welche Zuordnungen von Objekt-Werten zu Objekten gültig sind und welche nicht gültig sind, wobei die Gültigkeit der Werte, zugeordnet zu den Objekten, gegenüber der Regel-Basis mittels einer Konfigurationsmaschine verifiziert wird, die auch in der Lage ist, eine Kenntnis über die Objekte, die nicht bestimmte Objekt-Werte haben, abzuleiten.
  • Hintergrund der Erfindung
  • Allgemeine Probleme einer Konfiguration, die drei Basis-Komponenten besitzt: Variable, Werte und Regeln. Das Ziel ist dasjenige, alle Zuordnungen der Werte zu den Variablen aufzufinden, so dass alle Zuordnungen gültig sind, entsprechend den Regeln. Dies wird als ein Einschränkungs-Erfüllungs-Problem (Constraint Satisfaction Problem) bezeichnet, das auf dem Gebiet einer Konfiguration überall vorzufinden ist. In Konfigurationssystemen stellen die Variablen auswählbare Objekte dar, die in einem Produkt unter einer Auswahl durch den Benutzer eingeschlossen werden können, wenn die Einschränkungen/Regeln erfüllt sind. Andere, oftmals verwendete Ausdrücke für Regeln sind z. B. "Constraints" (Beschränkungen bzw. Einschränkungen) und "Relations" (Beziehungen bzw. Relationen).
  • Das Konfigurationsproblem wird gelöst, wenn der Satz aller auswählbarer Objekte vollständig in zwei disjunktive Untersätze unterteilt wird, die Elemente, die in der Konfiguration umfasst sind, und Elemente, die von der Konfiguration ausgeschlossen sind, jeweils, darstellen, ohne Verletzen irgendeiner der Regeln zwischen den auswählbaren Elementen. Ein auswählbares Objekt ist irgendetwas, das eingeschlossen oder ausgeschlossen werden kann. Es kann ein physikalisches Objekt sein, (z. B. ein Fahrzeug oder eine spezifische Art eines Motors), ein Attribut (z. B. die Farbe rot oder das Textur-Muster eines Teppichs) oder irgendetwas abstraktes (z. B. eine spezifische Zahl von Fahrten bzw. Reisen zwischen zu Hause und der Arbeit oder ein bestimmter Typ eines Vertrags) sein.
  • Eine Regel schließt ein oder mehrere auswählbare Objekte ein. Der Zweck der Regel ist derjenige, die Auswahl von Objekten einzubinden, um einige Erfordernisse zu befolgen. Eine Regel kann auf eine physikalische Limitierung begründet werden (z. B. wenn ein Fahrzeug einen großen Motor benötigt, um eine große Anzahl von ausgewählten, elektrischen Zusatzgeräten zu unterstützen) oder auf eine diskrete Entscheidung (z. B. wenn ein Marketingmanagement entscheidet, dass alle Fahrzeuge, die eine bestimmte, große Maschine haben, nur in einer roten Farbe hergestellt werden, um ihnen ein mehr sportliches Aussehen zu verleihen). Oftmals wird der Ausdruck "Constraint" ("Einschränkung") dazu verwendet, auf eine Regel Bezug zu nehmen, die limitiert, wieviel Elemente kombiniert werden können.
  • Typischerweise wird die Regel in einem zweckmäßigen Format in einer Regel-Basis gespeichert, d. h. einen gewissen Typ einer Tabelle oder einer Datenbank. Ein Zugriff auf die Regel-Basis wird mittels einer Konfigurationsmaschine erhalten. Die Konfigurationsmaschine ist verantwortlich, um zu verifizieren, ob Auswahlen, die durch den Benutzer vorgenommen sind, gültig sind, und zwar gemäß der Regel, und um dies dem Benutzer zu berichten. Weiterhin kann die Konfigurationsmaschine in der Lage sein, eine weitere Kenntnis von der Regel zu folgern, d. h. logisch auf Werte von Objekten zu schließen, die der Benutzer bis jetzt noch nicht entschieden hat.
  • Die Konfigurationsmaschine kann auf zahlreiche Arten und Weisen ausgeführt werden, allerdings wird eine typische Inspiration von den Feldern einer Suche erhalten, aufweisend die Felder: Constraint Logic Programming, Constraint Synthesis, Relational algebra, Propositional Logic, Integer programming, Graph theory, Predicate Calculus, usw..
  • Die Charakteristika eines Suchproblems werden geprüft, ob es NP-Hard ist. D. h. dessen Laufzeitkomplexität ist exponentiell, das bedeutet, dass die Zeit der Algorithmus- Ausführungszeiten exponentiell zu der Größe des Problems für nicht-triviale Probleme ist. Das bedeutet eine sehr unglückliche Eigenschaft des Problems, was das große Interesse in den Algorithmen verbreitet hat.
  • Wenn man auf nur eine dieser Bereiche eines Constraint Logic Programming sieht, ist wiederum eine große Anzahl von unterschiedlichen Algorithmen vorgeschlagen worden; siehe z. B. "The Many Paths to Satisfaction", Eugine C. Freuder, Constraint Processing Selected papers. Meyer (Ed.) ISBN 3-540-59479-5; "Constraint satisfaction in Logic Programming"; Pascal Van Hententryck, The MIT Press. 1989; und "Algorithms for Constraint- Satisfactiaon Problems: A Survey", Vipin Kumar, Al Magazine, Frühling 1992.
  • Es wird sich wiederum dem Gebiet einer Konfiguration zugewandt. Zu Anfang, d. h. bevor ein Benutzer damit beginnt, ein Produkt zu konfigurieren, kann der Kenntnis-Wert aller Objekte auf "Unknown" gesetzt werden. Während des Prozesses einer Konfigurierung eines Produkts können anderer Kenntnis-Werte den Objekten zugeordnet werden, wobei einige Beispiele von Kenntnis-Werten sind:
  • "Selected" bedeutet, dass der Benutzer, der das Computersystem betreibt, ausgewählt hat, positiv das Element einzuschließen.
  • "Discarded" bedeutet, dass der Benutzer, der das Computersystem betreibt, ausgewählt hat, positiv das Element auszuschließen.
  • "Concluded" bedeutet, dass die Konfigurationsmaschine gefolgert hat, dass das Element eingeschlossen werden muss.
  • "Rejected" bedeutet, dass die Konfigurationsmaschine gefolgert hat, dass das Element ausgeschlossen werden muss.
  • Nachfolgend ist ein Produkt ein physikalisches Element oder irgend etwas abstraktes, das aus einer Anzahl von auswählbaren Objekten zusammengesetzt ist, die ein physikalisches Element oder irgendetwas abstraktes sind. Eine gültige Konfiguration ist eine Darstellung bzw. Repräsentation oder eine Liste von ausgewählten Objekten, die ein Produkt bilden, das gültig ist, gemäß einer Relation zwischen den ausgewählten Elementen. Eine ungültige Konfiguration ist eine Darstellung oder eine Liste von ausgewählten Objekten, die gültig ist, entsprechend einer Relation zwischen den ausgewählten Objekten.
  • Allgemein gesagt in Bezug auf Relationen oder Einschränkungen in Konfigurations- Systemen ändert eine neue Auswahl in einer Folge von Auswahlen den Satz von Objekten, die in eine gültige Konfiguration eingeschlossen werden können. Demzufolge sollten, wenn Produkte, Teile oder Merkmale in einem Konfigurations-System ausgewählt werden, dabei niemals irgendwelche verfügbaren Auswahlen vorhanden sein, die tatsächlich ungültig sind. Es ist deshalb zu jedem Zeitpunkt erwünscht, eine dynamische Anzeige von Tastenfiguren, Beschreibungen, Grafiken oder einem Video zu haben, die sich entsprechend dem momentanen Fokus und der Historie des Benutzers ändern.
  • Ein interaktives Computer-Konfigurations-System ist eine Hilfe für einen Verkäufer oder einen Kunden, um es sehr einfach zu machen, ein großes Problem zu erfassen und zu konfigurieren, wie es ist, für einen Kunden in einem Supermarkt, um selbst zu erkennen, dass er exakt das gekauft hat, was er benötigt, um seine Essensgäste zu empfangen, und zwar entsprechend seinen eigenen Entscheidungen und den Erwartungen der Gäste. Dies könnte sehr einfach erscheinen, ist aber tatsächlich eine der Hauptschwierigkeiten in interaktiven Konfigurations-Systemen, wie besser anhand der nachfolgenden Beschreibung verstanden werden wird.
  • Das Basis-Problem einer interaktiven Konfiguration ist dasjenige, dass die Algorithmen, die benötigt werden, eine wahre, interaktive Umgebung zu unterstützen, extrem zeitaufwendig sind, da sich die Zeit exponentiell als eine Funktion von Objekt-Werten erhöht. Dieses Problem wird als das NP-Hard-Problem bezeichnet, das die möglichen, erhaltbaren Ergebnisse, die sich auf die Konfiguration beziehen, beschränkt hat.
  • Das NP-Hard-Problem beeinflußt zwei sehr wichtige Merkmale, die sich auf eine Konfiguration beziehen. Zuerst sollte realisiert werden, dass ein NP-Hard-Problem die Zeitkomplexität der eingesetzten Algorithmen beeinflußt. Dies bedeutet, dass die notwendige Verarbeitungszeit nicht akzeptierbar in Bezug auf Konfigurations-Modelle oder Regel-Basen wird, die viele Objekt-Werte und viele Einschränkungen zwischen diesen aufweisen.
  • Stand der Technik
  • Systeme nach dem Stand der Technik lösen nur das Konfigurationsproblem in einem gewissen Umfang. Viele Konfigurations-Systeme nach dem Stand der Technik sind Batch- Mode-Systeme, die vollständig außerhalb des Interesses liegen, da sie nicht aktualisierte Informationen über die Konfiguration dem Benutzer liefern, während der Benutzer tatsächlich die Auswahlen vornimmt. Deshalb sind nur interaktive Systeme von Interesse, allerdings haben die bekannten Systeme den Nachteil, dass die aufeinanderfolgende Auswahl oder das Aussondern von Elementen sich dahingehend wendet, dass es eine Art Sackgasse (Dead-End) ist, da die Auswahlen, aufeinanderfolgend vorgenommen durch den Benutzer, plötzlich so herauslaufen, dass sie eine ungültige Konfiguration sind. Die WO 97/15886 offenbart ein Konfigurations-System, bei dem einem Benutzer ermöglicht wird, ein Produkt durch aufeinanderfolgendes Auswählen von Komponenten zu konfigurieren, um dadurch einen Satz von ausgewählten Komponenten zu erzeugen. Basierend auf vordefinierten Beschränkungen wird jede Komponente in dem Satz von Komponenten als "Selectable", "Eliminated" oder "Contradicted" identifiziert. Weiterhin werden Komponenten, die die ausgewählten Komponenten eliminieren oder ihnen widersprechen, identifiziert und dem Benutzer angezeigt. Dadurch wird es einem Benutzer möglich gemacht, die Produkt-Konfiguration zu ändern, um eliminierte oder widersprochene Komponenten zu vermeiden. Mit anderen Worten wird dem Benutzer eine Liste von dem präsentiert, was möglich ist, um es zu ändern, um eine gültige Konfiguration zu erhalten. Allerdings ist das Problem in Verbindung mit dem Konfigurations-System, das in der WO 97/15886 offenbart ist, dasjenige, dass das Konfigurations-System keine weiteren Informationen dem Benutzer als dasjenige liefert, was zu tun ist, wenn Dinge falsch gelaufen sind. Demzufolge wird die Wahrscheinlichkeit, den Benutzer in eine Dead-end- bzw. Sackgassen-Situation einzugrenzen, nicht verringert. Wenn eine ungültige Konfiguration oder eine Sackgasse durch das Konfigurations-System erfasst wird, müssen einige oder alle der Auswahlen, vorgenommen durch den Benutzer, rückgängig gemacht werden, um eine gültige Konfiguration zu erhalten.
  • Demzufolge hat der Benutzer entschieden, eine Anzahl von Komponenten einzuschließen, und zwar durch sorgfältiges Auswählen von jedem davon während des Prozesses einer Konfiguration des Produktes. Allerdings kann, nachdem seine Bemühungen, zu versuchen, ein Produkt zu konfigurieren, er plötzlich realisieren, dass das Produkt nicht eine gültige Konfiguration ist. Deshalb muss er durch die Konfiguration erneut gehen. Ungeachtet der Tatsache, dass er durch das Konfigurations-System unterstützt wird, ist es für einen Benutzer sehr frustrierend, Auswahlen, die er sorgfältig zuvor entschieden hat, rückgängig zu machen. Weiterhin kann diese Art, eine Konfiguration vorzunehmen, ein sehr zeitaufwendiger Vorgang für den Benutzer sein, der Auswahlen wieder und wieder rückgängig machen muss.
  • Wallace M.: "Constraint Programming", IC Parc, London, 1995 (last change 3. September 1997) http://www.icparc.ic.ac.uk/eclipse/reports/handbook.html, gibt an, dass eine Propagation und Suche ausreichend auf dem Gebiet einer Konfiguration und einer künstlichen Intelligenz bekannt sind. Insbesondere können Suche und Propagation in Kombination verwendet werden, z. B. dazu, um eine Lösung für das ausreichend bekannte n-queens- Problem (n-Königinnen-Problem) zu finden. Allerdings wird jede Lösung als eine individuelle Lösung behandelt. Der Benutzer wird nicht mit Informationen versehen, wie eingeschränkt eine gegebene Variable in Bezug auf spezifizierte Einschränkungen und vorherige Auswahlen, vorgenommen durch den Benutzer, ist.
  • Van Hentenryck P. et al. "Design, Implementation and Evaluation of the Constraint Language cc(FD)", "Technical Report" CS-93-02, Computer Science Department, Brown University, Jan. 1993, offenbart eine Computersprache zum Auffinden einer Lösung für ein Beschränkungs-Problem, wobei das Problem in Angaben von Variablen angegeben wird, wobei jede Variable eine Domäne von Werten besitzt. Eine Domänen-Konsistenz wird in einer inkrementalen Art und Weise durch Verringern der Domänen der Variablen bei jedem Berechnungsschritt erreicht. Allerdings bezieht sich diese Offenbarung nicht auf das Unterstützen des Benutzers während eines Prozesses eines Auswählens von Elementen für eine Konfiguration, die die Beschränkungen erfüllt. Der Benutzer wird nicht mit Informationen versorgt, die von diesen reduzierten Domänen gefolgert sind, noch mit Informationen über die reduzierten Domänen der Variablen.
  • Zusammengefasst schließt der Stand der Technik das Problem ein, dass ein Benutzer, der eine computerunterstützte Konfiguration vornimmt, nur mit einfachen Informationen in der Form eines Anzeigens von gültigen/ungültigen Objekt-Werten oder von Kombinationen von Objekt-Werten versorgt wird. Diese Informationen sind nicht ausreichend, um wesentlich das Risiko zu reduzieren, in einem toten Ende bzw. in einer Sackgasse zu enden.
  • Zusammenfassung der Erfindung
  • Eine Aufgabe der Erfindung ist es, ein computerunterstütztes Verfahren zum Konfigurieren eines Satzes von Objekten in einem Computer zu schaffen, so dass ein Benutzer, der aufeinanderfolgende Auswahlen vornimmt, mit Informationen versorgt wird, die das Risiko reduzieren, in einem toten Ende bzw. einer Sackgasse zu enden.
  • Dies wird erreicht, wenn das Verfahren, das in dem einleitenden Absatz erwähnt ist, die Schritte aufweist: Erzeugen und Verifizieren mindestens einer ersten und einer zweiten temporären Kombination von Objekt-Werten; Erzeugen der ersten temporären Kombination durch Zuordnen eines ersten, bestimmten Objekt-Werts zu einem gegebenen Objekt und Erzeugen der zweiten temporären Kombination durch Zuordnen eines zweiten, bestimmten Objekt-Werts zu dem gegebenen Objekt, und Übermitteln dem Benutzer die Kenntnis, die anzeigt, dass das gegebene Objekt dahingehend verifiziert worden ist, dass es nicht gebunden ist, falls die erste und die zweite Kombination beide gültig sind, und zwar gemäß der Regel-Basis.
  • Demzufolge wird die Liste von Kenntnis-Werten mit dem Wert "Unbound" ("nicht gebunden") erweitert. Wenn Objekt-Werte für ein Objekt dahingehend verifiziert sind, dass sie ungebunden sind, und diese Kenntnis dem Benutzer angezeigt wird, wird der Benutzer informiert, dass diese Werte mit Sicherheit als die nächste Benutzer-Zuordnung ausgewählt werden können, ohne mit der Regel-Basis in Konflikt zu treten. Das Risiko, in einem toten Ende bzw. einer Sackgasse zu enden, wird dadurch verringert.
  • Es sollte daran erinnert werden, dass eine Konfiguration ein sehr komplizierter Prozess ist, wobei das angewandte Konfigurations-Verfahren eine sehr kritische und schwierige Verbindungsverknüpfung zwischen einem intuitiven Benutzer und der sehr strengen Performance eines Computers in Bezug auf einer Berechnungs- und Speicherkapazität ist. Bei der anderen Art und Weise dort herum wird der intuitive Benutzer in Bezug auf eine Verarbeitung und einen Speicher beschränkt, und der Benutzer hat demzufolge ein sehr dringendes Bedürfnis nach einer Unterstützung, die durch einen Computer angeboten wird. Im Hinblick auf viele Versuche, um eine Art einer Intelligenz in einem Computersystem auszuführen, ist der Computer niemals darauf beschränkt, eine sehr kanonische Verarbeitung durchzuführen.
  • Es sollte weiterhin daran erinnert werden, dass die gesamte Idee einer Ausführung eines Konfigurationsverfahrens in einem Computer dazu dient, die Erfordernisse des Benutzers zu erfüllen, im Gegensatz dazu, den Benutzer mit bedeutungslosen oder fehlerhaften Verarbeitungsergebnissen zu belästigen, oder, als anderes Extrem, ohne eine Verarbeitung der absoluten Wahrheit über die gesamte Konfiguration zu kompromittieren, wobei das letztere Extrem zu einer nicht tolerierbaren Verarbeitungszeit führt.
  • Der grundsätzliche Vorteil der Erfindung ist demzufolge eine Einrichtung, die sich mit dem Erfordernis nach einer effektiven Benutzerunterstützung während einer fortlaufenden Konfiguration durch Vorhersage befasst, ob eine fortlaufende Konfiguration in eine Sackgasse läuft oder nicht, ohne irgendeine Kenntnis über die End-Konfiguration zu haben. Die Erfindung befasst sich demzufolge mit dem Raum von nicht konfigurierten Elementen, oder Objekt-Werten, die noch nicht durch eine Benutzer-Zuordnung beeinflusst worden sind.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird vollständiger nachfolgend in Verbindung mit einer bevorzugten Ausführungsform und unter Bezugnahme auf die Zeichnungen beschrieben, in denen:
  • Fig. 1 bis 3 stellen das Grundprinzip der Erfindung dar,
  • Fig. 4 stellt die gesamten, prinzipiellen Operationen des Verfahrens gemäß der Erfindung dar,
  • Fig. 5 bis 10 stellen ein evaluiertes Beispiel der Operation einer Ausführungsform der Erfindung dar,
  • Fig. 11 stellt den Prozessablauf von Propagate dar,
  • Fig. 12 stellt den Prozessablauf von LookAhead dar,
  • Fig. 13 stellt den Prozessablauf von Minimal_Configuration_Check dar,
  • Fig. 14 stellt den Prozessablauf von Unbound dar,
  • Fig. 15 stellt den Prozessablauf von Sufficient_Configuration-Check dar, und
  • Fig. 16 stellt ein Beispiel von Kenntnis-Ausdrücken gemäß der Erfindung dar.
  • Unter Bezugnahme nun auf Fig. 1 wird eine Einführung des Basis-Elements der Erfindung vorgenommen.
  • Fig. 1 stellt demzufolge eine gesamte Menge von möglichen Objekt-Werten dar. Die Objekt-Werte können zu zahlreichen, unterschiedlichen Arten von Definitionen oder Gebilden in Bezug gesetzt werden, wobei alle davon in einer Menge von 10 von Objekt-Werten 11 dargestellt sind. Jeder Objekt-Wert kann z. B. ein diskretes Gebilde, eine Farbe, ein Typ, eine physikalische Eigenschaft, usw., darstellen. In Fig. 1 ist kein Aspekt, der zu Beschränkungen oder Beziehungen zwischen den Objekt-Werten in Bezug gesetzt ist, dargestellt worden, sondern es sollte verständlich werden, dass diese Beziehungen z. B. Gruppierungen, Objekt-Definitionen, usw., nichtsdestotrotz die Objekt-Werte einschränken.
  • Für Darstellungszwecke sollte erwähnt werden, dass die Beispiele, die nachfolgend angegeben sind, nur mit einer sehr einfachen Reihenfolge von Objekt-Werten arbeiten, da ein Objekt so ausgedrückt wird, um eine Anzahl von Objekt-Werten aufzuweisen. Eine Farbe kann demzufolge ein Objekt sein, und die spezifischen Farben, z. B. rot, grün und blau, können Objekt-Werte sein. Es sollte auch verständlich werden, dass die Objekt-Werte in sehr viel komplizierteren Strukturen geordnet werden können, falls dies notwendig ist. Nun sind, unter Bezugnahme auf Fig. 2, einige Objekt-Werte 12 so zugeordnet worden, um in einer Teil-Konfiguration 13 umfasst zu sein. Diese Teil-Konfiguration stellt eine Konfiguration dar, die bis jetzt noch nicht abgeschlossen worden ist, wobei die Teil- Konfiguration eine Kombination von einem Teil der Objekt-Werte 12 ist. Falls sich das Beispiel auf ein Fahrzeug bezieht, können die ausgewählten Objekt-Werte z. B. eine Farbe, ein Motor, ein Sonnendach, ein bestimmter Reifentyp, ein Preis oder andere, mögliche Optionen sein.
  • Wie ersichtlich werden wird, ist es offensichtlich, dass die Bemühungen des Benutzers beim Vornehmen einer End-Konfiguration in gewisser Weise schwierig sein können, da die unterlegenden Beschränkungen weitgehend für den Benutzer verdeckt sind. Je näher die Konfiguration zu einem Ende gelangt, desto schwieriger wird die nächste Auswahl sein, da die verbleibenden Objekt-Werte dazu tendieren werden, mehr und mehr beschränkter zu werden.
  • Bei der Bemühung, den Benutzer mit einer möglichen Führung während des gesamten Konfigurations-Prozesses von Objekt-Werten zu versehen, sollte, einer nach dem anderen, Auswahl für Auswahl, die Umgebung durch eine mehr benutzer-orientierte Präsentation unterstützt werden.
  • Nun wird, unter Bezugnahme auf Fig. 3, das Basiskonzept der Erfindung erläutert. Der Benutzer hat nun die Teil-Konfiguration 13 vorgenommen und die nächste Benutzer- Auswahl soll vorgenommen werden.
  • Das Basiskonzept der Erfindung ist nun dasjenige, dem Benutzer alle Informationen zu geben, die er benötigen wird, um einen gültigen Objekt-Wert auszuwählen, und um alle in eine Teil-Konfiguration zu jedem Zeitpunkt zu setzen, zu dem eine Auswahl vorgenommen wird. Dies kann dadurch vorgenommen werden, indem die nächsten Objekt-Werte der verbleibenden Objekt-Werte ausgeschlossen werden, die nicht in einer gültigen End- Konfiguration umfasst werden kann. Entsprechend Fig. 3 ist dies durch die unterbrochene Linie 14 dargestellt, die den möglichen oder gültigen Raum darstellt, nun die Zahl der nächsten, möglichen Auswahlen verringernd. Einige der Informationen, die dem Benutzer gegeben sind, können für den Benutzer ersichtlich sein, und einige der Informationen, die durch den dargestellten, gültigen Raum gegeben sind, können von großer Wichtigkeit sein.
  • Demzufolge wird für den Benutzer ersichtlich sein, dass andere, mögliche Farben einer Fahrzeugkonfiguration ungültig sein können, falls eine Farbe bereits ausgewählt worden ist und in eine Teil-Konfiguration eingegeben worden ist. Allerdings können viele andere Einschränkungen unergründlich sein und der verringerte, dargestellte, gültige Raum 14 kann von größter Wichtigkeit für den Benutzer sein.
  • Es sollte betont werden, dass die Informationen, die dem Benutzer geliefert werden, dem Benutzer kontinuierlich gegeben werden sollten.
  • Einer der Gründe, warum diese Aspekte ein wenig beim Stand der Technik übersehen worden sind, ist derjenige, dass die Berechnungsleistung von modernen Computern nicht groß genug ist, um sich mit komplizierten und komplexen Konfigurations-Modellen zu befassen. Weiterhin ist es extrem schwierig, die Beschränkungen in ein Konfigurations- Modell zu programmieren, das für gültig erklärt und beibehalten werden kann.
  • Gemäß der Erfindung werden die vorstehend erwähnten Informationen durch eine sorgfältige Prüfung der nicht bestimmten Objekt-Werte geliefert. Diese Prüfung wird weiter in den Beispielen nachfolgend diskutiert werden.
  • Anhand nun der Fig. 4 wird eine Übersicht einer bevorzugten Ausführungsform der Erfindung erläutert.
  • Fig. 4 stellt demzufolge eine Kaskade von Algorithmen dar, die so angepaßt sind, um die notwendigen Informationen und die Führung für einen Benutzer während eines Konfigurations-Prozesses zu liefern. Die Algorithmen werden weiter in der nachfolgenden Beschreibung erläutert werden.
  • Die Basislinie von Algorithmen ist demzufolge ein Propagation Algorithmus 80, ein LookAhead Algorithmus 81, ein Minimal_Configuration_Check, ein Unbound Algorithmus 83 und ein Sufficient_Configuration_Check Algorithmus 84.
  • Jeder Algorithmus 80, 81, 82, 83 und 84 in der Kaskade ist demzufolge so angepasst, um einen Grad einer Kenntnis zu liefern, die dem Benutzer verfügbar gemacht werden kann und um auch die Gesamtleistung der Algorithmen zu erhöhen. Einige wenige Ergebnisse oder Folgerungen, vorgenommen durch einen Algorithmus zu Beginn der Kaskade der Algorithmen, werden die Größe des Problems verringern, das mit den folgenden, zeitaufwendigeren Algorithmen behandelt werden soll. Dies ist ein besonders wichtiger Aspekt, in Erinnerung daran, dass die Erfindung vorzugsweise dazu vorgesehen ist, sich mit Problemen zu befassen, die NP-Complete sind.
  • Weiterhin sind die Algorithmen in einer solchen Art und Weise geordnet, dass sich die Zeitkomplexität erhöht.
  • Jeder Algorithmus kann ein Timer oder eine Benutzerunterbrechung in den Schritten 85, 86, 87, 88 und 89 jeweils sein. Die Unterbrechungen werden zu der zusammengefaßten Kenntnis zurückgeführt werden, die an dieser Stufe erhalten ist, die sich auf die gefolgerten Informationen und die Gültigkeit bezieht.
  • Weiterhin werden die Algorithmen 80, 81, 82, 83 und 84 unterlegende Algorithmen aufrufen.
  • Der Propagation Algorithmus 80 wird demzufolge eine Abtastung einer Bool'schen und einer arithmetischen Darstellung der Regel-Basis aufweisen, die Organisation und die Einschränkung der Objekt-Werte, die betroffen sind, darstellend. Diese Abtastung wird in einer Bool'schen Abtastung 90 und einer Arithmetik-Abtastung 91 jeweils durchgeführt. Die Propagation wird prüfen, ob eine Auswahl, oder eine Teil-Konfiguration, gültig ist oder nicht.
  • Ein LookAhead Algorithmus 81 prüft den nicht bestimmten Raum von Objekt-Werten. Jeder mögliche, nächste, ausgewählte Objekt-Wert wird temporär, einer nach dem anderen, zugeordnet werden, und die temporäre Teil-Konfiguration kann von dem Raum von nächsten, möglichen Objekt-Werten für gültig erklärt oder ausgeschlossen werden. Für jeden temporär zugeordneten Wert wird der Propagation Algorithmus 92 initiiert werden. Der Minimal_Configuration_Algorithm prüft, ob die bereits zugeordnete Teil-Konfiguration mit irgendeinem der nicht bestimmten Objekt-Werte zu einer gültigen End-Konfiguration kombiniert werden kann. Diese Prüfung wird durch Suchen nach einem temporären Objekt-Wert, Hinzufügen von diesem zu der Teil-Konfiguration, Aufrufen des Propagation Algorithmus 92, durchgeführt, bis mindestens eine gültige, mögliche Konfiguration aufgefunden worden ist. Wenn dies auftreten wird, wird der Minimal_Configuration_Algorithm sehr Zeitkomplex.
  • Der Unbound Algorithmus 83 prüft, ob individuelle Objekte dahingehend bestimmt werden können, dass sie nicht gebunden sind, oder nicht, d. h. das Objekt weist mindestens zwei nicht gebundene Objekt-Werte auf. Dies wird durch temporäres Zuordnen von Objekt- Werten zu Objekten geprüft, bis mindestens zwei mögliche Konfigurationen aufgefunden worden sind. Der Unbound Algorithmus ruft den Algorithmus Minimal_Configuration_Algorithm zu jedem Zeitpunkt auf, zu dem eine neue, mögliche Konfiguration bestimmt werden soll.
  • Der letzte Algorithmus, Sufficient_Configuration_Algorithm 84, in der Kaskade, ist so angepasst, um die ausreichende Kenntnis zu erhalten. Diese Kenntnis wird durch temporäres Zuordnen von jedem nicht bestimmten Objekt-Wert, Suchen nach mindestens einer möglichen Konfiguration, die den temporär zugeordneten Wert aufweist, erhalten. Falls eine solche mögliche Konfiguration gefunden werden kann, wird nun gefolgert, dass der temporär zugeordnete Objekt-Wert eine gültige, nächste Auswahl ist, und, falls nicht, wird nun gefolgert, dass der temporär zugeordnete Objekt-Wert nicht eine gültige, nächste Auswahl ist.
  • Diese Informationen können dem Benutzer geliefert werden.
  • Der Sufficient_Configuration_Algorithm 84 ruft den Algorithmus Minimal_Configuration_Algorithm 82 zu jeden Zeitpunkt auf, zu dem eine neue, mögliche Konfiguration bestimmt werden soll.
  • Wenn ein Zeitablauf oder eine Benutzerunterbrechung auftritt, bevor der Sufficient_Configuration_Algorithm abgeschlossen ist, wird die erhaltene Kenntnis dargestellt werden, unter Hinnahme des Risikos, dass die Kenntnis, die dargestellt ist, nicht ausreichend ist.
  • Unter Bezugnahme nun auf die Fig. 5 bis 10 wird ein weiteres Verfahren der Erfindung beschrieben werden. Gemäß einer bevorzugten Ausführungsform der Erfindung kann die vorstehend erwähnte Kaskade fünf Algorithmen aufweisen: Propagation, LookAhead, Minimal_Configuration_Check, Unbound und Sufficient_Configuration_Check. Das Beispiel wird auf der Basis eines Systems angegeben werden, das aus fünf einzelnen Objekten A, B, C, D, E und zwei finiten Domänen-Objekten X, Y mit dem Bereich von 0 bis 10 besteht. Die Regel-Basis besteht aus den folgenden einfachen Regeln:
  • Regel 1 A → B
  • Regel 2 B → C oder D
  • Regel 3 C oder D → E
  • Regel 4 X·100 + Y·10 == C·50 + D·40 + 90
  • Die Regel-Basis weist weiterhin Regeln auf, die die Objekte A, B, C, D und E dahingehend definieren, dass sie einzeln sind, d. h. die Objekte sind so gebunden, um exklusiv WAHR (TRUE) oder exklusiv FALSCH (FALSE) in einer möglichen Konfiguration zu sein.
  • Weiterhin werden die Objekte X und Y so definiert, dass sie der Objekt-Typ ENUM sind (d. h. zu einem aufgezählten oder vordefinierten Satz von Werten gehört) und einen und nur einen der Werte in den Domänen von X und Y jeweils annehmen kann.
  • Zu Beginn der Konfiguration sind alle Objekt-Werte unbestimmt.
  • Eine Eingabe wird zu der vorstehenden Regel-Basis durch Zuordnen von A so, dass es WAHR (TRUE) ist, als eine Benutzer-Auswahl, zugeführt. Die Eingabe dieses Objekt- Werts reduziert unmittelbar die nicht bestimmten Werte so, dass sie alle Objekt-Werte sind, mit der Ausnahme A = FALSE und A = TRUE, die zu einem Konfigurations-Satz von Werten hinzugefügt werden.
  • Bezugnehmend auf die Fig. 5a und 5b sind die anfänglich ausgewählten Objekt-Werte in grundsätzlich zwei unterschiedlichen Arten und Weisen dargestellt. Es ist anzumerken, dass die Fig. 5a und 5b nur zwei Arten von einer Darstellung desselben Ergebnisses sind, in dem Sinn, dass Fig. 5a das Ergebnis mittels eines Diagramms von Objekt-Werten darstellt, während Fig. 5b dasselbe Ergebnis mittels einer Darstellung einer diskreten Summe von Objekt-Werten darstellt.
  • Die ausgewählte Darstellung in den Fig. 5b bis 10b führt eine Terminologie über die erhaltene Erkenntnis ein, die sich auf die Objekt-Werte bezieht. Diese Darstellung wird kurz anhand der Hierarchie, dargestellt in Fig. 16, beschrieben.
  • Kenntnis-Terminologie. Jeder Objekt-Wert ist einem Kenntnis-Wert , ( ), x oder (x) zugeordnet, was anzeigt, ob ein Objekt muss, kann, nicht muss oder nicht kann, diesen Wert annehmen. Weiterhin wird, falls es nicht bekannt ist, ob ein Wert einen Wert annehmen kann oder nicht annehmen kann, dies durch den Kenntnis-Wert? angezeigt, und falls ein Wert sowohl genommen als auch nicht genommen werden kann, wird dies durch den Kenntnis-Wert angezeigt.
  • Diese Ausdrücke können in der folgenden Tabelle 1 zusammengefaßt werden.
  • Aktion und Symbol
  • Concluded/Selected
  • Unbound
  • Rejected/Disregarded x
  • Possibly concluded ( )
  • Possibly rejected (x)
  • Unknown ?
  • Tabelle 1
  • Diese sechs Kenntnis-Werte bilden einen Teil, geordnet in drei Levels, dargestellt in Fig. 16.
  • Level 0 in Fig. 16 stellt dar, dass dann, falls ein Objekt einen Wert annehmen kann oder nicht, der Wert derjenige ist, dass er nicht bekannt ist, und durch den Kenntnis-Wert ? angezeigt wird.
  • Level 1 in Fig. 16 stellt dar, dass dann, wenn ein Objekt den Wert annehmen kann, der Wert möglicherweise eingeschlossen wird und durch den Kenntnis-Wert ( ) angezeigt wird. Weiterhin wird, falls ein Objekt nicht einen Wert annehmen kann, er möglicherweise zurückgewiesen und durch den Kenntnis-Wert (x) angezeigt wird. Es ist anzumerken, dass dann, wenn ein Wert möglicherweise eingeschlossen wird, er nicht zurückgewiesen werden kann, und weiterhin kann, wenn ein Wert möglicherweise zurückgewiesen wird, er nicht eingeschlossen werden.
  • Level 2 in Fig. 16 stellt dar, dass ein Objekt sowohl den Wert annehmen kann als auch annehmen könnte. Auf diesem Level ist der Objekt-Wert derjenige, dass er nicht gebunden ist und durch den Kenntnis-Wert angezeigt wird.
  • Level 3 in Fig. 16 stellt dar, dass, falls ein Objekt einen Wert annehmen muss, er ausgeschlossen oder ausgewählt und durch den Kenntnis-Wert angezeigt wird. Weiterhin wird, falls ein Objekt nicht einen Wert annehmen muss, er zurückgewiesen oder ausgesondert und durch den Kenntnis-Wert x angezeigt. Die Terminologie verwendet die Worte, ausgewählt oder gefolgert, immer wenn die Auswahl durch einen Benutzer bestimmt wird. Falls die Auswahl ein Ergebnis einer Deduktion ist, ist der Wert derjenige, der eingeschlossen oder zurückgewiesen werden soll.
  • Es sollte angemerkt werden, dass die ausgewählte Terminologie das Wort nicht gebunden sowohl für Objekte als auch für Werte von Objekten verwendet. Ein Objekt ist dasjenige, das nicht gebunden sein soll, falls mindestens zwei seiner Werte nicht gebunden sind. Demzufolge müssen zwei Objekt-Werte und nicht einer ungebunden sein.
  • Es sollte auch angemerkt werden, dass die Darstellung, die vorstehend beschrieben ist, nur für erläuternde Zwecke ausgewählt ist, um eine spezifische Darstellung der Erfindung vorzunehmen. Viele andere Darstellungen könnten ausgewählt werden, um die Erfindung darzustellen.
  • Die Fig. 5a bis 10a stellen die erlangte Kenntnis nach jedem Algorithmus dar. A / oder O zeigt an, dass der Wert bestimmt worden ist und Level 3 erreichte, gepunktet oder /O zeigt, dass der Wert Level 1 erreicht hat, und El zeigt an, dass der Wert Kenntis-Level 2 erreicht hat.
  • Wie wiederum Fig. 5b zeigt, wird die Benutzerauswahl durch Zuordnen von A so, dass es TRUE (WAHR) ist, initiiert, und der Wert von A wird der Eingabewert der aufgerufenen Propagation des vorstehend erwähnten ersten Algorithmus sein.
  • Propagation
  • Die Propagation wird, auf der Basis des Werts A = TRUE und der Regel-Basis, Informationen über die nicht bestimmten Objekt-Werte folgern. Das Ergebnis dieses Propagation Algorithmus ist in den Fig. 6a und 6b dargestellt.
  • Wie durch die Fig. 6a und 6b dargestellt ist, ist nun gefolgert, dass B TRUE sein muss und B wird demzufolge wahr zugeordnet. Diese Folgerung kann intuitiv durch Konsultieren der vorstehend angeführten Regel 1 vorgenommen werden. Gemäß der Erfindung wird diese positive Zuordnung durch Folgern möglich gemacht und wird so definiert, dass sie ein eingeschlossener Objekt-Wert ist.
  • Weiterhin folgert die Propagation, dass die Objekt-Werte des Objekts X, die die Regel- Basis erfüllen, so begrenzt sind, dass sie X = 0 oder X = 1 sind. Genauer gesagt werden, gemäß der Erfindung, die Werte [2 : 10] dahingehend gefolgert, dass sie von einer möglichen Zuordnung ausgeschlossen sind. Die Objekt-Werte werden demzufolge so definiert, dass sie zurückgewiesen werden.
  • Das Ergebnis des Propagation Algorithmus kann demzufolge ausgedrückt werden als Zuordnungs-Liste: A = TRUE, B = TRUE
  • Lookahead (Vorgriff)
  • Der folgende Algorithmus, LookAhead, in der Algorithmus-Kaskade, ist ein sehr einfacher Algorithmus, der, mittels einer Art eines Crash-Tests, temporär alle unbestimmten Objekt- Werte, oder zumindest einen Teil davon, herausnimmt, diese nicht bestimmten Werte einen nach dem anderen mit den zuvor zugeordneten Objekt-Werten kombiniert und testet, ob diese Werte, kombiniert mit den bereits zugeordneten Werten, tatsächlich die Regel- Basis erfüllen. Dieser Test wird für jeden nicht bestimmten Objekt-Wert mittels des Propagation Algorithmus ausgeführt.
  • Falls das Ergebnis des Tests zeigt, dass es tatsächlich nicht möglich ist, einige der nicht bestimmten Objekt-Werte mit den zuvor zugeordneten Werten zu kombinieren, d. h. A = B = TRUE, werden die nicht bestimmten Objekte von den möglichen Objekt-Werten der Konfiguration ausgeschlossen werden.
  • Die Zahl von notwendigen Propagationen in LookAhead gemäß dem Beispiel der Erfindung beträgt neunzehn, z. B. achtmal TRUE/FALSE von C, D und E plus elfmal der Domäne von Y.
  • Das Ergebnis des LookAhead Algorithmus ist in den Fig. 7a und 7b dargestellt. In diesem Beispiel zeigt der LookAhead Algorithmus an, dass E TRUE sein muss, das Ergebnis, das durch die Tatsache gefolgert wird, dass E = FALSE ist, wird dahingehend ausgesondert, dass es eine nicht mögliche Konfiguration eines Objekt-Werts kombiniert mit den zuvor zugeordneten Werten A = B = TRUE ist. Diese Folgerung kann intuitiv von der Kombination der Regeln 2 und 3 ausgelesen werden.
  • Die Zuordnung von E = TRUE erfolgt aufgrund der vorstehend erwähnten Terminologie, dahingehend gefolgert, dass sie TRUE ist, und die Teil-Kenntnis wird demzufolge so aktualisiert, dass sie wie folgt ist:
  • Das Ergebnis des LookAhead Algorithmus kann demzufolge ausgedrückt werden als Zuordnungs-Liste: A = TRUE, B = TRUE, E = TRUE
  • Es sollte angemerkt werden, dass dennoch dabei keine Garantie vorhanden ist, dass eine vollständige Konfiguration tatsächlich gefunden werden kann, da tatsächlich noch nicht verifiziert ist, ob der gefolgerte Wert von E tatsächlich in eine End-Konfiguration paßt. Es sollte auch angemerkt werden, dass der LookAhead Algorithmus mit weiteren Algorithmen desselben Typs kaskadiert werden könnte.
  • Minimal_Configuration_Check
  • Der nächste Algorithmus in der Kaskade ist der Algorithmus Minimal_Configuration_Check. Dieser Algorithmus ist komplexer als die vorherigen Algorithmen in dem Sinne, dass der Algorithmus eine exponentielle Zeitkomplexität besitzt. Das Ziel, das mittels dieses Algorithmus erreicht werden soll, ist sehr unterschiedlich verglichen mit den vorherigen Algorithmen. Das Ziel ist demzufolge, sicherzustellen, dass die Laufkonfiguration nicht zu einer Konfigurations-Insel hin endet oder mit anderen Worten, in einer Sackgasse. Durch den Ausdruck "Konfigurations-Insel" ("Configuration Island") in diesem Fall ist gemeint, dass keine Kombination von unbestimmten Objekt-Werten und den zuvor zugeordneten Werten die Regel-Basis erfüllt.
  • Der Minimal_Configuration_Check Algorithmus ist demzufolge in der Lage zu erfassen, ob die vorhergehende Konfiguration beendet werden sollte. Eine Indikation hiervon wird sehr wertvoll in den meisten Benutzerumgebungen in dem Sinne sein, dass die meisten Konfigurationen in einem realen Leben oftmals ausräumen, eine große Menge an Zuordnungen aufzuweisen. Es würde demzufolge extrem unbequem für den Benutzer sein zu erfahren, dass eine anhaltende Konfiguration beendet würde, kurz bevor alle erforderlichen Elemente in die Konfiguration hineingebracht wurden.
  • Der Minimal_Configuration_Check ist demzufolge so zu verstehen, eine Vorhersage anzugeben, ob mindestens eine Konfiguration möglich ist, bevor andere Zuordnungen vorgenommen werden.
  • Es sollte angemerkt werden, dass eine exklusive Verwendung des LookAhead Algorithmus, Schritt für Schritt, in einem Konfigurations-Verfahren oftmals den Benutzer in Sackgassen führen würde, die nicht bis zu dem Ende der versuchten Konfiguration entdeckt werden. Der Minimal_Configuration_Check wird sicherstellen, dass eine Sackgasse (Dead End), die nicht durch den LookAhead Algorithmus aufgedeckt wird, sehr früh in der Konfiguration entdeckt werden wird.
  • Eine Alternative zu der vorstehend erwähnten Beendigung der gerade ablaufenden Konfiguration würde, falls eine mögliche Konfiguration nicht gefunden werden könnte, so sein, dass die Algorithmus-Umgebung von Minimal_Configuration_Check eine Art und Weise einer Zurücknachvollziehung der vorherigen Zuordnungen ist, wenn eine Sackgasse entdeckt wird.
  • Die Fig. 8a und 8b stellen das Ergebnis des Algorithmus dar.
  • Der Minimal_Configuration_Check Algorithmus sucht nach mindestens einer möglichen Konfiguration, die gewöhnlich gegenüber dem Benutzer verdeckt ist. Gemäß der bevorzugten Ausführungsform der Erfindung wird die mögliche Konfiguration zur Verwendung in den folgenden Algorithmen gespeichert werden. Dieser Aspekt wird in weiterem Detail später diskutiert werden.
  • Die eine, aufgefundene, mögliche Konfiguration gemäß diesem Beispiel ist der Satz bzw. die Einstellung von A = B = D = E = TRUE, C = FALSE, X = 1 und Y = 3. Die aufgefundene Konfiguration ist in Fig. 8a dargestellt, während Fig. 8b die Summe der Kenntnis, erhalten an dieser Stufe der Algorithmen, darstellt. Es sollte betont werden, dass andere, mögliche Lösungen in Abhängigkeit von der Suchstrategie aufgefunden werden könnten.
  • Fig. 8b drückt die aufgefundene Konfiguration und den höheren Level einer Kenntnis in der folgenden Art und Weise aus.
  • Da X = 1 dahingehend befunden wurde, in einer möglichen Konfiguration umfaßt zu sein, ist X = 1 dasjenige, das möglicherweise gefolgert wird. Dies bedeutet, unter Bezugnahme auf die Ausdrücke bzw. Angaben, die in Fig. 16 zu sehen sind, dass sich die Kenntnis über den Objekt-Wert X = 1 von Level 0 zu Level 1 erhöht. Es ist nun demzufolge bekannt, dass irgendwelche weiteren, gefolgerten Informationen niemals zu einer Zurückweisung von X = 1 führen werden. Eine Zurückweisung würde in einer Kontradiktion resultieren, da X = 1 bereits dahingehend gezeigt worden ist, dass es TRUE ist, und zwar in der gefundenen, möglichen Lösung. Dabei sind nur zwei mögliche Kategorien übrig, nämlich gefolgert und nicht gebunden.
  • Da X = 1 nun möglicherweise gefolgert ist, wird weiterhin gefolgert, dass X = 0 möglicherweise zurückgewiesen ist.
  • In derselben Art und Weise sind die anderen Objekt-Werte der möglichen Konfiguration diejenigen, die jeweils möglich gefolgert sind, d. h. C = D = TRUE und Y = 3, was möglicherweise zurückgewiesen wird.
  • Eine anderer und sehr wichtiger Aspekt der gefundenen, möglichen Konfiguration ist derjenige, dass die gefundene Konfiguration anzeigt, dass die vorherigen, zugeordneten Objekt-Werte, d. h. A = TRUE, B = TRUE, E = TRUE, tatsächlich mit einigen der nicht bestimmten Objekt-Werten kombiniert werden kann, um die Regel-Basis zu erfüllen. Es ist nicht kritisch, dass die eine, gefundene, mögliche Konfiguration dem Benutzer präsentiert wird, allerdings sollte der Benutzer in Bezug auf weitere Benutzerzuordnungen blockiert werden, falls keine mögliche Konfiguration gefunden werden könnte, da keine Präsenz einer möglichen Konfiguration eine weitere Aktivität in derselben Richtung dahingehend bewirken würde, dass sie bedeutungslos ist.
  • Gemäß der Erfindung ist natürlich eine Möglichkeit vorhanden, die gefundene, mögliche Konfiguration dem Benutzer zu präsentieren, falls eine solche Information dahingehend angesehen würde, irgendeine Hilfe zu sein. Es ist weiterhin, gemäß der Erfindung, natürlich möglich, eine Indikation dem Benutzer zu geben, falls die eine, mögliche Konfiguration gefunden worden ist. Die Indikation würde dem Benutzer eine Idee über die laufende Konfiguration dahingehend vermitteln, dass sie auf dem rechten Weg zu einer gültigen Konfiguration hin ist, im Gegensatz dazu, dass sie in einer Sackgasse endet.
  • Die Suche nach der vorstehend erwähnten, möglichen Konfiguration wird in einem Suchbaum ausgeführt und der Suchbaum wird vorzugsweise in einer solchen Art und Weise organisiert werden, dass die am geringsten eingeschränkten Objekte am nächsten zu der Wurzel sind, um dadurch die Anzahl von Verzweigungen in dem Suchbaum zu minimieren. Es sollte angemerkt werden, dass viele andere Suchtechniken möglich sind, und zwar in Abhängigkeit von z. B. der Struktur der Objekte oder der ausgewählten Art eines Propagation Algorithmus.
  • Das Ergebnis des Minimal_Configuration_Check Algorithmus kann demzufolge ausgedrückt werden als
  • Zuordnungs-Liste: A = TRUE, B = TRUE, E = TRUE
  • gefundene, mögliche Konfiguration: JA (A = B = D = E = TRUE, C = FALSE, X = 1 und Y = 3)
  • Nicht gebunden (unbound)
  • Der nächste Algorithmus in der Kaskade besitzt auch eine erhöhte Zeitkomplexität. Der Algorithmus ist so angepaßt, um zu untersuchen, ob weitere, mögliche Konfigurationen unter den nicht bestimmten Objekt-Werten gefunden werden können. Das Ziel des Algorithmus ist weiterhin, herauszufinden, ob er als ein Objekt-Wert jedes Objekts ein Teil einer möglichen Konfiguration ist oder nicht. In der bevorzugten Ausführungsform der Erfindung wird die Suche ausgeführt, indem die Objekte, eines nach dem anderen, herangezogen werden, der Objekt-Wert geändert wird und nach einer weiteren, möglichen Konfiguration, gebildet durch den geänderten Wert, die zuvor zugeordneten Objekt-Werte und einige der nicht bestimmten Objekt-Werte gebildet sind. Falls eine weitere, mögliche Konfiguration, die den geänderten Objekt-Wert aufweist, gefunden ist, wird das Objekt dahingehend definiert, dass es nicht gebunden ist, und die Suche wird durch Ändern weiterer Objekte fortschreiten.
  • Die Definition eines nicht gebundenen Objekts ist demzufolge ein Objekt, das mindestens zwei Objekt-Werte besitzt, jedes eingeschlossen in einer möglichen Konfiguration. Als ein Anfangszustand wird der Unbound Algorithmus die bereits gefundene, mögliche Konfiguration in dem Minimal_Configuration_Check Algorithmus verwenden, die Objekt- Werte des Objekts einer nach dem anderen modifizieren und den geänderten Satz von Objekt-Werten propagieren, bis bestimmt worden ist, ob die Objekte in einer möglichen Konfiguration mit mindestens zwei Objekt-Werten enthalten sein können oder nicht. Das Ergebnis des Algorithmus ist in den Fig. 9a und 9b dargestellt. Die Figuren zeigen, dass der Algorithmus zu einem höheren Level einer Kenntnis in dem Sinne führt, dass der Objekt-Wert des Objekts X dahingehend gefolgert wird, dass er 1 ist, da keine Konfiguration, die den Wert X = 0 aufweist, gefunden werden konnte.
  • Die Objekte von C, D und Y werden weiterhin dahingehend gefolgert, dass sie nicht gebunden (Unbound) sind, da es möglich war, mögliche Konfigurationen zu finden, die C = D = TRUE/FALSE, Y = [3, 4], aufweisen.
  • Der Unbound Algorithmus präpariert demzufolge die Eingabe für den folgenden noch mehr Zeit verbrauchenden Algorithmus in dem Sinne, dass nur die Objekte, bestimmt dahingehend, dass sie nicht gebunden sind, untersucht werden, um eine ausreichende Kenntnis über den Rest des nicht bestimmten Raums von Objekt-Werten zu erhalten.
  • Es sollte angemerkt werden, dass die Objekte C und D nun ausreichend untersucht worden sind, da alle der Werte diese Objekte, d. h. TRUE oder FALSE, als ein Teil einer gültigen, möglichen Konfiguration propagiert worden sind. Diese Objekte haben nun Kenntnis- Level 2 erreicht, da bestätigt worden ist, dass diese Werte nicht gebunden sind und in einer Konfiguration enthalten sein können. Nur Y muss demzufolge geprüft werden, da noch nicht bestimmt ist, ob Y = [5..8] in einer gültigen Konfiguration enthalten sein kann oder nicht. Der höchste Level einer Kenntnis wird demzufolge erreicht, die Objekte C und D betreffend, da diese Werte nun mit Sicherheit als die nächste Benutzer-Zuordnung ausgewählt werden können, ohne mit der Regel-Basis in Konflikt zu treten.
  • Das Ergebnis des Unbound Algorithmus kann demzufolge ausgedrückt werden als
  • Zuordnungs-Liste: A = TRUE, B = TRUE, E = TRUE, X = 1
  • Unbound-Liste: C, D, Y = [3, 4].
  • Sufficient_Configuration_Check
  • Der End-Algorithmus in der Kaskade ist der Sufficient_Configuration_Check Algorithmus, der so angepaßt ist, um die abschließende, notwendige Teilkenntnis über die nicht bestimmten Objekte zu folgern. Dieser wesentliche Algorithmus wird sicherstellen, dass klare Informationen über nicht zugeordnete Objekt-Werte dem Benutzer präsentiert werden können. Die Informationen geben an, ob die Objekt-Werte, die in Rede stehen, durch weitere Benutzerzuordnungen ausgewählt werden können.
  • Das Ziel des Sufficient_Configuration_Check Algorithmus ist demzufolge, zu untersuchen, ob der Rest der nicht bestimmten Objekt-Werte in einer möglichen Konfiguration enthalten ist. Falls einige dieser Objekt-Werte nicht dahingehend befunden werden, dass sie in irgendeiner möglichen Konfiguration enthalten sind, müssen die Objekt-Werte, im Hinblick auf die Erfindung, zurückgewiesen werden. Ein zurückgewiesener Objekt-Wert ist von den nächsten, möglichen Benutzerzuordnungen ausgeschlossen oder zumindest mit einer Indikation markiert, die zeigt, dass der Objekt-Wert nicht eine gültige, nächste Auswahl ist.
  • Fig. 10a und 10b stellen das Ergebnis des Algorithmus dar. Der Sufficient_Configuration_Check Algorithmus folgert weiterhin, dass die Objekt-Werte Y = [5..7] und Y = [9, 10] nicht in gültigen Konfigurationen enthalten sind und die Objekt-Werte werden demzufolge zurückgewiesen.
  • Der Algorithmus folgert weiterhin, dass der Wert Y = [8] in einer gültigen Konfiguration enthalten ist. Die Kenntnis, hinzugefügt zu der Kenntnis, erhalten in dem letzteren Algorithmus, zeigt, dass Y = [3, 4, 8] alle möglichen Objekt-Werte sind. Die Werte werden demzufolge dahingehend befunden, dass sie nicht gebunden sind, und zwar im Hinblick auf die Erfindung.
  • Das Ergebnis des Sufficient_Configuration_Check Algorithmus kann demzufolge ausgedrückt werden als
  • Zuordnungs-Liste: A = TRUE, B = TRUE, E = TRUE, X = 1
  • Unbound-Liste: C, D, Y = [3, 4, 8]
  • Alle Objekt Werte haben nun den höchsten Level einer Kenntnis erreicht, d. h. Level 2. Dies bedeutet, dass alle gefolgerten Informationen in der Zuordnungs-Liste zu der Teil- Konfiguration hinzugefügt werden können. Weiterhin werden nicht gebundene Objekt- Werte, vorstehend aufgelistet, nun dahingehend gefolgert, dass sie eine mögliche und gültige nächste Auswahl sind, und diese Informationen können dem Benutzer geliefert werden. Der Benutzer kann nun sicher sein, dass die folgenden Bemühungen, um eine End-Konfiguration zu erstellen, erfolgreich sein können.
  • Unter Bezugnahme nun auf Fig. 11 wird ein Propagation Algorithmus gemäß einer bevorzugten Ausführungsform der Erfindung anhand eines Flußdiagramms beschrieben werden, das die prinzipiellen Grundoperationen des Algorithmus darstellt. Die bevorzugtesten Propagations-Algorithmen basieren auf der Offenbarung des Europäischen Patents Nr. 0 456 675, allerdings sollte angemerkt werden, dass der notwendige Propagation Algorithmus auf zahlreiche Arten und Weisen innerhalb des Schutzumfangs der Erfindung ausgeführt werden kann.
  • Die Ausdrücke in dem Flußdiagramm in Fig. 11 werden durch die folgenden Erläuterungen definiert.
  • Eine PartialConfiguration ist ein gesamter Satz von Objekt-Werten und deren zugeordnete Kenntnis, was demzufolge eine Teil-Konfiguration bildet, bei der die gesamte Kenntnis zusammengestellt ist,
  • Q ist eine Warteschlange, die logische Regeln enthält,
  • R ist eine Regel und
  • Δ ist ein Satz von Objekt-Werten, die dahingehend gefolgert wurden, dass sie entweder eingeschlossen oder zurückgewiesen sind als eine Folge der Zuordnungen in PartialConfiguration.
  • Der Propagation Algorithmus wird im Schritt 101 initiiert. Im Schritt 102 wird eine PartialConfiguration von dem aufrufenden Algorithmus beibehalten. Regeln von der Regel- Basis werden in eine Warteschlange Q eingegeben und der Propagation Algorithmus schreitet zu Schritt 103 fort. Im Schritt 103 wird eine Regel R von der Warteschlange Q warteschlangenmäßig herausgenommen. Im Schritt 104, Scanrule (R), verwendet der Propagation Algorithmus den Algorithmus, der in der parallel anhängigen Anmeldung "A Method of Processing a Request to a Boolean Rule", angemeldet durch den Anmelder am selben Tag wie diese Anmeldung, beschrieben ist. Die Scanrule(R) führt einen Satz Δ von gefolgerten und zurückgewiesenen Objekt-Werten, nicht bestimmt in der PartialConfiguration, zurück. Es sollte verständlich werden, dass der Satz Δ möglicherweise leer sein kann, falls keine Informationen durch das Abtasten der Regel oder der Regeln gefolgert werden konnten. Scanrule wird fehlschlagen, falls die Regel R in Kontradiktion zu der PartialConfiguration steht. Falls Scanrule nicht eine Kontradiktion erfasst, schreitet der Algorithmus zu Schritt 106 fort. Falls ein Konflikt erfasst ist, schreitet der Propagation Algorithmus zu Schritt 105 fort, und der Propagation Algorithmus wird mit einer Kontradiktion beendet. Im Schritt 106 wird die Kenntnis, falls eine vorhanden ist, von Δ der PartialConfiguration zugeordnet, und die PartialConfiguration weist nun die original dem Benutzer zugeordneten Objekt-Werte auf, die ausgewählt oder ausgesondert werden sollen, und die Kenntnis, gefolgert in Schritt 104, die gefolgert oder ausgesondert werden soll. Es sollte angemerkt werden, dass die Kenntnis von Δ der PartialConfiguration zugeordnet werden kann, da keine Kontradiktionen im Schritt 104 erfasst wurden. Die Kenntnis, umfaßt in Δ, ersetzt demzufolge nur Objekt-Werte eines niedrigeren Kenntnis-Levels.
  • In dem folgenden Schritt 107 werden alle Regeln von der Regel-Basis, umfassend Objekte, erwähnt in Δ, zu Q hinzugefügt.
  • In dem folgenden Schritt 108 wird die Warteschlange Q geprüft. Falls Q leer ist oder falls ein TimeOut aufgetreten ist, endet der Algorithmus und schreitet zu dem Endschritt 109 ohne Kontradiktionen fort. Falls die Warteschlange nicht leer ist, reiteriert der Vorgang zu Schritt 103.
  • Wenn der Endschritt erreicht ist, sind alle Regeln propagiert worden, und irgendeine weitere Kenntnis über nicht bestimmte Objekt-Werte kann erhalten worden sein. Die möglichen, erhaltbaren Informationen hängen von der Art und Weise ab, wie die Regel-Basis und ScanRule (R) ausgeführt werden. Falls eine Regel-Basis durch z. B. eine auf IF-THEN basierende Programmierung definiert wird, kann es wahrscheinlich schwierig sein, ausreichende Informationen zu extrahieren, und gemäß der Erfindung ist es demzufolge bevorzugt, eine logisch-basierende Regelstruktur und Abtastung zu verwenden, wie dies in dem Europäischen Patent Nr. 0 456 675 beschrieben ist.
  • Unter Bezugnahme nun auf Fig. 12 wird ein Unbound Algorithmus gemäß einer bevorzugten Ausführungsform der Erfindung beschrieben. Das Flußdiagramm stellt die prinzipiellen Basisoperationen des Algorithmus dar.
  • Die Ausdrücke in dem Flußdiagramm in Fig. 1 werden durch die nachfolgenden Erläuterungen definiert.
  • Tested (getestet) ist eine Liste von Objekt-Werten. Diese Liste wird verwendet, um nachzuvollziehen, welche Objekt-Werte getestet worden sind.
  • AssertedValue (aufgestellter Wert) ist ein unbekannter Objekt-Wert, temporär so zugeordnet, um entweder gefolgert oder zurückgewiesen zu sein.
  • PartialConfiguration (Teil-Konfiguration) ist der gesamte Satz von Objekt-Werten und deren zugeordnete Kenntnis, was demzufolge die Teil-Konfiguration bildet, bei der die gesamte Kenntnis zusammengestellt ist.
  • Der Unbound Algorithmus wird im Schritt 110 initiiert und schreitet zu Schritt 111 fort. Im Schritt 111 wird die Liste Tested anfänglich so gesetzt, dass sie die Liste von bestimmten Objekt-Werten ist, und der AssertedValue wird anfänglich so gesetzt, dass er VOID ist, d. h. nicht existiert. PartialConfiguration bildet die Auswahlen und die gefolgerten Werte, verfügbar, wenn der Algorithmus initiiert wird. Nach den Initialisierungen, aufgelistet vorstehend, schreitet der Algorithmus zu Schritt 112 fort.
  • Im Schritt 112 findet der Algorithmus einen Objekt-Wert, der nicht in Tested vorhanden ist. Falls ein solcher Wert gefunden werden kann, schreitet der Algorithmus zu Schritt 114 fort.
  • Falls nicht ein solcher Wert existiert oder falls dort ein TimeOut vorhanden gewesen ist, wird der Algorithmus im Schritt 113 beendet.
  • Im Schritt 114 wird der ausgewählte Objekt-Wert, gefunden im Schritt 112, zu AssertedValue zugeordnet, wie gefolgert ist, d. h. TRUE, und der Algorithmus schreitet zu Schritt 115 fort.
  • Im Schritt 115 wird der zuvor beschriebene Propagation Algorithmus mit PartialConfiguration als ein Eingabe-Objekt-Wert-Satz aufgerufen. Das aktualisierte PartialConfiguration weist demzufolge die zuvor zugeordneten Objekt-Werte und den AssertedValue auf. Wenn die Propagation von PartialConfiguration nicht zu einem Konflikt mit der Regel-Basis führt, schreitet der Algorithmus zu Schritt 116 fort. Da die Propagation erfolgreich für AssertedValue war, wird die Zuordnung von AssertedValue nun so geändert, dass sie zurückgewiesen wird, d. h. FALSE in der PartialConfiguration in der Hoffnung, eine Kontradiktion zu erreichen, und der Algorithmus schreitet zu Schritt 117 fort. Im Schritt 117 wird eine weitere Propagation aufgerufen. Falls diese Propagation zum Erfolg führt, wird demzufolge gefolgert, dass der Objekt-Wert des AssertedValue sowohl TRUE als auch FALSE sein kann, und der Algorithmus schreitet zu Schritt 118 fort. Die Propagation ist nun für den Objekt-Wert erfolgreich gewesen, zugeordnet so, um zum Schluß zu gelangen ebenso wie zurückgewiesen zu werden. Demzufolge kann nicht entweder dafür oder dagegen gefolgert werden, der AssertedValue wird auf VOID gesetzt und die Behauptung wird nicht in der PartialConfiguration vorgenommen, und der Algorithmus schreitet zu Schritt 112 fort. Falls das Ergebnis der Propagation im Schritt 115 ein Konflikt mit der Regel-Basis war, schreitet der Algorithmus zu Schritt 120 fort, da eine Propagation für AssertedValue, zugeordnet gefolgert im Schritt 115, nicht erfolgreich war, dieser Objekt-Wert dahingehend befunden wurde, dass er zurückgewiesen ist, d. h. FALSE, und das Partialconfiguration wird im Schritt 120 aktualisiert. Weiterhin ist das aktualisierte Partialconfiguration Propagated und der Algorithmus kehrt zu Schritt 112 für einen weiteren Test von nicht bestimmten Objekt-Werten zurück, die bis hier noch nicht getestet worden sind.
  • Unter Bezugnahme wiederum auf Fig. 13 wird ein Minimal_Configuration_Check Algorithmus gemäß einer bevorzugten Ausführungsform der Erfindung anhand eines Flußdiagramms beschrieben werden, das die prinzipiellen Basisoperationen des Algorithmus darstellt.
  • Die Ausdrücke in dem Flußdiagramm in Fig. 13 werden durch die folgenden Erläuterungen definiert.
  • AssertedValue in diesem Algorithmus ist ein Objekt-Wert, temporär zugeordnet gefolgert. PartialConfiguration ist der gesamte Satz von Objekt-Werten, zugeordnet zu deren Kenntnis, was demzufolge die Teil-Konfiguration bildet, in der die gesamte Kenntnis gesammelt ist.
  • Der Minimal_Configuration_Check Algorithmus wird in dem Schritt 140 initiiert und schreitet zu Schritt 141 fort. Im Schritt 141 werden alle Datenstrukturen initialisiert. Der AssertedValue wird so initialisiert, dass er VOID ist, und die PartialConfiguration wird so initialisiert, um die zuvor gefundenen oder ausgewählten, zugeordneten Objekt-Werte, geliefert durch den zuvor beschriebenen Algorithmus LookAhead, aufzuweisen.
  • Der Algorithmus schreitet zu Schritt 142 fort, in dem nicht bestimmte Objekt-Werte so aufgestellt werden, um in AssertedValue umfaßt zu sein, und zu PartialConfiguration hinzugefügt und um durch den Propagation Algorithmus in einer Suche nach einer End- Konfiguration, die die Regel-Basis erfüllt, propagiert werden. Falls die Propagation von PartialConfiguration zu einer Kontradiktion führt, wird der gefolgerte Objekt-Wert nicht erledigt und der andere Objekt-Wert wird dahingehend aufgestellt, dass er gefolgert und propagiert wird.
  • Der Algorithmus wird schleifenmäßig fortgeführt, bis ein mögliches PartialConfiguration aufgefunden worden ist oder wenn keine weiteren, nicht bestimmten Objekt-Werte aufgestellt werden können. Falls eine mögliche Konfiguration gefunden werden kann, schreitet der Algorithmus zu Schritt 143 fort und der Algorithmus endet.
  • Falls keine mögliche Konfiguration gefunden werden konnte, schreitet der Algorithmus zu. Schritt 144 fort und der Algorithmus endet. Im Schritt 144 werden Fehlernachrichten initiiert werden.
  • Unter Bezugnahme nun auf Fig. 14 wird ein Unbound Algorithmus gemäß einer bevorzugten Ausführungsform der Erfindung anhand eines Flußdiagramms beschrieben werden, das die prinzipiellen Basisoperationen des Algorithmus darstellt.
  • Die Ausddrücke in dem Flußdiagramm in Fig. 14 werden durch die nachfolgenden Erläuterungen definiert.
  • Die folgenden Definitionen eines Kenntnis-Levels beziehen sich auf Kenntnis-Level, dargestellt in Fig. 16.
  • Wenn ein Unbound Algorithmus beginnt, sind alle Werte Kenntnis-Werte von 1 oder 3 zugeordnet worden, entsprechend zu möglicherweise gefolgert, möglicherweise zurückgewiesen und gefolgert/zurückgewiesen jeweils.
  • Es sollte daran erinnert werden, dass ein nicht bestimmtes Objekt ein Objekt mit einem Wert, zugeordnet zu einem Kenntnis-Wert auf Level 2 oder weniger, ist. Umgekehrt ist ein bestimmtes Objekt ein Objekt mit einem Wert gefolgert/ausgewählt und alle anderen Werte zurückgewiesen/ausgesondert, d. h. auf Level 3.
  • AssertedValue in diesem Algorithmus ist ein Objekt-Wert, temporär zugeordnet gefolgert. PartialConfiguration ist der gesamte Satz von Objekt-Werten und deren zugeordnete Kenntnis, was demzufolge die Teil-Konfigurationen bildet, in der die gesamte Kenntnis zusammengestellt ist.
  • Der Unbound Algorithmus wird im Schritt 121 initiiert und schreitet zu Schritt 122 fort. Im Schritt 122 werden alle Datenstrukturen initialisiert. Der AssertedValue wird so initialisiert, dass er VOID ist, PartialConfiguration wird zu der möglichen Konfiguration, gefunden in dem zuvor beschriebenen Algorithmus Minimal_Configuration_Check, initialisiert. Der Algorithmus schreitet zu Schritt 123 fort. Im Schritt 123 wird ein nicht bestimmtes Objekt ohne einen nicht gebundenen Objekt-Wert ausgewählt. Der Algorithmus schreitet zu Schritt 124 fort und endet, falls es unmöglich ist, einen nicht gebundenen Objekt-Wert zu finden, d. h. alle Objekte, die nicht gebundene Werte haben, sind eingerichtet worden. Der Algorithmus schreitet auch zu Schritt 124 von Schritt 123 fort, falls dort ein TimeOut vorhanden gewesen ist. Ansonsten schreitet der Algorithmus zu Schritt 125 fort.
  • In diesem Schritt 125 ist sicher, dass das Objekt, das ausgewählt ist, Werte hat, die einer Kenntnis auf Level 1 zugeordnet sind. Nun wird ein Wert herausgegriffen, der möglicherweise zurückgewiesen worden ist, und er wird so aufgestellt, dass er möglicherweise gefolgert wird, durch Zuordnen von AssertedValue, und der Algorithmus schreitet zu Schritt 126 fort.
  • Im Schritt 126 wird eine Suche nach einer möglichen Konfiguration mit AssertedValue eingerichtet. Falls eine solche Konfiguration gefunden ist, wird das PartialConfiguration mit der Kenntnis von der neuen, möglichen Konfiguration aktualisiert, und der Algorithmus schreitet zu Schritt 127 fort.
  • An diesem Punkt, d. h. in Schritt 127, sind mindestens zwei mögliche Konfigurationen vorgefunden worden. Eine mit dem AssertedValue als möglicherweise zurückgewiesen und eine mit dem AssertedValue als möglicherweise gefolgert. Andere Objekt-Werte mit entgegengesetzten Kenntnis-Werten können existieren, d. h. möglicherweise gefolgert gegenüber möglicherweise zurückgewiesen, und zwar in der neuen, möglichen Konfiguration und der PartialConfiguration. Immer wenn dies der Fall ist, werden solche Objekt-Werte aktualisiert und so eingestellt, dass sie nicht gebunden sind. Die Kenntnis, hergeleitet an dieser Stufe, ist demzufolge diejenige, dass bestimmte, geänderte Objekte möglicherweise in weiteren, möglichen Konfigurationen umfaßt sein könnten, und die Objekte werden so eingestellt, dass sie nicht gebunden sind. Anstelle einer weiteren Untersuchung dieser nicht gebundenen Objekte werden diese Objekte für eine weitere Untersuchung durch den nächsten Algorithmus, Sufficient_Configuration_Check, belassen, und der Algorithmus schreitet so zu Schritt 123 fort.
  • Andere Objekte werden durch die Objekt-Werte dieser Objekte hinweg untersucht, allerdings sind keine dieser geänderten Objekt-Werte dahingehend vorgefunden, dass sie in einer möglichen Konfiguration umfaßt sind.
  • Falls keine Konfiguration im Schritt 126 vorgefunden wird, schreitet der Algorithmus zu Schritt 128 fort. Da keine Konfiguration im Schritt 126 mit dem AssertedValue gefunden wurde, kann dieser Wert nicht gefolgert werden, d. h. in der PartialConfiguration zugeordnet werden. Demzufolge wird dieser Wert in der Partialconfiguration zurückgewiesen und der Algorithmus schreitet zu Schritt 129 fort.
  • Im Schritt 129 wird eine neue, aktualisierte Partialconfiguration propagiert, und der Algorithmus kehrt zu Schritt 123 zurück.
  • Der Algorithmus endet, da eine Kenntnis strikt in jeder Iteration des Algorithmus erhöht wird, und demzufolge existieren, nach einer Anzahl von Iterationen, keine weiteren, unbestimmten Werte, ohne nicht gebunden zu sein.
  • Unter Bezugnahme nun auf Fig. 15 wird ein Sufficient_Configuration_Check Algorithmus gemäß einer bevorzugten Ausführungsform der Erfindung anhand eines Flußdiagramms beschrieben, das die prinzipiellen Basisoperationen des Algorithmus darstellt.
  • Die Ausdrücke des Flußdiagramms in Fig. 15 werden durch die folgenden Erläuterungen definiert.
  • AssertedValue ist ein Objekt-Wert, der temporär zugeordnet gefolgert in diesem Algorithmus ist.
  • PartialConfiguration ist der gesamte Satz von Objekt-Werten und deren zugeordnete Kenntnis, was demzufolge die Teil-Konfiguration bildet, bei der die gesamte Kenntnis zusammengestellt ist.
  • Der Sufficient_Configuration_Check Algorithmus wird im Schritt 130 initiiert und schreitet zu Schritt 131 fort. Im Schritt 131 werden alle Datenstrukturen initialisiert. Der AssertedValue ist initialisiert, so dass er VOID ist, d. h. nicht existiert, die PartialConfiguration wird von dem vorherigen Algorithmus Unbound beibehalten und der Algorithmus schreitet zu Schritt 132 fort. Im Schritt 132 wird ein nicht gebundenes Objekt von dem Satz von Objekten ausgewählt. Falls es nicht möglich ist, ein nicht gebundenes Objekt zu finden, schreitet der Algorithmus zu Schritt 133 fort und der Algorithmus endet. Weiterhin schreitet der Algorithmus zu Schritt 133 von Schritt 132 fort, falls ein TimeOut eingerichtet worden ist. Ansonsten schreitet der Algorithmus zu Schritt 134 fort.
  • Im Schritt 134 wird ein Wert, der zuvor zurückgewiesen worden ist, aufgenommen und so aufgestellt, um möglicherweise durch Zuordnen von AssertedValue gefolgert zu werden. Falls alle Objekt-Werte entweder Unbound oder Determined sind, schreitet der Algorithmus zu Schritt 135 fort, ansonsten re-iteriert der Algorithmus von Schritt 132 aus.
  • Im Schritt 135 sucht der Algorithmus nach einer möglichen Konfiguration mit AssertedValue. Falls eine solche aufgefunden wird, wird PartialConfiguration mit der Kenntnis von der neuen, möglichen Konfiguration aktualisiert, und der Algorithmus schreitet zu Schritt 136 fort. Ansonsten schreitet der Algorithmus zu Schritt 137 fort.
  • Im Schritt 137 kann der AssertedValue nicht gefolgert werden, da keine Konfiguration mit AssertedValue gefunden wurde. Demzufolge wird dieser Wert in der PartialConfiguration zurückgewiesen und der Algorithmus schreitet zu Schritt 138 fort. Im Schritt 138 wird das neue aktuelle PartialConfiguration in die Regel-Basis propagiert und kehrt dann zu Schritt 132 zurück.
  • Im Schritt 136 sind mindestens zwei mögliche Konfigurationen vorgefunden worden. Eine mit dem AssertedValue als möglicherweise zurückgewiesen und eine mit dem AssertedValue als möglicherweise gefolgert. Andere Objekt-Werte mit entgegengesetzten Kenntnis-Werten können existieren (möglicherweise gefolgert gegenüber möglicherweise zurückgewiesen) in der neuen, möglichen Konfiguration und der PartialConfiguration. Immer wenn dies der Fall ist, werden solche Objekt-Werte dahingehend aktualisiert, dass sie nicht gebunden sind, und der Algorithmus re-iteriert von Schritt 134 aus.
  • Wiederum endet der Algorithmus, da eine Kenntnis strikt in jeder Iteration des Algorithmus erhöht wird.
  • Da der Sufficient_Configuration_Check Algorithmus beendet ist, wird eine volle Kenntnis über die Objekte und die Objekt-Werte eingerichtet. Es ist nun möglich vorherzusagen, ob die nächste Benutzerauswahl möglich ist oder nicht, da alle zurückgewiesenen Objekt- Werte markiert werden können oder von der Benutzerschnittstelle herausgenommen werden können. Alle anderen möglichen Benutzerauswahlen könnten in ähnlicher Weise markiert werden, wobei die Markierung anzeigt, dass dieser Objekt-Wert eine gültige, nächste Auswahl ist.
  • Da mindestens eine mögliche Konfiguration für jede nächste, mögliche Auswahl gefunden ist, d. h. ein nicht gebundener Wert, ist dabei kein Risiko vorhanden, in einer Sackgasse in der nächsten Benutzer-Auswahl zu enden. Wenn der Algorithmus abgeschlossen ist, ist eine volle oder ausreichende Kenntnis eingerichtet.
  • Das Hauptgewicht dieses Algorithmus liegt demzufolge darin, dass er eine ausreichende Kenntnis über den nicht bestimmten Raum von Objekt-Werten herleitet, um sicherzustellen, dass die nächsten, möglichen Benutzerauswahlen gültig sind und nicht in einer Sackgasse enden, wogegen der Minimal_Configuration_Check Algorithmus nur in der Lage ist zu erfassen, ob eine vorgenommene Auswahl bereits in eine Sackgasse eingetreten ist. Es wird realisiert, dass ein Computer-System gemäß der Erfindung eine sehr starke Funktionsweise verglichen mit Systemen nach dem Stand der Technik besitzt, wenn das klassische N-queen Problem geprüft wird. Kurz gesagt ist das N-queen Problem das Problem eines Platzierens von N Königinnen von dem Schachspiel auf einem Brett, das N mal N Felder besitzt, so dass sie nicht in der Lage sind, sich gegenseitig gemäß den Regeln des Schachs zu attackieren, d. h. nur eine Königin kann in jeder Reihe, Spalte und Diagonalen des Bretts vorhanden sein. Bei einem System nach dem Stand der Technik kann eine erste Königin frei platziert werden, und dies wird dahingehend verifiziert, dass diese gültig ist gemäß den Regeln. Wenn sie allerdings dorthin gelangt, wo eine zweite Königin in einem Feld auf dem Brett platziert werden kann, so dass die verbleibenden N-2 Königinnen auch gemäß den Regeln platziert werden können, ist ein NP-Hard-Problem vorhanden und entweder keine Informationen darüber, wo die zweite Königin zu platzieren ist, können präsentiert werden, oder es wird Zeit benötigen, proportional zu exp(N), um die Informationen zu berechnen.
  • Anstelle zu einem Konfigurationssystem gemäß der vorliegenden Erfindung wird die Berechnung des NP-Hard-Problems begonnen, und mögliche Lösungen darüber, wo die zweite Königin platziert werden kann, werden eine nach der anderen geprüft. Wenn ein Zeitgeber oder eine Benutzerunterbrechung die Berechnung unterbricht, dann werden bereits berechnete Lösungen dem Benutzer ungeachtet der Tatsache präsentiert, dass die gesamten Lösungen bis jetzt noch nicht gefunden sind. Allerdings richtet der Benutzer keine Aufmerksamkeit darauf, dass er dahingehend zufriedengestellt ist, dass er mindestens eine garantierte Lösung besitzt, die ihm ermöglicht, alle N Königinnen zu platzieren. Ein bevorzugtes Verfahren einer Propagation und einer Deduktion von Konsequenzen ist in der WO 90/09001 offenbart.
  • Eine bevorzugte Ausführungsform für eine Konfigurationsmaschine ist in der WO 90/09001 offenbart.
  • Es sollte hervorgehoben werden, dass die Erfindung in keinster Weise auf die beschriebene, bevorzugte Ausführungsform beschränkt ist. Weiterhin sollte angemerkt werden, dass das Ziel der eingeführten, graduierten Ausdrücke eines Kenntnis-Levels dazu dient, die Erfindung zu erläutern.
  • Die Erfindung kann als ein Computerprogramm oder als ein Teil eines Computerprogramms ausgeführt werden, das in den Speicher eines Computers eingeladen und daraus ausgeführt werden kann. Das Computerprogramm kann mittels irgendeines Datenspeichers oder eines Datenübertragungsmediums verteilt werden. Das Speichermedium kann ein magnetisches Band, eine optische Platte, eine Kompakt-Disk (CD oder CD-ROM), eine Mini-Disk, eine Hard-Disk, eine Floppy-Disk, ein ferro-elektrischer Speicher, ein elektrisch löschbarer, programmierbarer Read-Only-Memory (EEPROM), ein Flash-Memory, ein EPROM, ein Read-Only-Memory (ROM), ein Static-Random-Acces-Memory (SRAM), ein Dynamic-Random-Access-Memory (DRAM), ein ferro-magnetischer Speicher, ein optischer Speicher, ladungsgekoppelte Vorrichtungen, Smart Cards, usw., sein. Das Übertragungsmedium kann ein Netzwerk, z. B. ein Local Area Network (LAN), ein Wide Area Network (WAN) oder irgendeine Kombination davon sein, z. B. das Internet. Das Netzwerk kann verdrahtete und drahtlose Kommunikationsverbindungen aufweisen. Über das Netzwerk kann eine Softwareausführung (d. h. ein Programm) der Erfindung, oder ein Teil davon, durch Übertragen eines Programms über das Netzwerk, verteilt werden.

Claims (13)

1. Computerunterstütztes Verfahren zum Konfigurieren eines Satzes von Objekten (A,B,C,D,E,X,Y) in einem Computer, indem einem Benutzer ermöglicht wird, einen aus einer Anzahl von vorbestimmten Objektwerten (12) zu den Objekten zuzuordnen, die nicht vorbestimmte Objektwerte (11) haben,
wobei die Zuordnung von Objektwerten (12) zu den Objekten, die durch eine Regel- Basis eingeschränkt ist, definiert, welche Zuordnungen von Objektenwerten zu Objekten (A,B,C,D,E,X,Y) gültig sind und welche nicht gültig sind,
wobei die Gültigkeit der Werte, zugeordnet zu den Objekten, gegenüber der Regel- Basis mittels einer Konfigurationsmaschine verifiziert wird, die auch in der Lage ist, eine Kenntnis über die möglichen Objektwerte (12) der Objekte, die nicht bestimmte Objektwerte (11) haben, abzuleiten,
dadurch gekennzeichnet, dass das Verfahren die Schritte aufweist:
Erzeugen von temporären Kombinationen von Zuordnungen von Objektwerten zu den Objekten, wobei sich die Kombinationen in Werten, zugeordnet zu einem gegebenen Objekt, durch Zuordnen von bestimmten Objektwerten zu Objekten und durch Verifizieren, ob die temporären Kombinationen von Zuordnungen gültig sind, falls welche vorhanden sind, bis mindestens zwei, allerdings nicht alle, der gültigen Kombinationen dahingehend verifiziert worden sind, dass sie gültig sind, unterscheiden,
falls mindestens zwei Zuordnungen, die sich in dem Wert, zugeordnet zu einem gegebenen Objekt, unterscheiden, gültig sind, gemäß der Regel-Basis, Liefern einer Kenntnis dem Benutzer, anzeigend, dass das gegebene Objekt dahingehend abgeleitet ist, dass es ungebunden ist.
2. Computerunterstütztes Verfahren nach Anspruch 1, das weiterhin den Schritt eines Lieferns einer Kenntnis dem Benutzer aufweist, anzeigend, dass das gegebene Objekt dahingehend abgeleitet ist, dass es gebunden ist, falls höchstens eine der Kombinationen gültig ist, gemäß der Regel-Basis.
3. Computerunterstütztes Verfahren, nach den Ansprüchen 1-2, dadurch gekennzeichnet, dass jedes Objekt einer Domäne von vorbestimmten Objektwerten zugeordnet ist.
4. Computerunterstütztes Verfahren nach Anspruch 3, das weiterhin den Schritt eines Zuordnens von unterschiedlichen, vorbestimmten Werten, von der Domäne von vorbestimmten Objektwerten, zu dem gegebenen Objekt aufweist, bis mindestens zwei gültige Kombinationen aufgefunden worden sind oder bis alle vorbestimmten Objektwerte von der Domäne von vorbestimmten Objektwerten dem gegebenen Objekt zugeordnet worden sind.
5. Computerunterstütztes Verfahren nach den Ansprüchen 1-4, das weiterhin den Schritt eines Auswählens eines Objekts, das einen nicht vorbestimmten Objektwert besitzt, als das gegebene Objekt, aufweist.
6. Computerunterstütztes Verfahren nach den Ansprüchen 1-5, dadurch gekennzeichnet, dass die vorbestimmten Werte aufgezählte Werte aufweisen.
7. Computerunterstütztes Verfahren nach den Ansprüchen 1-6, dadurch gekennzeichnet, dass die vorbestimmten Werte die Boolschen-Werte wahr und falsch umfassen.
8. Computerunterstütztes Verfahren nach den Ansprüchen 1-7, das weiterhin die Schritte von zuerst Liefern von Informationen dem Benutzer, dass Objekte nicht vorbestimmte Werte haben, und zweitens Ermöglichen, dass der Benutzer vorbestimmte Werte den Objekten, die nicht vorbestimmte Werte haben, zuordnet, aufweist.
9. Computerunterstütztes Verfahren nach den Ansprüchen 1-8, dadurch gekennzeichnet, dass die Kombinationen von Objektwerten ausgewählt werden, um vorbestimmte Objektwerte, zugeordnet durch einen Benutzer, und vorbestimmte Objektwerte, zugeordnet durch den Algorithmus, aufweisen (83).
10. Computerunterstütztes Verfahren nach den Ansprüchen 1-9, das weiterhin den Schritt eines Anzeigens dem Benutzer für das gegebene Objekt, welches vorbestimmte Werte zu einer gültigen Konfiguration führten, falls welche vorhanden sind, aufweist.
11. Computerunterstütztes Verfahren nach den Ansprüchen 1-10, dadurch gekennzeichnet, dass der Schritt eines Erzeugens der ersten und der zweiten temporären Kombination den Schritt eines Zuordnens vorbestimmter Objektwerte zu Objekten, die nicht vorbestimmte Objektwerte haben und umfassend Objekte, die bestimmte Objektwerte haben, in der ersten und der zweiten Kombination, aufweist.
12. Computersystem, das Einrichtungen zum Ausführen eines Programms aufweist, wobei das Programm, wenn es ausgeführt wird, den Computer das Verfahren nach den Ansprüchen 1-11 ausführen lässt.
13. Computerlesbares Medium, das ein Programm, aufgezeichnet darauf, besitzt, wobei das Programm, wenn es ausgeführt wird, den Computer das Verfahren nach den Ansprüchen 1-11 ausführen lässt.
DE69806396T 1997-09-09 1998-09-09 Ein verfahren und ein computersystem zum konfigurieren eines objektsatzes Expired - Fee Related DE69806396T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DK103597 1997-09-09
PCT/DK1998/000384 WO1999013410A2 (en) 1997-09-09 1998-09-09 A method and a computer system for configuring a set of objects

Publications (2)

Publication Number Publication Date
DE69806396D1 DE69806396D1 (de) 2002-08-08
DE69806396T2 true DE69806396T2 (de) 2002-10-24

Family

ID=8100274

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69806396T Expired - Fee Related DE69806396T2 (de) 1997-09-09 1998-09-09 Ein verfahren und ein computersystem zum konfigurieren eines objektsatzes

Country Status (8)

Country Link
US (1) US6192355B1 (de)
EP (1) EP1012754B1 (de)
JP (1) JP2001516101A (de)
AT (1) ATE220229T1 (de)
AU (1) AU9062598A (de)
DE (1) DE69806396T2 (de)
DK (1) DK1012754T3 (de)
WO (1) WO1999013410A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2431209A1 (en) * 2000-12-08 2002-06-13 Configit Software A/S A method of configuring a product using a directed acyclic graph
US7558642B2 (en) * 2007-04-27 2009-07-07 International Business Machines Corporation Method, apparatus, and product for optimizing manufacturing tests by integrating part and test objects in the same order configuration application
US10303808B2 (en) * 2014-05-16 2019-05-28 Configit A/S Product configuration
US9767308B2 (en) * 2015-05-29 2017-09-19 Rockwell Automation Technologies, Inc. Custom security policies for multiple objects
US10318703B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Maximally standard automatic completion using a multi-valued decision diagram

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4591983A (en) * 1984-07-09 1986-05-27 Teknowledge, Inc. Hierarchical knowledge system
IL93220A0 (en) 1989-02-03 1990-11-05 Bang & Olufsen As Signal processing apparatus and method
US5195172A (en) * 1990-07-02 1993-03-16 Quantum Development Corporation System and method for representing and solving numeric and symbolic problems
US5446885A (en) * 1992-05-15 1995-08-29 International Business Machines Corporation Event driven management information system with rule-based applications structure stored in a relational database
CA2094946C (en) * 1992-05-27 1998-07-07 James Melton Crawford Jr. Efficient nonmonotonic reasoning apparatus and methods
US5638492A (en) * 1992-09-08 1997-06-10 Hitachi, Ltd. Information processing apparatus and monitoring apparatus
EP0587093B1 (de) * 1992-09-08 1999-11-24 Hitachi, Ltd. Informationsverarbeitungsvorrichtung mit Schlussfolgerung und adaptivem Lernen
US5402524A (en) * 1992-12-22 1995-03-28 Mitsubishi Denki Kabushiki Kaisha Case-based knowledge source for artificial intelligence software shell
US5515524A (en) 1993-03-29 1996-05-07 Trilogy Development Group Method and apparatus for configuring systems
US5809212A (en) * 1993-07-12 1998-09-15 New York University Conditional transition networks and computational processes for use interactive computer-based systems
US5500802A (en) * 1994-05-31 1996-03-19 Morris; James M. System and method for creating configurators using templates
US5617514A (en) * 1994-07-13 1997-04-01 Unisys Corporation Generalized configurator using multiple interacting packers and declaratively defined constraint expressions
JP3369817B2 (ja) * 1995-06-23 2003-01-20 三菱電機株式会社 半導体装置
US5745765A (en) 1995-10-23 1998-04-28 Calico Technology, Inc. Method and apparatus for automatic and interactive configuration of custom products
US5875285A (en) * 1996-11-22 1999-02-23 Chang; Hou-Mei Henry Object-oriented data mining and decision making system
US5987473A (en) * 1997-09-09 1999-11-16 Beologic A/S Interactive configuration via network

Also Published As

Publication number Publication date
EP1012754A2 (de) 2000-06-28
DE69806396D1 (de) 2002-08-08
WO1999013410A3 (en) 1999-05-06
ATE220229T1 (de) 2002-07-15
AU9062598A (en) 1999-03-29
WO1999013410A2 (en) 1999-03-18
EP1012754B1 (de) 2002-07-03
DK1012754T3 (da) 2002-10-21
US6192355B1 (en) 2001-02-20
JP2001516101A (ja) 2001-09-25

Similar Documents

Publication Publication Date Title
DE69809964T2 (de) Online-datenbank ausbeutung
DE69130766T2 (de) Intelligentes hilfssystem
DE112017005538T5 (de) Automatisierte Erzeugung von Arbeitsabläufen
DE68927086T2 (de) Datenvereinheitlichungssystem und -methode
DE69909452T2 (de) Eine datenbank, die nützlich ist, um ein system zu konfigurieren und/oder zu optimieren und ein verfahren, um diese datenbank zu generieren
Hauke et al. Recent development of social simulation as reflected in JASSS between 2008 and 2014: A citation and co-citation analysis
DE19717716A1 (de) Verfahren zur automatischen Diagnose technischer Systeme unter Berücksichtigung eines effizienten Wissenserwerbs und einer effizienten Bearbeitung zur Laufzeit
DE69326072T2 (de) Verfahren zur Prüfung eines sequentiellen endlichen Automaten
DE69809272T2 (de) Verfahren zur annullierung einer ungültigen auswahl in interaktiven konfigurationssystemen
DE69232452T2 (de) Expertensystem mit einem Wissenserfassungsunterstützungssystem
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
DE60303413T2 (de) Verfahren und computersystem zum reduzieren von ausführungszeiten bei der materialbedarfsplanung
DE69805818T2 (de) Verfahren und rechnersystem zum zusammenstellen einer menge von objekten
DE112021000645T5 (de) Verfahren und System zum Optimieren eines Ziels mit diskreten Bedingungen
Tsouros et al. Efficient multiple constraint acquisition
WO2005055134A2 (de) Inferenzmaschine
Hose Possibilistic reasoning with imprecise probabilities: statistical inference and dynamic filtering
DE69806396T2 (de) Ein verfahren und ein computersystem zum konfigurieren eines objektsatzes
DE69031327T2 (de) Einrichtung und Verfahren zur rechnergestützten Entscheidungsfindung
DE112021003761T5 (de) Prädiktive modelle mit zerlegbaren hierarchischen ebenen, die konfiguriert werden, um interpretierbare resultate zu erzeugen
DE69213480T2 (de) Verfahren und vorrichtung zur vereinfachung einer benutzererzeugung von entscheidungsfunktionen.
Procaccia et al. Percolation for the finitary random interlacements
DE69031421T2 (de) Gerät und verfahren zur signalverarbeitung
DE69819543T2 (de) Verfahren und gerät zur bearbeitung einer anfrage gemäss einer booleanregel
DE69033526T2 (de) Industrielles Expertensystem

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee