1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright (C) 2005, 2009 International Business Machines and others.
- // All Rights Reserved.
- // This code is published under the Eclipse Public License.
- //
- // $Id: hs071_main.cpp 2398 2013-10-19 18:08:59Z stefan $
- //
- // Authors: Carl Laird, Andreas Waechter IBM 2005-08-10
- #include "IpIpoptApplication.hpp"
- #include "hs071_nlp.hpp"
- #include <iostream>
- using namespace Ipopt;
- int main4(int argv, char* argc[])
- {
- // Create a new instance of your nlp
- // (use a SmartPtr, not raw)
- SmartPtr<TNLP> mynlp = new HS071_NLP();
- // Create a new instance of IpoptApplication
- // (use a SmartPtr, not raw)
- // We are using the factory, since this allows us to compile this
- // example with an Ipopt Windows DLL
- SmartPtr<IpoptApplication> app = IpoptApplicationFactory();
- app->RethrowNonIpoptException(true);
- // Change some options
- // Note: The following choices are only examples, they might not be
- // suitable for your optimization problem.
- app->Options()->SetNumericValue("tol", 1e-7);
- app->Options()->SetStringValue("mu_strategy", "adaptive");
- app->Options()->SetStringValue("output_file", "ipopt.out");
- // The following overwrites the default name (ipopt.opt) of the
- // options file
- // app->Options()->SetStringValue("option_file_name", "hs071.opt");
- // Initialize the IpoptApplication and process the options
- ApplicationReturnStatus status;
- status = app->Initialize();
- if (status != Solve_Succeeded) {
- std::cout << std::endl << std::endl << "*** Error during initialization!" << std::endl;
- return (int) status;
- }
- // Ask Ipopt to solve the problem
- status = app->OptimizeTNLP(mynlp);
- if (status == Solve_Succeeded) {
- std::cout << std::endl << std::endl << "*** The problem solved!" << std::endl;
- }
- else {
- std::cout << std::endl << std::endl << "*** The problem FAILED!" << std::endl;
- }
- // As the SmartPtrs go out of scope, the reference count
- // will be decremented and the objects will automatically
- // be deleted.
- return (int) status;
- }
|