haoyi-duan / decisionmaking-code-py

Python versions of all typeset code blocks from the book, Algorithms for Decision Making.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

decisionmaking-code-py

Python package

Original Julia Code by: Mykel Kochenderfer, Tim Wheeler, and Kyle Wray

Python Versions by: Griffin Holt

Python versions of all typeset code blocks from the book, Algorithms for Decision Making.

I share this content in the hopes that it helps you and makes the decision making algorithms more approachable and accessible (especially to those not as familiar with Julia). Thank you for reading!

If you encounter any issues or have pressing comments, please file an issue. (There are likely to still be bugs as I have not finished testing all of the classes and functions.)

Note: Rewriting all of the typeset code blocks from the book in Python has convinced me of one thing: Julia was the correct choice of programming language for code in the book. Many aspects of Julia's structure (including typing, inclusion of unicode characters, anonymous functions, mutable function declaration, etc.) make it much more ideal for communicating an algorithm than Python. If you are a student in Mykel's AA228/CS238 course or a reader that wishes to dive deep into sequential decision making, I would recommend you just learn Julia's syntax. However, if you need a quick Pythonic reference, that's what this library is for. (This has also been a great exercise for me to ensure and deepen my understanding of the material.)

Progress Update: (6 Apr 2023)

Chapter(s) Written Tested Notes
1 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌▌▌▌▌▌ 100% Ready for use
2 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌▌▌▌▌▌ 100% Ready for use
3 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌▌▌▌▌▌ 100% Ready for use
4 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌▌▌▌▌▌ 100% Ready for use
5 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌▌▌▌▌▌ 100% Ready for use
6 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌▌▌▌▌▌ 100% Ready for use
7 ▌▌▌▌▌▌▌▌▌▌ 100% ▌▌▌▌▌ 50% All exact solution methods need to be tested
8 ▌▌▌▌▌▌▌ 67% 0% MultilinearValueFunction and SimplexValueFunction need to be written
9 ▌▌▌▌▌▌▌▌▌ 99% 0% Just need to make a few syntactic decisions
10 ▌▌▌▌▌▌▌ 67% 0% EvolutionStrategies and IsotropicEvolutionStrategies need to be written
11 ▌▌▌▌▌▌▌▌▌ 99% 0% Just need to make a few syntactic decisions
12 ▌▌▌▌▌ 50% 0% TrustRegionUpdate and ClampedSurrogateUpdate need to be written
13 0% 0% Skipped for now; coming back to it later
14 ▌▌▌▌▌▌▌▌▌▌ 100% 0% Needs to be tested
15 ▌▌▌▌▌▌▌▌▌ 90% 0% Just need to write the simulate method from the end of the chapter
16 ▌▌▌▌▌▌▌▌▌▌ 100% 0% Needs to be tested
17 ▌▌▌▌▌▌▌▌▌▌ 100% 0% Needs to be tested
18 ▌▌▌▌▌▌▌ 70% 0% MaximumEntropyIRL needs to be written
19 ▌▌▌▌ 40% 0% UnscentedKalmanFilter and the particle filters need to be written
20 ▌▌▌▌▌▌▌▌▌▌ 100% 0% Needs to be tested
21 ▌▌▌▌▌▌▌▌ 80% 0% SawtoothHeuristicSearch, TriangulatedPolicy, and TriangulatedIteration need to be written
22 0% 0% Nothing written
23 0% 0% Nothing written
24 0% 0% Nothing written
25 0% 0% Nothing written
26 0% 0% Nothing written
27 0% 0% Nothing written

I have also written code for pertinent examples and exercises through Chapter 7.

About

Python versions of all typeset code blocks from the book, Algorithms for Decision Making.

License:MIT License


Languages

Language:Python 100.0%