5

I believe that I have solved an open problem in complexity theory but I want to make sure that it's right.

I problem in question is: ``How many moves does it take to solve the Towers of Hanoi puzzle as the number of towers increases?''

What is obvious is that if the number of ''disks'' is kept bounded, then then running time asymptotically approaches O(n) where n is the number of ''disks''. This is significantly better than the original O(2^n).

What I've found is that the running time is O(2^n^(1/k)) where n is the number of disks, k is the number of pegs, and exponentiation (the ^ operator) is right associative. Although, this comes about because of a weird phenomena where there are discrete points where the running time increases linearly and then changes slope. So all in all, the running time amortized O(2^n^(1/k)).

If you're curious about it and want to read the proof for yourself, I set up a website where you can find it over here. (If that link is inaccessable, try github. Although you'll need access to the necessary tools to build it)

Because I know that someone is going to ask me ''Why don't I just give it to my professor?'' or something else along those lines. The answer is that I'm not affiliated with any university/college, I'm still in high school.

Any help is very appreciated, thank you in advance.

Notice: This question has been re-posted on Math Overflow over here

Notice: When the recomended formatting edits are made to the paper, another bounty will be issued on a new question that will be posted as I am looking for criticsm on the content of the paper rather than the legibility of it.

Community
  • 1
  • 1
randomusername
  • 7,927
  • 23
  • 50
  • Is this spam? I don't think a proof counts if you have to bind 'n' -- well done if u are still in highschool though – ddoor Nov 14 '13 at 06:12
  • Binding 'n' isn't the same thing as declaring it to be bounded. I don't know how explain it without using math though, and these comment boxes don't let me use TeX formatting. If you're so sceptical though, take a look at the math for yourself. – randomusername Nov 14 '13 at 06:28
  • Yea reading it now. I think the problem is that if you declare n to be bounded then you are changing the problem definition? – ddoor Nov 14 '13 at 06:30
  • So lets drop the boundedness, we'll drop boundedness for both 'n' and the number of towers. But now we have something really cool, the running time becomes O(floor(n^(1/k))^(k-1) * 2^(n^(1/k))) where 'k' is the number of towers. – randomusername Nov 14 '13 at 06:33
  • How do you ensure a big disk doesn't go on top of a smaller disk? – ddoor Nov 14 '13 at 06:36
  • The commutative nature of addition and the fact that I'm using induction to solve it mean I don't have to worry about that. In the context of a proof, ordering doesn't matter. It isn't the same in code though, but I was still able to implement it in C. I have it sitting up on github if you want it. – randomusername Nov 14 '13 at 06:40
  • Please post the github link. If someone could mirror his original link as well, that would be nice, as it seems that the server is overloaded. – Andrey Mishchenko Dec 22 '13 at 08:12
  • @Andrey See my edit for the github link. – randomusername Dec 22 '13 at 16:20
  • Tiny hint: never start a sentence with `Where`. It should end the sentence in which the preceeding formula is a part (so you remove the full stop as well). – Andreas Rejbrand Dec 28 '13 at 23:06
  • If you want to demonstrate a breakthrough without making us read a whole lot, why not give an instance where your program finds a solution in less steps than [Frame-Stewart](http://en.wikipedia.org/wiki/Tower_of_Hanoi#With_four_pegs_and_beyond)? I only ask this out of 5 minute's reading's worth of understanding. – clwhisk Dec 29 '13 at 04:26
  • @clwhisk except my proof is all about showing Frame-Stewart to be capable of mimicking **every** possible solution and then finding the ideal way to solve the puzzle using Frame-Stewart. – randomusername Dec 29 '13 at 04:29
  • Please clarify the conclusions you drew. I don't see one in plain English at the end of your pdf, and the one above...what am I missing? asymptotically approaches as what changes? – clwhisk Dec 29 '13 at 04:40
  • @clwhisk Please see my latest edits to the question. – randomusername Dec 29 '13 at 05:07
  • I did, still not impressed. After thousands of words, you never even stated the open problem. – clwhisk Dec 29 '13 at 19:38
  • @randomusername this SO question has been flooded with garbage answers, long discussions in comment sections, etc. If you do decide to re-post the article after edits are made, you should post it as a NEW question, and probably provide a link to this question. – Andrey Mishchenko Dec 29 '13 at 21:40
  • @Andrey ok, I'll do that instead. Thank you for the advice. – randomusername Dec 29 '13 at 21:58

7 Answers7

6

I did try to look pretty in-depth at the article, and found it very confusing and hard to read in the same way as @sth. I have an academic background so am used to reading (often poorly written) papers, but found this one pretty hard to go through.

I don't want to dishearten you but you should have someone go through and help you re-write it if you want to reach any significant audience.

Claimed proofs of or counterexamples to famous outstanding conjectures appear every day (look around http://arxiv.org, I bet P vs. NP has been solved at least once this week), and are often discredited out of hand if all three of the following things do not hold:

  • the author is already established and has a good reputation for being correct and careful,
  • the paper clearly has a significant, new idea, rather than apparently mysteriously extracting a proof from unmotivated symbolic manipulation (if it were possible, one of the many smart, experienced people who have worked on the problem, or a computer, would likely have found such a solution),
  • the paper explains clearly what the roadblocks were to finding a solution, and how this new idea overcomes it.
  • It helps if the paper is well-written, but a poorly-written paper satisfying the above will still get some attention.

Probably over 99% of claimed solutions to famous open problems are wrong, and papers that fail a 60 second smell test are most often thrown away by people who are actually equipped to evaluate them.

Sorry to say, you meet none of the above criteria. This doesn't mean that your proof is wrong, but it does mean that people who are able to evaluate it will be reluctant to spent the necessary time, particularly because the paper is hard to read. Never mind that it is not actually clear what you are claiming to have proved.

Some specific complaints:

  • I don't see anywhere a description of an actual algorithm. If you claim to have achieved a certain time complexity improvement, you should either include an algorithm attaining it or explain why your proof cannot be adapted to be constructive.
  • You nowhere clearly describe the approaches people have attempted to solve the problem, and how your approach is similar to or different from theirs.
  • You don't state your significant new idea that solved this problem. The proof appears to use nothing beyond basic arithmetic. Sorry, I love down-to-earth concrete math, but I guarantee that everyone who has ever worked on this problem has a solid command of arithmetic, and if no other tools are necessary to attain a 4-page solution then probably someone would have found it by now.
  • I had hoped to find an implementation of an algorithm attaining your claimed time complexity (never mind that I am not clear on what the claim is) in the Python file you attach. However, to my dismay, the script apparently just runs a computation of the closed-form expression that you provide in your paper.

I expect some people will come to your "defense" (despite that this is not an attack, but honest advice), because you are a high-schooler and this is "amazing" for a high-schooler. Right now there are two posts already in this spirit, and neither author seems to even know what you are claiming to prove.

I recommend you clean the paper up as best you can and post it on Math or CS StackExchange (Edit: apparently Math StackExchange has a ban on posting "solutions" to open problems, probably for the reasons I describe above!), where there will be a much larger audience that is equipped to look at it and evaluate it carefully. I recommend you also look for other articles on the same topic (there are certainly dozens if not hundreds), look up the authors of those articles, pick one who is relatively junior (a full professor will be harder to convince to interact with you), and send him what you have personally to see what he thinks. I would avoid emphasizing that you are in high school, as in my experience, most academics will not be impressed and will be much more ready to write you off as a likely waste of time.

@mrip has some nice references and advice for you as well. Good luck.

Edit: Just for fun, here are two claimed solutions to P vs. NP from this last summer, and an article that explores the anthropological side of P vs. NP:

Edit for record-keeping: The article linked at http://arxiv.org/abs/1112.0631 is a paper claiming to prove the same thing as you (maybe), so it's a great first place to look and first person to contact.

Andrey Mishchenko
  • 3,986
  • 2
  • 19
  • 37
  • 1
    Please do not send questions like this to MathOverflow. It is considered inappropriate to ask for comments on your papers on MO, and such questions are quickly closed (the OP's question is in the process of being closed right now). – Andy Putman Dec 29 '13 at 06:06
  • No problem! I know that it was an honest mistake. – Andy Putman Dec 29 '13 at 06:09
1

I didn't look at it in any depth, but there are a few things I found confusing:

  • In (1) there is a variable g and related variables gb, but it's not explained what those variables are supposed to be.
  • Are the contents of (1) need to be proven? For example in the last case there is a 2b that doesn't seem to be explained by the preceding text. I would assume the correctness of this should be explained/proven somewhere.
  • The "Proof for k=2" that follows (1) seems to not proof (1), instead it derives further things from it. It's not clear what exactly this proof is trying to prove, you should probably add a lemma/theorem before it that states what is going to be proven.
  • Similarly the "General Proof" doesn't make it clear what it is trying to prove.
sth
  • 222,467
  • 53
  • 283
  • 367
1

This is great work for a high-school student. Keep it up. I haven't read through your write-up fully, but here are a few general comments.

Since this problem has two parameters, you need to be a bit careful in specifying exactly what you mean when using asymptotic big-O notation. For example, if n is kept bounded, then O(n) is the same thing as O(1), because at this point n is just a constant. Moreover, if the number of intermediate pegs is greater than the number of disks, then it is pretty easy to solve the problem in 2n steps, because you can just move each disk to its own intermediate peg.

If you are deriving a bound that is valid for arbitrarily values of both n and k, then your formula should include both n and k in it. Otherwise, you should specify the relationship between the number of pegs and the number of disks for which your bound is valid.

I would suggest checking your result and comparing to some available papers on the internet about the multiple peg tower of hanoi problem. For example, for constant k, this paper derives a lower bound of the form 2^(C_k n^(1/(k-2)) where n is the number of disks and k is the number of pegs, and C_k is a constant that depends on k, which, given existing algorithmic upper bounds, shows that the complexity of the problem is 2^Θ(n^(1/(k-2)).

http://www.cs.rutgers.edu/~szegedy/PUBLICATIONS/tower1.pdf

Here is another paper which considers situations where the number of pegs grows as a function of the number of disks.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.7500&rep=rep1&type=pdf

If you google around a little more, you can probably find out more about what is known and what is not known about this problem. In terms of the write-up, I would suggest that you state your main result clearly at the top before moving on to the proofs.

mrip
  • 14,913
  • 4
  • 40
  • 58
0

This is at a very very high level for a high school student. You should send this as a resume to go work at google or something. Even the use of TeX is impressive.

I think the issue lies in the fact that you don't take into account the third rule in that a big disk can't go on a smaller one.

Taken from this site: http://www.cut-the-knot.org/recurrence/hanoi.shtml

The recursive solution above involves moving twice (N - 1) disks from one peg to another and making one additional move in between. It then follows that

TN ≤ TN-1 + 1 + TN-1 = 2TN-1 + 1

The traditional explanation of the problem is well defined and states that we can't simply rebuild the tower upside down on another peg and the the right way up on yet another. Mainly because it violates the rule of not having a big disk on top of a small one.

Essentially the quickest way to solve it involves each disk being moved at least twice.

Unfortunately commutativity of addition doesn't enforce any ordering constraints on the set of disks, so it is possible for a big disk to go on top of a little one.

That being said I am just a software engineer and it has been a few years since I have done comp-sci or maths. So you should get a second opinion.

You have set this up on a website, keep your paper copyrighted and perhaps email a professor in computer science a link to your site.

Also, if you aren't aware there is this field of computer science you might be interested in: http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_computer_science

Don't get dis-heartened by anything I have said here, you are lightyears ahead of where I was in highschool and I am sure you will go places in the academic world. Send links to your site around the place, seek feedback and keep finding ways to improve your understanding of maths.

Also, check out topcoder.com - there is an algorist section there that might interest you as well. Also their forums might offer better feedback then I have.

ddoor
  • 5,819
  • 9
  • 34
  • 41
  • Except I do take into account the third rule. In the relation $M_k(n)=M_k(n-i)+M_{k-1}(i)+M_k(n-i)$, I explicitly make sure that after performing the first step (setting aside $n-i$ disks, $M_k(n-i)$) I restrict myself to using one less peg when I move the bottom half to its destination ($M_{k-1}(i)$) and then finally I move the disks I set aside to their destination using all k pegs ($M_k(n-i)$). Although thank you for the other advice. – randomusername Nov 14 '13 at 07:06
  • Thats ok. Yes I think there are some holes in that as well. Your best bet would be to talk to someone face to face about it if you can :) - good luck – ddoor Nov 14 '13 at 07:20
  • The article to me wasn't quite apt enough to be critiqued, and I didn't feel this was the place to do it. Like the chosen answer suggests, very hard to read. – ddoor Jan 03 '14 at 11:21
0

Note that there is an iterative way to solve Towers Of Hanoi. If you haven't already done so, you might want to check whether that can be persuaded to yield the same result.

keshlam
  • 7,931
  • 2
  • 19
  • 33
  • If you're referring to the Frame-Stewart algorithm, then I am already using it. Although you would know that if you had actually read it. – randomusername Dec 29 '13 at 05:10
  • I must admit I did only a quick scan for "iterative" and didn't find it. And I didn't know if there was an official name for this approach; I only know it as a solution I learned at about age 10. (And taught to several younger kids just to watch their parents' eyes bug out as they confidently solved the puzzle.) So: Shooting from hip, non-useful comment; my apologies. – keshlam Dec 29 '13 at 18:21
0

Edit: Nevermind all of this:

There's something wrong here, and I can't quite get my head around what exactly you are thinking, so I'll keep reading. Basically, my qualm is that in the second equation for Mk(n) your recursive solution only considers Mk-1(some other n).

This could possibly because you do not suggest a concrete ordering, only a runtime ( Mk(n) ). Ideally, you would specify some ordering and then argue on the grounds of a function mapping some your ordering to a runtime. Reading between the lines, your 'ordering' is always of the form move i discs to A, move n - i discs to B, move i discs from A to B. This is exactly the solution to the original problem (M2(n)). Yet you claim faster runtimes?

Consider the obvious solution to the case M3(3). One simply spreads the discs out, solving in 5 moves. Your "expanded sum" gives optimally a 7 move solution. I don't think this is quite the error in your logic, but it is the most obvious error in your exposition. Please elaborate what you mean by Mk(n) = Mk-1(i) + 2Mk(n-i). As I understand it, this implies you solve Mk(n) by first moving i discs, then n - i dsics, then i discs again (recursively - this is of course legitimate). The problem is expanding in this way certainly does not represent ever legal solution. It is plain to see this is not exactly the order you have in your head. The order you have in your head involves a series of decrasing k values in the recursion.

Look at M4(4) to see the difference. The expansion you have shown with Mk-1 gives a similar solution to M2(n). Now consider the solution you want to have written, spreading them out. after the first two discs have been moved, the next discs have fewer places to go. Specifically their movements is an instance of the M2(2) problem. Read that carefully. 2. Not k-1 = 3.

user3125280
  • 2,779
  • 1
  • 14
  • 23
-1
I problem in question is: ``How many moves does it take to solve the Towers of Hanoi puzzle as the number of towers increases?''

What I've found is that if the number of ''disks'' is kept bounded, then then running time asymptotically approaches O(n) where n is the number of ''disks''. This is significantly better than the original O(2^n).

This is not surprising. If the number of disks is bounded by n, then once there are n open pegs, there is a trivial solution in 2n moves.

The open problem is presumably about when the number of disks is not bounded. For a given number of pegs, what happens to the solution size as you increase the number of disks n. That grows (so far as we know) exponentially like 2^n, not as a linear function of n.

clwhisk
  • 1,805
  • 1
  • 18
  • 17