Giter Club home page Giter Club logo

mapc-uva's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently working at Accenture as a Data Engineering Analyst
  • ๐ŸŒฑ I studied artificial intelligence
  • ๐Ÿ“ซ How to reach me: [email protected]

mapc-uva's People

Contributors

danielperezjensen avatar dependabot[bot] avatar dorian4840 avatar lucweytingh avatar timstolp avatar yassinabdelrahman avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

mapc-uva's Issues

Should we treat the dictionary of nodes in graph as a defaultdict instead of a normal dict?

Currently when we retrieve a node from the beliefs (graph) that doesn't yet exist we either get None or a node (from self.beliefs.get_node(coords)). But wouldn't it make more sense to simply treat the dictionary of nodes as a default dictionary, with a default value of an empty Node object? Like so:

from collections import defaultdict

self.nodes = defaultdict(Node)

Then now if we access the self.nodes dictionary for a key that does not yet exist it generates an empty node object and returns that instead of None or yielding an error.

Use Tobias Albrecht's idea for creating proper amount of agents

I think I would always create enough agents (and connect as many entities) for the biggest simulation (50) and see that they do not go crazy if they don't get percepts for some time :)

This was brought up in the google forum, maybe a better idea than what we are doing now?

link

Confusing usage of the word node when you mean node coordinates

In graph.py, we use the word nodes in function names such as:

def get_local_nodes() def get_new_nodes()

Even though the function returns node coordinates, and not the actual node objects. The name is not congruent with the docstring.

Maybe change the name, or make it return Nodes (I prefer the second option).

Find the middle of the goal state

When a goal state consists of more than one block (see picture) the graph sees this as multiple goal states. There needs to be a function to find the center of this block of goal states.
Screenshot from 2020-05-30 17-44-15

Add drop_intention using the context

I do actually need to use drop_intention when using the clear_fully() intention. As because if the target moves, I want to drop the intention (for now). I'll add that if the context is empty the intention tuple will not be dropped, but if there is a context then the graph must abide by that context. I think I'll use a list of tuple for this, with each tuple representing a coordinate and what thing must be on that coordinate.

Why are we storing the current Node the agent is on as a dictionary?

In graph.py we are storing self.current like this:

self.current = {agent_id: self.nodes[(0, 0)]}

Why are we storing our current node like this instead of as a coordinate? Even though in the rest of the functions we always use the location of nodes instead of the specific instance of a node? Can we atleast add a variable that tracks the current location as a pair of coordinates?

Confusing usage of the word node

There is still a confusing usage of the word node (and other things) in function names in graph.py. Such as:

def get_local_nodes(self, agent_id, offset=None):
    pass
def get_local_agents(self, agent_id, team='A'):
    pass

These two functions for example don't actualy return a Node or Agent object but they return coordinates.

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.