You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(23) |
Nov
(29) |
Dec
(21) |
2007 |
Jan
(48) |
Feb
(9) |
Mar
(49) |
Apr
(49) |
May
(33) |
Jun
(28) |
Jul
(34) |
Aug
(51) |
Sep
(52) |
Oct
(26) |
Nov
(15) |
Dec
(26) |
2008 |
Jan
(21) |
Feb
(22) |
Mar
(19) |
Apr
(35) |
May
(23) |
Jun
(62) |
Jul
(11) |
Aug
(20) |
Sep
(35) |
Oct
(46) |
Nov
(22) |
Dec
(3) |
2009 |
Jan
(45) |
Feb
(59) |
Mar
(24) |
Apr
(19) |
May
(10) |
Jun
(17) |
Jul
(16) |
Aug
(30) |
Sep
(41) |
Oct
(55) |
Nov
(37) |
Dec
(18) |
2010 |
Jan
(13) |
Feb
(103) |
Mar
(64) |
Apr
(134) |
May
(35) |
Jun
(47) |
Jul
(31) |
Aug
(27) |
Sep
(29) |
Oct
(6) |
Nov
(5) |
Dec
(8) |
2011 |
Jan
(20) |
Feb
(6) |
Mar
(8) |
Apr
(19) |
May
(36) |
Jun
(23) |
Jul
(10) |
Aug
(14) |
Sep
(54) |
Oct
(15) |
Nov
(29) |
Dec
(19) |
2012 |
Jan
(20) |
Feb
(11) |
Mar
(21) |
Apr
(7) |
May
(17) |
Jun
(3) |
Jul
(9) |
Aug
(10) |
Sep
(19) |
Oct
(46) |
Nov
(22) |
Dec
(3) |
2013 |
Jan
(6) |
Feb
(27) |
Mar
(9) |
Apr
(13) |
May
(9) |
Jun
(18) |
Jul
(33) |
Aug
(32) |
Sep
(10) |
Oct
(16) |
Nov
(3) |
Dec
(16) |
2014 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(3) |
May
(5) |
Jun
(4) |
Jul
(1) |
Aug
(13) |
Sep
(9) |
Oct
(5) |
Nov
(12) |
Dec
(39) |
2015 |
Jan
(14) |
Feb
(15) |
Mar
(5) |
Apr
(4) |
May
(3) |
Jun
(12) |
Jul
(6) |
Aug
|
Sep
(1) |
Oct
(15) |
Nov
(6) |
Dec
(5) |
2016 |
Jan
|
Feb
(11) |
Mar
(17) |
Apr
|
May
(1) |
Jun
(6) |
Jul
(3) |
Aug
(1) |
Sep
(9) |
Oct
|
Nov
(7) |
Dec
|
2017 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
(6) |
Jul
|
Aug
(3) |
Sep
(6) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2018 |
Jan
(1) |
Feb
(8) |
Mar
|
Apr
(5) |
May
(4) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2019 |
Jan
(3) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
(8) |
Oct
(1) |
Nov
(1) |
Dec
(5) |
2020 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
(6) |
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
(4) |
May
|
Jun
(13) |
Jul
(10) |
Aug
(4) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(1) |
2022 |
Jan
(1) |
Feb
(4) |
Mar
(1) |
Apr
(3) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(5) |
2023 |
Jan
|
Feb
(6) |
Mar
(11) |
Apr
(3) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2024 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(2) |
Jun
(1) |
Jul
(2) |
Aug
(2) |
Sep
(3) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2025 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Joachim S. <js...@cr...> - 2006-10-27 19:11:32
|
Ulrich Scholz wrote: > > I need to sort the result of bagof/3 according to a user-supplied function. > I thought of something like the Java function "sort(List,Comparator)" in > java.util.Collections, e.g., a predicate sort/3 with > sort(+Comparator,+Random,-Sorted). I did not find anything similar in the > Referendce Manual. > > Can you suggest me some code that I could reuse? Below is a mergesort that does this. However, I want to stress that the Eclipse sorting builtins (sort/2,4, msort, keysort, etc) are significantly faster and it is often preferable to use a pattern like my_sort(Random, Sorted) :- add_keys(Random, KeyedRandom), keysort(KeyedRandom, SortedRandom), strip_keys(SortedRandom, SOrted). add_keys(SortedRandom) :- ( foreach(X,Random), foreach(K-X,KeyedRandom) do compute_user_key(X, K) ). strip_keys(Random, KeyedRandom) :- ( foreach(_-X,SortedRandom), foreach(X,Sorted) do true ). Note also that you can use sort/4 to sort on individual arguments of compound terms, and that such sorts are stable, i.e. you can use consecutive calls to sort/4 to achieve more complex ordering criteria. % merge sort taking an arbitrary comparison predicate, % whose signature must correspond to the compare/3 builtin. % % ?- predsort(compare, [8,4,6,2],L). % L = [2, 4, 6, 8] % Yes (0.00s cpu) predsort(_, [], []) :- !. predsort(_, [X], [X]) :- !. predsort(Pred, [X,Y|L], Sorted) :- halve(L, [Y|L], Front, Back), predsort(Pred, [X|Front], F), predsort(Pred, Back, B), predmerge(Pred, F, B, Sorted). halve([_,_|Count], [H|T], [H|F], B) :- !, halve(Count, T, F, B). halve(_, B, [], B). predmerge(Pred, [H1|T1], [H2|T2], [Hm|Tm]) :- !, functor(Call, Pred, 3), arg(1, Call, R), arg(2, Call, H1), arg(3, Call, H2), call(Call), ( R = (<) -> Hm = H1, predmerge(Pred, T1, [H2|T2], Tm) ; R = (>) -> Hm = H2, predmerge(Pred, [H1|T1], T2, Tm) ; Hm = H1, predmerge(Pred, T1, T2, Tm) ). predmerge(_, [], L, L) :- !. predmerge(_, L, [], L). |
From: Andrew E. <ae...@cr...> - 2006-10-27 18:46:38
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Ulrich, >>> a question about setof/3: The manual states that the result is sorted >>> but I could not find according to which ordering. I guess, it's the >>> standart term order. > >>> How could an implementation of setof/3 look like that uses an arbitrary, >>> i.e., user-supplied ordering? > >> Use bagof/3 (or the faster findall/3), and sort the resulting list >> afterwards. > > I need to sort the result of bagof/3 according to a user-supplied function. > I thought of something like the Java function "sort(List,Comparator)" in > java.util.Collections, e.g., a predicate sort/3 with > sort(+Comparator,+Random,-Sorted). I did not find anything similar in the > Referendce Manual. > > Can you suggest me some code that I could reuse? Joachim's suggestion would still be the best option if the user can be required to supply a predicate that maps a list element to an "order value" instead of a comparator. If that's not possible, then here's a simple implementation using insertion sort. I'm assuming there's an appropriate specification of Goal to find a list element and that Compare is the functor of the user-supplied arity 2 comparison predicate that succeeds if its first argument precedes its second argument in the desired ordering and fails otherwise: ... findall(Term, Goal, List), ( foreach(Term, List), fromto([], In, Out, Sorted), param(Compare) do user_insertion_sort(In, Term, Compare, Out) ), ... user_insertion_sort([], Term, _Compare, [Term]). user_insertion_sort([H|T], Term, Compare, Sorted) :- Comparison =.. [Compare, H, Term], ( call(Comparison) -> Sorted = [H|Sorted0], user_insertion_sort(T, Term, Compare, Sorted) ; Sorted = [Term, H|T] ). Versions using other sorting algorithms (merge sort, bubble sort etc.) are an exercise for the reader ;) Andy -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFFQeQpdLb1MBw2wdgRApRMAJ9Qh7O3XNsJ0ZnMhk7MU2CbEU2h7ACg0muW +Mi2RPNzGlS+mHdY0vuIrrs= =og5/ -----END PGP SIGNATURE----- |
From: Ulrich S. <ulr...@em...> - 2006-10-27 17:28:17
|
> > Hi everybody, > > > > a question about setof/3: The manual states that the result is sorted > > but I could not find according to which ordering. I guess, it's the > > standart term order. > > How could an implementation of setof/3 look like that uses an arbitrary, > > i.e., user-supplied ordering? > Use bagof/3 (or the faster findall/3), and sort the resulting list > afterwards. I need to sort the result of bagof/3 according to a user-supplied function. I thought of something like the Java function "sort(List,Comparator)" in java.util.Collections, e.g., a predicate sort/3 with sort(+Comparator,+Random,-Sorted). I did not find anything similar in the Referendce Manual. Can you suggest me some code that I could reuse? Thank you, Ulrich -- Ulrich Scholz Personal Memory Group European Media Laboratory GmbH |
From: Joachim S. <jsc...@ci...> - 2006-10-27 08:29:54
|
Ulrich Scholz wrote: > Hi everybody, > > a question about setof/3: The manual states that the result is sorted but I > could not find according to which ordering. I guess, it's the standart term > order. > Correct, the standard term order, as described in http://www.eclipse-clp.org/doc/bips/kernel/termcomp/compare-3.html > How could an implementation of setof/3 look like that uses an arbitrary, > i.e., user-supplied ordering? > Use bagof/3 (or the faster findall/3), and sort the resulting list afterwards. Alternatively, you could take advantage of the fact that the standard order sorts on the leftmost argument of compound terms first. So if you construct your result terms such that the leftmost argument is your sorting key, then the result list will automatically be ordered correctly: % sorted alphabetically ?- setof(X, member(X,[bb,c,aaa]), L). X = X L = [aaa, bb, c] Yes (0.00s cpu) % sorted by length first ?- setof(N-X, (member(X,[bb,c,aaa]),atom_length(X,N)), L). N = N X = X L = [1 - c, 2 - bb, 3 - aaa] Yes (0.00s cpu) > Thank you, > > Ulrich > > > BTW, the manual states "This predicate is sensitive to its module context > (tool predicate, see @/1)". I guess, that sould read "... see @/2)". Quite right, thanks for spotting this! -- Joachim |
From: Joachim S. <jsc...@ci...> - 2006-10-27 08:08:24
|
Giuseppe Di Guglielmo wrote: > Dear All, > I have tried the following example > p :- X :: -536870912..536870911, > Y :: -536870912..536870911, > (X #= 0) and (neg(Y #= 0)) , > indomain(X, random), > indomain(Y, random), > writeln(X), > writeln(Y). > and eclipse gave me the error > > *** Overflow of the global/trail stack in spite of garbage collection! > You are probably out of virtual memory (swap space). > Peak sizes were: global stack 56620 kbytes, trail stack 4180 kbytes Such large domains only work well with constraints that affect the bounds, like #>=, cumulative, etc. If you exclude internal values (such as 0 here), lib(ic) will switch to a bitmap representation, which in this case means that a single one of your variables already occupies 130MB of memory. Sometimes Eclipse makes it very easy to do very inefficient things :-) Apart from the memory issue, such a model is not practical because your search space even with only 2 variables is already of size ?- N is (536870912 - -536870912) ^ 2. N = 1152921504606846976 In scheduling problems, one usually uses more meaningful decision variables, like booleans that represent to ordering between jobs. Look at some relevant literature, or look at the jobshop example on the Eclipse web site. > > So I tried with the -g 512M option (see > http://eclipse.crosscoreop.com:8080/eclipse/faq/index.html#Error%20messages8 > ) > > Now how can I increase the global stack size when I call ECLiPSe from C++ ? You can do that (see ec_set_option()), but this is the wrong time to worry about embedding your Eclipse solver into a C++ program. We recommend that you develop your Eclipse code using an interactive Eclipse, e.g. tkeclipse, and once you have a program that actually solves some problem, link it to your C++ program. This will certainly save you time. -- Joachim |
From: Ulrich S. <ulr...@em...> - 2006-10-27 00:32:39
|
Hi everybody, a question about setof/3: The manual states that the result is sorted but I could not find according to which ordering. I guess, it's the standart term order. How could an implementation of setof/3 look like that uses an arbitrary, i.e., user-supplied ordering? Thank you, Ulrich BTW, the manual states "This predicate is sensitive to its module context (tool predicate, see @/1)". I guess, that sould read "... see @/2)". -- Ulrich Scholz Personal Memory Group European Media Laboratory GmbH |
From: Giuseppe Di G. <dig...@sc...> - 2006-10-25 22:06:17
|
Dear All, I have tried the following example p :- X :: -536870912..536870911, Y :: -536870912..536870911, (X #= 0) and (neg(Y #= 0)) , indomain(X, random), indomain(Y, random), writeln(X), writeln(Y). and eclipse gave me the error *** Overflow of the global/trail stack in spite of garbage collection! You are probably out of virtual memory (swap space). Peak sizes were: global stack 56620 kbytes, trail stack 4180 kbytes So I tried with the -g 512M option (see http://eclipse.crosscoreop.com:8080/eclipse/faq/index.html#Error%20messages8 ) Now how can I increase the global stack size when I call ECLiPSe from C++ ? Thanks, ---------------------------------------------------------------------------- - Giuseppe Di Guglielmo Dept. of Computer Science - University of Verona Strada le Grazie, 15 - 37134 Verona - Italy Phone: +39 045 8027049 Fax: +39 045 8027068 email: dig...@sc... WWW: http://profs.sci.univr.it/~diguglielmo Skype: giuseppe.diguglielmo ---------------------------------------------------------------------------- - |
From: William H. <wg...@gm...> - 2006-10-19 03:25:29
|
Hi All, I am still a little new to constraint programming and absolutely new to Eclipse clp. One of my bigger questions is how to handle the issue of constraint failure when using a constraint based approach to scheduling with something like lpsolve or glpk. I don't understand how to recover elegantly. For example if I have a job that takes 1000000 seconds and my machine is only available 8 hours a day, how can I tell the linear program to split the job up in 8 hour segements etc...? I am also still wanting to find a tutor if you know of any. What I do now is make a constraint that no job can be scheduled during the down time of a machine. Obviously this causes a problem because this job won't fit in any time slot as it is too large. I was looking through the features, is this called repair based search? I think this is a kind of back tracking right? Thanks, Tim |
From: Joachim S. <jsc...@ci...> - 2006-10-19 00:04:11
|
Hi, I'm forwarding a job offer from Cisco Systems, for an opportunity to work on the ECLiPSe CLP system. -- Joachim -------------------------------------------------------------------- Cisco Systems, one of the largest and well known networking companies is looking to recruit and hire an experienced Constraint Logic Systems Implementor in Boxborough, MA. Two positions are available for the support and further development of the ECLiPSe platform. ECLiPSe is a Constraint Logic Programming System, owned by Cisco, and used in the area of network management decision support applications. On September 21st 2006, Cisco released ECLiPSe as open-source software to the general community. Major Duties and Functions Include: The position involves the continued maintenance of ECLiPSe, design, development and integration of new components, support and training for Cisco's ECLiPSe user community, and working with the open-source user community towards further development of the platform. Involvement with ECLiPSe-based application development and simulation is also expected. The successful candidate will be initially working with two experienced ECLiPSe designer/implementors. The team will build regular SW releases, and support users on a daily basis. Using input from application developers as well as the research community, new features and components will be designed and implemented or integrated. This requires a high degree of originality and capability in terms of design and architecture. What You Need to Succeed: Strong technical knowledge. Large systems engineering experience. Theoretical background in Logic and Constraints. Ability to partner and collaborate with all parties involved in product development. Solve problems and make decisions. Establish clear and concise plans. Proven ability to innovate. Willingness to continue learning. Acknowledged technical expert on project. Typically requires MSEE/CS combined with 3+ years of related experience, or BSEE/CS combined with 5+ yrs related experience. The ideal candidate is an experienced software engineer and a Constraint Programming and/or Logic Programming implementation specialist. Experience with ECLiPSe, ILOG-solver, CPLEX, or another Constraint, Logic or Mathematical Programming platform is required. A background in the areas of compiler construction, runtime systems (virtual machines, memory management, garbage collection), or development environments is highly relevant. Familiarity with a Logic or Constraint Programming language, and with C/C++ and Java is required. Familiarity with the UNIX/Gnu tool chain is an advantage. Do YOU have what it takes to join one of the most innovative companies in the high-technology industry? If so, email your resume/CV to ri...@ci... or kca...@ci... TODAY. Discover all that's possible for your career! |
From: Joachim S. <js...@cr...> - 2006-10-18 23:50:29
|
The ECLiPSe Constraint Logic Programming System has recently been open-sourced by its current owner Cisco Systems, and is available under the terms of an MPL (Mozilla Public Licence) equivalent. For those not so familiar with licensing terms, this means essentially: - the system can now be used by anyone for any purpose, there is no longer a restriction to academic use - any modification to the source code must be made available under the same licence, i.e. contributed back - added libraries and application code are not affected by the licence and can, for instance, remain proprietary We hope that this step will encourage the wider use of ECLiPSe in both the academic and commercial world. The new setup will give us better flexibility to work with contributors from the user base, integrating more of the interesting work that is being done with ECLiPSe, and making it available to a wider community. Cisco itself is going to continue contributing to maintenance and development, and so is the other current commercial user, CrossCore Optimization. The first open-source release is labelled ECLiPSe 5.10 and can be downloaded from either http://www.eclipse-clp.org or from http://www.sourceforge.net/projects/eclipse-clp The official source repository now also resides on the Sourceforge site. Enjoy! The ECLiPSe Team |
From: J. M. V. <jve...@gu...> - 2006-10-17 19:22:43
|
Hello all, I need to excute a procedure developed in prolog inside a program developed in C++, since the input comes from a C++ process. How can I do that ?¿ my C program ... prolog code with the result from my C program ... Other way I am thinking is to create a text file from the controller and execute the prolog program as a script. Is that posible? Something like: $ eclipse <mychrprolog.pl> or something like that. I will call the script from a sysem call in C++. Thanks a lot in advance. Best regards, ·_· manou |
From: Joachim S. <ch...@go...> - 2005-12-16 22:44:52
|
Test message |