Raymond Hettinger - Modern solvers: Problems well-defined are problems solved - PyCon 2019

Speaker: Raymond Hettinger
Every programmer should learn to use solvers, tools that reason directly from a description of a problem to its solution.
Tools like AlphaZero can formulate winning strategies for games given only a description of the rules of the game. For certain classes of problems, we really can just let the computer do the work.
In this talk, we learn principles, techniques, and multiple examples for three solvers available in Python.
The first tool is a generic puzzle-solving framework that employs tree search strategies. We apply it to a simple sequencing problem and then to a harder sliding-block puzzle. Next, we'll look at the solver code to learn how it works. I'll also show an essential optimization technique and how to humanize the output. We demonstrate our skills by solving another famous puzzle.
The second tool is called a SAT solver. It is one of the miracles of the 21st century. From first principles, I'll show you what problems it solves and the way problems need to be described for modules like *PycoSAT*. I'll provide helper functions to humanize our interactions with this great tool. Then, we'll demonstrate our skills by creating a Sudoku solver and a readable logic problem solver.
The third tool is the ""multi-armed bandit"". It is a generic reinforcement learning algorithm that is easy to learn, powerful, and applicable to a broad class of problems. We apply it to winning rock-paper-scissors using pattern recognition.
Lastly, I'll summarize DeepMind's paper on AlphaZero which was published in the December 2018 edition of *Science*. This gives us hints at the full potential of these techniques.
Pure Python source code and examples are provided for all of the tools.
Slides can be found at: rhettinger.github.io

Пікірлер: 50

  • @hankblack783
    @hankblack7835 жыл бұрын

    Wow. Another great talk by a brilliant person who has contributed so much to Python. Thanks Mr. Hettinger!

  • @hfcdocsis
    @hfcdocsis5 жыл бұрын

    I went to this talk and have been waiting for the slides and code. Hettinger is badass

  • @raymondhettinger9603

    @raymondhettinger9603

    5 жыл бұрын

    The slides and running code can be found at rhettinger.github.io/

  • @ekbastu
    @ekbastu5 жыл бұрын

    Raymond Hettinger, you sir are a Genius. Hats off

  • @undisclosedmusic4969
    @undisclosedmusic49695 жыл бұрын

    This is an unbelievably deep and great talk. You are a great one, Raymond Hettinger!

  • @eyebiofeedback
    @eyebiofeedback4 жыл бұрын

    Sharing this with my week collab / problem solving group. Thanks Raymond.

  • @test123ok
    @test123ok5 жыл бұрын

    Qa-Pla' ! This was fantastic, like all of his talks.

  • @kootenpv
    @kootenpv5 жыл бұрын

    It wasn't Asimov who said "Any sufficiently advanced technology is indistinguishable from magic.", but Clarke

  • @kootenpv

    @kootenpv

    4 жыл бұрын

    @Michael David I don't - I just happened to be reading Asimov at the time 😅

  • @osquigene
    @osquigene5 жыл бұрын

    Hey, this second puzzle is called "l'âne rouge" in French (apparently "Klotski" in english). Very interesting puzzle, it's kind of hard, but not as hard as rubik's cube (for example). My father got crazy with this puzzle he even wrote a program to prove me his solution was optimal. At the time I wasn't convinced as code looked a bit magic to me (don't try to impress your kids with a program you wrote).

  • @victornoagbodji
    @victornoagbodji5 жыл бұрын

    amazing talk!

  • @M1928A1
    @M1928A15 жыл бұрын

    the SAT part reminds me of PROLOG programming language

  • @user-mk4bb1yh8t
    @user-mk4bb1yh8t2 ай бұрын

    This guy makes nerds looks COOL!

  • @4rph3n
    @4rph3n4 жыл бұрын

    Did I miss it were Linear (Mixed Integer Linear) solvers like cplex or cbc(PuLP) omitted? They're some of the most powerful tools out there.

  • @smb8mm
    @smb8mm4 жыл бұрын

    The second puzzle is online at www.alanabelden.com. You can see its solution too (play button under "Show Solve").

  • @JJ_eats_wings
    @JJ_eats_wings4 жыл бұрын

    I mean I’ve been on Key & Peel marathon... but never would I thought I would be on a Raymond Hettinger marathon. And I don’t even speak much English lol.

  • @nick18303

    @nick18303

    4 жыл бұрын

    JJ JJ only found him recently but he’s awsome

  • @strategotacticsandtips5636
    @strategotacticsandtips56365 жыл бұрын

    AlphaZero's next challenge should be the game of Stratego. It might be some time before they can beat the World's top Stratego players.

  • @Achrononmaster

    @Achrononmaster

    4 жыл бұрын

    Nah, it should be live Rugby.

  • @StankyPickle1
    @StankyPickle15 жыл бұрын

    Slides can be found here: github.com/rhettinger/rhettinger.github.io or here: www.dropbox.com/s/q3yi69d033v03pi/hettinger_solvers.zip?dl=0 The second link contains the code, the first does not appear to have it.

  • @raymondhettinger9603
    @raymondhettinger96035 жыл бұрын

    The slides and running code can be found at rhettinger.github.io/

  • @wtpollard
    @wtpollard5 жыл бұрын

    Raymond tweeted that "Slides and running code are at: www.dropbox.com/s/q3yi69d033v03pi/hettinger_solvers.zip"

  • @pablo_brianese
    @pablo_brianese3 жыл бұрын

    I wonder if one could do something like Test Driven Development using some of this techniques.

  • @drd105

    @drd105

    3 жыл бұрын

    you can definitely test multi-threaded code by testing all possible orders in which the primitives can execute.

  • @JavadZahiri
    @JavadZahiri5 жыл бұрын

    Slides and running code: www.dropbox.com/s/q3yi69d033v03pi/hettinger_solvers.zip?dl=0

  • @FirstNameLastName-bq9hs
    @FirstNameLastName-bq9hs5 жыл бұрын

    slides is here: rhettinger.github.io

  • @jung8935
    @jung89355 жыл бұрын

    Link to the slides could be found in this tweet by Raymond: twitter.com/raymondh/status/1125242663588864001

  • @schnapsdrossel78
    @schnapsdrossel785 жыл бұрын

    Yep - both links 404

  • @AvilPageYT

    @AvilPageYT

    5 жыл бұрын

    Slides: rhettinger.github.io/overview.html

  • @raymondhettinger9603

    @raymondhettinger9603

    5 жыл бұрын

    The slide links are updated. The slides and running code can be found at rhettinger.github.io/

  • @greatthinker1984
    @greatthinker19845 жыл бұрын

    For those looking for a link to slides: rhettinger.github.io/

  • @Nicole-px3ll
    @Nicole-px3ll5 жыл бұрын

    Please fix the slide links.

  • @morvan68mt

    @morvan68mt

    5 жыл бұрын

    rhettinger.github.io/ is where they're at

  • @raymondhettinger9603

    @raymondhettinger9603

    5 жыл бұрын

    The links are updated now.

  • @Nicole-px3ll

    @Nicole-px3ll

    5 жыл бұрын

    @@raymondhettinger9603 thank you!

  • @dustharvesting
    @dustharvesting5 жыл бұрын

    Slides: rhettinger.github.io

  • @RicoRodriguezIII
    @RicoRodriguezIII5 жыл бұрын

    The slide links are broken just FYI

  • @DiptangsuGoswami

    @DiptangsuGoswami

    5 жыл бұрын

    www.dropbox.com/s/q3yi69d033v03pi/hettinger_solvers.zip?dl=0 maybe this works?

  • @MichaSiemek

    @MichaSiemek

    5 жыл бұрын

    rhettinger.github.io/index.html

  • @AvilPageYT
    @AvilPageYT5 жыл бұрын

    Slides rhettinger.github.io/overview.html

  • @MrTigerstyle80
    @MrTigerstyle804 жыл бұрын

    All of these things have happened before. All of these things will happen again. (BA)

  • @JonathanGupton
    @JonathanGupton5 жыл бұрын

    The link to the slides is here: rhettinger.github.io/ (via this tweet: twitter.com/raymondh/status/1125872117080137729)

  • @magno5157
    @magno51575 жыл бұрын

    Thanks. Now everyone will cheat in coding competitions.

  • @darthmoomoo
    @darthmoomoo5 жыл бұрын

    He posted these on twitter: www.dropbox.com/s/q3yi69d033v03pi/hettinger_solvers.zip?dl=0

  • @JulienNephtali
    @JulienNephtali5 жыл бұрын

    rhettinger.github.io/ - link to slides

  • @SeanBoisen
    @SeanBoisen5 жыл бұрын

    See his tweet for slide and code links: twitter.com/raymondh/status/1125183886139580418

  • @CompilationError
    @CompilationError3 жыл бұрын

    I know most of the things he is saying . Like the math and all . But can't understand what is going on . Can someone help me . Sorry for being a tubelight . 🙃

  • @user-23sz-H32
    @user-23sz-H325 жыл бұрын

    First viewer

Келесі