Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graph-based crossword representation #41

Open
jqdq opened this issue Jul 23, 2023 · 1 comment
Open

Graph-based crossword representation #41

jqdq opened this issue Jul 23, 2023 · 1 comment
Assignees
Labels
idea New feature or request

Comments

@jqdq
Copy link
Member

jqdq commented Jul 23, 2023

Is your feature request related to a problem? Please describe.

  • As the optimization algorithm I would like to know what words conflict with each other.
  • As the optimization algorithm I would like to know what words work well together.
  • As the optimization algorithm I would like to know the history of specific words
    This would allow us to use SAT solvers (or other knapsack-like solvers) when generating the crossword.

Describe the solution you'd like
Representing a single word as an object with a list of all other words that interact with it (maybe via a field class?). Depending on the type of interaction, these might be considered a good thing or a bad thing.
This would require rewriting the crossword libs.

Describe alternatives you've considered
Random choice, wrappers, simple backtracking with copying, adding a child class.

Additional context
I thought about it when thinking about action representation. It's somewhat similar to how Larch backtracking worked.

@jqdq jqdq added the idea New feature or request label Jul 23, 2023
@jqdq jqdq self-assigned this Jul 23, 2023
@jqdq
Copy link
Member Author

jqdq commented Jul 23, 2023

CNF-based SAT solvers could be quite cool here, as during the solving process we can automatically disregard every word that fits into all versions of the crosswods.
The actual process can be mixed -- sometimes it will "crystalize" the crossword by leaving only the best version, and all the other times it will just add more of them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
idea New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant