Releasing FRODO Version 2.19.1 (bug fixes, performance, graphs)
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
CHANGES IN VERSION 2.19.1 SINCE VERSION 2.19
Releasing FRODO Version 2.19.1 (bug fixes, performance, graphs)
Releasing FRODO version 2.19 (new global constraints, bug fixes)
CHANGES IN VERSION 2.19 SINCE VERSION 2.18.1
Releasing FRODO version 2.14 (performance improvements)
Releasing FRODO version 2.15 (Max-Sum perturbations + non-omniscient controller)
Releasing FRODO version 2.16 (synchronous Max-Sum)
Releasing FRODO version 2.18.1 (bug fix in intensional soft constraints)
Problem with soft intensional constraints (functions)
Fixed in Version 2.18.1.
CHANGES IN VERSION 2.18.1 SINCE VERSION 2.18
Hi Gauthier, I have found a fix. Running all unit tests now before I release Version 2.18.1. Best, Thomas
Problem with soft intensional constraints (functions)
Hi Gauthier, Thank you for reporting this unexpected behavior. I have traced it down to an embarrassing bug in the Predicate constraint, whose utility variable is being accessed before it has been initialized. Working on a fix. You marked this bug report as private ; does it mean that you would rather not be credited for reporting it in the release notes of the next version? Best, Thomas
Hi Thomas, I suspected Predicate, but I don't have enough Frodo expertise to fully trace it. The but report is private by my mistake... No privacy problem here :) Best, Gauthier
Hi Gauth, Thank you for reporting this unexpected behavior. I have traced it down to an embarrassing bug in the Predicate constraint, whose utility variable is being accessed before it has been initialized. Working on a fix. You marked this bug report as private ; does it mean that you would rather not be credited for reporting it in the release notes of the next version? Best, Thomas
Problem with soft intensional constraints (functions)
Problem with soft intensional constraints (functions)
Problem with soft intensional constraints (functions)
Releasing FRODO version 2.18 (JaCoP catalog + performance)
Releasing FRODO version 2.18 (JaCoP catalog + performance)
Support for full constraint catalog using the Java API
Finally fixed in Version 2.18.
I cannot get stats from execution of FRODO as an API
CHANGES IN VERSION 2.18 SINCE VERSION 2.17.1
Yes, of course you are right, the letter "r" is only needed in the path string. Thank you.
Good catch! It appears indeed that the problem is simply that Python treats the backslash characters in your Windows folder paths as escape characters, messing up the paths. Prepending a letter r to the string declares it as a raw string, in which case the backslashes are treated as backslashes. Can you confirm that you only need to use this trick on the strings that contain backslashes? For instance, I don't expect you need it for "DPOP". Maybe you could also use slahes instead of backslashes in...
Hi Thomas, I have solve the problem by putting letter " r" in front of all my strings as describe below java = r"C:\Program Files\Java\jdk-13.0.1\bin\java.exe" javaParams = [r"-Xmx2G","-classpath", r"C:\Users\Drsagir\Documents\PhD\Sagir\Tools\FRODO\frodo2\frodo2.17.1.jar"] generator = r"frodo2.benchmarks.graphcoloring.GraphColoring" genParams = [list(range(3, 11)),.4,0.0,3] nbrProblems = 6 algos = [[r"DPOP",r"frodo2.algorithms.dpop.DPOPsolver",r"C:\Users\Drsagir\Documents\PhD\Sagir\Tools\FRODO\frodo2\agents\DPOP\DPOPagent.xml",...
These are my values: java = r"C:\Program Files\Java\jdk1.8.0_201\bin" javaParams = ["-Xmx2G","-classpath", r"C:\Users\Drsagir\Documents\PhD\Sagir\Tools\FRODO\frodo2\frodo2.17.1.jar"] generator = r"frodo2.benchmarks.graphcoloring.GraphColoring" genParams = [list(range(3, 11)),.4,0.0,3] nbrProblems = 6 algos = [["DPOP","frodo2.algorithms.dpop.DPOPsolver",r"C:\Users\Drsagir\Documents\PhD\Sagir\Tools\FRODO\frodo2\agents\DPOP\DPOPagent.xml", "graphColoring.xml"],["SynchBB","frodo2.algorithms.synchbb.SynchBBsolver",...
On Windows I am getting this error when I include the path to the Java executable in the first argument passed to the frodo2.run() method. What value are you using for this input parmeter?
I try it with my macOS running python 2.7, I am having an error as well. Thank you so much for yout help and encouragements to take research in DCOP.
Hi sagware, Thank you for reporting this issue. I tried to reproduce it on Windows (I normally develop and test on macOS), and I can confirm I am getting the same error message with Python 3.7. I am going to investigate this and try to fix it ASAP. Best, Thomas
Hi Thomas I am having this error on Frodo 2.17.1. I am using windows, I tried both python 3.5 and 3.8 but no luck. Thank you. Error: frodo2.run(java, javaParams, generator, genParams, nbrProblems, algos, timeout, output, saveProblems) Run 1/6 Picking 3 from [3, 4, 5, 6, 7, 8, 9, 10] Generating a problem instance using the following Java arguments: ['frodo2.benchmarks.graphcoloring.GraphColoring', '3', '0.4', '0.0', '3'] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\Drsagir\Documents\PhD\Sagir\Tools\FRODO\frodo2\frodo2.17.1.jar\frodo2\benchmarks\frodo2.py",...
Releasing FRODO version 2.17.1 (fixed compilation errors)
CHANGES IN VERSION 2.17.1 SINCE VERSION 2.17
Releasing FRODO version 2.17 (new dynamic GUI)
FRODO Version 2.17 has just been released, which now officially supports running experiments from a benchmark repository.
CHANGES IN VERSION 2.17 SINCE VERSION 2.16.1
Hi Thomas, Thanks for your reply. I also use Eclipse, but I forgot to add the external jar files to the project at the very beginning. The method you proposed is more convinent. Best, Ruofei.
Hi Ruofei, Good to hear that it works out for you. I wasn't sure whether your level of know-how in Java developement was sufficient to run FRODO from the source code. The way I do it is using the Eclipse IDE for Java Developers, installing the Subclipse plugin to support SVN, creating a Java project from the SVN repository, and then just producing the JAR from the .jardesc file that is released together with the source code. Best, Thomas
Hi Thomas, The code from trunk r23 addresses my needs, and it works well to solve problems involving mutil-ary constraints and multi-local variables by using JaCoPparser. I am sorry to reply to you now, since I have spent some time on generating runnable jar files from the source code. I realize that I need more experience in developing Java projects. :| Again, thank you a lot. Best, Ruofei.
Running experiments from a repository now ignores directories in the repository, and allows running each algorithm multiple times on the same problem instance.
Hi Ruofei Bai, Have a look at my recent commit to the SVN repository, and in particular at the new file experiments/repository_experiments.py. Let me know if this addresses your needs. Best, Thomas
The experiment framework now supports running experiments based on an input repository of problem instances (improvement request by Ruofei Bai: https://sourceforge.net/p/frodo2/discussion/1174600/thread/7b2079d191]
Hi Ruofei Bai, Thank you for reporting this typo in the user manual. I have fixed it on the website already. When it comes to using FRODO's experiment framework on input problem files without relying on a benchmark problem generator, as you pointed out, I had already identified this as a possible improvement. Since it appears you would have a use for this, let me see what I can do in the short term. Best, Thomas
Figure2
Hi Thomas, Thank you very much for your patient explanation about solving mutil-ary constraints by using Frodo2 in last topic. I have successfully solved a problem involving cumulative constraints, which is actually some kind of mutil-ary constraints. And I have some suggestions about Frodo2 platform. 1. Wrong Format The example of cumulative constraints in page 49 of Frodo2's User Manual, appendix A, has some format errors, as shown in Figure 1. 2. Suggestions for Expriments The Frodo2 platform...
Hi Thomas! Thank you very much for your quick answer and your generous help! Your efficient maintenance and patient answers to the Frodo2 platform have made me more confident in using it for research. I also admire your rigorous attitude and efficient work style. Best wishes. Ruofei.
Releasing FRODO version 2.16.1 (bug fix to experiment framework)
Hi Ruofei! Version 2.16.1 of FRODO has just been released, in which the Windows bug you reported in Question 2 has now properly been fixed. Thanks for reporting it! Best, Thomas
CHANGES IN VERSION 2.16.1 SINCE VERSION 2.16
Hi Ruofei! Thanks for your interest in DCOP, and for reaching out with help about FRODO. Question 1 You are right to complain about the fact that too many DCOP papers make the simplifying assumptions that 1) all constraints are binary, and 2) each agent owns a single variable. Fortunately, in most cases, lifting these assumptions is not too hard. Here is how we have done it in FRODO. N-ary constraints: for algorithms that involve ordering variables into linear orderings (SynchBB, AFB) or tree-based...
Hi! (My English is not very good, and I am a newcomer in this field. So if there are some incorrect expressions, i hope you can understand.) (Thank you very much for your generous contributions in DCOP solver, and also for your patient explanation on Frodo platform.) Question1: I notice that frodo2 supports some global constraints like cumulative, all different, ect. These constraints have been applied in some research area, like Distributed constraint optimization for addressing vessel rotation...
I am sorry to miss the topic, and so i delete the content here and create a new topic so that others can find the problem.
Hi! (My English is not very good, and I am a newcomer in this field. So if there are some incorrect expressions, i hope you can understand.) (Thank you very much for your generous contributions in DCOP solver, and also for your patient explanation on Frodo platform.) Question1: I notice that frodo2 supports some global constraints like cumulative, all different, ect. These constraints have been applied in some research area, like Distributed constraint optimization for addressing vessel rotation...
Hi! (My English is not very good, and I am a newcomer in this field. So if there are some incorrect expressions, i hope you can understand.) (Thank you very much for your generous contributions in DCOP solver, and also for your patient explanation on Frodo platform.) Question1: I notice that frodo2 supports some global constraints like cumulative, all different, ect. These constraints have been applied in some research area, like Distributed constraint optimization for addressing vessel rotation...
Hi, Thomas Following your previous advice( before the latest one) , and by decomposing the" AllDifferent" constraint, into a clique of neq constraints, and using the , DSAagentJaCoP , i noticed a slight improvement, i'll try this one too , and compare the difference. --
By the way, if you want to find solutions to your problem instances, independently from the speed of the DCOP algorithms available in FRODO, you could use the following trick. If you modify your problem instances so that all variables are owned by the same single agent, and then you solve the problem using DPOPagentJaCoP, then the problem will actually be fully centralized at that agent, and solved completely inside JaCoP. This should give you the fastest possible (complete) algorithm to solve your...
Hi, Citing my own, earlier suggestions: You choose a different DCOP formulation for your problem. [...] You use a different DCOP algorithm than DPOP to solve the puzzle (i.e. use other agents than DPOPagentJaCoP). Other algorithms might be faster on your problem class. The issue is that your problem instance is a minimization problem (maximize='false') that includes negative costs (your function 'le_cout-de-place' always returns non-positive values). Some of the DCOP algorithms implemented in FRODO...
Hi , Thomas unfortunately the spinning problem, is always here with more than 5 users (6!) , and no more than 5 utilities per source , the resolver stumbles , i think its about the last contraint "AllDifferent constraint", here i have concatenated the domains of all the sources. --
Hi, Thomas Thank you very much indeed , -- ali
Hi, Here are attached your last problem instance, and a proposed reformulation. Of course, this assumes that I have interpreted your problem instance correctly. Best, Thomas
Hi, Thomas i have little question here , in your last formulation , and exactly in the first point , "Each user gets exactly 1 resource" , do you mean that in your mind , there is only one domain for all users ? so , for me the the index j = 1 , of the domain A = { 20 30 17} corresponds to the utility 20 so this means for the user(0) =j =1 the resource of utility 20 is assigned to the user(0), sorry i am a little lost here, can you be less cryptic ?
Hi again, Note that there is another possible, more concise formulation of your problem. Now that I think of it, I suspect this is the formulation that you meant to use with your u(ij) variables, but fore some reason you ended up with a mix of the two formulations (the one in my previous post, and the one below), which is overly complicated and involves duplicate variables. In this other formulation, instead of using many binary variables n(ij) that encore whether each user i is allocated each resource...
Hi, Let me propose a simplified formulation. Let me know if it makes sense. I still don't fully understand what you refer to with the terms "places" and "areas", but I assume that your problem is a resource allocation problem (a bit like an auction, as mentioned earlier), in which there are users that need access to shared resources, and a solution needs to be one in which: Each user gets exactly 1 resource; The sum of the utilities associated with allocating a user to a resource is maximized; Each...
Hi, Let me propose a simplified formulation. Let me know if it makes sense. I still don't fully understand what you refer to with the terms "places" and "areas", but I assume that your problem is a resource allocation problem (a bit like an auction, as mentioned earlier), in which there are users that need access to shared resources, and a solution needs to be one in which: Each user gets exactly 1 resource; The sum of the utilities associated with allocating a user to a resource is maximized; Each...
Hi , in the second point, regarding the redundancy of the (nij and uij), for me the -- n(ij) is an auxiliary variable for the u(ij) variable, and i have to make constraints on u(ij) in addition to constraints on n(ij) , to make things work, and i didn't understand your first suggestion, if you mean the n(ij) will match the domain (i) and the j-th element in this domain how to enforce the 7 places constraint without an auxiliary variable since the n(ij) values will be diffrent of( 0,1) values, the...
Sorry i have hited the wrong button (and i have more things to say)
Hi, Mr Thomas first i would like to thank you for your valuatble time, and for you acadimic answers. i have created xml generator (to generate the problems for the need of any moment in my sytem), and the problem is that beyond a cetain( threshold the number of zones of allocation,and some number of palaces) the resolver (keep running without answer). that means that my constraints formulation, finds solutions that are valid - i have joind as an attachement a problem randomly generated , to support...
Hi, Here are some observations and suggestions based on my (limited) understanding of the problem. First, if you think your problem is feasible, then I challenge you to produce an assignment to all the variables that satisfies all the constraints in your DCOP. You will not be able to find such an assignment: if such an assignment existed, the DPOP algorithm would have found it. Second, it seems that your u(ij) variables are redundant with your n(ij) variables. To keep the DCOP efficient, you need...
Hi, It is a problem of allocation of places, the domains dup (i) is for a corresponding areas (i), the n(ij) corespond to the allocation of the place number (j) of the area (i) nij = 1 correpond to an allocation of this place and nij = 0 (no allocation of this place), in this problem there is for each allocation n (ij) possible a utility u (ij) corresponding to it in the corresponding domain dup(i) in this problem the global constraint: weightedSum to ensure an allocation for 6 places (as it was...
To improve the runtime, there are basically two possible approaches: You choose a different DCOP formulation for your problem. I already recommended the use of the more efficient Weighted Sum global constraint instead of predicates, but to go beyond that (e.g. make suggestions about which variables to introduce), I would need to know more about the nature of the problem you are trying to solve as a DCOP. You use a different DCOP algorithm than DPOP to solve the puzzle (i.e. use other agents than...
To improve the runtime, there are basically two possible approaches: You choose a different DCOP formulation for your problem. I already recommanded the use of the more efficient Weighted Sum global constraint instead of predicates, but to go beyond that (e.g. make suggestions about which variables to introduce), I would need to know more about the nature of the problem you are trying to solve as a DCOP. You use a different DCOP algorith than DPOP to solve the puzzle (i.e. use other agents than DPOPagentJaCoP)....
another question please , this time i need some advices to optimize my code i followed your advice for the 'global:weightedSum' and i used it instead of my predicate ( 'eq_to ..) but still , my problem once launched goes for JAVA RUNNING TIME : 167426, with - reported utility: infinity true utility: infinity assignments: {n50=0, n30=0, n52=0, n51=0, n10=0, n32=0, n31=0, n34=0, n11=0, n33=0, u51=5, u50=17, u31=28, u52=77, u30=64, u11=37, u33=5, u10=69, u32=69, u34=80, n61=0, n60=0, n41=0, n62=0, n40=0,...