POMDP Home | Tutorial | Papers | Repository | Code

Tony's POMDP file format grammar

This file gives the formal syntax for the POMDP file format which is used for the example files and the 'pomdp-solve' program.

For associated semantics see the 'POMDP specification file'.

<pomdp_file> ::= <preamble> <param_list> <eof>;

<preamble> ::=  <preamble> <param_type>
    | NIL ;

<param-type> ::=  <discount_param>
      |   <value_param>
      |   <state_param>
      |   <actions>
      |   <obs_param>;

<discount_param> ::= DISCOUNT COLON <number>;

<value_param>  ::=  VALUES COLON <value_tail>;

<value_tail> ::= REWARD
      |   COST;

<state_param> ::= STATES COLON <state_tail>;

<state_tail> ::= INTEGER
      | <ident_list>;

<action_param>  ::= ACTIONS COLON <action_tail>;

<action_tail> ::= INTEGER
      | <ident_list>;

<obs_param>  ::= OBSERVATIONS COLON <obs_param_tail>;

<obs_param_tail> ::= INTEGER
        | <ident_list>;

<param_list> ::= <param_list> <param_spec>;

<param_spec> ::= <trans_prob_spec>
      | <obs_prob_spec>
      | <reward_spec>;

<trans_prob_spec> ::= T COLON <trans_spec_tail>;

<trans_spec_tail> ::= <action> COLON <state> COLON <state> <prob>
         | <action> COLON <state> <u-matrix>
         | <action> <ui-matrix>;

<obs_prob_spec> ::= O COLON <obs_spec_tail>;

<obs_spec_tail> ::= <action> COLON <state> COLON <obs> <prob>
       | <action> COLON <state> COLON <u-matrix>
       | <action> <u-matrix>;

<reward_spec> ::= R COLON <reward_spec_tail>;

<reward_spec_tail> ::= <action> COLON <state> COLON <state> COLON <obs> <number>
          | <action> COLON <state> COLON <state> <num-matrix>
          |  <action> COLON <state> <num-matrix>;
 

<ui_matrix> ::= UNIFORM
      | IDENTITY
      | <prob_matrix>;

<u_matrix>  ::= UNIFORM
     | <prob_matrix>;

<prob_matrix>  ::= <prob_matrix> <prob>
                | <prob>;

<num_matrix>  ::= <num_matrix> <number>
                | <number>;

<state> ::=  INTEGER
 |   STRING
 |   ASTERICK;
 

<action> ::=  INTEGER
  |    STRING
  |    ASTERICK;

<obs> ::=  INTEGER
      |  STRING
      |  ASTERICK;

<ident_list> ::= <ident_list> STRING
      | STRING;

<prob> ::= FLOAT
 |  INTEGER;

<number> ::= <optional_sign> FLOAT
  |   <optional_sign> INTEGER;

optional_sign ::=  +
  |    - ;

Last updated: 01/31/99