Orange-OpenSource / pyDcop

Library for research on Distributed Constraints Optimization Problems
https://pydcop.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
36 stars 24 forks source link

error / any user forum? #22

Open sriramab opened 4 years ago

sriramab commented 4 years ago

Hi I installed pydcop successfully on windows 10, but when I run dcopy_cli.py --version or the following command from tutorial . I get error

> dcop_cli.py solve --algo dpop graph_coloring.yaml
  File "C:\Users\908682\pydd\pyDcop\pydcop\dcop_cli.py", line 164
    def _configure_logs(level: int, log_conf: str):
                             ^
SyntaxError: invalid syntax

How may I resolve this? Do you have any user forum to ask questions, may be this is not the right place?

PierreRustOrange commented 4 years ago

Hi,

This is the right place for such question, I prefer to have all questions as issues on github, so that other people can find them. I suspect you're using an old version of python (probably 2.x) : the syntax error points to the annotation used for optional typing since python 3.5.

To use pydcop, you need at least python 3.6, and I would recommend using the last version available (3.8 currently).

sriramab commented 4 years ago

Thank you. I installed 3.8 and it works. Should it not work with the pydcop shortcut also? It works only on the python call.

(pydcop_env) C:\Users\908682\Documents\Projects\pydd\pyDcop\pydcop>python dcop_cli.py --version
pydcop 0.1.2a1

(pydcop_env) C:\Users\908682\Documents\Projects\pydd\pyDcop\pydcop>pydcop --version
'pydcop' is not recognized as an internal or external command,
operable program or batch file.
sriramab commented 4 years ago

I asked about a user forum because I am not in AI nor into computer science. I just want to use dcop as an application. I would like to develop my constraint graph and give my constraints and variables. So my questions could be very basic :( . Could you advice some easy introduction to understand not too much math. I understand a little about defining variables and agents, but I am not able to understand how to define or assess the global objective. Thank you.

PierreRustOrange commented 4 years ago

The pydcop shortcut is actually a shell script, it works on unix-like platform (e.g. linux or mac) or on windows when using tools like cygwin or WLS (Windows Subsystem for Linux).

Out of curiosity, what are you trying to do with pydcop ? if you don't care about distribution and multi-agents, it might not be the best tool for you, If you simply want a (centralized) optimization tool it would probably be simpler to a solver like glpk or cplex.

sriramab commented 4 years ago

Thanks for your reply. I am indeed looking for decentralized optimization in a agent based model. I have a network of immobile agents who are in a particular state (one of 5 possible high to low states). I want to improve their state to high (if not high already), an agent should try to be in a similar state as its few neighboring agents. To improve their state they can use one of the available 1-5 possible improvements. These improvements depend on their current state, so not always 5 improvements to every agent. Each improvement has a cost. And there is a global budget. So the agent talks to a limited set its neighbors and select improvements that do not go beyond a global budget. I am intentionally opting to do a decentralized optimization to differ from current work and its suits my agent model.

PierreRustOrange commented 4 years ago

Hi, sorry for the delay. If you're looking for decentralization and agent model, then pyDcop may indeed be what you're looking for :) In your scenario, the global budget might be an issue : it means there is a global constraints that involves all variables : in your constraint graph every variable would be connected to every other variable though this constraint. Except this point, it would be quite easy to model your system as a DCOP, if you elaborate a bit I might be able to help you.