GENIUS General Environment for Negotiation with Intelligent multi-purpose Usage Simulation Background • The original purpose of GENIUS: assist in designing of generic efficient negotiation strategies • GENIUS is used in education (teach design of generic efficient negotiation strategies) • Can be used as a testbed for automated negotiating strategies • Can be used in experiments with human negotiators • Can be used as a training environment (training of negotiation skills) Architecture - At Glance GENIUS Desktop Application Standalone computer GENIUS Swing GUI GENIUS Core researcher Internet (HTTP) GENIUS Web Application GENIUS Web GUI GENIUS Core Data experimental subjects GENIUS Simulator Web Application Server: wenen Container: Tomcat 6 Address: http://mmi. tudelft.nl/GeniusWEB GENIUS Simulator Web GUI GENIUS Core Data researchers Legend: Application Component GENIUS - Core negotiator.repository Analysis negotiator.utility Negotiation setting Domain representation Outcome space analysis negotiator.issue Preferences representation negotiator.Agent negotiator.tournament Repository Agent Agent introspection agents.* Agent Skeleton Agent parameters Simulation Control Repository Negotiation protocol Negotiation dance analysis One-to-one One-ToMany Many-toMany Logging Repository negotiator.analysis negotiator.agentparams negotiator.logging negotiator.protocol GENIUS Swing GUI negotiator.gui.domainrepository negotiator.gui.agentrepository negotiator.gui.tab negotiator.gui.tournamentvars GENIUS Swing GUI negotiator.gui.negosession GENIUS Swing GUI negotiator.gui.chart negotiator.gui.progress GENIUS Swing GUI negotiator.gui.tree GENIUS Web GUI Register account List of available activities Logon Page Bidding Explanation Preference elicitation Explanation Activities Client-side (browser) Analysis Internet (AJAX: HTTP calls, XML responses) Preference elicitiation Bidding interface Analysis Initializer GENIUS Core Legend Page Web page (JSP) Navigation via links Home Page AJAX calls Proc. Web service (Servlet) Internal Java calls Server-side Project Management • Source code is stored on SVN: https://mmi.tudelft.nl/svn/nego • Trac:https://mmi.tudelft.nl/cgi-bin/negotiation.cgi • Sub-projects (branches): – GENIUS Core + GENIUS Swing GUI: • • • • NegotiatorGUI – stable version used for ANAC (Dmytro) GeniusBI – used by Bar-Ilan university (Yinon, ) GeniusS – main development branch (Dmytro, Tim, Colin) NegotiatorGRID – (Crisitina, Dmytro) – GENIUS Web • GeniusWeb – Genius Web – GENIUS Simulator Web • GeniusWebSimulator – (Dmytro, Alper) Documentation • Available: – User guide explaining how to use GENIUS Desktop Application (requires minor revision): • Installation • Working with domains/profiles • Explained how to make own agent (uses ZI agent as an example) • To do: – User guide for GENIUS Web Application – Programmer’s guide: • Explain GENIUS architecture • Explain modules in details (classes, relations between classes, interaction between objects, etc.) – Java Doc Technologies • Programming language: Java, version >1.5 • Used technologies: – GENIUS Desktop Application: • SWING – used in GUI • JFreeChart - used in GUI to draw charts – GENIUS Web Application: • J2EE (Java Enterprise Edition) – JSP (Java Server Pages) - used to create HTML pages that are shown to a user – Servlets – establish interaction (on the server) between user interface and GENIUS Core – JAXB (Java Architecture for XML Binding) – used to (de)serialize objects (actions, bids) into (from) XML format. • • • • JavaScript – used for scripting of user’s GUI (redrawing tables, charts, etc.) AJAX – used to make async. calls to the server without refreshing browser Jquery – used to simplify access to AJAX and elements of the user’s GUI Tomcat >6.0 – a server-side run-time enviroment GENIUS in Education • AI Techniques: – See NegotiatorGUI\doc\assignment.pdf – A negotiation session in the beginning – Students design own automated strategies in GENIUS • Field trips (demos, summer schools, etc.) – Install Genius Web on a laptop (server) – take a wirred router (ask Ruud/Bart) and sufficient number of cables – configure the router to generate dynamic IP – assign a static IP address to the laptop Short-term planning • Add a Web interface for simulations • Extend preferences representation module to support: – complex utility functions (e.g., dependencies) – hard constraints – (qualitative preferences, e.g., CP-nets) • Extend analytical toolbox with: – cache for optimal solutions – analysis of one-to-many and many-to-many negotiations – “re-play” of negotiations from logs • Missing documentation Advices • Split GENIUS Core in a separate project • Manage the GENIUS Core exclusively by VICI team • Use “extends” instead of changing the GENIUS Core classes • Project maintenance and development can be delegated to: – GENIUS Core -> Tim – Other modules -> Wouter, Bart, Ruud Ideas • GENIUS Web: – Allow long negotiations (days, weeks) – Introduce mediator – Extend human bidding GUI with an advice from an agent (Tim?) • Add new preference elicitation tools • Choose a software license (GPL, Apache,…) • Make a SourceForge account? Open questions • Make a SourceForge account?