On Sun, 10 Aug 2008, asdf wrote:
On Sun, 10 Aug 2008 10:56:02 -0700 (PDT), MIG wrote:
I think it's the OP's wording that's confusing me. It read as if the
£2 was coming up when he went through the barrier at Stratford, rather
than when he got off at Canary Wharf.
However, having gone through that barrier, he ought to be deemed to
have gone via Stratford anyway, one would have thought.
Arg. No. Can we please put this misconception to bed once and for all?
The Oyster system does NOT have an internal representation of the Tube
map, on which it runs some sort of AI software, to dynamically work
out what route you've taken, taking into account any touches you may
have made along the way, and from that work out what zones you've
passed through.
Okay. But can we also agree that it bloody well should do?
I think your implication that it would take 'some sort of AI software' to
do this is excessive. You could do it with a table.
Instead, it simply takes the origin and destination, and looks up in a
static table what zones that journey is considered to have passed
through.
Yes, much like that. But with multiple entries for journeys where there
are multiple, distinguishable, sensible routes with different sets of
zones, along with the information needed to distinguish them, which would
simply be a third station which would be on one route but not the other.
In this case, Stratford.
Routes where there isn't an intermediate Oyster contact couldn't be dealt
with like this, and would cost the highest fare. But for those where there
is such a station, and there aren't many, really, this doesn't seem like
it'd be too hard.
In order to keep complexity down, you could group routes into, er, groups,
each of which has an intermediate station, and a set of zones to be
excluded or included if that station is visited. Entries in the main route
matrix could then indicate which group they belong to, or if they belong
to no group. The group rule here would say something like "if Stratford
was visited, exclude Z1", and would contain routes from all points along
the NLL to all points on the Jubilee line east of Canada Water, or
whatever.
You need to be able to include zones too, so you can mark Wembley Park
(Z4) to Acton Town (Z3) via Rayner's Lane as including Z5, while it
excludes Z12. Although you also need to include Z3, so you can use it for
Wembley Park to Hammersmith. Does that break anything? Or use a different
group.
Maybe you could express the nature of the route simply by indicating that
it's a special route, and then assuming that the zones visited were only
the ones needed to get from the start to the zone of the intermediate
station, and then from there to the destination. No, because that breaks
on South Acton (Z3) to Canning Town (Z3) via Stratford (Z3), which goes
via Z2.
Ah, maybe you could use the routing information for the intermediate
station: if South Acton to Stratford is recorded as visting Z23, and
Stratford to Canning Town is Z3, that gives you Z3 for the whole trip.
Wouldn't that cover all possible cases fairly straightforwardly? You
wouldn't even need a special entry in the tables.
tom
--
What we learn about is not nature itself, but nature exposed to our
methods of questioning. -- Werner Heisenberg