350 likes | 527 Views
Weekend Planner. CS4244 Group 6. Weekend Planner. Introduction. Introduction. Nitin’s Part. Weekend Planner. Itinerary Planning. Itinerary Planning. Itinerary – sequence of events and travels From start-time to end-time start-location to end-location
E N D
Weekend Planner CS4244 Group 6
Weekend Planner Introduction
Introduction • Nitin’s Part
Weekend Planner Itinerary Planning
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 Conquer • Divide and conquer • Recursive tree-search approach • Basic idea: Divide an itinerary into left and right children and plan these itineraries recursively. Merge them to form a complete itinerary
Start-up • Start with root node • Query event-selection interface (defined later) to get n (<=5) best events • Form n child itineraries with one event each • Start recursive itinerary generation
Recursive Process • Select an event for an itinerary • Divide it into left and right children with new constraints • Plan them recursively • Leaf node: no more events possible (run out of money or time) • Start merging up
Merge-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 root • Display 5 best itineraries (more on itinerary evaluation later)
Implementation - Classes • 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) • 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
Implementation - Rules • Rules: The search process is mainly guided by the following rules: • EVENT_QUERY • CREATE_CHILD_NODES • MERGE • MARK_READY
Implementation - Rules • 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
Implementation - Rules • 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
Implementation - Rules • 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
Events Selection • Component • Receive the request from itinerary • Budget, time slot, start location, end location • Make event instances involving selection mechanism • Sort and return
Events Selection • 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)
Events Selection • Selection Mechanism • Hard constraints • Weather for parks • Adult certification for movies • Temporal and budget possibility • Fix-time events • Non-fix-time events
Events Selection • 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
Events Selection • 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)
Events Selection • Preference Combination • Event instance preference combination (geometric mean) • Client’s event preference (product) Pinstance = pow ( ∏ pi * Pplace , 1/n+1) Pevent = Pinstance * Ptype * Ptemporal
Events Selection • 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
User Interface • Amit’s part
Weekend Planner Demo