This work builds upon A 3-Approximation for Independent Dominating Sets: The Siriaisa Algorithm.
An independent dominating set in a graph
-
Graph Representation:
-
$V$ : Set of vertices. -
$E$ : Set of edges connecting the vertices.
-
-
Independent Dominating Set:
- A set
$D$ where no two vertices in$D$ are adjacent, and for every vertex$v \in V$ , either$v \in D$ or$v$ is adjacent to some vertex in$D$ .
- A set
-
Minimum Independent Dominating Set:
- The independent dominating set with the smallest cardinality (i.e., the fewest number of vertices).
- Network Design: Ensuring coverage in wireless sensor networks.
- Social Networks: Identifying influential nodes.
- Game Theory: Strategies in certain types of games.
- Biology: Modeling protein-protein interaction networks.
- NP-Hard: Finding the minimum independent dominating set is computationally intensive for large graphs.
- Approximation Algorithms: Used to find near-optimal solutions in polynomial time.
-
Greedy Algorithm:
- Builds a degree-four auxiliary graph, repairs the two lifted vertex seeds into maximal independent sets, and selects the smallest verified candidate.
- Provides the implementation studied in the 3-approximation certificate theorem.
-
Integer Linear Programming (ILP):
- Formulates the problem as an optimization problem.
- Solvable using ILP solvers for exact solutions, though computationally expensive.
-
Heuristics and Metaheuristics:
- Genetic algorithms, simulated annealing, etc., for large-scale problems.
- Scalability: Exact algorithms are infeasible for very large graphs.
- Dynamic Graphs: Maintaining a minimum independent dominating set in graphs that change over time.
- Parallel Algorithms: Leveraging multi-core processors and distributed computing.
- Machine Learning: Using learning-based approaches to predict dominating sets.
- Hybrid Methods: Combining exact and heuristic methods for better performance.
The minimum independent dominating set problem is a fundamental issue in graph theory with wide-ranging applications. While it is computationally challenging, various algorithms and heuristics provide practical solutions for different scenarios. Ongoing research continues to improve the efficiency and applicability of these methods.
Input: A Boolean Adjacency Matrix
Answer: Find a Minimum Independent Dominating Set.
| c1 | c2 | c3 | c4 | c5 | |
|---|---|---|---|---|---|
| r1 | 0 | 0 | 1 | 0 | 1 |
| r2 | 0 | 0 | 0 | 1 | 0 |
| r3 | 1 | 0 | 0 | 0 | 1 |
| r4 | 0 | 1 | 0 | 0 | 0 |
| r5 | 1 | 0 | 1 | 0 | 0 |
The input for undirected graph is typically provided in DIMACS format. In this way, the previous adjacency matrix is represented in a text file using the following string representation:
p edge 5 4
e 1 3
e 1 5
e 2 4
e 3 5
This represents a 5x5 matrix in DIMACS format such that each edge
e W V
where the fields W and V specify the endpoints of the edge while the lower-case character e signifies that this is an edge descriptor line.
Example Solution:
Independent Dominating Set Found 1, 4: Nodes 1 and 4 constitute an optimal solution.
- Python >= 3.12
pip install siriaisa-
Clone the repository:
git clone https://github.com/frankvegadelgado/mids.git cd mids -
Run the script:
iris -i ./benchmarks/testMatrix1
utilizing the
iriscommand provided by Siriaisa's library to execute the Boolean adjacency matrixmids\benchmarks\testMatrix1. The filetestMatrix1represents the example described herein. We also support.xz,.lzma,.bz2, and.bzip2compressed text files.Example Output:
testMatrix1: Independent Dominating Set Found 1, 4This indicates nodes
1, 4form an Independent Dominating Set.
Use the -c flag to count the nodes in the Independent Dominating Set:
iris -i ./benchmarks/testMatrix2 -cOutput:
testMatrix2: Independent Dominating Set Size 2
Display help and options:
iris -hOutput:
usage: iris [-h] -i INPUTFILE [-a] [-b] [-c] [-v] [-l] [--version]
Solve the Approximate Independent Dominating Set for undirected graph encoded in DIMACS format.
options:
-h, --help show this help message and exit
-i INPUTFILE, --inputFile INPUTFILE
input file path
-a, --approximation enable comparison with a polynomial-time approximation approach within a maximum degree factor
-b, --bruteForce enable comparison with the exponential-time brute-force approach
-c, --count calculate the size of the Independent Dominating Set
-v, --verbose enable verbose output
-l, --log enable file logging
--version show program's version number and exitBatch execution allows you to solve multiple graphs within a directory consecutively.
To view available command-line options for the batch_iris command, use the following in your terminal or command prompt:
batch_iris -hThis will display the following help information:
usage: batch_iris [-h] -i INPUTDIRECTORY [-a] [-b] [-c] [-v] [-l] [--version]
Solve the Approximate Independent Dominating Set for all undirected graphs encoded in DIMACS format and stored in a directory.
options:
-h, --help show this help message and exit
-i INPUTDIRECTORY, --inputDirectory INPUTDIRECTORY
Input directory path
-a, --approximation enable comparison with a polynomial-time approximation approach within a maximum degree factor
-b, --bruteForce enable comparison with the exponential-time brute-force approach
-c, --count calculate the size of the Independent Dominating Set
-v, --verbose enable verbose output
-l, --log enable file logging
--version show program's version number and exitA command-line utility named test_iris is provided for evaluating the Algorithm using randomly generated, large sparse matrices. It supports the following options:
usage: test_iris [-h] -d DIMENSION [-n NUM_TESTS] [-s SPARSITY] [-a] [-b] [-c] [-w] [-v] [-l] [--version]
The Siriaisa Testing Application using randomly generated, large sparse matrices.
options:
-h, --help show this help message and exit
-d DIMENSION, --dimension DIMENSION
an integer specifying the dimensions of the square matrices
-n NUM_TESTS, --num_tests NUM_TESTS
an integer specifying the number of tests to run
-s SPARSITY, --sparsity SPARSITY
sparsity of the matrices (0.0 for dense, close to 1.0 for very sparse)
-a, --approximation enable comparison with a polynomial-time approximation approach within a maximum degree factor
-b, --bruteForce enable comparison with the exponential-time brute-force approach
-c, --count calculate the size of the Independent Dominating Set
-w, --write write the generated random matrix to a file in the current directory
-v, --verbose enable verbose output
-l, --log enable file logging
--version show program's version number and exit- Python implementation by Frank Vega.
+ Siriaisa separates feasibility from the approximation certificate: every returned set is verified as independent and dominating, while a universal proof of the 3-approximation certificate would imply P = NP by known MIDS inapproximability results.- MIT License.
