Ensuring the security of critical infrastructures such as water distribution networks is crucial for the welfare and prosperity of our society. Such infrastructure networks may span huge geographical areas, and are inherently vulnerable to disruptions. In recent years, numerous incidents have been reported that highlight the inherent vulnerability of infrastructure networks (website).
Operations Research can provide new solutions to help the water utilities to proactively recognize the security risks to their infrastructure, and develop specific capabilities to reduce them. In this project, a water utility company, and more specifically a network operator, is interested in allocating pressure sensors on nodes in order to detect pipe bursts in its water distribution network. The network is located in Kentucky, and is composed of 1123 pipes and 811 nodes. It provides 2.09 million gallons of water per day to its 5,010 customers. The layout of the water distribution network is given in Figure 1.
We denote V the set of 811 nodes/sensor locations, and E the set of 1123 network pipes. Each node can receive at most one sensor. You will be given a detection matrix, denoted F ∈ {0, 1}|E|×|V|, that represents the sensing capabilities of the pressure sensors. F is a binary matrix of size |E| × |V| = 1123 × 811, and is such that fe,v = 1 if a sensor placed at location v ∈ V can detect a burst of pipe e ∈ E.
![image](https://private-user-images.githubusercontent.com/62840042/290305789-8620a0f0-5a3a-4a70-8097-3531259b31bd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTc0ODM4MzQsIm5iZiI6MTcxNzQ4MzUzNCwicGF0aCI6Ii82Mjg0MDA0Mi8yOTAzMDU3ODktODYyMGEwZjAtNWEzYS00YTcwLTgwOTctMzUzMTI1OWIzMWJkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjA0VDA2NDUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYzM0ZmY4ODliYjMxMTBlMDFjOWZkMDkzMWRlOWVlNDhlYzA4NWMwYzFmMzE0YWQ5OGRmNTAzODY3Njc0NzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hSdBJwcltobrTHSqeWMvWbYpuuVrYAFMm4ILxvvQGc0)
(a) In this first question, we want to determine the minimum number of sensors, and where to locate them, so that if any pipe bursts, then at least one sensor will detect it. Formulate this problem as an integer program.
Decision Variable :
Objective Function :
Minimize the number of sensors so that if any pipe bursts, then at least one sensor will detect it.
Constraints:
- Each pipe should be detected by at least one sensor
19.0
(c) Next, we suppose instead that the network operator possesses b pressure sensors (typically less than the number of sensors found in part (b)). We also assume that each pipe independently bursts with probability 0.1. Formulate an integer program that determines the location of the b sensors that maximizes the expected number of pipe bursts that are detected.
Given :
We are given a binary detection matrix
Problem Formulation
Let
Let
Let
Thus, we know,
From total probability theorem we can write,
Solving, we get,
Now computing expectation of random variable
Now, our problem is to maximize expected number of pipe bursts detected, given b sensors The expected number of pipe bursts is given by:
Decision Variable :
Objective Function : Maximize the expected number of pipe bursts that are detected
Constraints:
- Number of Sensors are limited to
$b$
- If a pipe is detected, then it should be detectable by at least one of the sensors
(d) Code and solve the optimization model formulated in part (c) for b ∈ {0, . . . , 20} using the Gurobi solver. Plot and analyze the optimal value of the problem as a function of the number of sensors b.
![image](https://private-user-images.githubusercontent.com/62840042/291104493-b067b1fd-b92a-4e7c-a66b-b93c9f497209.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTc0ODM4MzQsIm5iZiI6MTcxNzQ4MzUzNCwicGF0aCI6Ii82Mjg0MDA0Mi8yOTExMDQ0OTMtYjA2N2IxZmQtYjkyYS00ZTdjLWE2NmItYjkzYzlmNDk3MjA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjA0VDA2NDUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc4NWNkODFjODI5NDRhNGIyNGY5NDBkYjk0Yjk1ZmM1MzY5MTc0MWJmMDI0ZTU1OGUwMjZlZDBlYTY2OTMwN2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ldHUvtErL3uHUTpWSdCMG2JZRUh0UU24fQl5OH14R2U)
(e) Instead, the operator wants to investigate a faster solution approach, where sensor locations are sequentially (and myopically) selected. Specifically, the operator takes their first sensor, and places it at the node that detects the maximum expected number of pipe bursts. Then, the operator takes the second sensor, and places it at the node that detects the maximum 2 expected number of pipe bursts that were not previously detected, and so on until all sensors are positioned. Code this iterative algorithm, and plot the resulting expected number of pipe bursts that are detected by that solution, as a function of the number of sensors available, b ∈ {0, . . . , 20}. Compare this plot with the one obtained in part (d).
![image](https://private-user-images.githubusercontent.com/62840042/291104570-4cce06f3-d8aa-4d0b-86b8-29e1d446a0fb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTc0ODM4MzQsIm5iZiI6MTcxNzQ4MzUzNCwicGF0aCI6Ii82Mjg0MDA0Mi8yOTExMDQ1NzAtNGNjZTA2ZjMtZDhhYS00ZDBiLTg2YjgtMjllMWQ0NDZhMGZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjA0VDA2NDUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEzZWE5OGRkNTNkNjgwODNkN2E3M2FhMGY5NzdmMmZmNTNlZjk5OTk2NTM2NzM3MmJkZTRhNTg5NGM0ZjljMTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Zwjkd1siEyHPZv6FnVzoX0F601mz0W8DND1BB08ixQA)
(f) It turns out that some pipes are more critical than others, depending on their locations. For example, a pipe burst next to a hospital will be more problematic than a pipe burst in a remote area. Each pipe e ∈ E is assigned a criticality level we ∈ [0, 1]. The higher we is, the more critical pipe e is. The goal of the network operator is to position their b sensors as to minimize the highest criticality of a pipe that is not detected by any sensor. Formulate this problem as an IP.
Decision Variable :
Objective Function : We want to minimize the highest crticality of the pipe which are not detected by the placed sensors
Formulating minmax problem as a linear programming formulation:
Constraints:
- Total number of sensors are limited to
$\ b$
- If a pipe is detected, then it should be detectable by at least one of the sensors
(g) Code and solve the optimization model formulated in part (f) for b ∈ {0, . . . , 20} using Gurobi Solver. Plot and analyze the optimal value of the problem as a function of the number of sensors b.
![image](https://private-user-images.githubusercontent.com/62840042/291104701-2a0bd04a-05c6-4ebc-9ed8-bd222004ea71.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTc0ODM4MzQsIm5iZiI6MTcxNzQ4MzUzNCwicGF0aCI6Ii82Mjg0MDA0Mi8yOTExMDQ3MDEtMmEwYmQwNGEtMDVjNi00ZWJjLTllZDgtYmQyMjIwMDRlYTcxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjA0VDA2NDUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllZDQ2MTM2ZTJmMjIxMmYwNjgwZDEwNWI0N2I2ODBjNDAxNjk3MTNmYTdmOTFkNzA1Y2RiMzY4YmVhNWJiYjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.eOO0yVg-LYPFFnYBVW30bCQGes5YpCqDxadmEs0cDYQ)