150 likes | 252 Views
A Day In a City ADD Presentation. Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman. Outline. S ystem Requirements System Architecture Class Diagram User Interface Algorithm Task List. System Requirements.
E N D
A Day In a CityADD Presentation Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg MiritMarkovich NoaAharon AlonFurman
Outline System Requirements System Architecture Class Diagram User Interface Algorithm Task List
System Requirements • Functional requirements • Answering a question. • Evaluating an activity • Changing the duration of an activity in the schedule. • Removing an activity from the schedule. • Search for an activity • Details about an activity • Change city. • Non functional requirements • Speed • Capacity • Modularity • Programming Language • External API • SE Project constraints
System Architecture Database
Class Diagram Activity GUI Controller SCUFacade Schedule Database CityModel Handler Solver DBHandler Distributed Solver Exhaustive Solver
MCVMV Pattern View ViewModel Controller Model
User Interface Change City Choose city: HAIFA TEL-AVIV HADERA … … Submit
The Algorithm • The algorithm is based on the article “Asynchronous Forward Bounding for Distributed COPs, Amir Gershman, AmnonMeisels and RoieZivan – '09”. • Each agent represents an activity in a city. • The domain values of each agent represent the time interval between the opening hour and the closing hour of the activity, partitioned into 30 min segments. • In addition, the value of the best schedule found so far, and the number of agents who didn't participate in that schedule are stored as global variables.
The first agent tries to assign a value from its domain. Schedule Bahai Gardens The agent sends the partial assignment to the next agent Museum of Art Meanwhile the second agent tries to assign a value from its domain, sends the partial assignment etc… The agent also sends a request to all agents with id greater than his to estimate if they will participate in the assignment in order to calculate how many agents are not going to participate in the current assignment Mall German Colony
When some agent receives an evaluation from other agents regarding how many of them will not participate in the new assignment, he checks whether this value is larger than the number of agents not participating in the schedule found so far. If it is, the new schedule can’t be better than the one found already and the current branch can be pruned. • If the last agent fills the partial assignment and the value of that assignment is greater than the current solution, he will advertise the solution to all agents.
Task List • Development 15/02 – 30/04 • Database & City Model diagrams 15/02 – 05/03 • Persistence layer handlers 01/03 – 10/03 • Solver 15/03 – 30/04 • Logic Layer (Façade, GUI Controller) 30/03 – 20/04 • Views and ViewModels 07/04 – 15/04 • Testing + Unit Testing 01/04 – 30/04 • Prototype Submission 30/04