EP3213267A1 - Architecture logicielle pour systeme expert - Google Patents
Architecture logicielle pour systeme expertInfo
- Publication number
- EP3213267A1 EP3213267A1 EP15771155.7A EP15771155A EP3213267A1 EP 3213267 A1 EP3213267 A1 EP 3213267A1 EP 15771155 A EP15771155 A EP 15771155A EP 3213267 A1 EP3213267 A1 EP 3213267A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- input
- value
- values
- input value
- rule
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/048—Fuzzy inferencing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
Definitions
- the invention relates to the field of artificial intelligence in general and the field of rule-based expert systems in particular, in particular based on fuzzy logic.
- Fuzzy Intelligent Systems or fuzzy expert systems - are systems that integrate or implement human expertise and that seek to automate or mimic the reasoning of human experts with complex systems. These eminently technical systems can be based on different aspects of mathematical logic and in particular on logic called "fuzzy logic”.
- fuzzy expert systems generally require more calculations than standard or conventional expert systems. In addition, these systems generally require the repetition of these significant calculations over time (for example when they are applied to dynamic systems that change over time).
- fuzzy expert systems usually require computing power.
- scientists developing fuzzy expert systems are usually led to build increasingly complex and “rich” operators. The computation time can then become more important than the conjunctions, disjunctions and negations that are generally found with classical expert systems.
- fuzzy expert systems require the repetition of these calculations. Indeed, in classical expert systems, only certain rules are activated at a given moment whereas with fuzzy expert systems, all the rules must be recalculated (at least a large part of them).
- the only currently available means to manage an input data stream i.e., multiple data received over time
- the devices and devices involved may not have sufficient computing power, even if the calculation would be distributed between several devices cooperating with each other.
- that of the Internet of Things it is for example generally expected a very large number of objects in interaction but these objects do not necessarily have appropriate computing means.
- a computer-implemented method comprising the steps of receiving an input value to be evaluated; thread the input value into a queue; select from the queue a pending entry value; determining an output value by inferring by the rule base the selected input pending value.
- Developments describe the dissemination of one or more output values, the planning in time and / or space of assessments of pending input values (particularly in terms of computing resources), the selective evaluation of input values, the use of a dependency graph, expiration parameters of rules in time, the use of fuzzy logic inference.
- System aspects, including components, and software are described.
- a software architecture for obtaining optimized performance, to identify the different output data according to the rules and data input. More precisely, according to one embodiment of the invention, a fuzzy expert system capable of managing a flow (continuous or regular or discontinuous or irregular or periodic or aperiodic or intermittent) of inputs and of progressively restoring is disclosed (e.g. in the course of the water ”) the values of the corresponding outputs.
- the various embodiments of the invention are advantageously used in technical fields such as home automation or industrial control.
- the invention will find application to monitor ("monitoring") a given system or object by means of several sensors (“sensors”) which measure different phenomena continuously (or at possibly different frequencies, intermittently or from periodically).
- Sensors sensors
- Methods and systems according to the invention can implement a home automation control system.
- a fuzzy expert system according to the invention can measure over time (discretely or continuously) the variations in temperature, brightness and occupation of the parts to deduce and / or actuate corresponding commands (for example opening of the shutters).
- the writing of the rules according to the invention is done in natural language (rather than by means of mathematical operators).
- This hides - at least partially - the operator who enters his expert rules the mathematical complexity underlying the running model.
- the use of natural language also improves the expressiveness of the expert system. This characteristic makes it possible to obtain a better coverage of the real situations by the rules.
- a fuzzy expert system based on rules expressed in natural language ultimately allows a better "capture" of reality.
- some embodiments advantageously manipulate rules or expressions using the vocabulary of natural language, improving the understanding (and therefore the subsequent manipulation) of these rules or expressions.
- Fuzzy logic is an extension of classical logic to approximate reasoning. By its numerical aspects, it is opposed to modal logics.
- fuzzy logic allows the truth value of a condition to traverse a domain other than the ⁇ true, false ⁇ pair.
- fuzzy logic there are degrees in the satisfaction of a condition. Fuzzy logic assigns degrees of truth to a relationship of the style x is closer to y than z, constructed and / or refined by learning.
- fuzzy relationships will allow the coding of graduated, empirical or typical knowledge acquired directly or through heuristics, inductions, etc.
- the transitions used can be linear, hyperbolic (e.g. sigmoid or hyperbolic tangent), exponential, Gaussian, etc.
- the methods and systems of the invention generally facilitate human-machine interactions. In particular, they can help to relieve the user of tedious manipulations, sometimes repetitive and often complex.
- the various embodiments of the invention lead to the optimization of the cognitive effort to be provided by the user when using the expert system according to the invention.
- the technical effects related to certain aspects of the invention correspond to a reduction in the cognitive load of the user. Description of figures
- FIG. 1 schematizes the general architecture of an exemplary method according to the invention
- Figure 2 illustrates an example of a rule represented as a graph
- Figure 3 illustrates an example of a graph with nodes having priorities.
- a rule-based system is a tool capable of reproducing the cognitive mechanisms of an expert in a particular field. More precisely, an expert system is a software capable of answering questions, making reasoning based on known facts and rules. It can be used as a tool for decision support.
- An expert system consists of three parts: a fact base, a rule base, and an inference engine. The inference engine is able to use facts and rules to produce new facts, until reaching the answer to the expert question asked.
- An expert system can rely on formal logic mechanisms and use deductive reasoning. It can for example be based on the logic of the propositions ("logical order 0"), or the logic of the first-order predicates ("first-order logic"). Fuzzy logic techniques can also be used.
- the algorithms for performing the inference calculation are various and may in particular be specific to the nature of the logic that is implemented.
- the forward chaining or backward chaining algorithms Allow to start from the facts and to deduce the conclusions (or conversely to start from the conclusions to know the facts which are at the origin).
- the Rete and Novel algorithms replaced these chaining algorithms by proposing a step of filtering the rules impacted by the facts.
- chaining algorithms are used in conjunction with a unification algorithm to instantiate a predicate for one or more individuals in the space under consideration.
- the methods and systems of the invention perform one or more operations or steps, including steps of a) storage b) measurement or observation c) planning the evaluation d) evaluation itself and e) of diffusion. More specifically, the method comprises one or more steps among
- the queue according to the invention can delete, and / or merge elements (for example if the refresh rate of the inputs is too high).
- the queue may not be "passive” (in the sense of a simple temporary storage space) but instead be "active", i.e. actively participate in the overall system;
- steps of measurement or observation or monitoring or monitoring of the current context including and not limited to the monitoring of the state of the machine, ie processor load or activity or calculation means, instantaneous use of the memory, etc.; in addition, these steps may further comprise steps of selecting certain elements to be removed from the queue, for example with a view to their processing (according to the implemented policy);
- the scheduling component can select one or more entries (or a group of entries) that have changed or have been modified and can decide to assign its evaluation to an entity (a heart, a calculator) and / or or may just not take into account a group of entries if it considers that the machine is too busy and / or that these changes are not informative or redundant.
- the modes of said diffusion can be carried out in various ways and for the purpose of either various sub-entities (generally out of the expert system fuzzy, but in special cases to components internal to this system).
- a method implemented on a computer for managing a rule base 150 comprising the steps of receiving an input value 101 to be evaluated; inferentially evaluating by means of the rule base 150 an output value 102 corresponding to the input value 101; characterized in that the method comprises the steps of threading the input value into a queue 1 10; select 1 12 in the queue 1 10 a pending entry value; and determining an output value 102 by inferring by the rule base 150 the selected pending input value.
- An input value can be a numerical value (for example "38”) or a symbolic data item or a variable (for example "a”) or even a sequence of characters (for example "38 ° C").
- Rule base 150 includes rules.
- a rule - within the meaning of the invention - consists of several elements: propositions, expressions (unary, binary, ...) and conclusions. Proposals may include variables in the context of fuzzy logic.
- a rule includes several expressions (first fruits, conclusions) and one or more operators (for example standard predefined logical operators “if", “then”, etc. as well as specific operators “before”, “after”, “as long as” ). For example a rule can be "if the temperature is high then open the window”).
- An expression may include a sequence of characters (for example "if the temperature is high” or "open the window”).
- An expression can be a regular expression.
- An expression can be a regular expression.
- An expression can be a formal expression.
- a rule or an expression manipulated by the method according to the invention comprises vocabulary belonging to the natural language (ie the words or sequences of characters are words of the natural language), improving the understanding of the rules by the user and reinforcing the expressiveness of these same rules (eg their ability to "capture” the real world).
- An input value according to the invention is "threaded” ("to queue” in English) or "placed in a queue”.
- An input value is then selected from pending values.
- this selection may be due to the queue itself (for example, when the storage capacity of the queue is reached, the queue may "push" one or more input values to the queue. evaluation or to other components of the system).
- the selection is due to the planning module (ie the stages of planning the evaluations), for example according to a pull mode.
- the planning component (the planning steps) participates in the control of the system thus defined.
- the threading may be of the type "First In First Ouf.”
- the queuing may involve processing on the values. to a "policy", that is to say a set of rules.These rules are predefined.They can be of logical type (according to various modalities, for example classical logic.They are sometimes configurable (in a previous way and / or on demand ie running the process or global system.) In this case, in queuing, the waiting values can be "ordered” and / or “sorted” and / or “grouped together. “and / or” erased. "The processing criteria are variable (weights, correlations, scoring, etc.).
- the queuing step (i.e. the input queuing component) can place perceived changes to entries in a queue so that no information is lost.
- the queue (or the corresponding system component) is not necessarily of limited capacity as a buffer can be; a queue according to the invention can optionally be adapted to the management of a large amount of data.
- the input queuing component may delete items or merge them, for example if an entry changes values without the change being significant. In another example, it also allows to group by arrival time.
- an input value is selected. Subsequently the input value is "executed” (ie "the expression or rule is evaluated”).
- the evaluation component receives a group of modified entries and by inference with respect to the rule base calculates the outputs.
- the value of the speed input (“The speed is high?") Can be evaluated: a value can be determined at the output.
- a value can be determined at the output.
- an entry will be a temperature value (eg "41 ° C”). not strong below 38 ° C, and that it is strong above 40 ° C according to the base of rules (ie gradually more and more strong between 38 ° C and 40 ° C (linearly, exponentially, or according to continuous functions)
- An output value will be an expression "administering aspirin” or a value / quantification eg "X" milligrams of aspirin.
- Inference is a movement of thought that goes from principles to conclusion.
- the term refers to the actions of linking a set of propositions, resulting in a demonstration of truth, falsity or probability, in the form of a proposition called conclusion.
- the inference can be deductive or inductive or even abductive.
- the method further comprises a step of broadcasting one or more output values 102.
- the scheduling component in application of its policy, can select a particular output value.
- the broadcasting component can also, depending on its policy, over-select values before communicating them (ie select previously selected values). For example, the broadcast component may communicate or broadcast output values at regular intervals in time and / or when a particular event occurs and / or if certain conditions are satisfied, etc. Taking account of the history can for example contribute to the fusion or the assimilation of the input values; taking into account certain predefined thresholds may cause the broadcast component not to reiterate the broadcast of a result associated with an entry if a very close value (eg within the limits of predefined thresholds) has already been communicated in the past, at the very least during a predefined time window etc
- the broadcast step includes a step of communicating the output values outside the fuzzy expert system according to its policy. It can thus diffuse the values of the only outputs having changed values and / or to join there the information of interpretation (all or part of the values making it possible to trace the inference for example) and / or to communicate the values of the outputs have experienced a significant change (greater than a threshold) and / or values of outputs that have not changed in value but whose interpretation information is different.
- the component or unit or unit in charge of the "diffusion” or “communication” or “publication” itself of this output value 102 may be the component 130 for example.
- “diffusion” or “communication” or “publication” is meant a diffusion or external or external communication (the other exchanges or passages message is made internally to the system 100.
- the system 100 from the point of view of the user or from a systemic point of view appears as a "black box", which processes (according to a regulation or internal clean processing ) a number of data and publishes some output values.
- the communication methods are numerous: visual display (LCD screen, flashing light, etc.), data transmission or message passing (eg email, data channel, RSS feed), audio signal or broadcast, vibratile signal (or a combination of these methods of communication).
- the step of evaluating a selected pending entry value includes a step of scheduling in time and / or in space the evaluations of pending entry values.
- the evaluation step may in fact comprise steps consisting in allocating the calculation tasks to the different calculation means (physical and also temporal distribution).
- planning means "organizing” (i.e. scheduling in time and space). Planning in time and / or space includes, for example, ordering or organizing or orchestrating calculations (for example, “threads” or any other computing subtask corresponding to different levels of granularity) as well as 'to assign them to units of calculations, that is to say an allocation of computational tasks in space (physically between the different processors or processor cores, CPU multicore or manycore).
- Evaluation or execution can be selective.
- the method according to the invention can indeed not calculate or evaluate certain input values. In a positive way, only certain expressions or input values are evaluated.
- the method is computationally efficient.
- the method may evaluate one or more input values only when necessary.
- the threading step or unit can group entries for example according to the modification context (for example, the time at which the entries have changed) and the planning step or scheduler can retrieve a group of entries associated with this same context.
- the context may be the place where the entries have changed. Other variants use combinations of date and place etc.
- the method further comprises a step of separating the graph corresponding to the rule base 150 into several disjoint sub-graphs, a step of selecting at least one sub-graph comprising a node corresponding to a value of selected waiting entry and a step of evaluating said selected sub-graph.
- a representation of the rules in the form of a graph makes it possible to isolate the nodes (corresponding to the different rules or expressions making up these rules) from which it is advantageous to carry out the reevaluation.
- the rule base can be represented as a graph rather than as a forest (a set of trees) because in doing so it is possible to ensure the uniqueness of the nodes.
- a part of a rule (a proposition, an expression, a conclusion, an entry, an exit 7) can only be represented by a single node.
- a certain subset of the inputs changes at a time t, only the nodes that are affected can indeed be reevaluated. It is advantageous to identify different disjoint subgraphs of the graph (which represents the entire rule base).
- the graph G corresponding to the base of all the rules will be disjoint into several connected graphs Gi for which there is no common edge between these different Gi.
- the disjointed graphs do not have any nodes in common, so no common parts, so no input or output in common.
- the graph is oriented (for example, node A oriented towards node B).
- the evaluation of a given node can have a consequence on the evaluation of a node that depends on it.
- To proceed with the evaluation of the nodes of the graph said graph can be traversed.
- each node is associated with a certain evaluation "priority" relative to its depth in the graph (in one embodiment, the input values can be associated with with a priority equal to zero, other nodes may have the same priority but usually the different nodes are associated with different priorities).
- certain nodes - determined by the paths connecting them to the nodes representing an input of the system - are recalculated. Nodes are evaluated in turn only if at least one of their predecessors has changed in value. If a node does not change value, evaluation of the paths starting from itself does not take place.
- the global graph associated or representing the rule base is first disjoint into several disjointed sub-graphs, which allows processing or analysis in parallel (the sub-graphs are "independent").
- the method selects one or more subgraphs.
- a criterion of selection includes detecting one or more nodes representing, for example, the only sufficiently modified input values that have been selected by the scheduler from the queue containing the input values. Finally, the subgraph is evaluated.
- Disjoining the graph into several subgraphs therefore makes it possible to parallelize the calculations and to allocate these calculations to independent cores and / or threads.
- this parallelization reduces the possibility of errors in the calculations, improves the processing speed, optimizes the use of resources or calculation means, etc.
- the step of evaluating a subgraph comprises a step of traversing said subgraph, a step of recursively associating a priority with each node of the subgraph and a step of evaluating the nodes by priority growing.
- the priority is more generally a coefficient or a parameter or a value.
- Other embodiments of the invention involve not a priority value but a "depth". There are various ways to annotate the graph. It is possible in one embodiment to associate the inputs with a value equal to zero and to proceed incrementally as the graph is traversed (the nodes associated with the lowest priority values being then processed first). Other embodiments of the invention may use other weighting or scoring techniques.
- the method further comprises a step of comparing the character strings composing the expressions making up the rules of the rule base, a step removing redundancies between said expressions to obtain unique expressions and a step of evaluating said unique expressions.
- a step of comparing the character strings composing the expressions making up the rules of the rule base a step removing redundancies between said expressions to obtain unique expressions and a step of evaluating said unique expressions.
- An expression can be present in several rules. For example the expression “the temperature is high” can be present in a first rule “if the temperature is high then open the window” and a second rule "if the temperature is high then administer aspirin". It is possible to uniquely represent expressions that appear multiple times in the rule base.
- One way of doing things includes string comparison operations that make up expressions or rules. Redundancies can be partially or completely removed.
- a portion of a policy rule 150 is associated with a timeout parameter / value.
- no rule (or even rule rule) expires, i.e. the validity of the rule is persistent over time.
- one or more rules may expire in time (according to various settings)
- a portion or portion of a rule may expire in time ("expire”, become “obsolete” or “deciduous” or “non-operable” or “no effect”).
- a rule party can be a proposition or an expression for example.
- Expirable rule parts are therefore objects that have a limited lifetime (or whose calculated value has a limited duration in time).
- the planner (among other units in the system) may decide not to evaluate the rule portion in question.
- the planner can check whether the expired expression is used in one of the calculations as planned in time and / or space. Where appropriate, the expression is evaluated; otherwise, the expression is left unchanged with its expired value. In some cases, the expired expression is deleted.
- the expression “tomorrow H will be fine” can change value for two reasons: either the weather forecast have changed (in this case it is not really an expiration but a simple change in value depending on the entries of the system) or the value changes (for example due to the passage of the day from Wednesday midnight to Thursday). Even if the value of the weather forecast for Wednesday remains unchanged, the expression will expire (in this case, it expires every 24 hours).
- each expression may expire according to different temporal parameters.
- advanced time parameters are used (time slots but also and for example according to time derivatives, ie trend acceleration etc.).
- Expressions or parts of rules can expire in very different time scales (eg every second or millisecond for reactive systems).
- the expiry of the validity of the rule parts can be modulated in a more sophisticated manner, for example according to parameters, tests, circumstances or various conditions. For example, space parameters can be taken into account to determine the expiration or the non-expiration of a rule (eg geo location or "geofencing" conditions, etc.).
- the evaluation by inference is done according to the logic of order 0 or the logic of order 1 or according to the fuzzy logic.
- a computer program product comprising code instructions for performing one or more of the method steps, when said program is run on a computer.
- the system comprises means for receiving an input value 101 to be evaluated; inference evaluation means by means of the rule base 150 of an output value 102 corresponding to the input value 101; and is characterized in that the system comprises storage means for threading the input value 101; calculation means for selecting an input value threaded and for scheduling in time and / or in space the evaluations of one or more pending input values; calculating means for evaluating the selected waiting input value threaded into an output value 102; input / output means for broadcasting one or more output values 102;
- Storage means for example, volatile or persistent memories (e.g. flash memory, hard disk, DDRAM, SRAM, etc.).
- the computing means are processors or cores of processors.
- the input / output means (or "I / O” or “I / O” for "Input / output” in English) are means of communication of different types (radio, wireless, wired eg Ethernet) using a variety of TCP / IP protocols or others).
- the system includes an input / output component for receiving one or more input values; a donning component adapted to perform one or more of the steps among those consisting of storing, grouping, merging and deleting input values; a scheduling component adapted to perform one or more of the steps of selecting, deleting, grouping, merging, allocating input values threaded; an evaluation component adapted to evaluate one or more input values threaded and manipulated by the inference planning component using the rule base; a broadcast component adapted to select and communicate one or more input values.
- a policy associated with a component or unit corresponds to a set of rules "internal" to the component or unit.
- a policy can be static, i.e. predefined and constant over time.
- a policy can also be dynamic, i.e. variable over time.
- Speaking of a system composed of a set of components each associated with such "policies”, a "general” policy can emerge, in the sense of an emergence or an observation, resulting from the combination of the different policies set implemented effectively locally for each component.
- the set of policies of the different components can set the overall behavior of the overall system.
- different policy configuration files implemented in the different components can be made available (e.g., defined by the user, the operator of the monitoring service, via the network etc.).
- the various policies are generally expressed by rules linking descriptive attributes of the problem or the aspect of the system to be monitored (eg as regards the time of refreshing the inputs, frequency of refreshing the outputs, etc.) or the descriptive attributes of the platform on which the system runs (eg number and processor occupation, amount of available and used memory ...) and thresholds.
- a rule may be that if an entry changes value more than once in less than one second, only the last value will be selected.
- the planning component if the platform has several available cores, the execution can be parallelized.
- a "FORWARD" operator For example, a "version" of the operator - specific to the problem or aspect of the monitored system - for example a variant of the implementation of the operator can be implemented.
- a policy may be to broadcast the changes every second, for example.
- a component policy may consider that modifications relating to two different inputs occurring within a few milliseconds of intervals are actually concomitant ("substantially" concomitant) and will therefore be treated as one and the same input .
- a policy can configure or predefine data assimilations or mergers or aggregations.
- a data merge or aggregation or data assimilation policy can advantageously be used when it is known that the values of the inputs are provided by a means of communication with a certain latency (network ).
- a policy is therefore a way to configure or parameterize a component with respect to a given application.
- the scheduling component can "select” and “allocate” previously entered input values: in other words, it can “propagate” particular input values (it can in particular select these values from the knowledge of the graph of addiction).
- the broadcast component may perform the communication at a later time and thus “defer” the communication or broadcast.
- a component policy includes a set of rules in relation to tangible ways of executing those rules.
- the policy associated with a component makes it possible to parameterize and modify the behavior (“emergent") of the component to which it applies.
- a policy typically includes a set of operations selected from the operations of filtering, ordering, sorting, segmenting, splitting, merging, deleting, skipping, adding, substituting, concatenating, compressing, storing one or more input values.
- a policy can be parameterized (e.g. previously) or configurable (e.g. according to variables for example ). In other words, a policy can be configured or configurable.
- a policy may be "universal" in the sense that the different policies associated with the different components may be interchangeable. In another embodiment, the policies may not precisely be interchangeable between the different components. For example, regarding the operation of filtering, the threading unit will not apply the same type of filtering as the broadcast unit or even the planner.
- the threading component is adapted to perform one or more of the steps of storing, grouping, merging, and deleting input values or data;
- the planning component is adapted to perform one or more of the steps among those consisting of deleting, canceling, skipping, merging, allocating (to computing resources for example), associating or annotating (eg by state values) input values;
- the broadcast component is adapted to perform one or more of the steps of selecting (eg according to predefined criteria or thresholds), grouping, differing, choosing times in time, canceling input values or data;
- the evaluation component is adapted to perform one or more of the steps of restricting or extending the evaluable operators (by choosing predefined implementation variants for example, ie changing the semantics of the operators)
- FIG. 1 schematizes the general architecture of an exemplary method according to the invention.
- the architecture of a fuzzy expert system 100 is composed of a rule base 150, a set of inputs 101 (or “I” for “input”) and a set of outputs 102 (or “O” “for” Output ").
- This architecture is that of a "classic” fuzzy expert system.
- the component 1 10 is a queuing component ("threading” or "Q” for "queuing") of the inputs 101.
- this component captures these changes.
- this component may apply different queuing policies. For example, certain rules - or policies - for filtering may take into account the capacity of the machine (eg the host machine or the machine being monitored) and / or the nature of the changes themselves (for example, if the value of an output has not changed by less than 1%, no need to consider its new value), or else group the changes (not exhaustive).
- the component 130 is a diffusion component of the outputs. Outputs 102 change over time. This component according to the invention advantageously makes it possible to "broadcast” (or “notify” or “communicate” or “transmit") the new output values 102. In some embodiments, explanations on the change of the output values may be also communicated.
- the component 130 like the component 1 10 can apply different predefined policies. For example, the component 1 10 can inform value changes of the outputs 102 at a predefined time interval (for example every N seconds) and / or inform as soon as an activation value has changed, according to thresholds or ranges. thresholds (non-exhaustive).
- the component 120 is a planning component of the calculations. This component 120 is informed or notified in step 1 12 of the arrival of one or more changes by the threading unit component 1 10. The component 120 can then trigger or actuate or solicit or control the component component 130 of broadcast outputs. Depending on the current state of the machine or all the machines, the component 120 is able to affect the calculations to a processor or a heart on a particular machine, to prioritize a calculation or a sub-task calculation (eg thread), etc.
- the set of entries 101 having changed are queued by the threading unit 1 10 (possibly treated according to its policy).
- the threading unit then notifies in step 1 1 2 the planning unit 120 that new entries are available.
- This planning unit 1 then applies its policy and uses the evaluation unit 140 in step 1 22.
- the evaluation unit 140 at the end of the calculation, informs or notifies back (step 1 23) the planning unit 120 that the evaluation is completed.
- the component 1 20 informs in step 1 21 the broadcast unit 130 that it can broadcast the changes of the outputs (if any).
- the component 120 also executes its own policy, if any.
- Figure 2 shows an example of a rule in the form of a graph.
- the rule base of the expert system can be optimized, in particular the representation of this rule base.
- the evaluation unit can also be optimized.
- the evaluation 140 may be selective, that is to say, evaluate the only expressions impacted by the change found for certain inputs 1 01.
- the method according to the invention aims at optimizing the calculations or arithmetic operations to the only necessary operations or calculations.
- the method avoids the execution of a portion of code whose results are not (really or strictly) necessary, (eg it is useless to calculate a result that is not used).
- the method according to the invention is advantageously economical in calculation, improving the associated response times.
- the method according to the invention for calculating an expression or rule of the expert system only when necessary it is advantageous to represent the dependence between all the elements that make up the rule or the expression. In this way, optimizations can be conducted (redundancy deletions, calculations restricted to the only necessary calculations, etc.).
- a rule - within the meaning of the invention - consists of several elements: propositions, expressions (unary, binary, ...) and conclusions.
- Proposals can include inputs (eg linguistic variables in the context of fuzzy logic).
- the rule base can be represented using a graph in which each node represents an entity (eg variable, expression, conclusion, rule, etc.).
- An arc between two nodes A and B, denoted by A ⁇ B, indicate that the evaluation of B depends on the evaluation of A.
- a changes value the value of B must be recalculated.
- a rule is represented by a tree and thus a rule base corresponds to a tree forest.
- a tree is not sufficient because it is possible that rules share entities (for example the same proposal).
- the graph representation advantageously makes it possible to obtain the uniqueness of the representation of each expression or entity. This uniqueness avoids the redundancy of calculations. By means of a graphical representation, it is sufficient to check in all the nodes of the graph if none of them carries the same information.
- This representation of the rule base as a graph combined with rules expressed in natural language is particularly advantageous for the manipulation of a fuzzy expert system. Indeed, for the same physical variable, depending on the membership function, the same fuzzy value can be associated with different values after "fuzzyfication", ie application of fuzzy logic techniques. For example, if the variable under consideration is the temperature, if the membership function is a trapezium whose small base is between the values 15 ° and 25 ° and at 1 on the ordinates, then all the values of temperature between 15 ° and 25 °. ° and 25 ° are worth 1 after fuzzyfication. In this case, there will be no calculation beyond the fuzzyfication of the temperature. This aspect makes the implementation of the method practical the sensors provide values that oscillate slightly or in a limited way.
- Figure 3 illustrates an example of a graph with nodes having priorities.
- the representation of the rule base by a graph may not be sufficient.
- the parent nodes will be evaluated until the evaluation of the expression 220 "the temperature is warm and the air n" is evaluated. is not wet.
- the path between the "humidity" input 202 and this expression 220 is longer than that from the "temperature” input 201.
- the expression 220 "the temperature is hot and the air is not humid” will be evaluated twice: first time as dependent on the expression 215 "the temperature is hot” and a second time as dependent on the expression expression 213 "the air is not wet”.
- a priority queue is created which first processes the nodes whose priority is the lowest and which does not accept that the same object is present twice in the queue.
- a zero priority ie equal to 0 these entries must be evaluated first in all cases
- the expression 201 "temperature sensor” and the expression 202 “humidity sensor” are placed in the queue.
- both expressions being equal priority
- the expression 201 "temperature sensor” will for example be evaluated and the expression 215 "the temperature is hot” will be added to the queue.
- the expression 202 “humidity sensor” will be evaluated and the expression 213 "the air is wet” will be added to the queue.
- the expression “hot temperature” is then evaluated and the expression “the temperature is hot and the air is not humid” is placed in the queue with priority.
- the expression “wet air” has priority (its weight or priority coefficient 2131 is equal to 1 while the other expression 220 is associated with a priority 2201 equal to 3), it is evaluated and the expression 214 "the air is not wet” is added to the queue. Since the 2141 priority of the expression 214 is 2, this expression 214 will be evaluated first and the expression 220 "the temperature is hot and the air is not wet” should be added. However, this expression 220 "the temperature is hot and the air is not wet” is already present in the priority queue so it is not added. Then, the expression 220 is in turn evaluated. In this way, it is avoided to carry out a double evaluation of the expression 220 "the temperature is hot and the air is not humid".
- the unit 1 10 (signal notification of changes in the value of the inputs) watches for each of the entries of the system changes in value. In this case, the changes are put in a queue in a certain order (eg according to the policy of this unit).
- the unit 1 10 for queuing the notifications of the input changes communicates or notifies in step 1 12 the values of the new entries to the planning unit 120.
- a policy may express the need to merge changes in values that have occurred so consecutive.
- a policy may also consider that modifications of two different inputs occurring within a few milliseconds of intervals are actually concomitant ("substantially" concomitant).
- a policy can configure or predefine data assimilations or mergers or aggregations. This last policy can be used when it is known that the values of the inputs are provided by a means of communication with a certain latency (network ).
- the scheduling unit 120 that receives a communication or notification from the unit 110 responds according to its own policy.
- a simple policy may be to immediately trigger the evaluation of the neighboring nodes of each of the nodes representing the entries that have been changed. It is also possible to implement having one or more more sophisticated policies that may consist of, for example, managing parallel computing or calculation distribution.
- the calculations can indeed be spread over several cores and / or multiple multi-core machines. More precisely, either the different times are processed on different cores or machines, or for a given time t, the entities to be evaluated are separated (if this is possible) in order to be evaluated independently.
- this separation can be implemented as follows: in the graph G which represents the rule base, it is selected a graph G 'included in G, so that there is a path starting from the entries that have just been modified. Then it is searched in G ', if they exist, Gi connected graphs for which there is no common edge between these different Gi.
- Each connected graph Gi can then be evaluated in parallel (ie be the subject of parallel calculations).
- other policies may be implemented to take into account, for example, the capacity and the occupancy rate of the machines used.
- time management rules are added and combined with rule base rules.
- a system for which one or more expiration values are associated with the expressions or rules that are manipulated In an expert system for continuously processing data, it is for example advantageous to express an expression in the form: "if an event occurred in the last 10 minutes then ". Assuming that such an event occurred at t0, at t0 + 5 minutes, the proposition is true. On the other hand, it will no longer be true at t0 + 15 minutes because the time window of 10 minutes will have expired. An expression such as "an event has occurred in the last 10 minutes” can therefore evolve, ie change expression or value, without an entry changing its value.
- certain expressions may be "expirable", that is to say that their value has a limited duration and / or that these expressions are aware that they must be recalculated after a certain time (which can be parameterized or parameterizable eg variable function or configured / configurable).
- these expressions are communicated by the planning unit 120 to the evaluation unit 140.
- the scheduling unit 120 decides in particular when the expression should to be reassessed.
- the present invention can be implemented from hardware and / or software elements. It may be available as a computer program product on a computer readable medium.
- the support can be electronic, magnetic, optical or electromagnetic.
- the device can use one or more dedicated electronic circuits or a general purpose circuit.
- the technique of the invention can be realized on a reprogrammable calculation machine (a processor or a microcontroller for example) executing a program comprising a sequence of instructions, or on a dedicated calculation machine (for example a set of logic gates). as an FPGA or an ASIC, or any other hardware module).
- the device comprises a computer readable storage medium (RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical disk carrier, magnetic cassette, magnetic tape , magnetic storage disk or other storage device, or other non-transitory computer readable storage medium) encoded with a computer program (i.e., multiple executable instructions) which, when executed on a processor or several processors performs the functions of the previously described embodiments.
- a computer program i.e., multiple executable instructions
- a device may comprise a communication bus to which a central processing unit or microprocessor (CPU, acronym for "Central Processing Unit”), which processor can be "multi-core” or “many-core”; a read-only memory (ROM, acronym for “Read Only Memory” in English) that may include the programs necessary for the implementation of the invention; a random access memory or RAM (Random Access Memory) with registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs; and a communication interface or I / O (I / O acronym for "Input / ouput” in English) adapted to transmit and receive data.
- CPU central processing unit
- ROM Read Only Memory
- RAM Random Access Memory
- the corresponding program (that is to say the sequence of instructions) can be stored in or on a removable storage medium (for example an SD card , a DVD or Bluray, a mass storage means such as a hard disk eg SSD) or non-removable, volatile or non-volatile, this storage medium is readable partially or completely by a computer or a processor.
- the computer readable medium may be transportable or communicable or mobile or transmissible (i.e. by a 2G, 3G, 4G, Wifi, BLE, fiber optic or other telecommunication network).
- the reference to a computer program that, when executed, performs any of the functions described above, is not limited to an application program running on a single host computer.
- the terms computer program and software are used herein in a general sense to refer to any type of computer code (for example, application software, firmware, microcode, or any other form of computer code).
- computer instruction that can be used to program one or more processors to implement aspects of the techniques described herein.
- the means or computing resources can be distributed, eg with Cloud Computing, or with peer-to-peer technologies.
- the software code may be executed on any suitable processor (for example, a microprocessor) or a processor core or set of processors, whether provided in a single computing device or distributed among a plurality of computing devices (eg example as possibly accessible in the environment of the device).
- the executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk or in read-only memory.
- the program or programs may be loaded into one of the storage means of the device before being executed.
- the central unit can control and direct the execution of instructions or portions of software code of the program or programs according to the invention, instructions that are stored in the hard disk or in the ROM or in the other storage elements mentioned above.
- the sensors may comprise one or more of the sensors or sensors selected from pressure, flow, temperature, oxygen, velocity, motion, position, location, radioactivity, energy, chemical products or components (eg nitrogen monoxide, ozone, smoke, pollutants, etc.) or biological products or components (eg viruses, contaminants, pollen, etc.).
- the sensors can include one or more MEMS, magnetometers, hygrometers, gyroscopes, accelerometers, biosensors, radars, sonars, cameras, 3D scanners etc.
- the actuators or actuators may be pneumatic, hydraulic, electrical, mechanical, magnetic, pelletier, piezoelectric or electroluminescent, etc. They may for example comprise one or more cylinders, motors, heating resistors, lamps, acoustic enclosures, electromagnets, or even thermo coolers, ionizers, valves, valves, reels, etc.
- the sensors and actuators can be those used in the context of home automation applications.
- the actuators may include switches, keypads, dimmers, temperature sensors, flow sensors, occupancy sensors, humidity sensors, brightness sensors, smoke detectors, and the like.
- the invention will advantageously find application for the management of lighting systems, heating, air conditioning, opening / closing flaps, garden watering, video surveillance, opening / closing of doors, ventilation, lighting, access or any other system that can be controlled by a home automation system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1460382A FR3028076B1 (fr) | 2014-10-29 | 2014-10-29 | Architecture logicielle pour systeme expert |
| PCT/EP2015/072603 WO2016066364A1 (fr) | 2014-10-29 | 2015-09-30 | Architecture logicielle pour systeme expert |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3213267A1 true EP3213267A1 (fr) | 2017-09-06 |
Family
ID=52692736
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP15771155.7A Withdrawn EP3213267A1 (fr) | 2014-10-29 | 2015-09-30 | Architecture logicielle pour systeme expert |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20170300804A1 (fr) |
| EP (1) | EP3213267A1 (fr) |
| FR (1) | FR3028076B1 (fr) |
| WO (1) | WO2016066364A1 (fr) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10013513B2 (en) | 2014-10-31 | 2018-07-03 | International Business Machines Corporation | Accelerating particle-swarm algorithms |
| CN108984843B (zh) * | 2018-06-20 | 2021-02-09 | 北京大学 | 一种基于守卫计算的区间信息分析方法 |
| EP3843016A1 (fr) | 2019-12-23 | 2021-06-30 | Commissariat à l'Energie Atomique et aux Energies Alternatives | Procédé de criblage de données mis en oeuvre par ordinateur |
| DE102020206325A1 (de) * | 2020-05-20 | 2021-11-25 | Robert Bosch Gesellschaft mit beschränkter Haftung | Computerimplementiertes Verfahren zum Testen eines technischen Systems |
| CN114004360B (zh) * | 2021-12-30 | 2022-04-01 | 北京壬工智能科技有限公司 | 基于模糊专家模型的智能装备诊断设备和方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5778402A (en) * | 1995-06-07 | 1998-07-07 | Microsoft Corporation | Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types |
| WO2001030612A1 (fr) * | 1999-10-27 | 2001-05-03 | Ims Inc. | Systeme d'airbag commande par logique floue |
| US8176527B1 (en) * | 2002-12-02 | 2012-05-08 | Hewlett-Packard Development Company, L. P. | Correlation engine with support for time-based rules |
| US8214316B2 (en) | 2009-03-23 | 2012-07-03 | Microsoft Corporation | Notification-based forward chaining |
| US9984327B2 (en) * | 2010-06-17 | 2018-05-29 | Palo Alto Research Center Incorporated | System and method for parallel graph searching utilizing parallel edge partitioning |
-
2014
- 2014-10-29 FR FR1460382A patent/FR3028076B1/fr active Active
-
2015
- 2015-09-30 EP EP15771155.7A patent/EP3213267A1/fr not_active Withdrawn
- 2015-09-30 WO PCT/EP2015/072603 patent/WO2016066364A1/fr not_active Ceased
- 2015-09-30 US US15/516,859 patent/US20170300804A1/en not_active Abandoned
Non-Patent Citations (1)
| Title |
|---|
| ER NAVJOT KAUR ET AL: "Review of Expert Systems based on Fuzzy logic", INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER AND COMMUNICATION ENGINEERING, 31 March 2013 (2013-03-31), pages 2319 - 5940, XP055696806, Retrieved from the Internet <URL:https://www.ijarcce.com/upload/2013/march/4-anand%20nayyar%20-%20Review%20of%20Expert-c.pdf> [retrieved on 20200519] * |
Also Published As
| Publication number | Publication date |
|---|---|
| US20170300804A1 (en) | 2017-10-19 |
| WO2016066364A1 (fr) | 2016-05-06 |
| FR3028076A1 (fr) | 2016-05-06 |
| FR3028076B1 (fr) | 2017-12-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11595269B1 (en) | Identifying upgrades to an edge network by artificial intelligence | |
| US11263241B2 (en) | Systems and methods for predicting actionable tasks using contextual models | |
| US11595415B2 (en) | Root cause analysis in multivariate unsupervised anomaly detection | |
| US11157844B2 (en) | Monitoring source code development processes for automatic task scheduling | |
| US20210158147A1 (en) | Training approach determination for large deep learning models | |
| EP2364467B1 (fr) | Procédé de reconnaissance de motifs séquentiels pour procédé de traitement des messages de pannes | |
| EP3213267A1 (fr) | Architecture logicielle pour systeme expert | |
| EP3846087A1 (fr) | Procede et systeme de selection d'un modele d'apprentissage au sein d'une pluralite de modeles d'apprentissage | |
| US12039287B2 (en) | Identifying regulator and driver signals in data systems | |
| US12182626B2 (en) | Rule-based assignment of event-driven application | |
| JP2022058555A (ja) | 実行可能論理を用いて構造化データアイテムを処理するためのキーベースのロギング | |
| CN114692860A (zh) | 一种计算图的节点融合方法及设备 | |
| EP3506094B1 (fr) | Procédé et système pour l'optimisation de l'ordonnancement de traitements par lot | |
| FR3057378A1 (fr) | Systeme de detection de fraude dans un flux de donnees | |
| US11556650B2 (en) | Methods and systems for preventing utilization of problematic software | |
| US11889149B2 (en) | Intelligent mitigation of concentration conflicts | |
| US20210133209A1 (en) | Blockchain-based central repository and analytical platform for communications in the internet of things | |
| JP2025525695A (ja) | コンピュータ化システムにおいて検出されたアノマリをクラスタリングするための完全に教師なしのパイプライン | |
| US20210058357A1 (en) | Intelligent contextual timelining of notifications | |
| US20200311900A1 (en) | Automated trend detection by self-learning models through image generation and recognition | |
| Chen et al. | Using deep learning to predict and optimize hadoop data analytic service in a cloud platform | |
| Walsh | Productionizing AI | |
| US12002459B2 (en) | Autonomous communication initiation responsive to pattern detection | |
| Vargas-Solar et al. | Big continuous data: dealing with velocity by composing event streams | |
| US20170315822A1 (en) | Identifying a common action flow |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20170404 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20200602 |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
| INTG | Intention to grant announced |
Effective date: 20230825 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20240105 |