matching theory – Number of edges in bipartite graphs

Let $G$ be a bipartite graph on $n$ vertices of either color.

Suppose $G$ contains no perfect matching the number of edges can be $Omega(n^2)$ (just do not place an edge between a particular pair of vertices).

  1. Suppose $G$ contains exactly one perfect matching what is the maximum number of edges it can have?

  2. Suppose $G$ contains exactly two perfect matchings what is the maximum number of edges it can have?

I think $2n-1$ is the upper bound for 1. Essentially fix a perfect matching. As long as we do not have a $2times2$ subgraph we can add edges and there is exactly $n-1$ additional edges we can add. For 2. the upper limit is $2n$ I think by the same calculation.

algorithms – Weighted edge cover and matching problems in bipartite graphs

I am interested in the following problem for its own sake. This is not a homework problem.

Given a bipartite graph $G = (V = X cup Y, E)$ and a weight function $w: E rightarrow mathbb{R}_{+}$, how does one reduce the problem of finding a minimum weight edge cover to that of finding an optimal weight perfect matching?

The following link

apparently provides an answer which clearly I am not following. When discussing an edge cover, please use the definition — that is, a subset $C subseteq E$ such that each $v in V$ is incident to at least one $e in C$.

I would like to use the Hungarian algorithm as part of a solution to this problem. Any insight, whether it is a clarification of the linked answer or otherwise, is greatly appreciated.

looking for counterexample for my algorithm for maximum independent set in Bipartite Graph

Consider the following graph:

bipartite graph

None of the vertices has degree 1, so we go straight to step 5. Your algorithm would return 5 as the maximum independent set size, as both $L$ and $R$ have 5 vertices. However, the actual maximum independent set is ${1, 2, 3, 6, 7, 8}$, which has 6 vertices.

Bipartite matching using Dinitz’s Algorithm

How can we show the size of a matching found using Dinitz’s algorithm in terms of the size of the largest matching? So, for example, can we prove that there is some small constant a for which M >= (1-a)M* where M is the matching we find and M* is the size of the maximum matching?

graph theory – Unique bipartite perfect matchings and cycles?

Given a graph $G$ which is bipartite and balanced and has unique perfect matching let $G^{e}$ be $G$ without edge $e$. Let $Gcup G_{pi,pi’}$ be union of $G$ and $G_{pi,pi’}$ where $G_{pi,pi’}$ is $G$ but having vertices of permuted by permutation $pi,pi’$ and an edge is in the union iff it is in either $G$ or its permutation.

Is there a statement similar to “If $e$ belongs to the unique perfect matching then is it true at every $pi,pi’$ satisfying $pipi’^{-1}neq id$ and $pi^{-1}pi’neq id$ the graph $G^ecup G^e_{pi,pi’}$ has a vertex which is not part of a cycle”?

Since union of perfect matchings in bipartite graphs is disjoint union of cycles the converse is correct. If the graph is not of unique perfect matching I think we can produce a counterexample.

bipartite matching – Algorithms for alignment of posets

I have been looking for a while but I cannot find an algorithm for a particular generalisation of sequence alignment.

I have two posets $(A, <)$ and $(B, <)$ and a similarity score $s(a, b)$ for all $a in A, b in B$. I wish to find a maximal scoring alignment (sequence of $(a, b)$ pairs) such that both partial orders are respected. The score of the alignment is just the sum of the scores of the pairs. Respecting the order means that if the sequence is $((a_1, b_1), dots, (a_k, b_k))$ then we have $a_i < a_j$ and $b_i < b_j$ for all $i < j$.

In standard sequence alignment, both sequences are totally ordered (by their linear representation), in my case I only have a partial order. If it helps, this partial order is defined by each element’s location in a planar graph.

I did find this paper that discusses these issues but I don’t think it supplies an algorithm. It does suggest such an algorithm is possible.

bipartite matching – Predicate variant of Assignment Problem

Given two equally sized sets, $P$ of Boolean predicates and $E$, I want to decide if there exists a bijective function $f: P rightarrow E$, such that
forall p in P ; p(f(p))

It seems like a special case of having a weight matrix $W$ where $w_{ij}=0$ if $P_i(T_j)$ and otherwise $1$, and then solving the general Assignment Problem.
For practical reasons calculating such a weight matrix up front is not desirable, as evaluating $p$ is not necessarily cheap.

I have also thought about whether it could be formulated as some variant of Stable Marriage Problem, where the men have a predicate that needs to satisfied instead of a ranked preference list over all women.

I don’t think the proposed problem sounds very exotic, so I might just be looking in a wrong direction.

Checking uniqueness of a maximum unweighted matching on a bipartite connected graph

Given a maximum unweighted matching $M$ on a bipartite connected graph $G = (A cup B, E)$, a maximum matching is unique exactly when for all matchings $M’ neq M$, the following is true: $|M’| < |M|$

  1. Given the maximum matching $M$, find an efficient algorithm that checks, if the maximum Matching is unique. Prove the correctness of your approach.

  2. Given a perfect matching $M’$ in $G$ ($|M’| = |A| = |B|$) – Describe an efficient algorithm that checks for a given edge $e in M’$ whether there is an alternate maximum matching, which does not contain $e$

My ideas:

I think for the first one, it’s probably something using an augmenting Path. I figure if you find a path where every other edge is matched, that either ends in a cycle or on a node with no matched edge connecting to it, you would be able to get it, but I have no idea to turn that idea into an efficient algorithm.

For the second question, I guess you would probably also use an augmenting path, starting with $e$, probably something similar to the first one, I imagine

algorithms – Finding redundant edges on a maximum matchings in bipartite graph

Given a bipartite graph, I need to suggest an algorithm that finds the redundant edges.
A redundant edge is an edge that both the graph with it, and the graph without it have the same size of maximum matchings.

My algorithm is as follows:

  1. Connect source and sink nodes
  2. Set $c(e)=1$ for all $(s,v_1),(v_1,v_2),(v_2,t)space|space{s,v_1,v_2,t}in V$.
  3. Run Edmonds-Karp algorithm on the graph
  4. Look at the last residual network, all the backward edges are the redundant edges
  5. Flip the direction of the edges on the last residual graph, set the capacities to 0 and run Edmonds-Karp again.
  6. Look at the last residual network, and take the backward edges again

We’ll end up with a list of edges, that if we remove one of them we still get a maximum matchings of the same size.

Is my algorithm sufficient enough?

bipartite matching – Flow graph with non zero lower bound or 0 capacity

I am afraid the question title might not be sufficiently accurate but I could not come up with something more accurate

Here is the problem

Given ‘n’ machines

  • Each machine has a set of capabilities
  • Each machine has max availability (A(m))

Given ‘m’ tasks

  • Each task requires a set of capabilities
  • Each task takes a certain time (D(t))
  • A task has to be performed on one machine only

The problem is to determine whether all tasks can be completed.

I get stuck with the ‘one machine only’ requirement. The only flow graphs I can come up with do not guarantee a task is not linked to more than one machine.

It’s sort of a bipartite matching problem but with capacities > 1

I also ran into XOR-like behavior in flow networks which is similar but has the ‘xor’ requirement on the ‘source’ end where I would need it on the target end.

Would anyone have any tips? Is it at all possible to model this as a flow graph?