SpaceChem is a famously difficult puzzle game, but it has a small, discrete state space. I think it might be possible to generate solutions to research puzzles using a SAT solver. If that doesn't work, I might try deep RL.

This market resolves YES if I solve 5 puzzles below. It resolves NO if I solve none. If I solve X/5 puzzles, it resolves PROB 20*X%.

By "solve", I mean that the AI generates a working solution. I can give it any heuristics that are reasonably generalizable, and also specify desired intermediate states or conditions by hand, but the AI must do most of the cognitive work. The last three puzzles were described as particularly hard to solve at all by a SpaceChem expert, and are far beyond my skill level, so those should be reasonably objective. If someone else writes the AI first, I have to replicate their results.

Puzzles

"It Takes Three": easy puzle from world 3 level 2

"Special Assignment": moderate puzzle from world 8 level 1

"Getting Pumped": particularly hard puzzle

"Catalyst II": particularly hard puzzle

"Squaric Acid": particularly hard puzzle

I will not trade in this market.

## Related questions

# 🏅 Top traders

# | Name | Total profit |
---|---|---|

1 | Ṁ84 | |

2 | Ṁ57 | |

3 | Ṁ38 | |

4 | Ṁ34 | |

5 | Ṁ32 |

The current commit of the solver now solves "It Takes Three", so this should resolve at least 20%.

https://github.com/tkwa/Spacechem-in-SAT/commit/63fc79e855a54c4a7c6d7d714c6e428210acc079

@ThomasKwa

Solver is now on github: https://github.com/tkwa/Spacechem-in-SAT

Just playing around with it, the solver generated this method of inputting 4 water atoms with only 20 cycles and 10 symbols.

Once I get bond to work, I'm pretty confident I can solve challenge 1, because it can be done with 16 symbols in a 25 cycle loop with no rotates.

This weekend I wrote up code for an extremely simplified case, where one waldo must deliver atoms to locations then return to its starting location. It works but is rather slow at 1.1 seconds for 8 arrows, 8x10 grid, 3 atoms, and 18 timesteps.

The code has several O(t * *n_atoms^2) and O(t n_atoms n_cells) operations just to check simple invariants like "if atom is at cell x, y then cell x, y has an atom", and I'm not sure whether various difficult search problems the model must do are additive or multiplicative on this.

I wish I could just write game code and have invariants automatically generated. It's 300 lines to generate ORTools SAT clauses for 100 lines of game logic, and I expect lots of bugs as I keep implementing features.