Tuesday, December 30, 2008
Sunday, November 09, 2008
The Good Will Hunting Problem
Here is a problem from the movie Good Will Hunting, shown in the screenshot below.


For the the graph G(V,E) shown above, find the following :

For the the graph G(V,E) shown above, find the following :
- The matrix giving the number of 3 step walks in G : [Ak]ij is the number of paths of length k from i to j. So, the answer is A3.
- The generating function for walks from point i to j : The generating function is as follows. Here are more examples of generating functions.
- The generating function for walks from points 1 to 3 : Simplify the above formula using cramer's rule for i=1 and j=3.
Tuesday, October 28, 2008
Friendly Numbers
Pythagoras said "220 and 284 are friendly numbers" !! These numbers have a special property : Each is equal to the sum of the other's proper divisors. Proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110 (they sum to 284). Proper divisors of 284 are 1, 2, 4, 71 and 142 (they sum to 220). More example include (1184, 1210), (17296, 18416). It is not known whether there are infinitely many friendly numbers. Twin primes are a pair of consecutive odd numbers both of which are prime.
- Theorem : There are infinitely many friendly numbers. (proof)
- Conjecture : There are infinitely many twin primes.
Wednesday, July 23, 2008
Common Puzzles
Most of my friends are geeks. So when we get together on a friday night (or) driving to a conference, we don't talk about politics, movies or celebrities. Instead we throw math puzzles at each other. Here are some of the common puzzles I ran into....
The Banana-eating Camel : You have 3,000 bananas that must be transported across a desert that is 1,000 kilometers wide. You have a camel that has a 1,000 banana capacity. However, the camel must eat one banana for each kilometer that it walks. What is the largest number of bananas that can be transported across the desert?
- 12 Balls : There are 12 balls. They all look alike but one of them is faulty; it weights differently. It is not known, if this ball is heavier or lighter than the other balls. How to find the faulty ball by three weighs on a simple balance ?
- Linked Lists : You are given a pointer to the head of a singly linked list that might (or might not) have a loop somewhere (i.e., an element pointing back to an element). The length of the list is finite, but unknown. Devise an algorithm that detects if there is a loop. You must use only a constant amount of memory space and not destroy the list.
- Two Integers : I'm thinking of two integer numbers, each if them is more than 1 and their sum is less than 100. I tell my friend A the sum of these two numbers, and another friend B, product of these two numbers. Then such a dialog took place:
B: I can't determine what are these numbers.
A: Ah, i knew you wouldn't be able to do this.
B: Oh, then i know what they are!
A: Oh, then i know them too!
Can you determine the numbers?
- Stick triangle : A stick is broken at random into three pieces. What is the probability that the pieces can form a triangle?
Thursday, April 24, 2008
List Coloring of Planar Graphs
I have been reading some papers on list-coloring of planar graphs. Here's a quick overview of this topic.
A proper coloring of a graph is an assignment of colors to vertices of a graph such that no two adjacent vertices receive the same color. A graph is k-colorable if it can be properly colored with k colors. For example, the famous Four Color Theorem (4CT) states that "Evey planar graph is 4-colorable". This is tight, since K4 is 4-colorable but not 3-colorable. Deciding if a graph is 3-colorable is NP-hard. It is natural to ask which planar graphs are 3-colorable. Grotzsch's Theorem states that "Every triangle-tree planar graph is 3-colorable".
Given a graph and given a set L(v) of colors for each vertex v, a list coloring is a proper coloring such that every vertex v is assigned a color from the list L(v). A graph is k-list-colorable (or k-choosable) if it has a proper list coloring no matter how one assigns a list of k colors to each vertex.
If a graph is k-choosable then it is k-colorable (set each L(v) = {1,...k}). But the converse is not true. Following is a bipartite graph (2-colorable) that is not 2-choosable (corresponding lists are shown).

A graph is k-degenerate if each non-empty subgraph contains a vertex of degree at most k. The following fact is easy to prove by induction :
Note : A recent paper [DKT'08], presents a very short proof of Grotzsch's theorem and a linear-time algorithm for 3-coloring such graphs.
References :
A proper coloring of a graph is an assignment of colors to vertices of a graph such that no two adjacent vertices receive the same color. A graph is k-colorable if it can be properly colored with k colors. For example, the famous Four Color Theorem (4CT) states that "Evey planar graph is 4-colorable". This is tight, since K4 is 4-colorable but not 3-colorable. Deciding if a graph is 3-colorable is NP-hard. It is natural to ask which planar graphs are 3-colorable. Grotzsch's Theorem states that "Every triangle-tree planar graph is 3-colorable".
Given a graph and given a set L(v) of colors for each vertex v, a list coloring is a proper coloring such that every vertex v is assigned a color from the list L(v). A graph is k-list-colorable (or k-choosable) if it has a proper list coloring no matter how one assigns a list of k colors to each vertex.
If a graph is k-choosable then it is k-colorable (set each L(v) = {1,...k}). But the converse is not true. Following is a bipartite graph (2-colorable) that is not 2-choosable (corresponding lists are shown).
A graph is k-degenerate if each non-empty subgraph contains a vertex of degree at most k. The following fact is easy to prove by induction :
- A k-degenerate graph is (k+1)-choosable
- Every bipartite planar graph is 3-choosable [Alon & Tarsi]. It is easy to prove that every bipartite planar graph is 3-degenerate.
- Every planar is 5-choosable [Thomassen'94]. Note that every planar graph is 5-degenerate. There are planar graphs which are not 4-choosable [Voigt'93].
- Every planar graph of girth at least 5 is 3-choosable. This implies grotzsch's theorem in a very cute way [Thomassen'03]. There are planar graphs of girth 4 which are not 3-choosable [Voigt'95].
- Conjecture : Every 3-colorable planar graph is 4-choosable.
Note : A recent paper [DKT'08], presents a very short proof of Grotzsch's theorem and a linear-time algorithm for 3-coloring such graphs.
References :
- [Alon & Tarsi'92] N. Alon, M. Tarsi: Colorings and orientations of graphs. Combinatorica 12(2): 125-134 (1992)
- [Thomassen'94] C. Thomassen: Every Planar Graph Is 5-Choosable. J. Comb. Theory, Ser. B 62(1): 180-181 (1994)
- [Voigt'93] M. Voigt: List colourings of planar graphs. Discrete Mathematics 120(1-3): 215-219 (1993)
- [Thomassen'03] C. Thomassen: A short list color proof of Grötzsch's theorem. J. Comb. Theory, Ser. B 88(1): 189-192 (2003)
- [Voigt'95] M. Voigt : A not 3-choosable planar graph without 3-cycles. Discrete Mathematics 146(1-3): 325-328 (1995)
- [DKT'08] Z. Dvorak and K. Kawarabayashi and R. Thomas : Three-coloring triangle-free planar graphs in linear time. To appear in SODA 09.
Sunday, April 20, 2008
Testing triangle-freeness
Given an undirected graph G(V,E), how fast can we detect if G is triangle-free ? Cubic time is obvious. Let A be the adjacency matrix of G. We can detect triangle-freeness of G in the same complexity as multiplying two boolean matrices (AxA) (duh !!). This simple algorithm is the best known !! In other words, following is the open problem :
[1] N. Alon, T. Kaufman, M. Krivelevich, and D. Ron. Testing triangle-freeness in general graphs. Proceedings of the 17th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 279-288, 2006.
- Is testing triangle-freeness as difficult as the Boolean multiplication of two |V| x |V | matrices?
[1] N. Alon, T. Kaufman, M. Krivelevich, and D. Ron. Testing triangle-freeness in general graphs. Proceedings of the 17th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 279-288, 2006.
Friday, April 18, 2008
Tiling chessboard by L-shaped trominoes
Can you cover all but one square of an n x n chessboard by L-shaped trominoes?
Claim : If n is a power of 2, you can always do it !!
Have fun proving this !!Wednesday, April 09, 2008
Lipton Symposium and Trotter Conference
I am eagerly waiting for the following two excellent conferences at GeorgiaTech :
- The Lipton Theory Symposium (Apr 26 - Apr 28 2008) : Celebrating Dick Lipton's 60th birthday. Consists of very diverse and interesting set of talks.
- New Directions in Algorithms, Combinatorics and Optimization (May 5 - May 9 2008) : Honoring the 65th Birthday of William T. Trotter. Excellent set of invited speakers and talks.
Wednesday, April 02, 2008
25 Horses Puzzle
There are 25 horses and only five tracks in a race (i.e., you can race 5 horses at a time). There is no stop clock !! Assume that there are no ties.
1: What is the minimum number of races needed to determine the 3 fastest horses in order from fastest to slowest ?
2: ..... to find out the fastest one ?
3: ..... to rank all of them from fastest to slowest ?
4: ..... to find the top k fastest horses ?
1: What is the minimum number of races needed to determine the 3 fastest horses in order from fastest to slowest ?
2: ..... to find out the fastest one ?
3: ..... to rank all of them from fastest to slowest ?
4: ..... to find the top k fastest horses ?
Wednesday, March 19, 2008
Using Latex with Powerpoint
Next week, I am going to give a talk at DIMACS/DyDAn Workshop on Secure Internet Routing. While preparing slides for my presentation, I realized that I like powerpoint for its support for animation, but I hate using its equation-editor. Also, I don't like preparing slides in latex (using beamer) due to lack of decent animation tools. I was googling around for a solution and found the following alternatives to combine the best of both worlds :
1) TexPoint : I like its support for inline latex compilation. But it is not free and I found many limitations in math fonts and \displaystyle.
2) Tex4PPT : This does not support Office 2007 yet. So I did not explore it.
3) Inkscape : This is the BEST way to combine latex and powerpoint. Its is FREE and opensource too !! Install Inkscape and follow these instructions to add support for latex. Inkscape allows you to type any crazy latex equation and convert into .eps format. You can even ungroup symbols in an equation and assign different colors to different symbols. Add the .eps file in the ppt file (using Insert -> Picture) and you can zoom-in/zoom-out the image without sacrificing the resolution !!
1) TexPoint : I like its support for inline latex compilation. But it is not free and I found many limitations in math fonts and \displaystyle.
2) Tex4PPT : This does not support Office 2007 yet. So I did not explore it.
3) Inkscape : This is the BEST way to combine latex and powerpoint. Its is FREE and opensource too !! Install Inkscape and follow these instructions to add support for latex. Inkscape allows you to type any crazy latex equation and convert into .eps format. You can even ungroup symbols in an equation and assign different colors to different symbols. Add the .eps file in the ppt file (using Insert -> Picture) and you can zoom-in/zoom-out the image without sacrificing the resolution !!
Saturday, July 28, 2007
Graceful Trees !!
I posted my favorite open problem (is every tree graceful ?) on the open problem garden. There are many more interesting open problems on this site.
Friday, July 13, 2007
Open Problem Garden !!
Let me point you to this great site on open problems in mathematics, graph theory and theoretical computer science.
I found this through Computational Complexity blog.
I found this through Computational Complexity blog.
Friday, July 28, 2006
Network flow : integer vs real values
Integer values are assumed in the analysis of most of the algorithms based on network flow. The reason for this is as follows.....
If the capacities on all the edges are integral then there always exists an integral flow.
If the capacities are rational numbers we can take the LCM and apply the same network flow algorithm (ford-fulkerson) by choosing augmenting paths arbitrarily.
If the capacities are real numbers, ford-fulkerson algorithm runs in polynomial time if augmenting paths are chosen via BFS. The algorithm might not terminate if the augmenting paths are chosen arbitrarily.
Assuming integer values makes the analysis much simpler, without worrying about how the augmenting paths are chosen. As said earlier, real-values can be handled efficiently using BFS.
A recent paper [1] analyzes the DFS approach of choosing augmenting paths.
[1] Finite Termination of "Augmenting Path" Algorithms in the Presence of Irrational Problem Data Brian C Dean, Michel X. Goemans, Nicole Immorlica. To appear in the proceedings of the 14th annual European Symposium on Algorithms (ESA), 2006.
If the capacities on all the edges are integral then there always exists an integral flow.
If the capacities are rational numbers we can take the LCM and apply the same network flow algorithm (ford-fulkerson) by choosing augmenting paths arbitrarily.
If the capacities are real numbers, ford-fulkerson algorithm runs in polynomial time if augmenting paths are chosen via BFS. The algorithm might not terminate if the augmenting paths are chosen arbitrarily.
Assuming integer values makes the analysis much simpler, without worrying about how the augmenting paths are chosen. As said earlier, real-values can be handled efficiently using BFS.
A recent paper [1] analyzes the DFS approach of choosing augmenting paths.
[1] Finite Termination of "Augmenting Path" Algorithms in the Presence of Irrational Problem Data Brian C Dean, Michel X. Goemans, Nicole Immorlica. To appear in the proceedings of the 14th annual European Symposium on Algorithms (ESA), 2006.
Friday, July 14, 2006
Number Magic
Guess a positive integer n
if (n is even) {
n = n/2
} else { /* n is odd */
n = 3n + 1
}
Apply this process repeatedly.
This process will always reach the number 1
Eg : 6 -- 3 -- 10 -- 5 -- 16 -- 8 -- 4 -- 2 -- 1
This is Collatz conjecture and remains open till date !!
if (n is even) {
n = n/2
} else { /* n is odd */
n = 3n + 1
}
Apply this process repeatedly.
This process will always reach the number 1
Eg : 6 -- 3 -- 10 -- 5 -- 16 -- 8 -- 4 -- 2 -- 1
This is Collatz conjecture and remains open till date !!
Thursday, July 13, 2006
CRICKET is NP-Complete
How do we decide the order of batsmen to maximize the cumulative runs made by them in 50 overs ? Here is my perspective......
Let's say we have the following statistics of batsmen based on their past performances.
Given this data, we would like to decide the order of batsmen to maximize their runs (assuming they don't deviate much from their average past performance).
Formally speaking, we have a complete undirected weighted (vertex-weighted and edge-weighted) graph on n vertices. The vertices represent the batsmen and the weights on the vertices indicate the average time spent by the batsman on the field. The weight w on the edge (u,v) represents the average runs per over made (during past partnerships) by (u,v). That is, if u and v are playing on the field, they can together contribute at the rate of w runs per over. Having a bad partner hurts you, even if you are a high-scorer.
For example, the input graph can be as shown below...

The best schedule for m (=50) overs can be as shown below....

In the above figure, we have two rows representing the two batsmen on the field at any given time. The number of runs for the above schedule is derived by adding the length-of-overlap*edge-weight for each pair of players.
Theorem : Given the input graph G(V,E), finding the optimum (maximizing runs) schedule is NP-Complete.
I will post the proof at a later time in a later post. In the menwhile, you can try your own approaches to prove it. The next obvious question is about the approximability.
This model might not be pratical (due to noise, does not take other factors (like the skills of bowlers and bowler's schedule) into account) in real-life, but serves as a good mathematical puzzle.
P.S. Beginners can read the rules of cricket here. World Cup 2007 Schedule is here. Add this cool countdown to world cup to your google personalized homepage.
Let's say we have the following statistics of batsmen based on their past performances.
- average time spent by a batsman on the field.
- average runs per over made (during past partnerships) for each pair of batsmen.
Given this data, we would like to decide the order of batsmen to maximize their runs (assuming they don't deviate much from their average past performance).
Formally speaking, we have a complete undirected weighted (vertex-weighted and edge-weighted) graph on n vertices. The vertices represent the batsmen and the weights on the vertices indicate the average time spent by the batsman on the field. The weight w on the edge (u,v) represents the average runs per over made (during past partnerships) by (u,v). That is, if u and v are playing on the field, they can together contribute at the rate of w runs per over. Having a bad partner hurts you, even if you are a high-scorer.
For example, the input graph can be as shown below...

The best schedule for m (=50) overs can be as shown below....

In the above figure, we have two rows representing the two batsmen on the field at any given time. The number of runs for the above schedule is derived by adding the length-of-overlap*edge-weight for each pair of players.
Theorem : Given the input graph G(V,E), finding the optimum (maximizing runs) schedule is NP-Complete.
I will post the proof at a later time in a later post. In the menwhile, you can try your own approaches to prove it. The next obvious question is about the approximability.
This model might not be pratical (due to noise, does not take other factors (like the skills of bowlers and bowler's schedule) into account) in real-life, but serves as a good mathematical puzzle.
P.S. Beginners can read the rules of cricket here. World Cup 2007 Schedule is here. Add this cool countdown to world cup to your google personalized homepage.
Wednesday, July 12, 2006
Transactions Minimization Problem
In April 2000, I visited Agra with one of my friends (Amit) and his roommates (X,Y,Z) . At the end of the tour we ended up owing money to each other, due to the transactions during the trip (Eg : Amit paid for my taxi, I paid for X's food, Y paid for Amit's photo's at taj mahal etc etc.,). At the end of the trip we have to decide "who owes whom how much".
Normal human-beings might solve this problem in a step by step fashion through multiple transactions. Since we are computer sceintists, we will add some "constraints" and solve this problem "efficiently"'.
Formally speaking, we have a weighted directed graph G(V,E) where the vertices represent the people and a directed edge (u,v) with weight w means that u owes w-dollars to v.
For example, the following graph shows that a owes $10 to b, and b owes $20 to c.

There are two ways to perform the transactions.
First way :
Second way : reduce G to G' as shown below :

Second way is better in the following sense :
Formally, we want to reduce the graph G(V,E) to G'(V',E') such that,
Question : Design an efficient algorithm to reduce G to G'
I will stop here and let you solve this problem on your own.....
Normal human-beings might solve this problem in a step by step fashion through multiple transactions. Since we are computer sceintists, we will add some "constraints" and solve this problem "efficiently"'.
Formally speaking, we have a weighted directed graph G(V,E) where the vertices represent the people and a directed edge (u,v) with weight w means that u owes w-dollars to v.
For example, the following graph shows that a owes $10 to b, and b owes $20 to c.

There are two ways to perform the transactions.
First way :
- a withdraws $10 from ATM
- b withdraws $20 from ATM
- a pays $10 to b
- b pays $20 to c
Second way : reduce G to G' as shown below :

- a withdraws $10 from ATM
- b withdraws only $10 from ATM
- a pays $10 to c
- b pays $10 to c
Second way is better in the following sense :
- b has withdrawn just as much money as required.
- there are smaller (less money involved) transactions.
- often there are lesser transactions (you can construct a complicated example to see this)
- The transactions are still parallelizable !! (i.e., all the payments can occur simultaneously).
Formally, we want to reduce the graph G(V,E) to G'(V',E') such that,
- Net amount (payed/received) is preserved for each person. (I am too lazy to write down the equations)
- |E'| is as small as possible (or)
- The sum of the weights of the edges in G' is minimized (or)
- The maximum weight of an edge in G' is minimized.
Question : Design an efficient algorithm to reduce G to G'
I will stop here and let you solve this problem on your own.....
Monday, July 10, 2006
Graceful Tree Conjecture
Label the vertices of a simple undirected graph G(V,E) (where V = n and E = m) with integers from 0 to m. Now label each edge with absolute difference of the labels of its incident vertices. The labeling is said to be graceful if the edges are labelled 1 through m inclusive (with no number repeated).
A graph is called graceful if it has atleast one such labeling. This labeling was originally introduced in 1967 by Rosa. The name graceful labeling was coined later by Golomb.
Gracefully labeled graphs serve as models in a wide range of applications including coding theory and communication network addressing.
The graceful labeling problem is to determine which graphs are graceful. It is conjectured (by Kotzig, Ringel and Rosa) that all trees are graceful.
Despite numerous (more than 200) publications on graceful labeling for over three decades, only a very restricted classes of trees have been shown to be graceful. These restriced classes include paths, stars, complete bi-partite graphs, prism graphs, wheel graphs, caterpillar graphs, olive trees, and symmetrical trees.
A graph is called graceful if it has atleast one such labeling. This labeling was originally introduced in 1967 by Rosa. The name graceful labeling was coined later by Golomb.
Gracefully labeled graphs serve as models in a wide range of applications including coding theory and communication network addressing.
The graceful labeling problem is to determine which graphs are graceful. It is conjectured (by Kotzig, Ringel and Rosa) that all trees are graceful.
Despite numerous (more than 200) publications on graceful labeling for over three decades, only a very restricted classes of trees have been shown to be graceful. These restriced classes include paths, stars, complete bi-partite graphs, prism graphs, wheel graphs, caterpillar graphs, olive trees, and symmetrical trees.
Subscribe to:
Posts (Atom)