laurent.orseau
2022-2-6 08:14:10

Wordle 232 3/6

:large_green_square::black_large_square::large_yellow_square::black_large_square::black_large_square: :black_large_square::black_large_square::black_large_square::black_large_square::large_yellow_square: :large_green_square::large_green_square::large_green_square::large_green_square::large_green_square:


laurent.orseau
2022-2-6 08:14:51

Just a little bit of luck probably


sorawee
2022-2-6 08:18:36

Wordle 232 5/6*

:black_large_square::black_large_square::large_green_square::large_yellow_square::black_large_square: :large_green_square::large_yellow_square::large_green_square::black_large_square::black_large_square: :large_green_square::black_large_square::large_green_square::large_green_square::large_green_square: :large_green_square::black_large_square::large_green_square::large_green_square::large_green_square: :large_green_square::large_green_square::large_green_square::large_green_square::large_green_square:


laurent.orseau
2022-2-6 08:36:00

To punctuate this Wordle week, here’s my solver as a package: https://pkgd.racket-lang.org/pkgn/package/wordle-solver


laurent.orseau
2022-2-6 08:36:32

If you’re not sure where to get the list of words, pm me or send me an email


laurent.orseau
2022-2-6 09:25:25

aha, I beat my solver today :muscle: Wordle 232 4/6 :black_large_square::black_large_square::black_large_square::black_large_square::black_large_square: :large_green_square::large_yellow_square::large_green_square::black_large_square::black_large_square: :black_large_square::large_yellow_square::black_large_square::black_large_square::large_yellow_square: :large_green_square::large_green_square::large_green_square::large_green_square::large_green_square: same for easy and hard mode today.


sorawee
2022-2-6 09:26:39

There are two lists: the guess list and the solution list. Do you use both?


laurent.orseau
2022-2-6 09:27:15

yes, the flags are --goals and --allowed and the lists shouldn’t intersect (they can, but it’s less efficient)


sorawee
2022-2-6 09:27:51

Oh, so the eventual guess list is the union of both lists, I suppose?


laurent.orseau
2022-2-6 09:28:21

yes


laurent.orseau
2022-2-6 09:30:31

This is actually how the lists are split in the original game


soegaard2
2022-2-6 09:32:42

Wordle 232 5/6

:black_large_square::black_large_square::black_large_square::large_green_square::black_large_square: :black_large_square::black_large_square::large_yellow_square::large_yellow_square::black_large_square: :black_large_square::black_large_square::black_large_square::black_large_square::black_large_square: :large_green_square::black_large_square::black_large_square::black_large_square::black_large_square: :large_green_square::large_green_square::large_green_square::large_green_square::large_green_square:


soegaard2
2022-2-6 10:25:48

@laurent.orseau Just read your blog post on Wordle. Very nice write-up.


laurent.orseau
2022-2-6 10:28:41

Haha, that’s not mine, although he has the same firstname :) I don’t have time to dive into Wordle that much


soegaard2
2022-2-6 10:30:03

Oh! Sorry for the mixup. His last name is Poirrier.


soegaard2
2022-2-6 10:31:12

I was looking at your Wordle solver and then somehow got to the blog post.


soegaard2
2022-2-6 10:32:21

Should have noticed the .ca and put 2 and 2 together.


laurent.orseau
2022-2-6 10:36:31

No worries at all!


laurent.orseau
2022-2-6 11:14:43

Strange, some direct deps were not caught by --fix-pkg-deps. Is it broken?



mflatt
2022-2-6 14:28:53

Wordle 232 4/6

:large_green_square::white_large_square::white_large_square::white_large_square::white_large_square: :large_green_square::white_large_square::white_large_square::large_yellow_square::large_green_square: :large_green_square::white_large_square::large_green_square::large_green_square::large_green_square: :large_green_square::large_green_square::large_green_square::large_green_square::large_green_square:


badkins
2022-2-6 14:37:19

Thanks for that link @soegaard2 - I love 3Blue1Brown tutorial videos :)


badkins
2022-2-6 15:12:38

I find it interesting that although Grant Sanderson (the guy behind 3Blue1Brown) is “one of the creators and lecturers” of a computational thinking course at MIT that uses Julia, he chose Python for his Wordle solver.


badkins
2022-2-6 15:13:56

That could be due to the fact that his animation library is written in Python though. The guy seems wicked smart, and could likely code up a fine Wordle solver in any language :)


massung
2022-2-6 15:14:27

Has more to do w/ his audience than his personal choice most likely.


badkins
2022-2-6 15:16:45

I dunno, I bet it’s due to using his Manim library. And choosing Python for that is likely due to the huge ecosystem.


laurent.orseau
2022-2-6 15:35:59

It’s kind of a shame he doesn’t cover the actual optimal strategy for Wordle, and how to obtain it :confused: He hints at it around the end but it leaves a taste of being unfinished. Maybe in a future video—hopefully.


laurent.orseau
2022-2-6 15:37:02

Because while information gain is certainly interesting, it’s not necessarily linked to the optimal strategy, neither in a greedy nor in a multi-step sense.


badkins
2022-2-6 15:38:29

I thought he ended up with an average number of guesses that’s similar to the various “optimal” algorithms I’ve seen explained.


laurent.orseau
2022-2-6 15:39:33

it’s similar but still not optimal.


laurent.orseau
2022-2-6 15:41:37

The objective function is “minimize the expected number of guesses per word of the solution list”, not “maximize the information gain […]”. It’s similar but not equal


laurent.orseau
2022-2-6 15:42:19

So he’s using a “proxy” objective function to design his algorithm instead of the actual objective function. Kind of a X/Y problem. (that would be fine if the actual objective function was not suitable to use, but it turns out it’s just as suitable as the proxy one, so there’s no particularly good reason to use the proxy)


badkins
2022-2-6 15:43:09

Sure. On the other hand, the 3Blue1Brown video was about the only thing that I’ve found valuable about the Wordle thing :) In other words, I learned a little about information theory that I might put to use later on.


laurent.orseau
2022-2-6 15:43:23

Sure


badkins
2022-2-6 15:43:39

Working within the narrow confines of the specific Wordle use case was boring to me.


badkins
2022-2-6 15:43:57

That animation library he has is killer!


laurent.orseau
2022-2-6 15:52:50

> the 3Blue1Brown video was about the only thing that I’ve found valuable about the Wordle thing :slightly_smiling_face: I would expect a similar video on how to obtain algorithms to be just as valuable (if not more) :slightly_smiling_face:


capfredf
2022-2-6 16:09:38

Wordle 232 4/6

:large_green_square::white_large_square::white_large_square::white_large_square::white_large_square: :large_green_square::white_large_square::large_yellow_square::white_large_square::white_large_square: :large_green_square::white_large_square::large_green_square::large_green_square::large_green_square: :large_green_square::large_green_square::large_green_square::large_green_square::large_green_square:


massung
2022-2-6 16:11:31

I believe Julia interfaces w/ Python, so I’m not sure how much of an impediment the library would be? I’ve only dabbled in Julia tho


laurent.orseau
2022-2-6 16:28:07

We need to convince Alex to write a similar animation library for Racket :stuck_out_tongue:


massung
2022-2-6 17:09:23

So, my Wordle dive has led me to implement deep neural networks in racket so i can then implement deep Q networks in racket… I’ll get these cleaned up into nice packages, but thought everyone might enjoy a little video of the test DQN learning to play pong (single player):


massung
2022-2-6 17:13:20

The above requires a special shout-out to @soegaard2, though, for his flomat module allowing me to use CBLAS. There’s enough to program w/o having to worry if my linear algebra is correct, too (and it’s performant!).


badkins
2022-2-6 17:14:45

Wouldn’t that be similar to a “how to think” video?


laurent.orseau
2022-2-6 17:17:25

I can certainly see some overlap but also some big differences, since thinking is about the human brain, not a computer


laurent.orseau
2022-2-6 19:57:19

Got bitten again by > (take '(a b c) (min 2 +inf.0)) take: contract violation expected: exact-nonnegative-integer? given: 2.0