"God's Number" is 20 - Rubik's cube has been "solved"
cube20.org
cube20.org
Or, if storage cost at customers is low and items do not perish, leave the items they didn't consume at their site. Later they may find them useful and pay for them. This is actually the model employed by some of medical drug resellers in Japan.
'People who previously bought books, also bought books. We sent you our entire fracking catalogue'
His godly index: 20%
This indicates that God has a professional Dan ranking of 15 or so...
I can't really watch anything or listen to a podcast at the same time that I'm coding. But there is still stuff I really want to watch. This week in startups and some Mixergy shows etc.
But only sitting there watching videos can be very boring, so it's good to have something to do with your hands.
Also. There are so many formulas, techniques, etc. You gradually gain a greater understanding of how the cube works, etc.
I recommend it. Great hobby. But don't be one of those losers that tries to impress a whole party by solving one, it's really lame to cubists.
PS: Same here.
Is there any progress on the algorithmic front?
Search techniques that can quickly solve any cube with a small (near-optimal) number of moves have been known for a while, mainly due to the work of Kociemba: http://www.jaapsch.net/puzzles/compcube.htm#kocal The techniques used are standard AI tree/graph search algorithms with lots of Rubik's cube-specific optimizations.
A few years ago, these methods became good enough to solve almost any cube quickly within 20 moves (which was conjectured to be God's number.) So the algorithm as well as a fast implementation already existed. Here's Kociemba's page http://kociemba.org/cube.htm and here's an iPhone app with a neat twist: you can photograph your physical cube to solve it http://www.wired.com/epicenter/2009/01/iphone-app-solv/
What these guys did was to make further optimizations and run it on a cluster to search through all possible position sets. As they say, they can solve about 4000 positions/s (in 20 moves or less) on a single machine.
They explicitly state that they did not generate the optimal number of moves for each of those inputs, only a number <= 20.
So, the question is, does a god-algorithm exist or does it not, and how will this help in finding such an algorithm?
Now you changed your question to whether they can solve each position optimally or not. Fine.
Why don't you re-read the article once again? They state that they can solve random positions optimally at the rate of 0.36/sec, in the same table where they say 3,900/sec for solving it in 20 moves or less.
As for the re-reading, they don't solve the positions optimally, they brute force them so they're not in the possession of a god algorithm as far as I can see, they're using a highly optimized search strategy and that's a different beast.
A 'god' algorithm would take the faces as an input and would produce the minimal number of moves without a search component. So each configuration would be processed to give you the next without evaluation of 'wrong' moves or back-tracking.
That would be the 'god' algorithm. Anything else is (highly) optimized search.
According to Wikipedia a God Algorithm only has to be 'practical', find the optimal solution to a position with a sensible amount of processing. So it can use search and back-tracking. We could term your algorithm that works without search and back-tracking as a God God Algorithm because it is an optimal sequence of processor moves that find the optimal sequence of cube moves. A God God Algorithm would be awesome, but a much more difficult thing to create. I imagine it would run orders of magnitude faster than their God Algorithm.
(PS. I don't think we can entirely rule out the possibility that the God God Algorithm might contain some small amount of search or back-tracking.)
If I understand you correctly a god algorithm is allowed to produce the required result using whatever strategy, including partial brute forcing/searching, backtracking in order to arrive at its solution as long as it does so in a reasonable time, so is not 'brute force' per se.
The reason why that didn't sit right with me (I accept your wikipedia quote as what construes a god algorithm) is that for me the 'god' algorithm would imply there is no better one, since with omniscience you don't need to make any false moves and I could not imagine a true god algorithm would be allowed to make false moves.
But I guess I was wrong there.
Thanks for digging that up!
They explicitly state that they did not generate the
optimal number of moves
You say: They state that they can solve random positions optimally
Those two statements contradict each other. However: AFAIK the existing algorithm, which they used, has not been proven to solve the problem optimally. It has now been shown that it can solve any position in at most 20 moves, but there's still the chance it solves a position in 20 moves that could optimally be solved in 19. Because the upper bound of 20 moves coincides with the proven lower bound of 20 moves, we know God's number. That does not mean that this must be God's algorithm.Because of the time difference between generation a solution and generating the optimal solution, I'm guessing the algorithm bruteforces the optimal solutions, which explains part of the confusion: I was thinking about an algorithm that generates the optimal solution directly.
Now, if you want to do it fast, that's a different story.
total cost was 35 CPU years (Intel Nehalem, 4-core, 2.8GHz)
1 EC2 compute unit is about 1 GHz Xeon
let's assume 1 Google unit = 12 EC2 units (3x4 cores)
High-CPU Extra Large instance = 20 EC2 units
35*12 = 420 EC2 unit years = 5040 EC2 unit months
= 21 HiCPU XL instances for 1 year
= 252 HiCPU XL instances for 1 month
Putting this into AWS calculator [1] yields: $82,491.36 (21 HiCPU XL reserved instances for 1 year)
$125,435.52 (252 HiCPU XL on-demand instances for 1 month)
[1] http://calculator.s3.amazonaws.com/calc5.html------
Edit: It could be actually a bit more, Nehalems seem to be faster than my first estimate.
Plugging in EC2 computing unit comparison from Cluster Compute instance (which has 2x quadcore Nehalem), 1 Google unit can be 16.75 EC2 units.
This gives:
$114K for 1 year of 29 reserved HiCPU XL instances
$166K for 1 year of 18 reserved cluster compute instances
$173K for 1 month of 348 on-demand HiCPU XL instances
$246K for 1 month of 210 on-demand cluster compute instances
-----Edit2: Dedicated server hosting would be much cheaper. For example, from Hetzner [2] it would cost just about 26K EUR (= $34K) to rent 35 dedicated quadcore Nehalem servers for 1 year.
[2] http://www.hetzner.de/en/hosting/produktmatrix/rootserver-pr...
Back of the envelope... From the link, it would take
1.1 billion seconds @ 4x 2.8ghz
= 4.4 billion @ 2.8 Ghz
= 12.32 billion seconds @ 1 Ghz = ~3430000 hours
Using ec2 unit performance as 1Ghz, assume computing is comparable, Ghz for Ghz (it isn't...), and storage and xfer is negligible.Normal instances
instance-size|ec2units | $/hr | $ total
sm | 1 | 0.085 | 291550
large | 4 | 0.34 | 291550
xl | 8 | 0.50 | 214375
himem-xl | 6.5 | 0.69 | 364108
himem-double-xl | 13 | 1.20 | 316615
himem-quad | 26 | 2.40 | 316615
hicpu-med | 5 | 0.17 | 116620
hicpu-xl | 20 | 0.68 | 116620
cluster | 33.5 | 1.60 | 163821
Using spot instances
sm | 1 | 0.031 | 106330
large | 4 | 0.14 | 120050
xl | 8 | 0.245 | 105044
himem-xl | 6.5 | 0.172 | 90763.1
himem-double-xl | 13 | 0.427 | 112662
himem-quad | 26 | 0.871 | 114905
hicpu-med | 5 | 0.06 | 41160
hicpu-xl | 20 | 0.249 | 42703.5This is the wrong time to use the adverb "essentially". You either solved every position or you didn't.
adverb: used to emphasize the basic, fundamental, or intrinsic nature of a person, thing, or situation
If you didn't actually iterate through every position - but rather a subset that provided equivalent coverage by eliminating symmetries - then you have, in essence, solved every position.
So I think your statement is only true if you define 'possible' and 'reachable' as synonymous, making it tautological. There are still 'cubes' that look plausible, with the right number of faces of each color and adjacent-faced-pieces, that are still unsolvable.
The proof is quite elementary.