## 6 Observability of the graph
### Constrained Binary-Integer Programming Model with a Fixed Number of Channels
The Y placement vector's nonzero entries will indicate the rows of related grid nodes, voltage angles of which can be monitored by these synchronized measurements [56; 57; 58]. PMU locations are derived and its bus observes a subset of its neighboring buses with the branch assignments [60; 61; 62; 63; 64; 65; 66; 67]. Thereby, we can derive the PMU locations and the branch assignments, which mean the lines directly observed by the dominant bus or center bus. Algorithm 4 presents the MILP solver implementation considering a multi-channel capacity. We define the objective function, the binary connective matrix, the unity vector and the lower and upper bound of the decision variables. The MILP routine is invoked to deliver the upper bound for the minimization problem [13; 14; 15; 16; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81]. ```
1.\(w:\) The set of implementation costs, \(w^{T}=|1,1,\ldots,1|^{m}\);
2.\(m:\) Set of possible combinations including a number of nodes;
3. Define a set of variables \(Y=\{y_{1},y_{2}\ldots,y_{m}\}^{T}\), \(y_{i}\in\{0,1\}^{m}\);
4. Define binary connectivity matrix;
5.\(J(y)=w^{T}y\); objective function considering costs;
6. /* solving the problem of mixed integers;
7. programming*/
8. Invoke MILP solver in MATLAB environment;
9. solve placement minimizing using mip;
10.\(y\to optimal\) placement of combinations for selecting PMUs locations and branch assignments
11. Solution \(y\) (display combinations by which a PMU location is the Center and the other locations representing the PMUs directly observed);
12. Solve linear relaxation problems of the initial MILP model
13. Tighten LP via cutting planes and domain propagation
14. Search for feasible solutions via primal heuristics for the MILP model
15. Branch on variables
16. Output: a binary-feasible solution to the MILP model
17. Exit: MILP status (optimal or infeasible) and solution
18. Absolute gap: U-L \(\leq AbsoluteGapTolerance\)
19. Relative gap: \(100\times(\text{U}-\text{L})/(\text{abs}(\text{U})+1)\leq\text{Relative GapTolerance}\)
```  
**Algorithm 4**Steps of MILP Solver implementation
The MILP solver solves the linear programming relaxations and allows temporarily the integer decision variables to be continuous [13; 14; 15; 16; 17; 18; 37; 38; 41; 51; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81]. Dual-simplex or primal-simplex algorithms finally solve the relaxed problems in the relaxed decision variable range \([0,1]\)[13; 14; 15; 16; 17]. The iterative process is completed within specific criterions to achieve an accurate solution [19; 20; 21]. To conclude, four tasks require attention when the integer problem is solved by a BBA scheme [14]:  
1. Formulation so that the absolute gap is small;
2. Heuristic computations are needed to find a good lower bound;
3. Branching;
4. Node selection. The MILP solver ends up as the process with an optimality gap, which is given counting the upper bound and the lower bound estimated points [13; 14; 15; 16; 17; 18; 37; 38; 41; 51; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81]. This gap is determined as the optimal value where \(U\) is the best integer solution and \(l\) is the lower bound. If the absolute gap is found equal to zero, the solver returns a solution at the globally optimum point [37; 38; 41; 51; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81].