Table 4

Disruption-recovery action schemas

ActionPreconditionsEffectsDuration
ann.predicateann.predicate
  • DriveEngine

  • ToDamaged

  • UpTrain (e, t, ni,nj,g)

Start
  • engine_at(e, ni)up(ni,nj)

  • engine_gauge(e, g)

  • train_at(t, nj)

  • engine_free(e)

  • track_gauge(ni, nj, g) train_gauge(t,g)

  • engine_damaged(t, nj) heading_up(t)

  • heading_down(e)

  • 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)

  • train_at(t, nj)

End
  • engine_at(t, nj)

  • heading_up(e)

  • ¬ heading_down(e) track_accessible(ni, nj

  • track_accessible(nj, ni)

AttachEngine (e, t, n)Start
  • engine_at(e, n)

  • train_at(t, n)

  • engine_free(e)

  • engine_damaged(t, n)

Start¬ engine_free(e)μ(e)
Over-all
  • engine_at(e, n)

  • train_at(t, n)

Endengine_attached(e, t)
  • DriveAssisted

  • Train (e, t, ni,nj, g)

Start
  • engine_attached(e, t)

  • train_at(t, ni)

  • engine_at(e, ni)

  • engine_gauge(e, g)

  • track_gauge(ni, nj, g)

  • track_clear(ni, nj)

  • track_accessible(ni, nj)

  • ¬ train_blocked(t, ni)

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

  • ¬ engine_at(e, ni)

  • ¬ engine_damaged(t, ni)

  • ¬ track_accessible(ni, nj)

  • ¬ track_accessible(nj, ni)

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

  • free(nj)

End
  • train_at(t, nj) ¬ free(nj)

  • engine_at(e, nj)

  • engine_damaged(t, ni)

  • track_accessible(nj, ni)

  • track_accessible(nj, ni)

Endfree(nj)
  • ResolveTrain

  • Blockage(t, n)

Start
  • train_blocked(t, n)

  • train_at(t, n)

End¬ train_blocked(t, n)ρ(t,n)
Over-alltrain_at(t, n)
  • ClearBlocked

  • Track(ni, nj)

Starttrack_blocked(ni, nj)End
  • track_clear(ni, nj)

  • track_clear(nj, ni)

  • ¬ track_blocked(ni, nj)

  • ¬ track_blocked(nj, ni)

κ(ni,nj)

Note(s): Shorthands as in Table 2. The DriveEngineToDamagedDownTrain variant mirrors the up-variant, with down and heading_down in place of up and heading_up, and the engine heading flipped accordingly. Dispatch actions do not require the destination to be free, as it is occupied by the disabled train. μ(e), ρ(t,n) and κ(ni,nj) denote the times to attach the engine, resolve a train blockage and resolve a track disruption, respectively

or Create an Account

Close subscription notice
Close access options