Sei sulla pagina 1di 2

AI CW1 Kawon Barialay, Omer Ozturk, Kaan Kolcu, Thomas Godfrey

The transport sector is evolving rapidly with the aid of emerging technologies.
Companies such as Uber have successfully integrated advanced software with
user needs in transport, fulfilling more than a million rides per day. In this report,
we will focus on planning for a transport problem domain. The domain is a taxi
which will act on user requests, dropping them to their destination. However, we
are adding the idea of real-time ride sharing (carpooling), where the taxi also has
to account for multiple destinations and pick-up points. The taxis goal is to
complete the user requests efficiently (minimising distance travelled and time). If
two customers have similar pick-up and drop off destinations, the taxi can pick
up both and transport them simultaneously (if there is enough capacity for it) to
maximise its efficiency. In order to implement this, a planner could be extremely
useful, especially in terms of economic efficiency.
For our domain, we will have four customers (A,B,C) all with different pick up
(Pa,Pb,Pc) locations and destinations (Da,Db,Dc). The planner must consider
distances between each customer, their respective destinations and the cabs
start point. From this, the planner will find a route which minimises total distance
travelled when requests are no longer being made.
In the figure below, a hypothetical situation is presented in the diagram.

The
route
shown is optimal in terms of distance. In the example, the cab first picks up
customer B, then picks up the closest customer C, (since there is a capacity for
an extra customer). After this, B is dropped off at his location, and C at his.
Finally, the empty cab travels from destination C to pick up A and drop him off at
the set destination.
The predicates we have are cab, customer, carry, at and location. Our predicates
check whether there is a cab and a customer. We used a carry predicate which

AI CW1 Kawon Barialay, Omer Ozturk, Kaan Kolcu, Thomas Godfrey


shows what customer(s) the cab is currently carrying. An at predicate is in
place to consider where the cab and customers are, this predicate works with the
location to signify destinations and pickup points.
The locations of customers and destinations are passed in via x and y
coordinates. Applying the Manhattan Distance (the sum of absolute values of the
difference in the coordinates) to these co-ordinates gives us the respective
distances between each customer and their destinations. The Manhattan
Distance was preferred over the Euclidean (square root of the sum of the squares
of the different coordinates) for two reasons. Firstly, the Manhattan Distance
applies to blocks (junctures on roads), which makes sense for our cab rides.
Secondly, PDDL doesnt have support for the square root function, meaning the
Euclidean distance would not be viable.
In the domain file, we have specified cab, customer, destination and location as
objects. The location object works by use of the x and y coordinates.

Potrebbero piacerti anche