Boolean Expression $\varphi_G$
The complete CNF Boolean expression that is true if and only if the example graph has a kernel is:
About 862 wordsAbout 11 min
2025-08-08
The fundamental task is to create a logical formula, φG, that is only true if a given directed graph, G, contains a "kernel". A kernel is a special subset of the graph's vertices. We can use a boolean variable, vi, to represent the statement "vertex i is in the kernel."
A set of vertices is a kernel if it satisfies two specific conditions:
Condition 1: Dominating SetRequiredRule
Every vertex that is not in the kernel must have an edge pointing to it from at least one vertex that is in the kernel.
Condition 2: Independent SetRequiredRule
No two vertices within the kernel are connected by an edge. If an edge goes from vertex i to vertex j, they cannot both be in the kernel.
Our objective is to convert these two rules into a single logical expression in Conjunctive Normal Form (CNF), which is a series of clauses linked by AND (∧) operators.
This general method can be used to construct the boolean expression φG for any directed graph.
Begin by listing all vertices (V) and directed edges (A) of the graph. Each vertex i∈V corresponds to a boolean variable vi.
This step enforces the first condition. You must generate one clause for each vertex in the graph. The rule for any vertex i is: "Vertex i is in the kernel, OR at least one of its in-neighbours is in the kernel."
This translates into the logical clause:
(vi∨vj1∨vj2∨…)
where j1,j2,… are all the vertices that point to vertex i.
Tips
If a vertex i has no incoming edges, its clause simplifies to just (vi). This logically forces it to be in the kernel to satisfy the condition.
This step enforces the second condition. You must generate one clause for each edge in the graph. The rule for any edge from vertex i to vertex j is: "It is false that both vertex i AND vertex j are in the kernel."
This translates into the logical clause:
(¬vi∨¬vj)
A clause like this must be created for every edge in the graph.
The final expression, φG, is the logical AND (∧) of every clause generated in the previous two steps.
φG=(All Dominating Clauses)∧(All Independent Clauses)
Building an Expression for an Example Graph
Let's apply this method to the simple directed graph defined by 1 -> 2 <- 3.
By combining all five clauses, we get the complete logical expression for this graph.
Boolean Expression $\varphi_G$
The complete CNF Boolean expression that is true if and only if the example graph has a kernel is:
φG=(v1)∧(v3)∧(v2∨v1∨v3)∧(¬v1∨¬v2)∧(¬v3∨¬v2)
If a problem is modified with additional constraints, you can systematically update your logical formula without starting over. The modular nature of CNF is ideal for this.
Framework for Adding New Constraints
Translate each new rule into a CNF clause and append it to your main formula using an AND (∧) operator.
State the new condition in plain English and identify which parts of the graph it affects.
Convert the English statement into a formal expression using your boolean variables (vi).
¬v2
Ensure the expression is a disjunction (an OR) of literals. If it isn't, use logical equivalences to convert it.
(¬v2)
Append the new clause to your main formula using an AND (∧) operator. The entire expression, including the new constraint, must now be satisfied.
φGnew=φGoriginal∧(¬v2)
2d310-docs: understanding graphon Copyright Ownership:WARREN Y.F. LONG
License under:Attribution-NonCommercial-NoDerivatives 4.0 International (CC-BY-NC-ND-4.0)