I’m an occasional speaker at my local Python meet-up group and portions of the code behind this site have featured prominently in several recent talks.¬†Here are the slides…

Python Hill Climbing Talk Final

This talk introduces the audience to using hill climbing optimization techniques as a means of breaking mixed-alphabet substitution ciphers. The talk introduces the core concepts of the approach and directs the audience to a series of resources (including sample code) where they can learn more.

One concept we discussed at length during the Q&A portion of the talk was the idea of using multiple fitness functions to refine the optimization process. For code breaking, this would involve using the traditional n-gram approach (usually trigrams) early in the process and switching to a dictionary matching approach to refine the final answer.

Resource File – word list for small word solver projects:

Link to copy of word list (Open Source РEnable)

Leave a Reply

Your email address will not be published. Required fields are marked *