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

Fractionated Morse Auto-Solver issues #410

Closed
Agilus opened this issue Nov 28, 2023 · 6 comments
Closed

Fractionated Morse Auto-Solver issues #410

Agilus opened this issue Nov 28, 2023 · 6 comments

Comments

@Agilus
Copy link
Collaborator

Agilus commented Nov 28, 2023

Hi,

I'm experiencing some unexpected behavior with the Fractionated Morse Auto-Solver.

  1. After it determines the mapping of a letter which is given in the crib to a particular sequence of the (x, -, ・) characters, it later maps a different letter to that sequence. It does not explain in its reasoning why it made this change.

  2. It tells me that two letters are likely in the keyword in an instance where it is clear that they are unlikely to be in the keyword (they are sequential with one letter missing between them, and THAT letter is likely in the keyword).

  3. It says "The mapping of the letters between LetterA and LetterB are now known because the number of unknowns exactly matches the distance between these letters" in an instance where the number of unknowns does not exactly match the distance between those letters.

  4. In the same situation as 3), it has caused a problem with its suggested mapping by suggesting two empty spaces between letters that have only one alphabet letter falling between them (for example, leaving two empty spaces between P and R when there can be at most one).

  5. Feature request: if I provide a crib, it defaults to using the first instance of those letters in the auto-solver, whereas sometimes I specify that I want the crib letters to correspond with a different instance of those letters.

Happy to provide the instance case privately for review, but I can't post it publicly until a later time.

Really grateful for the test generator and all the work that goes into it -- it's invaluable.

@RanTheLab
Copy link
Collaborator

I'm going to need your testcase to debug this.

@Agilus
Copy link
Collaborator Author

Agilus commented Nov 28, 2023

I found it while writing a test for a tournament so I can provide it here in an update next week or I can send it to you by whatever means will keep it private until after the tournament.

@toebes
Copy link
Owner

toebes commented Nov 28, 2023

You can email it to codebusters@toebes.com which only goes to the developers who can keep it private.

@Agilus
Copy link
Collaborator Author

Agilus commented Dec 18, 2023

I did email it but thought it might be helpful for whoever takes the task not to have to sort through emails to put two and two together now that we are past our tournament. Not a nudge in any way, just putting everything in one place.
The plaintext is:
However small the chance might be of striking lucky, the chance was there.
Keyword: TICKET
Crib: CHAN
The directions are actually: Here's a quote from Charlie and the Chocolate Factory by Roald Dahl. It has been encoded as a Fractionated Morse. You are told that a new word begins on the last line, and its first four letters are CHAN.

  1. It maps D to ・x - as one of its givens, and later maps H to that sequence.

  2. It thinks B and D are in the keyword when I think a human solver would realize that C is most likely in the keyword.

  3. It says the mappings of the letters between C and L are known because the distance between them matches the number of unknowns, but a) it doesn't match the number of unknowns and b) it also doesn't fill in the letters between these two.

  4. And it leaves two blanks between J and L in its last table, which is not a possible mapping.

Would like to extend my gratitude to the entire team for their work on this tool.

@RanTheLab
Copy link
Collaborator

I am not sure how to tackle feature request #5 above from a UI standpoint. Please open a separate feature issue to keep it 'on the list'.

@Agilus
Copy link
Collaborator Author

Agilus commented Feb 22, 2024

Circling back to this one:

Today I'm working on this quote: I used some magic to make some fog laugh. It was mist tickle.

Here are some places where the auto-solver made decisions I didn't understand:
Key: HOMESICK
Crib: IUSED

  • In this case, it predicts the keyword length to be around 2, which is going to be impossible at a glance.

This seems to have follow-on consequences for the possibilities it predicts for the letters between K and N - a human solver would know these have to stay within the first half of the alphabet. 

Same quote, key: FORECASTING
Crib: MAGIC

  • Its initial suggestions of the letters that can appear between D and J is too wide a range. A human solver would know it should be letters that fall within the range surrounded by D and J.
  • It also thinks D, B, and A are all likely to be in the keyword. A human would quickly decide that of these, only A is likely to be in the keyword.

This might be the same issue in two different instances, but I leave that to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants