<div dir="ltr">Thank you very much Nikos and Ashutosh,<div><br></div><div>We are formalising our problem so I might get back here as we progress, thanks.</div><div><br></div><div>Best regards,</div><div>Cristiano</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 11, 2014 at 4:15 AM, Ashutosh Mahajan <span dir="ltr"><<a href="mailto:amahajan@iitb.ac.in" target="_blank">amahajan@iitb.ac.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Cristiano<br>
<br>
In addition to what Nikos explained, you can define your own functions as well.<br>
You will at least need to implement routines to evaluate the function at a<br>
given point and a routine to evaluate the gradient. You will also need to<br>
write some helper functions about the number of variables in the function etc.<br>
<br>
An example (myNLFun3 class derived from Function class) is available in<br>
src/testing/NLPBnbUT.cpp<br>
<br>
If you provide more details on what kind of function you want to write, I can<br>
help you a bit more.<br>
<br>
Cheers.<br>
--<br>
Regards<br>
Ashutosh Mahajan<br>
<a href="http://www.ieor.iitb.ac.in/amahajan" target="_blank">http://www.ieor.iitb.ac.in/amahajan</a><br>
<div><div class="h5"><br>
On Mon, Nov 10, 2014 at 02:15:18PM +0000, Nikolaos Kazazakis wrote:<br>
>    Dear Cristiano,<br>
><br>
>    You can define the objective function through an AMPL .mod file, e.g.:<br>
><br>
>    # Start of mod file<br>
>    var x {1..2};<br>
><br>
>    minimize obj:<br>
>        cos(x[1]+x[2]+2)+log(x[1]);<br>
>       <br>
>        subject to cons0:<br>
>        -4<=x[1]<=4;<br>
>        subject to cons1:<br>
>        -1<=x[2]<=3;<br>
>    # End of mod file<br>
><br>
>    Minotaur normally reads the .mod filename through the input, i.e.:<br>
><br>
>    $ ./minotaur_exe problem_file<br>
><br>
>    and then (inside the code):<br>
><br>
>      problem =<br>
>    iface.readInstance(options->findString("problem_file")->getValue());<br>
><br>
>    You can read another file (let's say "second_file") by:<br>
><br>
>      problem = iface.readInstance("second_file");<br>
><br>
>    You can have multiple problem instances in your code this way, i.e. you<br>
>    can set minotaur to read more than one file and get multiple functions in<br>
>    your code, although when I tried to have to ProblemPtr type problems on my<br>
>    setup I was getting segfaults when assigning memory (with setNativeDer).<br>
><br>
>    If you create the second problem as a RelaxationPtr though you can have as<br>
>    many problem instances as you want, it works fine!<br>
><br>
>    Kind regards,<br>
>    Nikos<br>
><br>
>    On 10/11/14 13:15, Cristiano Arbex Valle wrote:<br>
><br>
>      Hi Ashutosh / Minotaur team<br>
>      Is it possible to have in Minotaur an independently user-defined<br>
>      objective function, which Minotaur would call whenever it needs to<br>
>      compute the objective function?<br>
>      Thank you and best regards, <br>
>      --<br>
>      Cristiano Arbex Valle<br>
><br>
>  _______________________________________________<br>
>  Minotaur mailing list<br>
</div></div>>  [1]<a href="mailto:Minotaur@lists.mcs.anl.gov">Minotaur@lists.mcs.anl.gov</a><br>
>  [2]<a href="https://lists.mcs.anl.gov/mailman/listinfo/minotaur" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/minotaur</a><br>
><br>
> References<br>
><br>
>    Visible links<br>
>    1. mailto:<a href="mailto:Minotaur@lists.mcs.anl.gov">Minotaur@lists.mcs.anl.gov</a><br>
>    2. <a href="https://lists.mcs.anl.gov/mailman/listinfo/minotaur" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/minotaur</a><br>
<div class="HOEnZb"><div class="h5"><br>
> _______________________________________________<br>
> Minotaur mailing list<br>
> <a href="mailto:Minotaur@lists.mcs.anl.gov">Minotaur@lists.mcs.anl.gov</a><br>
> <a href="https://lists.mcs.anl.gov/mailman/listinfo/minotaur" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/minotaur</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div>--</div>Cristiano Arbex Valle<br><div><br></div></div>
</div>