home *** CD-ROM | disk | FTP | other *** search
/ Špidla: Hráčův ráj: Logické hry / Hracuv-raj_Logicke-hry_cd2.bin / CSOLVE / README.TXT < prev    next >
Encoding:
Text File  |  1997-12-31  |  14.8 KB  |  322 lines

  1. CRYPTOSOLVE VERSION 1.5
  2. Copyright 1996-1998 James A. Parsly
  3.  
  4.  
  5. CRYPTOSOLVE is a WINDOWS based cryptogram solving utility. At its
  6. most basic level it allows you to type in a cryptogram and handles
  7. the chore of letter substitution for you. However, the real point
  8. of the program is the underlying expert system that provides hints
  9. and can even make a stab at automatic solution.
  10.  
  11. New features in this version:
  12.  
  13. Several hundred new rules.
  14. Improvements to the user interface.
  15. More control over filtering.
  16.  
  17. Check out my web site for the latest links and program updates:
  18.  
  19. http://www.public.usit.net/jparsly/
  20.  
  21. --------------------------------------------------------------------
  22. SYSTEM REQUIREMENTS
  23.  
  24. This program requires Microsoft Windows
  25.  
  26. If you plan to use the Hints at all, I recommend at least a
  27. 486-66. A Pentium is even better.
  28. --------------------------------------------------------------------
  29.  
  30. INSTALLATION:
  31.  
  32. If you downloaded CRYPTOSOLVE, it probably came in the form of 
  33. a .ZIP file, CSOLVE15.ZIP. Use PKUNZIP to Un-ZIP the files onto
  34. a floppy disk. Get into WINDOWS and from the Program Manager
  35. menu select FILE and then RUN.  In the Command Line box enter
  36. A:\SETUP or B:\SETUP and then click OK. This should install
  37. CRYPTOSOLVE and create a group containing the CRYPTOSOLVE icon.
  38.  
  39. FILE LIST:
  40.  
  41. A complete installation of CRYPTOSOLVE includes the following
  42. files:
  43.  
  44. CSOLVE.EXE           
  45. CSOLVE.INI  
  46. VBRUN300.DLL    Required for Visual Basic. Goes in WINDOWS/SYSTEM
  47. THREED.VBX      Required for Visual Basic. Goes in WINDOWS/SYSTEM
  48. PATT.DAT        Pattern database
  49. PATT2.DAT       Rule database
  50. WORDLIST.*      Word counts for various word lengths
  51. README.TXT      This file
  52. REGISTER.TXT    Registration form
  53.  
  54. This is the complete version of CRYPTOSOLVE and is not crippled in
  55. any way.
  56.  
  57. ---------------------------------------------------------------------
  58. REGISTRATION
  59.  
  60. It costs $10 US Dollars to register.  This gives you the right to
  61. complain and make suggestions.  See REGISTER.TXT. My address is
  62. also given at the end of this document.
  63.  
  64. ---------------------------------------------------------------------
  65.  
  66. How CRYPTOSOLVE works (and why it sometimes doesn't)
  67.  
  68. CRYPTOSOLVE's hint system is based on patterns and rules.  It uses
  69. the patterns and rules to identify individual words (or author names).
  70. Each pattern or rule maps to a particular word, so CRYPTOSOLVE cannot
  71. directly identify any word that doesn't already have a pattern or
  72. rule in the database.  To fill in "unknown" words the letters must
  73. be cross-referenced in "known" words.
  74.  
  75. This means that a cryptogram containing a large number of "unknown"
  76. words will be difficult for CRYPTOSOLVE to solve.  Someone suggested
  77. that I type in part of Jabberwocky (a nonsense poem: "TWAS BRILLIG 
  78. AND THE SLITHEY TOVES....") and of course the hint system was
  79. pretty much a complete failure.
  80.  
  81. When you start a new puzzle and don't know any of the solution yet,
  82. there are often many candidates for each word in the puzzle.
  83. CRYPTOSOLVE ranks the candidates based on historical frequency of
  84. occurrance. Suppose the puzzle contained the word "XABZZQ". Two
  85. words that would fit, all other things being equal, are "JOHNNY" and
  86. "REALLY".  CRYPTOSOLVE knows that REALLY is about 6 times as likely
  87. to occur as JOHNNY and so the autosolver is more likely to come up
  88. with X=R than it is to come up with X=J.  If the X=R is wrong and
  89. X=J is right, then the autosolver will fail.
  90.  
  91. I have been training the expert system for about 6 years (1
  92. cryptogram per day) and there are over 10000 rules in the system.
  93. The cryptograms I have been using are quotations, so the rules
  94. reflect word usage in ordinary speech and writing.  
  95.  
  96. Cryptograms that are purposely designed to be difficult by use
  97. of uncommon words are going to give the autosolver problems.
  98.  
  99. Given all that here is how you use the CRYPTOSOLVE hint system:
  100.  
  101. ---------------------------------------------------------------------
  102.  
  103. SOLVING A PUZZLE USING THE HINTS SYSTEM
  104.  
  105. If you are given a starting letter, click the letter tile 
  106. corresponding to the puzzle letter and then click the solution letter.
  107.  
  108. Bring up the HINTS page by clicking the HINTS button.
  109.  
  110. Search for PATTERNS by clicking the PATTERNS button.  PATTERNS are
  111. word or author names that can be recognized because they contain
  112. patterns of repeated letters.  A common pattern would be WXYWZX
  113. which usually is the word PEOPLE.  If any patterns are found a
  114. list will appear. You can single click a candidate to see how it
  115. looks in the puzzle. If a candidate looks good to you, either
  116. double click the candidate or hit the accept button.  
  117.  
  118. If you find acceptable patterns, then try the RULES button
  119. to see if there are any exact matches in the RULES database.
  120. RULES will not work if there are no known letters. Actually you
  121. need to have enough known letters to match a rule in the rule
  122. database, so you usually need more than one known letter.
  123.    
  124. A rule tells CRYPTOSOLVE how to infer unknown letters in a word
  125. based on known letters. For example, if you have the puzzle word
  126. "XYZX" and you know that Y=H and Z=A, then the rule "_HA_=THAT"
  127. tells you that X=T. RULES will not work unless you know one or
  128. more letters in the puzzle, and even if you do there still may be
  129. no matches with the DATABASE.  If matches are found, a list will
  130. appear showing candidates which you can try out and accept by 
  131. clicking and doubleclicking, respectively.  
  132.  
  133. The next step is to try for a statistical solution using the
  134. AUTOSOLVE method.  This works by examining multiple puzzle words.
  135. For each puzzle word examined, all possible solution words from
  136. the rule database are found.  Some candidates are eliminated by
  137. looking at what would happen in cross-referenced words (for example
  138. if the solution would create a cross-referenced word that didn't
  139. have any vowels in it).  Remaining candidates are assigned weights
  140. based on historical frequency of occurrance and on how closely the
  141. rule that produced the candidate was met (Buzz word: fuzzy logic).  
  142. The candidate is then broken down into letters and statistics are
  143. kept on the total weight counts for all possible puzzle letter/
  144. solution letter pairs.  When all of the words have been factored in,
  145. letters that get 80% or more of the total weight for a given
  146. puzzle letter are incorporated into the solution.
  147.  
  148. AUTOSOLVE can then perform another iteration taking into account
  149. any new letters in the solution. You keep running iterations until
  150. no more progress is made.  Rather than proceed automatically
  151. to a new iteration, CRYPTOSOLVE requires you to hit the GO button.
  152. This gives you a chance to SET or EXCLUDE letters before proceeding.
  153. The SET box allows you to enter a puzzle letter/solution letter
  154. pair that you have figured out. The EXCLUDE box is used to inform
  155. CRYPTOSOLVE that a puzzle letter/solution letter is not possible.
  156. This is useful when the autosolver assigns a letter based on a
  157. high probability that is nevertheless incorrect.  You must exclude
  158. the puzzle letter/solution letter pairing to override the
  159. probability and allow assignment of a different letter.
  160.  
  161. The PATTERNS-->RULES-->AUTOSOLVE method doesn't usually require
  162. much input from you, except to click the buttons. I was curious to
  163. see how well the program would do on its own, so I bought a puzzle
  164. book and tried out 40 cryptograms.  Using just the 3 steps,
  165. CRYPTOSOLVE was able to solve 25 out of the 40. I considered a
  166. puzzle solved if I could tell what the solution was, even if one or
  167. two letters weren't filled in. (This happens where there are 2 or
  168. more candidates for a letter and none have enough weight to be
  169. included in the solution; for example you can't decide if _E is
  170. WE, ME, BE, etc. if there are no cross-referenced words to factor
  171. into the decision.)  It actually did better on the first puzzles,
  172. solving 23 out of 30, but the last 10 were more difficult puzzles
  173. that didn't use common words.  On its usual diet of quotations
  174. which are not purposely designed to be difficult, I am sure 
  175. CRYPTOSOLVE does at least as well as the 23/30 figure.
  176.  
  177. I was actually able to solve the remainder of the puzzles (except for
  178. the 40th "CHALLENGER" puzzle which turned out to be mostly
  179. unfamiliar words), just not automatically. How? See below.
  180.  
  181. So what do you do if the AUTOSOLVE method doesn't work? This is where
  182. you come in.  The POSSIBILITIES method allows you to doubleclick a
  183. puzzle word and look at candidates, sorted by probability.  
  184. Once again you are presented with a list and you can single click
  185. a candidate to see how it looks in the puzzle. If you like a
  186. candidate, double click it (or hit the ACCEPT button).  You can
  187. then go back to RULES or AUTOSOLVE and see what you get.
  188. If you click the multilevel check box, you can click two or more
  189. words and get pairs, triplets, etc. of words that will work
  190. simultaneously in the puzzle.  At each level of the multilevel
  191. search, up to 500 candidate words are considered and up to
  192. 2500 multiple word sets are saved.  You should pick words
  193. you click carefully or the number of candidates will overwhelm
  194. this method.  Don't start with 4, 5 or 6 letter words that
  195. have no repeated letters.  Start with longer words or words
  196. that have repeated letters.  Also if one of the words picked
  197. is not already in the dictionary, this method will fail.
  198.  
  199. FILTERING
  200.  
  201. FILTERING is used to reduce the number of candidates for puzzle words
  202. in the AUTOSOLVE and POSSIBILITIES methods.  Most of the filtering
  203. is automatic, although there is a VOWEL/CONSONANT filter that you
  204. can control in the possibilities method. Here are some of the
  205. filtering techniques:
  206.  
  207. Candidate words must match known letters.  This would seem pretty
  208. obvious, but I have seen a program (CRYPTO95) that doesn't take
  209. known letters into account in its possibilities method.
  210.  
  211. Candidate words must not re-use letters already used in other words. Ditto.
  212.  
  213. Puzzle letters must not map to themselves. This sometimes happens, although
  214. I consider it to be "bad form".  You can turn off this assumption using
  215. the filters menu.
  216.  
  217. Any letter occurring elsewhere in the puzzle as a 1 letter word
  218. (except in the AUTHOR box) will be assumed to map to an A or an I.  This
  219. will sometimes backfire when a proper name (with middle initial) occurs
  220. in the body of the puzzle.  Once again, you can turn this off from the
  221. filters menu.
  222.  
  223. Certain pairs of letters don't occur next to each other.  Additional
  224. pairs of letters don't ever occur at the beginning or words, and
  225. some pairs never occur at the end of words.  If letters from a candidate
  226. word occur in other puzzle words, see if these letters would create
  227. an invalid letter pair. If so, the candidate is eliminated.
  228.  
  229. The number of two and three letter words is a reasonably small set.
  230. If letters from a candidate word occur in 2 or 3 letter words elsewhere
  231. in the puzzle, there must be a 2 or 3 letter word that can be formed
  232. using the letters from the candidate word.
  233.  
  234.  
  235.  
  236. The other way that you interact with the program is by entering
  237. new rules and patterns.  As you work puzzles you will come across
  238. new words and author names that contain patterns that will be
  239. recognizable in future puzzles. I usually want at least two
  240. sets of repeated letters before I consider a pattern to be
  241. unique enough to be included in the PATTERN database.  This is 
  242. entirely up to you. Similarly, as you look at partial solutions
  243. you will see opportunities for new inference rules.  The hint
  244. pages all have a ADD NEW RULES button that pops up a form
  245. for entering RULES and PATTERNS.  This is your chance to make
  246. the program smarter, to be the expert behind the expert system,
  247. so USE IT!
  248.  
  249. Patterns are just words and author names. If you think that the name
  250. RONALD REAGAN has enough pattern to be identified in the future, RONALD REAGAN 
  251. is what you enter. You can look at the pattern database. It is stored
  252. as a standard text file called PATT.DAT.
  253.  
  254. Rules are a bit more complicated. There are two distinct formats. The
  255. first type of rule is used when the known letters in a word allow you 
  256. to infer the unknown letters. The left-hand side of the rule shows 
  257. the letters that must be known and uses the underscore character "_"
  258. in positions that are unknown.  The rule then has an equal sign "=" 
  259. and a right-hand side which must be just like the left-hand side, except
  260. that the "_" characters are replaced by the correct letters.  Examples
  261. of this type of rule:
  262.  
  263. _HA_=THAT
  264. CO__ITT__=COMMITTEE
  265. V_C__M=VACUUM
  266.  
  267. The second format of rule is used when there is only one unknown
  268. letter left in a word, but there are multiple letters that would fit.  
  269. The left-hand side of this type of rule gives the known letters and
  270. an "_" character in the position where the unknown letter will go.
  271. The rule then has a "*" character followed by all of the possible
  272. letters. Examples of this type of rule:
  273.  
  274. _F*IO
  275. GOA_*DLT
  276.  
  277. You can look at the RULE database. It is stored in the text file
  278. PATT2.DAT
  279. ------------------------------------------------------------------------------------------
  280. WORD COUNTS
  281.  
  282. When you have completely solved a puzzle, you should click the
  283. WORD COUNT button so that the program will update the frequency of 
  284. occurrances.  This will automatically happen if you try to exit the 
  285. program after solving a puzzle.  You will see a list of all of the 
  286. words in the puzzle. If NEW WORD appears beside a word, this 
  287. word is being seen for the first time.  It is important that you
  288. create RULES or PATTERNS for any new words. AUTOSOLVE gets candidate 
  289. words using the rule database, so if there is no rule for a word, 
  290. AUTOSOLVE will not consider it. The WORD COUNT feature was the last 
  291. major feature added to the original DOS program, so the word counts 
  292. are still a bit low.
  293.  
  294. ------------------------------------------------------------------------------------------
  295. If Wishes were Fishes......
  296.  
  297. I wish that the program were faster. The original DOS version 
  298. which was written in compiled QuickBasic 4.0 is MUCH faster than 
  299. the VISUAL BASIC for Windows code. Didn't have a very good user
  300. user interface, but it did the job.  Of course the machines keep 
  301. getting faster and I hear rumors about there being REAL compiled
  302. code (as opposed to p-code) in a future version of Visual Basic, 
  303. so maybe time will solve all of my problems. Either that or I get
  304. a C Compiler and start writing DLL's (or maybe that new POWERBASIC 
  305. compiler).
  306.  
  307. The Visual Basic 5 compiler is out now, but I don't have one yet.
  308. I have great hopes for this, and I plan to get one soon.
  309.  
  310. ------------------------------------------------------------------------------------------
  311. The ABOUT Screen
  312.  
  313. View the ABOUT screen and be amazed!  I am rather proud of it.
  314.  
  315. ------------------------------------------------------------------------------------------
  316. Any Problems? Contact:
  317. James A. Parsly
  318. jparsly@usit.net
  319. 423-966-4131
  320. 624 Summit Lake Court
  321. Knoxville TN 37922
  322.