[gecode-users] Custom constraint to external progam
Tias Guns
tias.guns at cs.kuleuven.be
Thu Nov 13 13:24:56 CET 2008
Cool, I didn't know adding a custom propagator could be as easy as
including the implementation in your model directly !
Note that in the example the 'propagate' function misses the ModEventDelta
parameter:
line 57 should be: virtual ExecStatus propagate(Space* home,
ModEventDelta);
line 93 should be: DisEq<View>::propagate(Space* home, ModEventDelta) {
Thanks for the tip,
Tias
On Thu, 13 Nov 2008 12:05:07 +0100, Mikael Zayenz Lagerkvist
<zayenz at gmail.com> wrote:
> Hi,
>
> There are no examples currently in Gecode that implement custom
> propagators.
>
> There is an old post in the mailinglist with a custom
> propagator-example [1]. Note that there is a bug in the logic, the
> line
> GECODE_ME_CHECK(x1.inter_r(home, u12, false));
> should be
> GECODE_ME_CHECK(x0.inter_r(home, u12, false));
> I missed that on a variable-renaming before posting it.
>
> Hope that helps,
> Mikael
>
> [1] http://article.gmane.org/gmane.comp.lib.gecode.user/1276/
>
>
> On Thu, Nov 13, 2008 at 11:51 AM, Pedro Salgueiro <pds at di.uevora.pt>
> wrote:
>> Ok, I think thats what I want to do.
>>
>> Is there any examples in Gecode that implement a custom propagator?
>>
>> Pedro Salgueiro
>>
>> On Thu, 2008-11-13 at 11:10 +0100, Mauricio Toro wrote:
>>> Hello,
>>>
>>>
>>> I made something similar once.
>>> My approach was writting a propagator
>>> that waits until cvars[0] and cvars[1]
>>> are assigned. Once they are assigned
>>> it calls run_something.
>>>
>>>
>>> I hope that helps,
>>>
>>>
>>> Mauricio
>>>
>>> 2008/11/13 Pedro Salgueiro <pds at di.uevora.pt>
>>> Hi!
>>>
>>> I have been experimenting Gecode for a while, and now I want
>>> to make
>>> something wich I don't know if its possible:
>>>
>>> I want to create a new "custom" constraint that allows to
>>> relate/constraint a variable with a function that receives two
>>> other
>>> gecode variables as parameters. This function will be
>>> something
>>> completely external to gecode, and evan c++, so, by the the
>>> this
>>> function is called the gecode variables that are used on it
>>> should
>>> already have some values assigned to it.
>>>
>>> Here's how it would look:
>>>
>>> post(this, cvars[0] < 5)
>>> post(this, cvars[1] < cvars[0] + 2)
>>> post(this, new_constraint(cvars[2], run_something(cvars[0],
>>> cvars[1])
>>>
>>> In this example, we could just assume that the
>>> "new_constraint" is used
>>> to make sure that cvars[2] "<"
>>> run_something(cvars[0],cvars[1]).
>>>
>>> Is this possible to do? If so, where should I start?
>>>
>>> Thank you all
>>> Pedro Salgueiro
>>>
>>>
>>> _______________________________________________
>>> Gecode users mailing list
>>> users at gecode.org
>>> https://www.gecode.org/mailman/listinfo/gecode-users
>>>
>>>
>>>
>>> --
>>> Mauricio Toro Bermudez
>>> Estudiante de Ingeniería de Sistemas
>>> Pontificia Universidad Javeriana, Colombia
>>>
>>> Stagiare à l'Ircam
>>> 1, place Igor-Stravinsky 75004 Paris,
>>> France de 2008 à 2009
>>>
>>
>>
>> _______________________________________________
>> Gecode users mailing list
>> users at gecode.org
>> https://www.gecode.org/mailman/listinfo/gecode-users
>>
>
>
>
More information about the gecode-users
mailing list