aimacode/aima-javascript

7-Logical-Agents

Closed this issue ยท 8 comments

Visualizations and code for chapter 7

My initial thoughts for chapter 7:

Interactive Wumpus World

  • This is the first and straightforward example in the book. My first step will be creating an interactive wumpus world game.
  • Main interactivity features:
    • game mode (default) and god mode:
      Game mode: The actual positions of wumpus and pits are hidden to the players. In this way students can first understand the game and form their own game strategy, which can later be compared with an AI agent.
      God mode: The positions are shown. Used to understand how an AI agent make decisions
    • manual mode (default) and AI mode:
      Manual: agent is controlled by user. AI: controlled by AI. The two can be enabled at the same time to compare performance side by side.
    • interactive knowledge base board: On the side of the game diagram is a KB board, which can be updated automatically by an AI agent, or be manually updated by a user.
  • More advanced feature:
    • these features are considered if time permits. Otherwise, next visualizations will have higher priority.
    • customizable game: users can pick the locations of wumpus and pits and see how AI agents will do.
    • customizable reward system: users can change how much points a player will receive or lose in each condition. For example, a lower penalty for death and higher costs for taking actions should result in a more risky strategy to earn higher reward in the long run. Users may find a setting to outperform an AI agent which does not consider rewards when playing.

Satisfiability Game

  • Designed to help readers understand the logic and algorithm in the later part of chapter 7
  • Main idea: give player a formula and ask whether it is satisfiable/valid/unsatisfiable/invalid. Players can control the true or false for each literal and the interface will visualize whether the formula is derived to be true or false. The game will give question one by one and increase the level of difficulty. Players could then adopt try and error strategy to learn the general concept of the related AI algorithms.
  • related AI algorithms will be implemented and be visualized step-by-step to let readers fully understand them.

Above are my rough ideas. The plan is open to any change!

@ha531102 looks like a great plan! If you implement one or two visualizations it would give you a way to estimate how much can be done over the summer.

Spoiler alert, very... long... time...
Infact the visualization always takes a few magnitudes longer than the algorithm itself.

@Ghost---Shadow Totally agreed... When i started working, I believed it will not take that much time, but as it turns out, there are lot of things to consider while making the visualization like

  • Is the visualization actually required
  • What kind of concepts does this visualization aims to explain
  • How do the actual algorithms integrate with the visualization
    etc

Thanks guys! I will bear that in mind and definitely implement one before making the plan for summer. For now I have two questions:

Is it possible for us to get a pdf copy for chapter 8, 9, and 10 (Part III)?
I got a pdf copy of chapter 7 from aima site, but others are not available. Because these chapters are closely related, I think it's good to have a big picture when designing the visualizations to make it extensible. I'm fine to go purchase one but just want to ask around first.

What is the overall progress expectation for this whole visualization project?
Given the kind warnings I got, it may be very difficult to cover multiple chapters during a summer. But I'm curious what is the expectation in terms of the chapter coverage progress and visualization complexity for the whole project? There is always a trade-off in a limited time: either make simpler visualizations for as many chapters as we can or make fascinating ones for just a few chapters. I wonder what is the overall expectation. When will this project expected to be done (cover all chapters)? The priority between visualization complexity and chapter coverage? How many chapters should a person target for a summer?

Thanks!

ps. I got a paper deadline on Mar. 31. Sorry that I might not be able to code before that. But I can start working afterward and there is fortunately no paper deadline during summer!

@ha531102 I don't know of a pdf copy; I have been looking at the print textbook as a guide.

I agree, there is a tradeoff between trying to get more chapters or trying to make really good visualizations for a few chapters. We should aim for something in between (80/20 rule). It is not realistic to expect all chapters to have good visualizations in one summer. The chapters also are highly variable in size, and we may not have all the ideas for visualizations until you've started working on them. For a proposal, pick several chapters (maybe 3) that you think would benefit most from visual explanations of concepts/algorithms, and also pick several chapters (maybe another 2-4) that you think you might work on if there's more time.

@chihsienyen Hi there -- about your idea for a SAT game, here's a version of that in Python which I wrote some time ago: https://github.com/darius/sturm/blob/master/satgame.py

It runs in a terminal, not as a webpage, but it might be useful as an example to think about when designing the web version.

(I'm wandering in from aima-python to see what work there is to do here.)