Skip to content

[Rule] FEEDBACK ARC SET to MAXIMUM LIKELIHOOD RANKING #922

@isPANN

Description

@isPANN

Source: FEEDBACK ARC SET (MinimumFeedbackArcSet)
Target: MAXIMUM LIKELIHOOD RANKING (MaximumLikelihoodRanking)

Motivation: FAS and MLR are the same problem: rank items to minimize disagreement. A digraph is directly a skew-symmetric comparison matrix. The reduction is the identity mapping from adjacency structure to matrix.

Reference: Garey & Johnson, Computers and Intractability, A12 MS11; Rafsky 1977 (private communication)

GJ Source Entry

[MS11] MAXIMUM LIKELIHOOD RANKING
INSTANCE: n x n antisymmetric matrix A of integers (a_ij + a_ji = constant for each pair), positive integer B.
QUESTION: Is there a permutation pi of {1, ..., n} such that the sum of a_{pi(i),pi(j)} over all i > j is at most B?

Reference: [Rafsky, 1977]. Transformation from FEEDBACK ARC SET.
Comment: NP-complete in the strong sense.

Reduction Algorithm

Given a MinimumFeedbackArcSet instance (directed graph G = (V, A)), construct a MaximumLikelihoodRanking instance directly.

Set n = |V|. Build the n x n skew-symmetric matrix M (c = 0):

For each pair of distinct vertices i, j:

  • If arc (i -> j) exists in A and arc (j -> i) does not: set M[i][j] = +1, M[j][i] = -1
  • If arc (j -> i) exists in A and arc (i -> j) does not: set M[i][j] = -1, M[j][i] = +1
  • If both arcs (i -> j) and (j -> i) exist: set M[i][j] = 0, M[j][i] = 0
  • If neither arc exists: set M[i][j] = 0, M[j][i] = 0

Set M[i][i] = 0 for all i.

This satisfies M[i][j] + M[j][i] = 0 for all pairs (c = 0, skew-symmetric).

Objective correspondence

For a ranking pi, the MLR cost is:

cost(pi) = sum over (a,b) where a ranked after b of M[a][b]
         = (number of backward one-dir arcs) * 1
           + (number of forward one-dir arcs) * (-1)
           + 0 * (bidirectional and no-arc pairs)
         = backward - forward
         = 2 * backward - |one-dir arcs|

Since |one-dir arcs| is a constant, minimizing cost = minimizing backward one-dir arcs.

Total FAS = backward one-dir arcs + |bidirectional pairs| (each bidirectional pair always contributes one backward arc, regardless of ordering). Since |bidirectional pairs| is constant, minimizing FAS = minimizing backward one-dir arcs = minimizing MLR cost.

Set the MLR bound:

B = 2 * k - |one-dir arcs|

where k is the FAS bound. Then cost(pi) <= B iff FAS(pi) <= k.

Solution Extraction

Given the optimal permutation pi from the MLR solution (config[item] = rank):

  1. Enumerate all arcs (i -> j) in the original graph G.
  2. An arc (i -> j) is backward iff config[i] > config[j] (i ranked after j).
  3. The set of backward arcs is the minimum feedback arc set.

Size Overhead

Target metric (code name) Expression
num_items num_vertices

The matrix is n x n where n = |V|. Each entry is computed in O(1) from the adjacency structure.

Example

Source instance (MinimumFeedbackArcSet):
Directed graph G with 5 vertices {0, 1, 2, 3, 4} and 7 arcs:

  • Arcs: (0->1), (1->2), (2->0), (2->3), (3->4), (4->2), (0->4)

Two cycles: 0->1->2->0 and 2->3->4->2.
Minimum FAS = 2 (e.g., remove {(2->0), (4->2)}, leaving DAG with topological order 0,1,2,3,4).

All arcs are one-directional. |one-dir arcs| = 7. |bidir| = 0. |no-arc| = 3.

Constructed skew-symmetric matrix (c = 0):

M = [[ 0,  1, -1,  0,  1],
     [-1,  0,  1,  0,  0],
     [ 1, -1,  0,  1, -1],
     [ 0,  0, -1,  0,  1],
     [-1,  0,  1, -1,  0]]

Verify: M[i][j] + M[j][i] = 0 for all pairs.

Verification with ranking pi = [0, 1, 2, 3, 4]:
Backward arcs (config[i] > config[j] and arc i->j exists):

  • (2->0): config[2]=2 > config[0]=0, M[2][0] = +1
  • (4->2): config[4]=4 > config[2]=2, M[4][2] = +1
    Forward arcs contribute -1 each (5 forward arcs).

MLR cost = 2*1 + (-1)5 + 0 = 2 - 5 = -3.
B = 2
2 - 7 = -3.
cost <= B: -3 <= -3. FAS = 2.

Alternative ranking [2, 0, 1, 3, 4] (FAS = 3, arcs 0->1, 2->3, 0->4 backward... actually let's just verify the extraction):
The extraction from ranking [0,1,2,3,4] gives backward arcs {(2->0), (4->2)} = FAS of size 2.

Validation Method

  • Closed-loop test: reduce MinimumFeedbackArcSet to MaximumLikelihoodRanking, solve target with BruteForce, extract backward arcs, verify they form a valid FAS.
  • Test with a DAG: FAS = 0, cost = -|A|.
  • Test with 5-vertex example above (has no-arc pairs): verify skew-symmetric property.
  • Test with bidirectional arcs: verify M[i][j] = M[j][i] = 0.
  • Verify M[i][j] + M[j][i] = 0 for all constructed matrices.

References

  • [Rafsky, 1977]: L.C. Rafsky (1977). Private communication cited in Garey & Johnson.
  • [Kemeny, 1959]: J.G. Kemeny (1959). "Mathematics Without Numbers." Daedalus, 88, pp. 577-591.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ruleA new reduction rule to be added.

    Type

    No type

    Projects

    Status

    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions