We propose an algorithm for computing the tupled values for an arbitrary graph (cyclic or acyclic, the cycles may be isolated or not). This algorithm uses a principle of propagation of values: an argument is evaluated when the values of its direct attackers are known.
We must consider the cycles as meta-arguments which are evaluated when all the ``direct attackers of the cycle'' (i.e. the direct attackers of one of the elements of the cycle which do not belong to the cycle) are evaluated.
The beginning of the process is as follows: we consider that all the arguments have the initial value , and only the leaves of the graph are ``marked'' as having their final values. Thus, we have the following partition of the graph :
The algorithm also relies on a special data structure denoted by giving the list of the cycles in the graph and their main characteristics:
Remark: For the sake of efficiency, the interconnected cycles (see Definition 1) will be considered as a ``whole'' by the algorithm and will be used like a ``meta-cycle''. For example, the two cycles and which do not have any direct attacker outside of the cycles, will be described in the data structure as only one ``meta-cycle'' with the following lists:
In order to avoid some ambiguity, these ``meta-cycles'' are defined as mcycles:
Let be the set: .
If satisfies the following properties:
Then the union of the belonging to is a mcycle.
Thus, we make a partition of using the notion of interconnection between cycles, each element of the partition being a different mcycle. See on the following example:
In this graph, there are 6 cycles:
and 3 mcycles:
Algorithm 2 is the main algorithm used for computing the tupled values.
The function ADD-NODE (respectively REMOVE-NODE) whose parameters are a subgraph of the attack graph and a node , adds (resp. removes) in (resp. of) . The other functions are described in .
Algorithm 2 has been applied on an example after the step of rewriting (see Figure 1). Note that in order to make the understanding of the results easier, we do not have created new arguments (as in Definitions 11 and 12), but of course, it would be necessary for a rigorous formalization.
The previous argumentation graph can be rewritten as follows:
The results of the valuation obtained after one propagation step are:
Marie-Christine Lagasquie 2005-02-04