CS4244 Group 6. Weekend Planner IntroductionItineraryEventsTravel Itinerary Selection User Interface...

Post on 05-Jan-2016

215 views 0 download

Tags:

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