Table 2

Movement-operation action schemas

ActionPreconditionsEffectsDuration
ann.predicateann.predicate
DriveTrain (t, ni,nj, g)Start
  • train_at(t, ni)

  • train_gauge(t, g)

  • track_gauge(ni, nj, g)

  • ¬ train_blocked(t, ni)

  • ¬ engine_damaged(t,ni)track_clear(ni, nj)

  • track_accessible(ni, nj)

Start
  • ¬ train_at(t, ni)free(ni)

  • ¬ track_accessible(ni,nj

  • ¬ track_accessible(nj,ni)

τv(t)(ni,nj)
Over-all
  • connected(ni, nj)

  • free(nj)

End
  • train_at(t, ni)

  • ¬ free(nj)track_accessible(ni, nj)

  • track_accessible(nj, ni)

Endfree(nj)
DriveEngine (e, ni,nj, g)Start
  • engine_at(e, ni)

  • engine_free(e)

  • engine_gauge(e, g)

  • track_gauge(ni, nj, g)

  • track_clear(ni, nj)

  • track_accessible(ni, nj)

Start
  • ¬ engine_at(e, ni)free(ni)

  • ¬ track_accessible(ni,nj)

  • ¬ track_accessible(nj,ni)

τva(e)(ni,nj)
Over-all
  • connected(ni, nj)

  • free(nj)

End
  • engine_at(e, ni)

  • ¬ free(nj)track_accessible(ni, nj)

  • track_accessible(nj, ni)

Endfree(nj)

Note(s): Parameter shorthands: ‘t’ a train, ‘e’ an auxiliary engine; ni, nj track points, g a gauge type. τu(ni,nj) denotes the traversal time of segment (ni,nj) at speed u (Eq. 1)

or Create an Account

Close subscription notice
Close access options