Our enumeration algorithm explores a tree of subproblems. Each node in the tree represents an AD subproblem with a specific fixed defense that is based on a restriction of the original defense budget. The AD subproblem instance for a node is a simplified bi- level model that is easier to solve than the original tri-level DAD optimization problem. Child nodes represent the inclusion of one additional fixed defense in response to the worst-case attack observed in a parent node AD subproblem.
The root node in our enumeration tree represents the initial restriction of the original DAD problem instance to a defense budget of zero units. Thus, the AD subproblem associated with the root node has no fixed defenses.
Branches from a parent node represent the choice of one new defense in response to the worst-case attack of an AD subproblem for a parent node. Any defense chosen as a branch must improve system performance or change the worst-case attack observed at the parent node. Thus, each branch represents one defense that is an appropriate response to a
worst-case attack of a parent node. Conversely, the branches that form a path from the root node to a particular node give the fixed defenses of the AD subproblem at that node.
Other nodes in the IE tree represent AD sub problems that relax the defense budget restriction at the root node. Any node can be identified by its depth and breadth. Depth is defined as the axial distance on the tree from the root node. The depth of the node in the tree tells the number of defenses that are fixed in its accompanying AD subproblem instance. Depth starts at zero at the root node because the root node has zero fixed defenses. Tree depth grows by one for each additional defense. For example, if a node has a depth of two in the IE tree, then the AD subproblem associated with that node has two fixed defenses. Breadth is defined as the number of nodes at a particular depth.
Child nodes on a tree are created when the remaining defense budget of a parent node is greater than the cost of adding an additional defense. Branches based on defenses against the worst-case attack of a parent node represent fixed defenses to be embodied in new AD sub problems associated with new child nodes. A leaf node on the tree occurs when the number of fixed defenses at a node exhausts the original defense budget. A defense budget could be exhausted at different depth levels for different nodes because the cost of defending existing edges or adding new edges may not be the same.
Traditionally, elimination of sections of an enumeration tree that cannot lead to an optimal solution is called pruning (Wolsey, 1998, p. 94). We seek to prune the IE tree by developing characterizations of a suboptimal solution to the DAD problem or corresponding AD sub problem. The pruned sections of the tree will not need to be explored because an optimal solution could not be developed from the nodes representing these AD subproblem instances. In this chapter, we develop some pruning rules that use the development of a decreasing upper bound on the DAD master problem to eliminate many possible defense combinations from consideration.
1. Data Structures at an IE Tree Node
To better understand how a node functions in an IE tree, we describe what each node represents and the various pieces of information that each node maintains. Each
node in the IE tree represents an AD subproblem with a fixed set of defenses. Each node maintains several distinct pieces of information.
Parent[n] is the parent node of node n. Only the root node does not have a
parent.
Children[n] is a list of the child nodes for a node n. Child nodes have one
additional fixed defense than the AD subproblem of a parent node.
Branches[n] is a list of branches from a parent node n to child nodes.
Branches represent the addition of a defense to either improve the objective function of the parent AD subproblem or change the parent node worst-case attack.
Objective[n] is the objective function value of the AD subproblem
solution of Equation (1b) or (1c) associated with node n.
Attack[n] is the subset of edges of the worst-case attack associated with
the AD subproblem solution of node n.
Budget[n] is the amount of defense budget utilized at node n. We subtract
the budget utilized at a node from the original total defense budget to determine the amount of remaining defense budget available for a child node. Selecting an existing edge for a fixed defense or adding a new edge as a fixed defense at a child node subtracts from the remaining defense budget inherited from a parent node. If the remaining defense budget is less than the cost of any defense, then the node is a leaf of the tree.
Inclusion[n] is the list of fixed defense edges at node n. It is a subset of
edges (i, j) that are fixed to the defended option (d1). Inclusion lists are inherited from parent nodes and expanded. For example, W =1. ˆijd1
Exclusion[n] is the list of edges that cannot be defended at node n. It is a
subset of edges (i, j) that are fixed to the undefended defense option (d0). Exclusion lists are inherited from parent nodes and expanded. For example, W =1. ˆijd0
2. Requirements of IE tree branches
A branch from a parent node in the IE tree represents one new defense to select in response to the worst-case attack of the subproblem contained within a parent node. A new defense could be the protection of an existing edge or the addition of a new edge to the network. In order for a branch to exist, three things must be true.
There must be enough remaining defense budget to allow for a new defense to the system. In the test network, adding new edges as defenses costs more than defending existing edges. The new defense is represented by the formation of a new child node at the end of the branch.
An unprotected or unadded piece of the network must exist to defend. The defense option that is considered by the branch must result in a
change of the worst-case attack plan or an improvement in the subproblem instance objective function value from the parent node to the child node. If a change does not occur, the defense was not effective in prevention of the worst-case attack encountered in the parent node AD subproblem. If the AD subproblem objective function value gets worse from parent node to child node, the defender is not making an improvement to the system. Defenses that worsen the objective function are not added to the IE tree.