You are on page 1of 2

Competitive and Sports Programming, Induction Assignment Sanskar Sharma, Yash Hiren More

Competitive and Sports Programming,


Summer Induction Assignment, 2023
Stakeholder(s) Sanskar Sharma, Yash Hiren More
Contact(s) sanskar.sharma@iitgn.ac.in,
+91 73037 20982
technical.secretary@iitgn.ac.in,
+91 60098 84968
Deadline Tuesday, 4th July (for consideration for Secretary)
Tuesday, 11th July (for consideration for member)

At its heart, Competitive Programming is a test of how algorithmically you can think – it makes sense, then,
to test how well you can adapt to and implement a brand new algorithm. And what better way to check that
than a paper written by one of our own – this induction assignment has at its center a research paper authored
by a member of the club, Yash More with wellwisher of the Tech Council and all-round awesome person, Prof.
Neeldhara Misra. We want, through this assignment, to see how well you can implement an algorithm you have
never seen before; following which we’ll check how fast you can do it with a contest on codeforces.

1 Paper Implementation
Task
Read the following paper: Finding Perfect Matching Cuts Faster; Misra and More, 2023, published in the
International Workshop on Combinatorial Algorithms. Here is the abstract:

A cut (X, Y ) is a perfect matching cut if and only if each vertex in X has exactly one neighbor in Y
and each vertex in Y has exactly one neighbor in X. The computational problem of determining if a
graph admits a perfect matching cut is NP-complete, even when restricted to the class of bipartite
graphs of maximum degree 3 and arbitrarily large girth. Assuming ETH, the problem does not admit an
algorithm subexponential in n. On the other hand, the problem is known to be polynomial-time solvable
when restricted to interval graphs, permutation graphs, and some other special classes of graphs. It
is also known to be FPT parameterized by treewidth or cliquewidth and in XP when parameterized by
mim-width (maximum induced matching-width) of a given decomposition of the graph.
The ETH-hardness of the problem has motivated the study of exact algorithms for PMC, and the
best-known running time has complexity O∗ (1.2721n ) [Le and Telle, WG 2021]. In this contribution,
we design a mildly improved branching algorithm using an arguably simpler approach, whose running
time is O∗ (1.2599n ). This addresses an open problem posed by Le and Telle. We also demonstrate an
O∗ (1.1938n ) algorithm for graphs of maximum degree 3 that have girth at least six.

If the abstract proves to be too terse, we have a concise overview of the paper aimed at facilitating compre-
hension of the algorithm below. Your challenge is implementing the algorithm for Finding Perfect Matching
Cut (henceforth PMC) for graphs Max Degree three and large girth.

Problem Description
Input: Graph G

Question: Does there exist a partition of the vertex set of the Graph into disjoint exhaustive sets (X, Y ) such that
every vertex in X has exactly one neighbor in Y and vice versa?

Contents of the paper


1. Section 2: contains the preliminary notations required to understand the algorithm.

Summer 2023
2. Section 3: contains a set of reduction rules. Consider them like a set of observations using which our problem
becomes smaller(reduces) to an equivalent instance. There are in total eight of those reduction rules.

3. Section 4: is the branching conditions. These are like the different scenarios you might encounter while
solving your problem and based on the different scenarios you might branch (exhaustively search/make a
choice).

Important Guidelines
1. This declaration asserts that the achievement of effectively implementing the algorithm will not entail the
acknowledgment or inclusion of the authors of the research paper in any future publication.

2. Attached to this mail is a PDF file containing a published research paper. It is important to emphasise that
the author has granted us exclusive access to this document for the purpose of our task alone. The paper
has already been officially published in conference proceedings.

Submission Guidelines
1. While we prefer C++, any language of your choice is fine; in fact, for very esoteric languages, we might even
give brownie points. Don’t feel compelled to do any of this though – python is fine!

2. Keep the code clean, modular, and readable. Add comments wherever possible, so the stakeholders under-
stand your implementation. Remember: this particular question is not a test of speed, but of accuracy. We
don’t want variables named after your exes.

You might also like