# Computation of tupled values

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 part of the graph already evaluated (at the beginning, this part contains only the leaves of the graph),
• : the part of the graph which is not evaluated (at the beginning, this part contains all the arguments of the graph except the leaves).

The algorithm also relies on a special data structure denoted by giving the list of the cycles in the graph and their main characteristics:

• list of the arguments which belong to this cycle,
• list of the arguments which belong to this cycle and which have direct attackers outside the cycle (these arguments are called inputs of the cycle; those which will be used in order to propagate the values across the cycle in the case of a non isolated cycle); this list will be empty in the case of an isolated cycle.

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:

• , , ,
• nothing (because it is an isolated meta-cycle'').

In order to avoid some ambiguity, these meta-cycles'' are defined as mcycles:

Definition 21 (mcycle)   Let be an attack graph. Let be the set of all the cycles of . Let and be a set of cycles.

Let be the set: .

If satisfies the following properties:

• , a path from to such that each element (arguments or edges between arguments) of the path belongs to cycles of ,

• and , such that is interconnected with .

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 [5].

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