6.892 Algorithmic Lower Bounds: Fun with Hardness Proofs (Spring 2019)

Prof. Erik Demaine       TAs: Jeffrey Bosboom, Jayson Lynch


[Home] [Lectures] [Problem Sets] [Project] [Coauthor] [Accessibility]

Research from 6.892 2019

Here is the research publications resulting from 6.892 in 2019 and beyond (as the group kept meeting in an open problem session), including research from the final projects in the class:
  1. Edge Matching with Inequalities, Triangles, Unknown Shape, and Two Players” by Jeffrey Bosboom, Charlotte Chen, Lily Chung, Spencer Compton, Michael Coulombe, Erik D. Demaine, Martin L. Demaine, Ivan Tadeu Ferreira Antunes Filho, Dylan Hendrickson, Adam Hesterberg, Calvin Hsu, William Hu, Oliver Korten, Zhezheng Luo, and Lillian Zhang, published in Journal of Information Processing, 2020.
  2. Tetris is NP-hard even with O(1) rows or columns” by Sualeh Asif, Michael Coulombe, Erik D. Demaine, Martin L. Demaine, Adam Hesterberg, Jayson Lynch, and Mihir Singhal, published in Journal of Information Processing, 2020.
  3. PSPACE-completeness of Pulling Blocks to Reach a Goal” by Joshua Ani, Sualeh Asif, Erik D. Demaine, Yevhenii Diomidov, Dylan Hendrickson, Jayson Lynch, Sarah Scheffler, and Adam Suhl, published in Journal of Information Processing, 2020.
  4. Walking through Doors is Hard, even without Staircases: Proving PSPACE-hardness via Planar Assemblies of Door Gadgets” by Joshua Ani, Jeffrey Bosboom, Erik D. Demaine, Yevhenii Diomidov, Dylan Hendrickson, and Jayson Lynch, published in FUN 2020.
  5. 1 × 1 Rush Hour with Fixed Blocks is PSPACE-complete” by Josh Brunner, Lily Chung, Erik D. Demaine, Dylan Hendrickson, Adam Hesterberg, Adam Suhl, and Avi Zeff, published in FUN 2020.
  6. Arithmetic Expression Construction” by Leo Alcock, Sualeh Asif, Jeffrey Bosboom, Josh Brunner, Charlotte Chen, Erik D. Demaine, Rogers Epstein, Adam Hesterberg, Lior Hirschfeld, William Hu, Jayson Lynch, Sarah Scheffler, and Lillian Zhang, published in ISAAC 2020.
  7. Complexity of Retrograde and Helpmate Chess Problems: Even Cooperative Chess is Hard” by Josh Brunner, Erik D. Demaine, Dylan Hendrickson, and Julian Wellman, published in ISAAC 2020.
  8. Complexity of Solo Chess with Unlimited Moves” by Josh Brunner, Lily Chung, Michael Coulombe, Erik D. Demaine, Timothy Gomez, and Jayson Lynch, published in JCDCGGG 2022.
  9. This Game Is Not Going To Analyze Itself” by Aviv Adler, Joshua Ani, Lily Chung, Michael Coulombe, Erik D. Demaine, Yevhenii Diomidov and Quanquan Liu, published in JCDCGGG 2022.
  10. Trains, Games, and Complexity: 0/1/2-Player Motion Planning through Input/Output Gadgets” by Joshua Ani, Erik D. Demaine, Dylan Hendrickson, and Jayson Lynch, published in WALCOM 2022.
  11. Pushing Blocks via Checkable Gadgets: PSPACE-completeness of Push-1F and Block/Box Dude” by Joshua Ani, Lily Chung, Erik D. Demaine, Yevhenii Diomidov, Dylan Hendrickson, and Jayson Lynch, published in FUN 2022.
  12. Hamiltonicity in Semi-Regular Tessellation Dual Graphs” by Divya Gopinath, Rohan Kodialam, Kevin Lu, Jayson Lynch, Santiago Ospina, arXiv:1909.13755, 2019.
  13. Traversability, Reconfiguration, and Reachability in the Gadget Framework” by Joshua Ani, Erik D. Demaine, Yevhenii Diomidov, Dylan H. Hendrickson, and Jayson Lynch, published in Algorithmica, 2023.
  14. The Legend of Zelda: The Complexity of Mechanics” by Jeffrey Bosboom, Josh Brunner, Michael Coulombe, Erik D. Demaine, Dylan H. Hendrickson, Jayson Lynch, and Elle Najt, published in Thai Journal of Mathematics.
  15. Celeste is PSPACE-hard” by Lily Chung and Erik D. Demaine, published in Thai Journal of Mathematics.
Research from 6.892 in 2019 also led to parts of the following theses:
  1. A Framework for Proving the Computational Intractability of Motion Planning Problems” by Jayson Lynch, 2020
  2. Exhaustive Search and Hardness Proofs for Games” by Jeffrey Bosboom, 2020
  3. Unsimulability, Universality, and Undecidability in the Gizmo Framework” by Joshua Ani, 2021
  4. Subway Shuffle, 1 × 1 Rush Hour, and Cooperative Chess Puzzles: Computational Complexity of Puzzles” by Josh Brunner, 2021
  5. Games meet Concurrency: Algorithms and Hardness” by Michael Coulombe, 2023
We also released the following coding projects:
  1. Puuush: Game engine implementing (Push(Push(Push)?)? and/or Pull(Pull(Pull)?)?)-F?X?G?-(1|2|…|∞) block games, for testing gadgets and generating figures/animations [deployed app]
  2. NCL simulator: A webapp that lets you draw and simulate Nondeterministic Constraint Logic [deployed app]
  3. Jigsaw reduction loop: 3-partition → edge matching → jigsaw puzzles → polyomino packing → edge matching [deployed app]
For more, see the list from 2014.

Project

The project is the most important component of the course. It can take several forms:

You are encouraged to relate the final project to your research interests, and you will not be limited to the topics discussed in class.

Deadlines

Collaboration

Collaboration is strongly encouraged, especially for research projects—this is often the key to successful research in theoretical computer science. You can work in a group of students in the class if you find common interests. (Students listening to the class will likely have less time to devote, but they are welcome to participate in a project too.) In particular, we expect that many projects will naturally grow out of the collaborations during the interactive portions of class. We have higher expectations of projects by larger groups.

You are also welcome to collaborate with anyone outside the class, including your research supervisor (if you have one) and including the course staff. The only constraint for the class is that your own contribution should be substantial enough, both in terms of solving problems and writing it up. (To evaluate “substantial enough”, talk to the course staff.) In any case, collaborators should be clearly marked in the project proposal, paper, and presentation.

If you work on a team, you will be required to post a short private Coauthor message (in the appropriate thread) summarizing your own contributions to the project(s) you were involved in (when submitting the project). This will let us ensure that everyone makes substantial-enough contributions.

Multiple Projects

You are allowed to work on multiple projects, possibly with different teams. Just make sure that the total amount of work you do sums to at least one “person project unit”. We suggest having one as your main, or one or a small number to which you will make major contributions, along with any number of projects to which you will make minor contributions. We also require that you do some of the writing on at least one project paper, and participate in at least one of the project presentations.

In particular, we'd like projects tackling/solving open problems to match papers as much as possible. For example, instead of working on one project about two small papers, write two smaller projects. Conversely, instead of doing a project about your piece of a larger paper, be a part of a large project to write the entire paper. It's also fine to write up other people's results from open problem solving if they're OK with it (in particular, if they're not planning to do so for their class project) — help with writing is an important contribution to any paper!

Presentation

All presentations will during the usual class time on May 8 and 15, but will be in room 32-141. Some details/tips:

Project Submission

To submit your final project, attach a PDF document to the relevant thread on Coauthor, and then edit that post to at-mention everyone involved in the project, and to add a link to the source files (LaTeX, figures, code, etc.). We require putting all source files into a repository on our MIT Github organization, or an Overleaf document with link sharing turned on, and including a link in your post. If you're unfamiliar with Github, here are some basic instructions: