Simulation Study
Read this page as a boundary check. The primary cell matches AIRL’s state-only identification conditions; the action-dependent cell is included to show the failure mode, not to validate that use case.
AIRL runs on two synthetic cells. The primary cell is airl_paper_identification,
a state-only reward DGP designed to match the original identification conditions
of Fu et al. (2018). The second cell is airl_anchor_action_dependent, an
action-dependent DGP with an absorbing state and an anchored exit action. That
cell is a diagnostic run to confirm where the method fails, not a validated use
case.
In both cells, the transitions, reward, policy, value function, Q function, and Type A, Type B, and Type C counterfactual oracles are chosen before generating the panel. The estimator sees only the demonstrations, the transitions, and the reward feature basis. The true objects are held back for evaluation.
The full result generator is
run.py.
It writes the results file
airl.json.
PYTHONPATH=src:. python validation/estimators/airl/run.py --quiet-progress
The diagnostic cell airl_anchor_action_dependent fails all checks. With a
state-only reward, the discriminator cannot represent the action contrast that
drives behavior in an action-dependent DGP. That is a structural failure, not a
tuning problem. The identification page explains the boundary in detail.
Evidence
AIRL is compared against the full structural and IRL rosters on the bus engine and taxi gridworld pages. See the simulation studies index for what each study shows.