HumanCompatibleAI / overcooked_ai

A benchmark environment for fully cooperative human-AI performance.
https://arxiv.org/abs/1910.05789
MIT License
683 stars 144 forks source link

Added old_dynamics flag #103

Closed jyan1999 closed 1 year ago

jyan1999 commented 1 year ago

Description

Added the old_dynamics flag to enable cooking without interaction.

Fixes #101

Type of change

Checklist:

micahcarroll commented 1 year ago

Actually, can we add a simple MDP test that makes sure that both old_dynamics=True and False behave as intended? (trying to start the soup cooking from a state that just has 1 item in the pot with an interact – and it working in one case and not the other. And on the flipside, putting a third item in a pot and seeing that it's already started cooking with old dynamics and hasn't in the new dynamics)

When you say that "qualitatively checked performance differences on layouts from 2019", what do you mean?

codecov[bot] commented 1 year ago

Codecov Report

Merging #103 (9b1faab) into master (e9fd17e) will increase coverage by 0.19%. The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #103      +/-   ##
==========================================
+ Coverage   82.09%   82.29%   +0.19%     
==========================================
  Files          14       14              
  Lines        3575     3581       +6     
==========================================
+ Hits         2935     2947      +12     
+ Misses        640      634       -6     
Impacted Files Coverage Δ
overcooked_ai_py/mdp/overcooked_mdp.py 92.34% <0.00%> (+0.48%) :arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

jyan1999 commented 1 year ago

When you say that "qualitatively checked performance differences on layouts from 2019", what do you mean?

Oh yeah so while I was working on fixing BC agent training issues I realized most training done on the 2019 layouts don't get any rewards since the cooking doesn't start. The agents put all the ingredients in the pot and just let them sit there. Now I know what is causing that behavior I checked whether the performance has improved if I changed the dynamics, which it has. I checked the visualization, and it looks like we are getting the desired behaviors.

trying to start the soup cooking from a state that just has 1 item in the pot with an interact – and it working in one case and not the other. And on the flipside, putting a third item in a pot and seeing that it's already started cooking with old dynamics and hasn't in the new dynamics

I'll add these. I was trying to figure out a way to test this feature and this sounds like a really good way to do it.

micahcarroll commented 1 year ago

Looks great!! Thanks @jyan1999!!