1 Background of the Invention
[0001] The aim of the invention is to support automatic modeling, analysis (verification)
and real-time simulation of large-scale configuration problems on a standard computer
(e.g. a personal computer). Mathematically speaking, such problems on finite domains
or intervals can be expressed in terms of truth tables with
MN combinations, each of which can assume either of the truth-values
true or false (legal or non-legal). Here we are assuming
N variables, each with
M elements. Thus, binary variables are to be considered as a special case with
M=2.
[0002] Obviously,
MN combinations will cause "combinational explosion" and it is therefore not a trivial
task to solve large configuration problems with a multitude of variables. Nevertheless,
the present invention makes it possible to unify the seemingly contradictory requirements
for
completeness (all combinations must be accessible to ensure logical consistency) with
compactness of representation and
speed of simulation.
[0003] For example, interlocking systems for railway operation are controlled by several
thousands variables representing signal values or switch positions. To illustrate,
even a small interlocking system with 2000 binary variables will be characterized
by the huge number of 2
2000 states or combinations. Some combinations are legal (allowed), while other combinations
are clearly illegal because they would cause disasters. To handle these systems with
conventional technology, it has been necessary to break down the system Into subsystems
of sufficientiy small size to allow their validation, whereby not only illegal, but
also a large number of legal combinations may be excluded, resulting in a less efficient
utilization of the system. In general, the system variables will not be limited to
binary values but will also include different data types on finite domains (e.g. multi-valued
logic, integers, or finite sets of intervals). It is highly desirable to be able to
handle configuration problems in systems of that size by means of computerized tools
which could provide complete and correct responses almost instantaneously.
[0004] Another example is configuration of products or services (e.g. cars, computers or
travels) on the internet. Many products are available in a multitude of variants,
which must be selected by the customer from a number of mutually dependent options.
Thus, only some combinations of these options are possible or legal, while other combinations
are illegal due to some technical or commercial constraints. It is therefore desirable
to design e-commerce tools to enable the user to select interactively only the legal
combinations, even from very complex product models.
[0005] While a number of computerized configuration tools have become available, e.g. the
systems disclosed in WO 90/09001 and US 5,515,524 there is still a demand for systems
which fulfil the requirements for completeness
and compactness
and speed of response. In this context, the term "completeness" indicates the mathematical
requirement that all combinations have been verified to ensure logical consistency.
[0006] The present invention provides an elegant solution to this problem without the problem
of "combinational explosion". As it will be understood from the following description,
the crux of the invention is the establishment of a novel type of database, in the
following termed an "array database". While the database is an optimal tool for the
complex configuration problems indicated above and described In greater in the following,
it will be understood that due to its unique inherent advantages, it Is also useful
for a wide range of applications for which conventional database systems, typically
relational databases, are used at present.
[0007] A scientific/mathematical discussion of principles relevant to the invention is given
in Møller, Gert L.:
On the Technology of Array-based Logic. Ph.D. thesis, Electric Power Engineering Department, Technical University of Denmark,
January 1995.
2 Brief Disclosure of the invention
[0008] In one aspect, as claimed in claim 1, the invention relates to a method for generating
a database useful for configuring and/or optimizing a system spanned by variables
on finite domains and/or intervals, said method comprising generating and storing,
in a memory or storage medium of a computer, an addressable configuration space of
the entire system in terms of all legal Cartesian subspaces of states or combinations
satisfying the conjunction of substantially all system constraints on all variables,
with all interconnected legal Cartesian subspaces being addressable as legal combinations
of indices of link variables, so as to establish a database in which substantially
all legal solutions in the system are stored as nested arrays.
[0009] In the following, the database generated according to the invention will be termed
an "array database", this term reflecting the fact that all legal solutions are stored
in the database as one or more nested arrays.
[0010] Definitions and explanations relevant to some of the terms used in the present specification
and claims are as follows:
"Configuring" means establishing substantially all legal combinations of the variables
satisfying substantially all the constraints on the system. Preferably, all legal
combinations of the variables satisfying all the constraints on the system are established,
in which preferred case the legal Cartesian subspaces of states or combinations will
satisfy the conjunction of all system constraints on all interconnected variables.
"Optimizing" means applying a heuristic selection of combinations within a set of
legal combinations.
The term "a system spanned by variables on finite domains and/or intervals" Indicates
that each variable of the system consists of a finite set of elements or state values
(e.g., logical truth values) or a finite set of intervals.
The term "An addressable configuration space" indicates that substantially all legal
combinations are explicitly represented; in the preferred case, all legal combinations
are explicitly represented.
"A Cartesian subspace" is a compact representation of one or more legal combinations,
all combinations being derivable/calculated/ as the Cartesian product of the elements
or state values for each variable.
"System constraints" are the relations (propositional functions) on variables defined
for the system.
"Interconnecting variables" indicates variables present in at least two relations.
"A link variable" means a variable generated by the method according to the invention
and added to a given relation with a unique index which identifies one Cartesian subspace.
"Interconnected legal Cartesian subspaces" means legal Cartesian subspaces with at
least one common variable.
[0011] It is a crucial feature of the invention that all illegal states or combinations
violating the system constraints are excluded from the relations. Such exclusion of
illegal states or combinations can preferably be performed while the database is generated
by the method according to the invention, the illegal states or combinations being
excluded whenever identified. A state of contradiction or inconsistency is present
in a system if just one relation of the system has no legal combination or state.
On the other hand, a system is said to be consistent if at least one state or combination
is legal, i.e. satisfying all system constraints. If, in the generation of the database,
just one relation of a system is found to have no legal combination or state, then
that whole system is in a state of contradiction or inconsistency and must be excluded.
[0012] In the following, the process of colligating relations (that is, combining relations
to arrive at a more complex subsystem or system) is discussed in greater detail. It
will be understood that on each level of the colligation process, inconsistencies
or contradictions will be identified and will, thus, result in exclusion of the colligated
subsystem or system. Thus, when the generating process has been completed, the system
will be consistent, as manifested by all relations having at least one legal Cartesian
subspace.
[0013] In the present specification and claims, the term "system" is used about an entire
system of variables or, alternatively, about a part of an entire system of variables.
In all cases relevant to the present invention, the system, understood in this manner,
is completely defined in that every combination under the system is either legal or
illegal with respect to all system constraints relevant to the use of the database
and preferably with respect to absolutely all system constraints. Thus, the term system,
used about an entire system of variables, indicates, in the context of the claims
and the specification, that the entire system is completely defined with respect to
all system constraints relevant to the use of the database, and preferably with respect
to absolutely all system constraints. When a system of variables is not completely
defined in the above sense of this term, then only that part of the system which is
in fact completely defined is covered by the tem "system" as used in the claims. The
term "substantially", as used in claim 1, indicates that it is possible to have a
system which is not defined with respect to system constraints that are not relevant
to the use of the database. The them "substantially" can also indicate a system in
which the process of colligation has not been completed, and where the runtime environment
must be adapted to perform certain tests for consistency. While the latter variant
is not considered ideal, it may nevertheless apply for certain applications of the
invention where the realtime capability of the runtime environment is not a requirement.
[0014] As indicated above, the system constraints may be determined by conjugating one or
more relations, each relation representing the legal Cartesian subspaces of states
or combinations on a given subset of variables. The conjugation of the one or more
relations comprises calculating the Cartesian subspaces satisfying the combined constraints
of the one or more relations. If no relations have common variables, no further action
is required to conjugate the relations.
[0015] According to an important preferred feature of the invention, all relations with
at least one common variable are colligated. The colligation comprises conjugating
the constraints of two or more relations being connected by having common variables
to establish the Cartesian subspace(s) satisfying the combined constraints of the
two or more relations.
[0016] The colligation of the two or more relations will normally be performed by joining
the two or more relations up to a predetermined limit. Joining comprises the operation
of replacing a set of relations with a single relation satisfying the combined constraints
of the set.
[0017] The set of relations is not limited to two relations but can in general be any finite
number of relations. In a preferred embodiment of the invention the case where three
or more relations are joined Is typically decomposed into a number of pairwise joins.
This pairwise joining can comprise a predetermined strategy or the joining can be
in a random order.
[0018] The joining process will typically reduce the number of relations, and the resulting
number of relations are then colligated by linking them and grouping them into one
or more cluster(s) of relation(s).
[0019] A duster can comprise one relation or a set of interconnected relations. These clusters
will be described in greater detail in the following.
[0020] The linking of the relations consists of adding link variables and adding one or
more calculated relation(s) representing the constraints on the link variables.
[0021] The linking of relations can be within a cluster or between clusters. The linking
between two clusters may be performed by establishing a link relation comprising two
link variables, while for a linking within a cluster the link relation(s) comprises
all link variables on the relations in the duster.
[0022] If three or more relations interconnected with common variables are generating cycles
or dosed paths, then they are grouped into a single cluster comprising the three or
more relations. As a consequence the resulting cluster(s) are interconnected without
cycles, i.e. in a tree structure.
[0023] The tree structure makes it possible to ensure completeness of deduction in the run
time environment by state propagation, for example when a configuration or optimization
is performed.
[0024] The term "completeness of deduction" indicates that all logical consequences must
be deduced on one or more variables. In important embodiments of the invention, the
completeness of deduction relates to all logical consequences on all variables, but
as indicated above, the invention is not limited to that.
[0025] When the array database is to be used for optimization, one or more object functions
are incorporated. An object function of a given subset of variables, the object function
deriving characteristics of the given subset of variables, is linked to the complete
configuration space by deducing the constraints imposed by the object function on
each link variable connected to the given subset of variables.
[0026] After the array database has been generated by the method according to the invention,
object functions can provide information between a set of variables and a set of object
function values, e.g., price, weight, color.
[0027] If a set of object function values does not have a "natural" order, e.g. as numbers,
an arbitrary order can be assigned to the set of object function values.
[0028] The characteristics of the object function may be determined and the constraints
on the link variables deduced on each combination of the given variables, the result
being represented as a relation on the object function, the given variables, and the
link variables.
[0029] These characteristics can be the values of the object function given by functional
mapping of a set of independent variables or a set of constrained variables. The mapping
can also be a general relation yielding one or more object function values for each
combination of the variables.
[0030] In another aspect, the invention relates to a method for configuring and/or optimizing
a system spanned by variables on finite domains, said method comprising
- providing a database in which substantially all legal solutions in the system are
stored as nested arrays and
- deducing any subspace, corresponding to an input statement and/or inquiry, of states
or combinations spanned by one or more variables of the system represented by the
nested arrays by deriving the consequences of a statement and/or an inquiry by applying
the constraints defined by the statement and/or inquiry to the database.
[0031] "Deducing" means deriving or determining all logical inferences or conclusions from
a given set of premises, i.e. all the system constraints.
[0032] "Inquiry" means a question for which the array database can provide all answers.
[0033] A question could be about the legal combination(s) of a given set of variables satisfying
the system constraints and possibly also satisfying an external statement.
[0034] An extemal statement can be a number of asserted and/or measured states and/or constraints
from the environment.
[0035] Thus, a deduction of any subspace of states or combinations is performed on a given
subset of variable(s) either without or colligated with asserted and/or measured states
and/or constraints from the environment.
[0036] The interaction between the system represented by the array database and the environment
is suitably performed by means of a state vector (SV) representing all legal states
or values of each variable.
[0037] Thus, an input state vector (SV1) may represent the asserted and/or measured states
from the environment, while an output state vector (SV2) may represents deduced consequence(s)
on each variable of the entire system when the constraints of SV1 are colligated with
all system constraints in the array database.
[0038] The deduction can be performed by consulting one or more relation(s) and/or one or
more object function(s) at a time by colligating the given subset of variables in
the relation with the given subsets of states in the state vector and then deducing
the possible states of each variable.
[0039] The consultation of a relation can be performed by colligating, e.g. joining, the
relation and the states of the variables present in the relation. The result of the
consultation can be the projection (union of all elements) on each variable of the
colligated relation, or the result can be the colligated relation. The colligation
can of course be a joining, but it should be evident from the discussion given herein
that the consultation of each relation is not limited thereto.
[0040] In a preferred embodiment of the invention two or more variables are colligated in
parallel; the projection on two or more variables can similarly be performed in parallel.
The invention is not limited to such parallel implementation, and the invention can
just as well be implemented sequentially.
[0041] In one embodiment of the invention completeness of deduction is obtained by consulting
connected relations, until no further consequences can be deduced on any link variable.
This operation is termed "state propagation". Such state propagation comprises consulting
two or more relations in parallel. The invention is of course not limited to such
parallel implementation, and, due to the cluster structure, the invention can just
as well be implemented sequentially.
[0042] An important feature of the configuration and/or optimization according to the invention
is that the state of contradiction can be identified, when no legal states or values
are deduced when consulting at least one relation.
3 Figures
[0043] In the following the invention will be described in greater detail with reference
to the figures:
- Fig. 1
- Modeling an array database
- Fig. 2
- Array database simulation (state deduction)
- Fig. 3
- Compilation of variables and relations
- Fig. 4
- Colligation
- Fig. 5
- Strategy for joining a list of relations
- Fig. 6
- Colligation graph of relations
- Fig. 7
- Colligation graph of clusters (tree)
- Fig. 8
- Directed colligation graph of connected functions (input-output dataflow)
- Fig. 9
- Colligating relations in a cluster
- Fig. 10
- Cycle elimination yielding a tree structure of colligated relations
- Fig. 11
- Determination of run-time cluster with added system relations
- Fig. 12
- Linking clusters by colligating connected relations
- Fig. 13
- Colligation of relation pair by projection on link variables
- Fig. 14
- Linking an object function to the configuration space
- Fig. 15
- The state deduction on a single cluster
- Fig. 16
- State propagation on interconnected clusters (acyclic connection of relations)
- Fig. 17
- Combinational logic network
- Fig. 18
- User interface example
- Fig. 19
- User interface example
4 Summary of the Following Disclosure
[0044] The array database (to be termed ADB in the following) is a compact, yet complete
representation of all legal combinations of configuration problems on finite domains
or intervals. The configuration space of legal states or combinations is represented
geometrically in terms of nested data arrays, and the ADB can be simulated very efficiently
by simple operations on these arrays. Each step in the process of
ADB modeling and simulation is explained in the Chapters 5 and 6, respectively.
[0045] The major data flow of ADB modeling is summarized in Fig.
1. Input is a user-defined specification of the system constraints in terms of a set of
rules or
relations on a given set of
variables. The ADB is modeled in a three-step procedure as sketched in the process block ADB-MODEL
in Fig. 1.
1. Compile variables and relations (Chapter 5.1):
Each user-defined variable and each relation is compiled into the internal array representation.
At this stage, the relations are considered as independent items.
2. Colligate relations, verify system (Chapter 5.2):
The configuration space of the entire system is determined by colligating interconnectected
relations (constraint elimination). The system Is simultaneously tested for logical
consistency and redundancy.
3. Generate object functions (Chapter 5.3):
Optionally, the relations may be extended with further attributes, when the legal
combinations satisfying the system constraints are associated with values or object
functions to be optimized like, say, a price or a weight.
[0046] At this stage, the process of ADB modeling is finished. The entire configuration
space can now be addressed by coordinate indexing and other simple operations on the
nested arrays.
[0047] The major operation of
ADB simulation is sketched in Fig. 2 and will be described in more detail in Chapter 6.
[0048] Each item of the state vector
SV represents the state (the legal values) of the associated variable. In the input
state vector
SV1, one or more variables are bounded due to external measurements or assertions.
SV2 represents the resulting constraints on all variables. An important technological
requirement is completeness of deduction; that is,
all constraints on the variables in the output state vector must be deduced.
[0049] The most important technological novelty of the ADB can be summarized as follows:
1. ADB simulation is performed with completeness of deduction in real-time - with
predictable use of processing time and memory. The ADB simulation is therefore suitable
for embedded configuration or control systems and performs well on small computers.
2. A precondition for (1) Is that all relations are colligated before simulation and
that the configuration space of the entire system is represented geometrically in
terms of nested arrays. The entire system is automatically tested for logical consistency
(verification). ADB modeling is not a real-time task. On large systems, the modeling
process can with advantage be computed on a dedicated modeling server with multiple
processors.
3. One common representation of all system constraints (the standard array form of
relations) unifies prepositional logic, predicate logic (multi-valued logic) and relational
algebra.
4. All processing on the standard array form (ADB modeling and simulation) is based
on a few fundamental array operations, all of which are suitable for parallel processing.
[0050] The different rule-based systems on the market today are representing rules or relations
as independent items (no colligation). Thus, these rules must be manipulated individually
by
search rather than simple geometrical operations on arrays. Processing time therefore depends
on the extent of search, which is a problem in applications where completeness of
deduction must be ensured in real-time (e.g. railway interlocking systems).
5 ADB Modeling
[0051] Basically, the task of ADB modeling is
constraint elimination; that is, all non-legal combinations must be eliminated yielding an explicit representation
of all legal combinations or legal Cartesian subspaces.
5.1 Compile Variables and Relations
[0052] Input is the user-defined system constraints in terms of
variables (on different data types or scales of measurement) and
rules or
relations on these variables. The compilation is a two step procedure as shown in Fig. 3.
5.1.1 Compile the Domain of Variables
[0053] The domain of each variable is any ordered finite set (a list) withn unique items.
The domain
{False, True} of a propositional variable is thus a special case with
n=2. The list may be an explicit representation of all elements in a finite domain,
or, in the case of large or maybe even infinite numerical domains, an ordered set
of disjoint
intervals.
[0054] As an example, we will consider the global domain of a system with six different
state variables illustrated in Table 1.

[0055] A and
ALARM are propositional variables with the length
n=2, while
COLOUR(x) is a predicate variable representing a nominal scale measurement with
n=4. In the intemal array representation, each measurement is given by its associated
domain index.
LENGTH(x) and
WIDTH(x) are simple ordinal scale measurements with an explicit representation of all domain
elements, while
TEMP(x) illustrates an interval scale measurement given by a finite set of intervals. An
interval is defined by its lower and upper boundary given by the value and type of
each boundary (0=open, 1=closed).
5.1.2 Compile Each Relation into Standard Array Form
[0056] Each user-defined relation on a subset of domain variables is compiled into the standard
array form, which is a nested array with two items. The first item is the set of legal Cartesian
subspaces, while the second item is the domain indices of the associated state variables.
All the succeeding processing on the relations is based on this common representation,
which may be conceived as the basic component of the ADB.
EXAMPLE
[0057] Given the following relation on the variables
WIDTH and
LENGTH in Table 1:
R: WIDTH is less than LENGTH
[0058] That is, the complete state space of legal and non-legal combinations is:

[0059] The standard array form of Table 2 is depicted below as tables in two isomorphic
forms with eight legal combinations (
expanded form) or, alternatively, two legal Cartesian subspaces
(compressed form):

EXAMPLE
[0060] The compiled array form of the relation TEMP (>120) ⇒ ALARM on the domain in Table
1 is:

5.2 Colligate Relations
[0061] Mathematically speaking, the constraints of the entire system are the conjunction
of all relations. So far, during compilation, we have considered the user-defined
relations as independent items. The configuration space of the complete system is
now computed by colligating the interconnected relations (elimination of the connectivity
constraints).
[0062] Simultaneously, the system is tested for logical consistency: when a local configuration
space is empty, the conjunction of all system constraints yields a contradiction.
Moreover, redundant and non-constrained information is eliminated automatically.
[0063] The procedure shown in Fig. 4 is adopted.
5.2.1 Join Relations until Size Limit
[0064] The simplest operation of colligation is to join relation pairs with common variables
into single relations representing the conjunction of the pair. Connected relations
are joined whenever convenient; that is, when the size of the joined result is less
than a given limit. When two relations have many common variables, the joined relation
will be smaller than the arguments. Similarly, when the relations are sparsely connected,
the joined relation may blow up in size. In the case of contradiction (logical inconsistency),
the configuration space of the joined relation is empty. Isolated (non-connecting)
variables without importance for the system simulation (interim variables) may be
eliminated.
[0065] The strategy for joining a list of relations is shown in Fig. 5. The
join factor or connectivity factor of a relation pair is used to predict the size of the joined
result . The join factor of a connected pair is defined as follows:

where:
Ii: number of isolated variables in relation i
Ai: size of relation i (number of Cartesian subspaces)
Ti: size of relation i (number of tuples (combinations))
C: number of common variables + number of common interim variables
EXAMPLE
[0066] Given the small system with three relations
R0, R1, R2:
Table 5
| R0 |
(A ∨ B) ⇒ (C ∨ D) |
| R1 |
C ⇒ E ∧ F |
| R2 |
D ⇒ E ∧ G |
[0067] The compilation of each relation yields:

[0068] The relations in Table 6 may be joined into a single relation
R =
R0 ^
R1 ^
R2 representing the complete configuration space:

[0069] We have thus finished the colligation task on this small example; all constraints
of the isolated relations as well as the connectivity constraints are represented
In the joined relation. The result of modeling the system is thus an array database
with the single relation depicted in Table 7.
[0070] In general, the array database will contain more than a single relation, when systems
scale up.
5.2.2 Group Relations into Clusters
[0071] At this stage, it is not possible to join further relations within the user-defined
size limit. The colligation strategy now depends on the properties of the
colligation graph depicting the structure of interconnected relations. The relations are represented
by the nodes, while an arc linking two nodes (relations) represents the common variables.
[0072] Two different kinds of graphs are particular important:
- Trees (graphs without closed paths or cycles): In this case it is possible on ensure completeness of deduction by state propagation
on the simple links between the relations. Example:

- Graphs with closed paths or cycles: The cycles must be eliminated to ensure completeness of deduction by simple state
propagation. Example:

[0073] Before further colligation, the relations are grouped into
clusters, all of which can be linked together without cycles. When the colligation graph of
relations is a tree, each relation is thus associated with a single cluster.
[0074] Fig. 6 illustrates the colligation graph of a given system. Of course, we may eliminate
all cycles by grouping the relations into a single cluster. However, in order to make
the succeeding colligation process most efficient on large systems, it is desirable
to group the relations into the maximum number of clusters. In this example, the maximum
number of clusters is four as shown in Fig. 7.
[0075] In the case of input-output systems, each relation is a function (output = f(input)).
The predefined flow of data from input nodes to output nodes is depicted in
adirected colligation graph. When the graph is acyclic (no cycles or strong components), the data flow is complete
by a simple state propagation from input to output. in the case of a cyclic digraph,
the cycles must be eliminated by grouping the associated relations (functions) into
clusters as shown above.
[0076] Fig. 8 illustrates a predefined dataflow on the system in Fig. 6 assuming that each
relation is a function. We note that the graph is acyclic and the flow is thus complete
with a state propagation from
R0 to
R15.
5.2.3 Colligate Relations In Each Cluster
[0077] The major steps are sketched in Fig. 9. In order to ensure completeness of deduction,
all cycles in the cluster must be eliminated (Fig. 9.1). The nested run-time cluster
(Fig. 9.2) is an alternative compact and efficient representation of the cluster configuration
space.
5.2.3.1 Cycle Elimination: Determine Tree Structure of Colligated Relations (Fig.
9.1)
[0078] When a list of relations dosing one or more cycles in a cluster are large and sparsely
connected, the "combinational explosion" will make it impossible to join the list
into a single relation. Therefore, we will generate an equivalent but much more compact
list of colligated subspaces; that is, a new list of relations with the following
characteristics:
- Each user-defined variable (domain variable) is only present in a single relation.
- The relations are linked together by system generated link variables yielding a tree structure (without cycles).
- Each local Cartesian subspace of legal combinations is associated with a unique link
variable with a unique index.
[0079] Thus, we will isolate variables present in a single relation and perform the colligation
only on subspaces with common variables. The five-step procedure shown in Fig. 10
can be used on any set of relations, even when the colligation graph is acyclic.
EXAMPLE
[0080] Given the cluster relations
R0, R1, R2 closing a single cycle:

[0081] The standard array form of each compiled relation is:

[0082] List of relation(s) on isolated (non-connecting) variables (Fig. 10.1 and Fig. 10.2):

[0083] List of relations on connecting variables (Fig. 10.1):

[0084] When the list of relations on connecting variables is joined (Fig. 10.4), we have
the following result with two relations on isolated domain variables and one common
link variable
Link0:

[0085] The tree structure of colligated relation fulfills the requirements for completeness,
compactness, and speed of simulation. Completeness of deduction is ensured by state
propagation on the relations in the tree (see Section 0). The nested cluster representation
to be introduced in the following is an alternative (isomorphic) representation.
[0086] Sometimes the user-defined relations are including internal system variables (interim
variables), which can be eliminated. An example is network problems with input and
output nodes (which are connected to the environment) and a number of internal nodes
connecting input and output nodes. When the network constraints are represented In
the ADB, it is desirable to eliminate the internal variables and to represent only
the subspaces on the input-output variables.
5.2.3.2 Determine Nested Run-time Cluster (Optionally)
[0087] The aim of the following task is to determine a very compact run-time cluster representation,
which can be simulated by simple coordinate indexing and table look-up without state
propagation - even on small scale computers and controllers like, say, electronic
relays.
[0088] The run-time cluster consists of the original domain relations extended with link
variables addressing the Cartesian subspaces, and a set of
system relations representing the relations between link variables. The impact of each Cartesian subspace
on the entire system is determined by asserting the associated link variable index
and then deducing the state of each link variable. This deduction is for example carried
out by state deductions on each link variable index. The state deductions may be executed
in parallel.
[0089] The determination of the nested run-time cluster is shown in Fig. 11.
EXAMPLE
[0090] Let us again consider the cluster Table 10 with three relations R0, R1, R2:
[0091] The run-time cluster depicted below consists of the three domain relations (left
row) and the three associated system relations (right row). For example, in
system relation 0, the three indices of link variable
Link0 (representing the Cartesian subspaces of
R0) is used as the input to deduce the constraints on each link variable. Thus,
system relation 0 represents the impact of the Cartesian subspaces in
R0 on the entire system.

5.2.4 Link Clusters
[0092] We have now finished colligation of the relation(s) in each cluster, and the final
step in the process of colligation is to colligate all relation pairs, which are connecting
clusters. For example, in the system sketched in Fig. 7 the relation pairs (3
cluster0 3
cluster1), (9 10) and (10 12) must be colligated.
[0093] The data flow of linking clusters is shown in Fig. 12.
[0094] The result of colligating a relation pair is a new relation (to be termed
link relation in the following) on the common variables and the two link variables. When the set
of link relations is added to the array database, it is possible to ensure completeness
of deduction by state propagation on the clusters and the link relations.
[0095] Fig. 13 illustrates in more detail the colligation of each relation pair (Fig. 13.2).
[0096] Given the relation pair
R0, R1:

[0097] Obviously, the simplest way to colligate these simple relations is to join the pair
into a single:

[0098] However, to illustrate the isomorphic form of link relations, we will extend the
standard array form of
R0, R1 with link variables:

[0099] Colligating the subspaces on the common variables
C,
D yields the following link relation:

[0100] In addition to the argument relations
R0,R1 the link relation makes it possible to address the entire configuration space on
the indices of the link variables. On large and sparsely connected relations, this
is a more compact representation than joining the relations.
5.3 Add Object Functions (Optionally)
[0101] The configuration space of legal combinations may be extended with user-defined object
functions to be manipulated heuristically, e.g. a fuzzy value (for fuzzy logic computations),
a weight or a price (for optimization).
[0102] An object function
O is defined on a subset on the state variables
S0, S1,...Sn:
O = f(
S0,
S1,...Sn) and is compiled into standard array form.
EXAMPLE
[0103] Given a system model with the configuration space
(WIDTH, LENGTH) and the object function
PRIZE = f(WIDTH, LENGTH) represented in a single relation in standard array form:

[0104] When the object function is to be optimized during system simulation, we may also
represent the configuration space of large domains in terms of Cartesian subspaces
on which the object function is monotonic:

[0105] The object function of each Cartesian subspace is given by an interval with the lower
and upper boundary, and the associated state variables are ordered to make the object
function increasing.
[0106] The object function may be linked to the configuration space in either of two ways:
1. If the configuration space of the state variables S0, S1,...Sn is represented in a single relation (in standard array form), the relation may be
extended with a further attributeO representing the object function. This is to be
considered as a special case as shown in Table 3.
2. In general, it is more convenient to add the object function as a new relation
in standard array form on the attributes O,S0, S1,...Sn and the link variables associated with the configuration space of S0, S1,...Sn.
[0107] The flow chart of adding object functions is shown in Fig. 14.
EXAMPLE
[0108] Given the following configuration space in terms of three relations:

[0109] The object function
Y = f(B,E) is added to the array database by a projection on all link variables associated with
the state variables
B,E:

6 ADB Simulation
[0110] When the modeling task is finished, the array database is prepared for a very efficient
simulation, which can be performed in real time. The major operation for ADB simulation
is the
state deduction shown in Fig. 2.
[0111] The
state vector represents the state (the legal values) of each state variable. In the input state
vector
SV1, one or more variables are bounded due to external measurements or assertions. The
deduced state vector
SV2 represents the resulting constraints on all variables, when the system constraints
and the constraints of the input state vector are colligated.
[0112] The state deduction is carried out by means of a few array operations (suitable for
parallel processing) on the basic components of the array database:
- the relations,
- the relation clusters,
- the interconnected (linked) relation clusters, and
- the linked object functions
6.1 The State Deduction on a Single Relation
[0113] The state deduction on a single relation in standard array form is carried out by
colligating (by intersection) the input state vector (SV1) with the relation succeded
by a projection on each variable of the relation yielding the output state vector
(SV2). The colligation and projection are described in greater details below.
EXAMPLE
[0114] To illustrate, we will again consider the system with the relations
R0, R1, R2:
Table 24
| R0 |
(A ∨ B) ⇒ (C ∨ D) |
| R1 |
C ⇒ E |
| R2 |
D ⇒ E |
[0115] Modeling the system into a single relation (by joining
R0, R1, R2) yields:

[0116] We will now deduce all consequences of the external measurement
A=1 (true). The following three-step procedure is adopted:
1. Identify all bounded variables in the input state vector SV1.
A Is bounded or constrained to 1, while the other variables are unbounded and thus assigned all the possible domain
values (0 1). The input state vector SV1 is therefore:

2. Colligate the constraints of the relation and the input state vector SV1.
Each Cartesian subspace in the relation is intersected with SV1, item by item (variable by variable). The most efficient operation is to select only
the bounded input variables and to compute the intersection axis by axis (suitable
for parallel processing if desired). Non-valid (empty) Cartesian subspaces are deleted.
In the present example, only the first Cartesian subspace is empty and therefore deleted:

3. The output state vector SV2 is the projection (union of all elements) on each axis.
This operation is also suitable for parallel processing on each axis. The axis projection
on Table 27 yields the following output state vector SV2:

[0117] We conclude that
A=E=1, while the other variables are unbounded (don't care or tautology).
[0118] This basic state deduction on a single relation is the foundation for state deduction
on relation clusters and interconnected clusters. Moreover, it should be noted that
this operation can be used on any data type (scale of measurement) on any relation
in standard array form, including object functions. In the case of object functions,
the input state vector may be constrained by optimization criteria like, say, the
minimum prize of a given configuration.
6.2 The State Deduction on a Nested Relation Cluster
[0119] The structure of the nested run-time cluster with domain relations and system relations
on common link variables was introduced previously (modeling step 2.3.2). The state
of the cluster can be deduced very efficiently in a five-step procedure shown in Fig.
15.
[0120] The key to the efficient state deduction is that each Cartesian subspace in the complete
configuration space has a unique projection on the link variables, which can be deduced
(Fig. 15.1 -Fig. 15.2) and then indexed (Fig. 15.4 -Fig. 15.5) one-by-one or in parallel.
No heuristic search is used in this process.
[0121] The identification of bounded input variables (Fig. 15.1) is used to select those
domain relations, which are candidates to be consulted (there is no reason to consult
domain relations only with unbounded variables - these relations will not deduce further
constraints on the state vector). However, step (Fig. 15.1) Is not essential; all
domain relations may be chosen as candidates for the succeeding step (Fig. 15.2).
The domain relations (Fig. 15.2) may be consulted one-by-one or in parallel yielding
a local output state vector, presumably with new constraints on some variables. If
the link variables are still unbounded, the state deduction is completed (Fig. 15.3).
[0122] If some link variables are bounded, the impact on the complete cluster is deduced
by consulting the system relations (Fig. 15.4) (one-by-one or in parallel).
[0123] Finally, the complete impact on the domain variables is deduced by consulting all
domain relations with new constraints on the associated link variables (Fig. 15.5).
The result is the complete output state vector.
[0124] Summing up, parallel processing may be introduced at different levels:
1. Parallel colligation (intersection) of each axis in the individual relations.
2. Parallel projection on each axis in the individual relations.
3. Parallel state deduction on domain relations (10.2).
4. Parallel state deduction on system relations (10.4).
5. Parallel state deduction on domain relations (10.5).
EXAMPLE
[0125] Given the nested duster representation of the following system:

[0126] Moreover, given an Input state vector
SV1. The state deduction on the cluster is carried out as illustrated in Fig. 15:
1. Identify bounded domain variables in the input state vector (Fig. 15.1)
[0127] Only variable A is bounded:

2. Consult all domain relations with bounded domain variables (Fig. 15.2)
[0128] R0 is the only domain relation on the bounded variable
A. Thus; there is no reason to consult
R1 and R2. Consulting
R0 yields a local output state vector with new constraints on
Link0:

3. Consult all system relations associated with bounded link variables (Fig. 15.4)
[0129]

4. Consult all domain relations with bounded link variables (Fig. 15.5)
[0130] The domain relations associated with bounded link variables are consulted yielding
the global output state vector SV2:

6.3 State Propagation
[0131] State deduction on interconnected clusters is carried out by
state propagation as shown in Fig. 16. All cluster relations with bounded variables are consulted and
the state vector updated repeatedly, until no further information can be deduced.
in practice, the propagation is controlled by the link variables: when no further
constraints can be deduced on the link variables, the propagation is finished.
[0132] Completeness of deduction is ensured with state propagation, whenever the colligation
graph is acyclic. Thus, state propagation can be used on the following structures:
- The configuration space of interconnected clusters on common link variables
- Object functions connected with the configuration space on common link variables
- Dynamic systems with predefined input and output variables (acyclic digraph)
7 Illustrative Examples
[0133] The following small examples illustrate different applications of the invention.
7.1 Combinational Network
[0134] The constraints of the small combinational network shown in Fig. 17 are given by
the interconnections of the logical gates. The input file for the array database describes
the domain of variables and the user-defined relations:
DOMAIN
[0135]
A, Interim, Boolean;
B, Interim, Boolean;
C, Interim, Boolean;
D, Interim, Boolean;
E, Interim, Boolean;
F, Interim, Boolean;
G, Interim, Boolean;
H, Interim, Boolean;
I, Interim, Boolean;
J, Interim, Boolean;
I1, Input, Boolean;
I2, Input, Boolean;
O1, Output, Boolean;
02, Output, Boolean;
RELATIONS
[0136]
A = not I1;
B = (I1 and I2);
C = not 12;
D = not (A or B);
E = (D or B);
F = (B or G);
G = not (B or C);
H = not D;
I = (E or F);
J = not G;
O1 = (H and I);
02 = (I and J);
[0137] Modeling the array database yields the following result with all user-defined relations
joined into a single database relation with just 4 legal states or combinations:

[0138] We conclude that
I1=O2 and
I2=O1; that is, all gates could be removed! In Fig. 18 an example of a simulation environment
is depicted. The variable 02 is asserted/assigned the state O2=1 (true) with all consequences
deduced. It is seen that any variable or combination of variables can be used as input
- there is no distinction between input and output variables.
7.2 Alarm System
[0139] Given the following input file for a small alarm system with three state variables
on different data types:
DOMAIN
[0140]
ALARM, Boolean;
SIGNAL, Enum(Red, Yellow, Green, Blue);
TEMP, Interval ([11;30], [100; [);
RELATIONS
[0141]
TEMP([100;[) -> SIGNAL(Yellow,Blue);
TEMP(]120;[) -> ALARM;
[0142] The two relations have one common variable TEMP and must therefore be colligated.
Joining the relations yields the following array database with three legal Cartesian
subspaces on a single relation:

[0143] Note that the relation is depicted with the legal domain
values rather than the domain
indices. The internal binary representation is shown in Table 37.

7.3 Product Configuration
[0144] We will now assume that a car manufacturer wants all the possible combinations of
customer options to be available on the Internet.
[0145] Given the following array database input file with the logical constraints of the
cars:
DOMAIN
[0146]
| Model, Input, Enum(c300 |
"CAR 300", |
| c300i_cab |
"CAR 300 Cabriolet", |
| c300_cab |
"CAR 300 Turbo 16 Cabriolet", |
| c3000_cc |
"CAR 3000 CC", |
| c3000_cs |
"CAR 3000 CS", |
| c3000_cd |
"CAR 3000 CD") |
| , "Car model"; |
|
| |
| Engine, Input, Enum(m_20_16 |
"2,0i 16, 128 hp, 173 Nm / 3000 rpm", |
| m_21_16 |
"2,li 16, 140 hp, 180 Nm / 2900 rpm", |
| m_s |
"2,0S 16, 145 hp, 205 Nm / 3800 rpm", |
| m_turbo_16 |
"Turbo 16, 160 hp, 255 Nm / 2800 rpm", |
| c_3000 |
"2,0 16, 130 hp, 173 Nm / 3750 rpm", |
| c_3000_23 |
"2,3 16, 150 hp, 212 Nm / 3800 rpm", |
| c_3000_23_turbo |
"2,3 Turbo, 200 hp, 330 Nm / 2000 rpm", |
| c_3000_23_turbos |
"2,3 TurboS, 200 hp, 330 Nm /2000 rpm") |
| |
, "Engine type"; |
| |
| Doors, Input, Integer |
(2 "Two doors", |
| |
3 "Three doors", |
| |
4 "Four doors", |
| |
5 "Five doors") |
| |
, "Number of doors"; |
| |
| PaintType, Input, Enum |
(Normal "Normal paint", |
| |
Metallic "Metallic paint") |
| |
, "The type of paint"; |
| |
| PaintColour, Input, Integer (153 |
"Cirrus white", |
| 170 |
"Black", |
| 198 |
"Embassy blue", |
| 214 |
"Cherry red", |
| 219 |
"Talladega red", |
| 223 |
"Odoardo grey metallic", |
| 227 |
"Citrin beige metallic", |
| 228 |
"Platana grey metallic", |
| 229 |
"Le Mans blue metallic", |
| 230 |
"Scarabe green metallic", |
| 231 |
"Monte Carlo yellow", |
| 232 |
"Derby grey", |
| 233 |
"Carrara white", |
| 234 |
"Nocturnal blue metallic", |
| 235 |
"Eucalyptus green metallic") |
| |
, "The paint colour"; |
| |
| WheelType, Input, Enum(NoAlloy |
"No Alloy wheels", |
| Alloy1 |
"Alloy wheels 15 spokes, open", |
| Alloy4 |
"Alloy wheels, Aero design", |
| Alloy6 |
"Alloy wheels, 15 spokes, closed", |
| Alloy7 |
"Alloy wheels, 3 spokes, asymmetric") |
| |
, "Wheel type"; |
| |
| FrontSeat, Input, Enum(MAS |
"Manually adjustable front seats", |
| EAS1 |
"Elec. adjust. left front seat", |
| EAS2 |
"Elec. adjust. front seats", |
| EAS1M |
"Elec. adjust. left front seat, memory", |
| EAS2M |
"Elec. adjust. front seats, memory") |
| |
, "Front seats type"; |
| |
| SunshineRoof, Input, Enum |
(NoSSR "NoSSR", |
| SSR1 |
"SSR1", |
| SSR2 |
"SSR2", |
| SSR3 |
"SSR3") |
| |
, "Sunshine roof"; |
| |
| GearBox, Input, Enum(Manual |
"Manual", |
| Automatic |
"Automatic") |
| |
, "Gearbox type"; |
RELATIONS
[0147]
Model(c300i_cab) -> Engine(m_21_16);
Engine(c_3000) -> Model(c3000_cc,c3000_cs,c3000_cd);
Model(c3000_cc) -> Engine(c_3000);
Model(c3000_cd,c3000_cs) -> not Engine(m_20_16,m_21_16,m_s,m_turbo_16);
Model(c300_cab) -> Engine(m_turbo_16);
Engine(c_3000_23_turbos) -> Model(c3000_cs);
Engine(c_3000_23,c_3000_23_turbo) -> Model(c3000_cs,c3000_cd);
Model(c300) -> Engine(m_20_16,m_21_16,m_s,m_turbo_16);
Model(c300i_cab,c300_cab) = Doors(2);
(Model(c300) and Engine(m_turbo_16)) -> not Doors(4);
Model(c3000_cd) -> Doors(4);
Model(c3000_cs,c3000_cc) -> Doors(5);
Engine(m_20_16) -> FrontSeat(MAS);
Engine(m_21_16,m_s,m_turbo_16) -> not FrontSeat(EAS1M,EAS2M);
Engine(c_3000_23_turbos) -> FrontSeat(EAS2M);
Model(c300_cab) -> FrontSeat(EAS2);
Model(c300i_cab,c300_cab) -> not FrontSeat(EAS1M,EAS2M);
(Model(c300) or Engine(m_21_16)) -> not FrontSeat(EAS1,EAS2);
Engine(m_20_16) -> not SunshineRoof(SSR3,SSR2);
Engine(m_21_16) -> not SunshineRoof(SSR2);
Engine(c_3000_23,c_3000_23_turbo,c_3000_23_turbos) -> not SunshineRoof(SSR1);
Engine(m_s) -> not SunshineRoof(SSR3);
Engine(m_turbo_16) -> not SunshineRoof(SSR1,SSR3);
Model(c3000_cc) -> SunshineRoof(NoSSR,SSR2);
Model(c300i_cab,c300_cab) -> SunshineRoof(NoSSR);
(Engine(c_3000) and Model(c3000_cd,c3000_cs)) -> not Sunshin-eRoof(SSR1);
Model(c300,c300i_cab,c300_cab) -> PaintColour(223);
Model(c300) -> not PaintColour(231,235);
Engine(c_3000,c_3000_23,c_3000_23_turbo,c_3000_23_turbos) -> not PaintColour(231,235);
Engine(c_3000_23_turbos) -> not PaintColour(198,214,232,233,227,230,234);
Engine(m_20_16,m_21_16) -> not WheelType(Alloy1,Alloy4,Alloy7);
Engine(c_3000_23) -> not WheelType(Alloy4,Alloy6,Alloy7);
Engine(c_3000_23_turbos) -> WheelType(Alloy4);
Engine(c_3000_23_turbo) -> WheelType(Alloy7);
Engine(m_s) -> WheelType(Alloy1);
Engine(m_turbo_16) -> not WheelType(Alloy4,Alloy6);
Model(c300_cab) -> WheelType(Alloy7);
Model(c300i_cab,c3000_cc) -> not WheelType(Alloy1,Alloy4,Alloy7);
(Engine(c_3000) and Model(c3000_cd,c3000_cs)) -> not WheelType(Alloy1,Alloy4,Alloy7);
(Model(c300) and Engine(m_turbo_16)) -> WheelType(Alloy1);
Engine(c_3000_23_turbos) -> GearBox(Manual);
PaintType(Metallic) = PaintColour(223,227,228,229,230,234,235);
[0148] Note that the user-defined relations can be written in any order and in many different
ways. In the abovementioned relations, the user has written many symbolic expressions
with logical implications (IF-THEN) rather than a few tables. The modeling process
is independent of the input format.
[0149] Modeling the input file yields the following array database with five relations representing
the configuration space of the car. These relations are interconnected by common link
variables:

[0150] The array database in Table 38 can be stored on an internet server to make it accessible
for any client on the network. This is carried out in either of two ways:
- The array database is loaded to the client before simulation
- The array database is stored on the server and simulated from the client through the
network (only the state vector is transmitted)
[0151] To illustrate, let us assume that a customer wants a car with two doors. The deduced
state vector with all consequences is depicted in Fig. 19. We conclude that only the
cabriolet cars are available with two doors - and the sunshine roof is not a legal
option!
1. A method for generating a database useful for configuring and/or optimizing a system
spanned by variables on finite domains and/or intervals, the method comprising generating
and storing, in a memory or storage medium of a computer, an addressable configuration
space of the entire system in terms of all legal Cartesian subspaces of states or
combinations satisfying the conjunction of substantially all system constraints on
all variables, with all interconnected legal Cartesian subspaces being addressable
as legal combinations of indices of link variables, so as to establish a database
in which substantially all legal solutions in the system are stored as nested arrays.
2. A method according to claim 1, wherein all illegal states or combinations violating
the system constraints are excluded from the relations.
3. A method according to claim 2, wherein, if just a single relation of a system is found
to have no legal combination or state, the entire system is considered to be in a
state of contradiction or inconsistency and is excluded.
4. A method according to claim 1 or 3, wherein the system constraints are determined
by conjugating one or more relations, each relation representing the legal Cartesian
subspaces of states or combinations on a given subset of variables.
5. A method according to any of the preceding claims, wherein all relations with at least
one common variable are colligated.
6. A method according to claim 5, wherein the colligation comprises conjugating the constraints
of two or more relations being connected by having common variables to establish the
Cartesian subspace(s) satisfying the combined constraints of the two or more relations.
7. A method according to claim 5 or 6, wherein the colligation of the two or more relations
is performed by joining the two or more relations up to a predetermined limit, the
resulting number of relations being colligated by linking them and grouping them into
one or more cluster(s) of relation(s).
8. A method according to claim 7, wherein each relation is extended by adding a unique
link variable with a unique index identifying each legal Cartesian subspace on the
given subset of variables.
9. A method according to claim 7, wherein all connected relations are grouped into one
or more clusters, each relation being associated with a single cluster of relation(s).
10. A method according to claim 7 or 9, wherein three or more relations interconnected
with common variables generating cycles or closed paths are grouped into a single
cluster comprising the three or more relations, the resulting cluster(s) being interconnected
in a tree structure without cycles.
11. A method according to claim 10, wherein all constraints of the interconnected relations
within each cluster are determined by colligating all interconnecting variables within
the cluster thereby determining the configuration space of the entire cluster, all
constraints between the three or more link variables being represented as one or more
new relations on the three or more link variables.
12. A method according to claim 9, 10 or 11, wherein any pair of relations with common
variables linking two clusters is colligated by adding a new relation on the common
variabes and the two link variables.
13. A method according to any of the preceding claims, wherein an object function of a
given subset of variables, the object function deriving characteristics of the given
subset of variables, is linked to the complete configuration space by deducing the
constraints on each link variable connected to the given subset of variables.
14. A method according to claim 13, wherein the characteristics of the object function
are determined and the constraints on the link variables are deduced on each combination
of the given variables, the result being represented as a relation on the the object
function, the given variables, and the link variables.
15. A method for configuring and/or optimizing a system spanned by variables on finite
domains, said method comprising
- providing a database generated by the method according to any of the claims 1-14
and
- deducing any subspace, corresponding to an input statement and/or inquiry, of states
or combinations spanned by one or more variables of the system represented by the
nested arrays by deriving the consequences of a statement and/or an inquiry by applying
the constraints defined by the statement and/or inquiry to the database.
16. A method according to claim 15, wherein a deduction of any subspace of states or combinations
is performed on a given subset of variable(s) colligated with or without asserted
and/or measured states and/or constraints from the environment.
17. A method according to claim 15 or 16, wherein all interaction between the system represented
by the array database and the environment is performed by a state vector (SV) representing
all legal states or values of each variable.
18. A method according to claim 16 or 17, wherein an input state vector (SV1) represents
the asserted and/or measured states from the environment, while an output state vector
(SV2) represents deduced consequence(s) on each variable of the entire system, when
the constraints of SV1 are colligated with all system constraints in the array database.
19. A method according to any of claims 16-18, wherein the state of the entire system
is deduced by consulting one or more relation(s) and/or one or more object function(s)
at a time by colligating the given subset of variables in the relation with the given
subsets of states in the state vector and then deducing the possible states of each
variable.
20. A method according to claim 19, wherein two or more variables are colligated in parallel.
21. A method according to claim 19, wherein the deduction of possible states is performed
on two or more variables in parallel.
22. A method according to claim 19, wherein completeness of deduction is performed by
consulting connected relations until no further consequences can be deduced on any
link variable.
23. A method according to any of claims 19-22, wherein at least two relations are consulted
in parallel.
24. A method according to any of claims 16-23, wherein a state of contradiction is identified
by no legal states or values being deducible when consulting a relation.
25. A database useful for configuring and/or optimizing a system spanned by variables
on finite domains and/or intervals, the database storing an addressable configuration
space of the entire system in terms of all legal Cartesian subspaces of states or
combinations satisfying the conjunction of substantially all system constraints on
all variables, with all interconnected legal Cartesian subspaces being addressable
as legal combinations of indices of link variables, so that substantially all legal
combinations in the system are stored as nested arrays.
26. A database according to claim 25 stored in a memory or storage medium of a machinery
and/or computer and/or network.
27. A database according to claim 26 which is stored in the memory or storage medium in
such a way that it is accessible for deduction of any subspace of the system by applying
input statements and/or inquiries to the database.
28. A database according to claim 26 which is stored in a memory or storage medium which
is adapted to be operably connected to a machinery and/or computer and/or network
so that the database can thereby become accessible for deduction of any subspace of
the system by applying input statements and/or inquiries to the database.
29. A machinery and/or computer and/or network comprising a memory or storage medium in
which a database according to claim 25 is stored.
30. A machinery and/or computer and/or network according to claim 29 in which the database
is stored in the memory or storage medium in such a way that it is accessible for
deduction of any subspace of the system by applying input statements and/or inquiries
to the database.
31. A network according to claim 30 in which the database is stored in the memory or storage
medium of one or more computer(s) in such a way that the database is accessible for
deduction of any subspace of the system by applying input statements and/or inquiries
to the database from any computer connected to the network.
32. A memory or storage medium having program instructions for carrying out the steps
of the method as claimed in any of claims 1-24.
33. A memory or storage medium according to claim 32, wherein the database is stored in
such a way that it is accessible for deduction of any subspace of the system by applying
input statements and/or inquiries to the database.
34. A memory or storage medium according to claim 33 which is adapted to be operably connected
to a machinery and/or computer and/or network so that the database can thereby become
accessible for deduction of any subspace of the system by applying input statements
and/or inquiries to the database.
1. Verfahren zum Erzeugen einer Datenbank, welche zum Konfigurieren und/oder Optimieren
eines Systems dient, das durch Variablen auf finiten Bereichen und/oder Intervallen
aufgespannt wird, wobei das Verfahren umfaßt: Erzeugen und Speichern eines adressierbaren
Konfigurationsraumes des gesamten Systems in einem Speicher oder Aufzeichnungsmedium
eines Computers in Form aller erlaubten kartesischen Unterräume von Zuständen oder
Kombinationen welche der Verknüpfung im Wesentlichen aller Systembeschränkungen auf
allen Variablen genügen, wobei alle untereinander in Verbindung stehenden kartesischen
Unterräume adressierbar sind als erlaubte Kombinationen von Indizes von Verbindungsvariablen,
um eine Datenbank zu bilden, in welcher im Wesentlichen alle erlaubten Lösungen im
System als verschachteltes Array gespeichert werden.
2. Verfahren nach Anspruch 1, bei welchem alle die Systembeschränkungen verletzenden
verbotenen Zustände oder Kombinationen von den Relationen ausgeschlossen werden.
3. Verfahren nach Anspruch 2, bei welchem, falls lediglich zu einer einzelnen Relation
eines Systems keine erlaubte Kombination oder erlaubter Zustand gefunden wird, das
gesamte System als in einem widersprüchlichen oder inkonsistenten Zustand befindlich
betrachtet wird und ausgeschlossen wird.
4. Verfahren nach einem der Ansprüche 1 oder 3, bei welchem die Systembeschränkungen
durch Verknüpfung einer oder mehrerer Relationen bestimmt werden, wobei jede Relation
die erlaubten kartesischen Unterräume von Zuständen oder Kombinationen auf einer gegebenen
Untermenge von Variablen darstellt.
5. Verfahren nach einem der voranstehenden Ansprüche, bei welchem alle Relationen mit
wenigstens einer gemeinsamen Variable zusammengeführt werden.
6. Verfahren nach Anspruch 5, bei welchem das Zusammenführen die Verknüpfung von zwei
oder mehr Relationen umfaßt, die dadurch in Verbindung stehen, daß sie gemeinsame
Variablen aufweisen, um den/die kartesischen Unterraum/Unterräume zu bilden welche
den kombinierten Beschränkungen der zwei oder mehreren Relationen genügen.
7. Verfahren nach einem der Ansprüche 5 oder 6, bei welchem die Zusammenführung der zwei
oder mehreren Relationen durchgeführt wird, indem die zwei oder mehreren Relationen
bis zu einer vorbestimmten Grenze zusammengeführt werden, wobei die resultierende
Anzahl an Relationen zusammengeführt werden, indem diese verbunden werden und in einem
oder mehreren Cluster von Relation(en) gruppiert werden.
8. Verfahren nach Anspruch 7, bei welchem jede Relation erweitert wird, indem eine einzelne
Verbindungsvariable mit einem einzelnen Index hinzugefügt wird, welcher jeden erlaubten
kartesischen Unterraum auf der gegebenen Untermenge von Variablen identifiziert.
9. Verfahren nach Anspruch 7, bei welchem alle verbundenen Relationen in einem oder mehreren
Cluster gruppiert werden, wobei jede Relation einem einzelnen Cluster von Relation(en)
zugeordnet wird.
10. Verfahren nach einem der Ansprüche 7 oder 9, bei welchem drei oder mehrere Relationen
die durch gemeinsame Variablen untereinander in Verbindung stehen, die Schleifen oder
geschlossene Pfade erzeugen, in einem einzelnen Cluster gruppiert werden, welcher
die drei oder mehrere Relationen umfaßt, wobei der/die resultierende(n) Cluster in
einer Baumstruktur ohne Schleifen untereinander in Verbindung stehen.
11. Verfahren nach Anspruch 10, bei welchem alle Beschränkungen der untereinander in Verbindung
stehenden Relationen innerhalb jedes Clusters bestimmt werden, indem alle verbindenden
Variablen innerhalb des Clusters zusammengeführt werden und dabei der Konfigurationsraum
des gesamten Clusters bestimmt wird, wobei alle Beschränkungen zwischen den drei oder
mehr Verbindungsvariablen als eine oder mehrere neue Relationen auf den drei oder
mehreren Verbindungsvariablen dargestellt werden.
12. Verfahren nach einem der Ansprüche 9, 10 oder 11, bei welchem ein Paar von Relationen
mit gemeinsamen Variablen welches zwei Cluster verbindet zusammengeführt wird, indem
eine neue Relation auf den gemeinsamen Variablen und den zwei Verbindungsvariablen
hinzugefügt wird.
13. Verfahren nach einem der voranstehenden Ansprüche, bei welchen eine Objektfunktion
einer gegebenen Untermenge von Variablen, welche Eigenschaften der gegebenen Untermenge
von Variablen ableitet, mit dem kompletten Konfigurationsraum verbunden wird, indem
die Beschränkungen auf jede mit der gegebenen Untermenge von Variablen verbundenen
Verbindungsvariable abgeleitet werden.
14. Verfahren nach Anspruch 13, bei welchem die Eigenschaften der Objektfunktion bestimmt
werden und die Beschränkungen auf den Verbindungsvariablen abgeleitet werden auf jeder
Kombination der gegebenen Variablen, wobei das Ergebnis dargestellt wird als Relation
auf der Objektfunktion, den gegebenen Variablen und der Verbindungsvariablen.
15. Verfahren zum Konfigurieren und/oder Optimieren eines Systems das durch Variablen
auf finiten Bereichen aufgespannt wird, wobei das Verfahren umfaßt:
- Bereitstellen einer Datenbank, welche durch das Verfahren nach einem der Ansprüche
1-14 erzeugt wurde und
- Ableiten eines der Eingabe-Anweisung und/oder -Anfrage entsprechenden Unterraumes
von Zuständen oder Kombinationen, welcher aufgespannt wird durch eine oder mehrere
Variablen des durch das verschachtelte Array dargestellten Systems, indem die Konsequenzen
einer Anweisung und/oder Anfrage abgeleitet werden, wobei die durch die Anweisung
und/oder Anfrage definierten Beschränkungen auf die Datenbank angewendet werden.
16. Verfahren nach Anspruch 15, bei welchem eine Ableitung eines Unterraumes von Zuständen
oder Kombinationen auf einer gegebenen Untermenge von Variable(n) durchgeführt wird,
welche zusammengeführt sind mit oder ohne bestätigten und/oder gemessenen Zuständen
und/oder Beschränkungen aus der Umgebung.
17. Verfahren nach einem der Ansprüche 15 oder 16, bei welchem alle Interaktionen zwischen
dem durch die verschachtelte Array-Datenbank dargestellten System und der Umgebung
durchgeführt werden durch einen Zustandsvektor (SV), welcher alle erlaubten Zustände
oder Werte jeder Variable darstellt.
18. Verfahren nach einem der Ansprüche 16 oder 17, bei welchem ein Eingabe-Zustandsvektor
(SV1) die bestätigten und/oder gemessenen Zustände aus der Umgebung darstellt, während
ein Ausgabe-Zustandsvektor (SV2) abgeleitete Konsequenz(en) auf jeder Variable des
gesamten Systems darstellt, wenn die Beschränkungen von SV1 mit allen Systembeschränkungen
in der Array-Datenbank zusammengeführt sind.
19. Verfahren nach einem der Ansprüche 16-18, bei welchem der Zustand des gesamten Systems
abgeleitet wird, indem jeweils eine oder mehrere Relationen und/oder eine oder mehrere
Objektfunktionen abgefragt werden durch Zusammenführen der gegebenen Untermenge von
Variablen in der Relation mit den gegebenen Untermengen von Zuständen in dem Zustandsvektor
und anschließendem Ableiten der möglichen Zustände jeder Variable.
20. Verfahren nach Anspruch 19, bei welchem zwei oder mehrere Variablen parallel zusammengeführt
werden.
21. Verfahren nach Anspruch 19, bei welchem die Ableitung der möglichen Zustände auf zwei
oder mehreren Variablen parallel durchgeführt wird.
22. Verfahren nach Anspruch 19, bei welchem Vollständigkeit der Ableitung erzielt wird,
indem verbundene Relationen abgefragt werden bis keine weiteren Konsequenzen auf jedweder
Verbindungsvariable mehr abgeleitet werden können.
23. Verfahren nach einem der Ansprüche 19-22, bei welchem mindestens zwei Relationen parallel
abgefragt werden.
24. Verfahren nach einem der Ansprüche 16-23, bei welchem ein widersprüchlicher Zustand
identifiziert wird, falls keine erlaubten Zustände oder Werte bei der Abfrage einer
Relation ableitbar sind.
25. Datenbank zum Konfigurieren und/oder Optimieren eines Systems das durch Variablen
auf finiten Bereichen und/oder Intervallen aufgespannt wird, wobei die Datenbank einen
adressierbaren Konfigurationsraumes des gesamten Systems speichert in Form aller erlaubten
kartesischen Unterräume von Zuständen oder Kombinationen welche der Verknüpfung im
Wesentlichen aller Systembeschränkungen auf allen Variablen genügen, wobei alle untereinander
in Verbindung stehenden kartesischen Unterräume adressierbar sind als erlaubte Kombinationen
von Indizes von Verbindungsvariablen, so daß im Wesentlichen alle erlaubten Lösungen
im System als verschachteltes Array gespeichert werden.
26. Datenbank nach Anspruch 25, welche gespeichert wird in einem Speicher oder Aufzeichnungsmedium
einer Einrichtung und/oder eines Computers und/oder eines Netzwerks.
27. Datenbank nach Anspruch 26, welche im Speicher oder Speichermedium derart gespeichert
ist, daß sie abrufbar ist zum Ableiten eines Unterraumes des Systems durch Anwenden
von Eingabe-Anweisungen und/oder -Abfragen auf die Datenbank.
28. Datenbank nach Anspruch 26, welche in einem Speicher oder Speichermedium gespeichert
ist, die angepaßt sind, um operativ mit einem Einrichtung und/oder einem Computer
und/oder einem Netzwerk derart verbunden zu sein, daß die Datenbank dadurch abrufbar
ist zum Ableiten eines Unterraumes des Systems durch Anwenden von Eingabe-Anweisungen
und/oder -Abfragen auf die Datenbank.
29. Einrichtung und/oder Computer und/oder Netzwerk, aufweisend einen Speicher oder ein
Aufzeichnungsmedium, in dem eine Datenbank nach Anspruch 25 gespeichert ist.
30. Einrichtung und/oder Computer und/oder Netzwerk nach Anspruch 29, bei welcher/welchem
die Datenbank im Speicher oder Aufzeichnungsmedium derart gespeichert ist, daß sie
abrufbar ist zum Ableiten eines Unterraumes des Systems durch Anwenden von Eingabe-Anweisungen
und/oder -Abfragen auf die Datenbank.
31. Netzwerk nach Anspruch 30, bei welchem die Datenbank derart im Speicher oder Aufzeichnungsmedium
eines oder mehrerer Computer gespeichert ist, daß die Datenbank abrufbar ist zum Ableiten
eines Unterraumes des Systems durch Anwenden von Eingabe-Anweisungen und/oder -Abfragen
auf die Datenbank ausgehend von einem mit dem Netzwerk verbundenen Computer.
32. Speicher oder Aufzeichnungsmedium, aufweisend Programmbefehle zum Ausführen der Schritte
des Verfahrens nach einem der Ansprüche 1-24.
33. Speicher oder Aufzeichnungsmedium nach Anspruch 32, bei welchem die Datenbank derart
gespeichert ist, daß sie abrufbar ist zum Ableiten eines Unterraumes des Systems durch
Anwenden von Eingabe-Anweisungen und/oder -Abfragen auf die Datenbank.
34. Speicher oder Aufzeichnungsmedium nach Anspruch 33, angepaßt um operativ mit einem
Einrichtung und/oder einem Computer und/oder einem Netzwerk derart verbunden zu sein,
daß die Datenbank dadurch abrufbar ist zum Ableiten eines Unterraumes des Systems
durch Anwenden von Eingabe-Anweisungen und/oder -Abfragen auf die Datenbank.
1. Procédé pour générer une base de données utile pour configurer et/ou optimiser un
système couvert ou formé par des variables dans des domaines et/ou dans des intervalles
finis, le procédé consistant à générer et mémoriser, dans une mémoire ou un support
de mémoire d'un ordinateur, un espace de configuration adressable de l'ensemble du
système sous la forme de tous les sous-espaces cartésiens autorisés d'états ou de
combinaisons satisfaisant à la conjonction de substantiellement toutes les contraintes
du système concernant toutes les variables, tous les sous-ensembles cartésiens autorisés
interconnectés étant adressables en tant que combinaisons autorisées d'indices de
variables de liaison, de manière à établir une base de données, dans laquelle substantiellement
toutes les solutions autorisées dans le système sont mémorisées sous la forme de réseaux
imbriqués.
2. Procédé selon la revendication 1, selon lequel toutes les étapes non autorisées ou
combinaisons non autorisées, qui réalisent une violation des contraintes du système,
sont exclues des relations.
3. Procédé selon la revendication 2, selon lequel, s'il s'avère qu'une seule relation
d'un système n'a aucune combinaison autorisée ni aucun état autorisé, l'ensemble du
système est considéré comme étant dans un état de contradiction ou d'inconsistance
et est exclu.
4. Procédé selon la revendication 1 ou 3, dans lequel des contraintes du système sont
déterminées par conjugaison d'une ou de plusieurs relations, chaque relation représentant
les sous-espaces cartésiens autorisés d'états ou des combinaisons dans un sous-ensemble
donné de variables.
5. Procédé selon l'une quelconque des revendications précédentes, selon lequel toutes
les relations avec au moins une variable commune sont colligées.
6. Procédé selon la revendication 5, selon lequel la colligation comprend la conjugaison
des contraintes de deux ou de plus de deux relations connectées ayant des variables
communes pour l'établissement du ou des sous-espaces cartésiens satisfaisant aux contraintes
combinées de deux, ou de plus de deux, relations.
7. Procédé selon la revendication 5 ou 6, dans lequel la colligation des deux, ou des
plus de deux, relations est exécutée en réunissant les deux, ou les plus de deux,
relations jusqu'à une limite prédéterminée, le nombre résultant de relations étant
colligé sous l'effet de leur liaison et de leur regroupement dans un ou plusieurs
groupes de relations.
8. Procédé selon la revendication 7, selon lequel chaque relation est étendue par addition
d'une variable de liaison unique avec un index unique identifiant chaque sous-espace
cartésien autorisé dans le sous-ensemble donné de variables.
9. Procédé selon la revendication 7, selon lequel toutes les relations connectées sont
regroupées dans un ou plusieurs groupes, chaque relation étant associée à un seul
groupe de relations.
10. Procédé selon la revendication 7 ou 9, selon lequel trois ou plus de trois relations
interconnectées avec des variables communes générant des cycles ou des trajets fermés
sont regroupées en un seul groupe comprenant les trois ou plus de trois relations,
le ou les groupes résultants étant interconnectés dans une structure arborescente
sans cycle.
11. Procédé selon la revendication 10, selon lequel toutes les contraintes des relations
interconnectées dans chaque groupe sont déterminées par colligation de toutes les
variables d'interconnexion dans le groupe, ce qui permet de déterminer l'espace de
configuration de l'ensemble du groupe, toutes les contraintes entre les trois ou plus
de trois variables de liaison étant représentées sous la forme d'une ou de plusieurs
nouvelles relations des trois, ou des plus de trois, variables de liaison.
12. Procédé selon la revendication 9, 10 ou 11, selon lequel toute paire de relations
avec des variables communes reliant deux groupes est colligée par addition d'une nouvelle
relation concernant les variables communes et les deux variables de liaison.
13. Procédé selon l'une quelconque des revendications précédentes, selon lequel une fonction
objet d'un sous-ensemble donné de variables, la fonction objet fournissant des caractéristiques
du sous-ensemble donné de variables, est liée à l'espace de configuration complet
par déduction des contraintes appliquées à chaque variable de liaison connectée au
sous-ensemble donné de variables.
14. Procédé selon la revendication 13, selon lequel les caractéristiques de la fonction
objet sont déterminées et les contraintes appliquées aux variables de liaison sont
déduites dans chaque combinaison des variables données, le résultat étant représenté
sous la forme d'une relation appliquée à la fonction objet, aux variables données
et aux variables de liaison.
15. Procédé pour configurer et/ou optimiser un système couvert ou formé par des variables
dans des domaines finis, ledit procédé consistant à :
- fournir une base de données générée par le procédé selon l'une quelconque des revendications
1 à 14, et
- déduire tout sous-espace, qui correspond à une instruction et/ou à une demande,
d'états ou de combinaisons couverts par une ou plusieurs variables du système représentées
par les réseaux imbriqués par obtention des conséquences d'une instruction et/ou d'une
demande par application des contraintes définies par l'instruction et/ou la demande
à la base de données.
16. Procédé selon la revendication 15, selon lequel une déduction de n'importe quel sous-ensemble
d'états ou de combinaisons est appliquée à un sous-ensemble donné de variables colligées
avec ou sans états affirmés et/ou mesurés et/ou contraintes à partir de l'environnement.
17. Procédé selon la revendication 15 ou 16, dans lequel toutes les interactions entre
le système représenté par la base de données du réseau et l'environnement sont exécutées
au moyen d'un vecteur d'états (SV) représentant tous les états autorisés ou valeurs
autorisées de chaque variable.
18. Procédé selon la revendication 16 ou 17, selon lequel un vecteur d'états d'entrée
(SV) représente les états affirmés et/ou mesurés à partir de l'environnement, tandis
qu'un vecteur d'états de sortie (SV2) représente une ou des conséquences déduites
de chaque variable de l'ensemble du système, lorsque les contraintes de SV1 sont colligées
avec toutes les contraintes du système dans la base de données du réseau.
19. Procédé selon l'une quelconque des revendications 16 à 18, dans lequel l'état de l'ensemble
du système est déduit par consultation d'une ou de plusieurs relations et/ou d'une
ou de plusieurs fonctions objets à un instant par colligation du sous-ensemble donné
de variables dans la relation avec les sous-ensembles donnés d'états dans le vecteur
d'états, puis déduction des états possibles de chaque variable.
20. Procédé selon la revendication 19, selon lequel deux ou plus de deux variables sont
colligées en parallèle.
21. Procédé selon la revendication 19, dans lequel la déduction d'états possibles est
exécutée sur deux ou plus de deux variables en parallèle.
22. Procédé selon la revendication 19, selon lequel l'exécution de la déduction est effectuée
par consultation de relations connectées jusqu'à ce qu'aucune conséquence supplémentaire
ne puisse être déduite pour une quelconque variable de liaison.
23. Procédé selon l'une quelconque des revendications 19 à 22, selon lequel au moins deux
relations sont consultées en parallèle.
24. Procédé selon l'une quelconque des revendications 16 à 23, selon lequel un état de
contradiction est identifié par le fait qu'aucun état autorisé ou aucune valeur autorisée
n'est déductible lors de la consultation d'une relation.
25. Base de données utile pour la configuration et/ou l'optimisation d'un système couvert
ou formé par des variables dans des domaines et/ou intervalles finis, la base de données
mémorisant un espace de configuration adressable de l'ensemble du système sous la
forme de tous les sous-espaces cartésiens autorisés d'états ou de combinaisons satisfaisant
à la conjonction de substantiellement toutes les contraintes du système pour toutes
les variables, avec tous les sous-espaces cartésiens autorisés interconnectés, qui
sont adressables en tant que combinaisons autorisées d'indices de variables de liaison,
de sorte que substantiellement toutes les combinaisons autorisées dans le système
sont mémorisées en tant que réseaux imbriqués.
26. Base de données selon la revendication 25, mémorisée dans une mémoire ou un support
de mémoire d'un appareil et/ou d'un ordinateur et/ou d'un réseau.
27. Base de données selon la revendication 26, qui est mémorisée dans la mémoire ou le
support de mémoire de telle sorte qu'elle est accessible pour la déduction d'un quelconque
sous-espace du système par application d'instructions et/ou de demandes d'entrée à
la base de données.
28. Base de données selon la revendication 26, qui est mémorisée dans une mémoire ou un
support de mémoire, qui est adapté pour être connecté de façon opérationnelle à un
appareil et/ou un ordinateur et/ou un réseau de sorte que la base de données peut
de ce fait devenir accessible pour la déduction d'un quelconque sous-espace du système
par application d'instructions et/ou de demandes d'entrée à la base de données.
29. Appareil et/ou ordinateur et/ou réseau comprenant une mémoire ou un support de mémoire,
dans lequel est mémorisée une base de données conformément à la revendication 25.
30. Appareil et/ou ordinateur et/ou réseau selon la revendication 29, dans lequel la base
de données est mémorisée dans la mémoire ou le support de mémoire de telle sorte qu'elle
est accessible pour la déduction d'un quelconque sous-espace du système par application
d'instructions et/ou de demandes d'entrée à la base de données.
31. Réseau selon la revendication 30, selon lequel la base de données est mémorisée dans
la mémoire ou le support de mémoire d'un ou de plusieurs ordinateurs de telle sorte
que la base de données est accessible pour la détermination d'un quelconque sous-espace
du système par application d'instructions et/ou de demandes d'entrée à la base de
données à partir d'un ordinateur connecté au réseau.
32. Mémoire ou support de mémoire comportant des instructions de programme pour l'exécution
des étapes du procédé selon l'une quelconque des revendications 1 à 24.
33. Mémoire ou support de mémoire selon la revendication 32, dans lequel la base de données
est mémorisée de telle sorte qu'elle est accessible pour une déduction d'un sous-espace
quelconque du système par application d'instructions et/ou de demandes d'entrée à
la base de données.
34. Mémoire ou support de mémoire selon la revendication 33, qui est adapté pour être
connecté de façon opérationnelle à un appareil et/ou à un ordinateur et/ou à un réseau
de telle sorte que la base de données peut devenir accessible pour la déduction d'un
quelconque sous-espace du système par application d'instructions et/ou de demandes
d'entrée à la base de données.