Coder Social home page Coder Social logo

eduardo-lp-silva / restaurant-mas Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 1.0 3.06 MB

Restaurant multi-agent simulation based on JADE developed in the Agents and Distributed Artificial Intelligence (AIAD) class.

Java 100.00%
multi-agent jade artificial-intelligence

restaurant-mas's Introduction

Restaurant-MAS

Overview

A restaurant environment portrayed by a multi-agent system based on JADE.

In this system, there are three different types of agents: Kitchen, Waiter and Customer. There is only one Kitchen, but multiple Waiters and Customers.

As a regular restaurant would work, the customers interact with the waiters to get their order done and the waiters interact with the kitchen and with other waiters as a way to get information quickly. The kitchen verifies the orders’ availability and takes care of the order preparation.

All of these interactions are implemented in accordance to either the FIPA-Request or FIPA-Contract-Net protocols.

Used strategies

When a waiter doesn’t have information about a particular dish, it can choose to ask another waiter or the kitchen staff.

The first way is “quicker”, however, the information received might not be entirely accurate (either on purpose or not).

On the other hand, when asking the kitchen staff the information relayed is always up to date but “it takes longer” do this, dropping the customer’s mood.

There are two main strategies waiters can apply regarding information sharing:

  1. Full cooperation - When asked about a certain dish, a waiter will, whenever possible, provide the information he believes to be most accurate.
  2. Lying - In this strategy, wether a waiter actually possesses information about the requested dish or not, he will reply with possibly false information about it, making it look like the dish is worse than it actually is in order to make the other waiter suggest another one, thus not decreasing the availability of that dish.

Usage

You can run a simulation using the command:

java jade.Boot -agents <agent_name>:<agent_class>[(<agent_arguments>)]

The waiters take a boolean as argument (true or false), indicating if he is a liar or not.

You can also run simulations based on files with the following structure (one line per agent type):

<agent_type> <number_of_agents>

You can do this with the command:

java app.Restaurant <file_name>

Developed by:

restaurant-mas's People

Contributors

eduardo-lp-silva avatar joanasmramos avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

joanasmramos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.