CS4244 Group 6. Weekend Planner IntroductionItineraryEventsTravel Itinerary Selection User Interface...
-
Upload
barbra-allen -
Category
Documents
-
view
215 -
download
0
Transcript of CS4244 Group 6. Weekend Planner IntroductionItineraryEventsTravel Itinerary Selection User Interface...
CS4244 Group 6
Weekend Planner
Introduction
Nitin’s Part
Weekend Planner
Itinerary Planning
Itinerary – sequence of events and travels
From start-time to end-time start-location to end-location
Constraints: budget, time and location
Try to find the best combination of events given the above constraints
Divide and conquerRecursive tree-search approachBasic idea: Divide an itinerary into
left and right children and plan these itineraries recursively. Merge them to form a complete itinerary
Start with root nodeQuery event-selection interface
(defined later) to get n (<=5) best events
Form n child itineraries with one event each
Start recursive itinerary generation
Select an event for an itineraryDivide it into left and right children
with new constraintsPlan them recursivelyLeaf node: no more events possible
(run out of money or time)Start merging up
Generate all combinations of left + right + parent to form new “complete” itineraries
Only complete itineraries take part in merging up process
Stop when merged up to rootDisplay 5 best itineraries (more on
itinerary evaluation later)
Class Itinerary: (slot parent) (slot child) (slot complete (default FALSE)) (multislot event-list) (multislot travel-list) (slot preference-rating (default 0)) (slot total-cost) (slot start-time) (slot end-time) (slot start-location) (slot end-location) (slot budget);;Some other flags required for
processing
Class EVENTS_SELECTED (slot id) (slot ready) (slot start_time) (slot end_time) (slot start_location) (slot end_location) (slot budget) (multislot already-chosen) (multislot event-list)
Rules: The search process is mainly guided by the following rules: EVENT_QUERY CREATE_CHILD_NODES MERGE MARK_READY
EVENT_QUERY LHS: new itinerary is formed RHS:
▪ create EVENTS_SELECTED object▪ Set the start-end time, location, budget etc.▪ Set “ready” flag to false
CREATE_CHILD_NODES LHS: EVENTS_SELECTED object with
“ready” attribute = TRUE RHS:
▪ For each event in the event-list create a child node
▪ If event list is empty then this is a leaf itinerary hence add travel
MERGE LHS: left and right child itineraries with
the same parent RHS:
▪ Merge the left and the right child with the parent to form a “complete” itinerary
▪ Compute preference rating (more on this later)
Weekend Planner
Events Selection
Component Receive the request from itinerary
▪ Budget, time slot, start location, end location Make event instances involving selection
mechanism Sort and return
Make Event Instances Event types Event instance(defclass EVENT_INSTANCE (is-a USER)(role concrete)(slot start_time (default [start])) (slot end_time (default [end])) (slot duration) (slot event_type) (slot description)(slot location (default [nus]))(slot expense (default 0)) (slot preference(default 0)
Selection Mechanism Hard constraints
▪ Weather for parks▪ Adult certification for movies
Temporal and budget possibility▪ Fix-time events▪ Non-fix-time events
Probability-Based Preferences Events type preference
▪ Classified based on age and gender▪ Example: shopping for females
Temporal preference▪ Example: ordinary lunch / dinner time
Event instance preference
Event Instance Preference Place preference
▪ Based on public comments Content preference
▪ Preference type: Movie: genre▪ Preference instance: (Action, Comedy,
Animation)▪ Preference value: (0.5 , 0.8 ,
0.5)
Preference type Preference instance
Movie: genre Drama Action Comedy Horror Animation SF
Movie: language English Mandarin
Brand: item Clothes Cosmetics Computer CD Book
Park: natural_feature
Hill River Sea Woods
Museum: exhibition
Arts History Combination Civilization
Restaurant: cuisine
Japanese Cantonese Chinese Western IndiaThai
Italian Singaporean
Preference Combination Event instance preference combination
(geometric mean)
Client’s event preference (product)
Pinstance = pow ( ∏ pi * Pplace , 1/n+1)
Pevent = Pinstance * Ptype * Ptemporal
Sort And Return Sort all the event instances based on
Pinstance
Return the best five ones for making itineraries
Weekend Planner
Travel Mode Selection
Requirenments Check Possibility of Event Travel Mode Selection
Classes Location Mode Travel
Possibility checking During Event Selection First case: Time is fixed Second case: Time is not fixed
Travel mode selection Leaf Case of Itinerary Planning Optimize for Cost
Weekend Planner
Itinerary Selection
Requirenments on Preference Rating Containing Events Travel Time Waiting Time
Final Preference Rating Weighted Average over time Travelling and Waiting have a Negative
Preference Rating Waiting has a Lower Rating than
Travelling
Weekend Planner
User Interface
Amit’s part
Weekend Planner
Demo