Ipopt 3.11.9
Loading...
Searching...
No Matches
IpPiecewisePenalty.hpp
Go to the documentation of this file.
1// Copyright (C) 2007 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// $Id: IpPiecewisePenalty.hpp 1861 2010-12-21 21:34:47Z andreasw $
6//
7// Authors: Lifeng Chen/Zaiwen Wen Columbia Univ
8
9#ifndef __IPPIECEWISEPENALTY_HPP__
10#define __IPPIECEWISEPENALTY_HPP__
11
12#include "IpJournalist.hpp"
13#include "IpDebug.hpp"
14#include "IpOptionsList.hpp"
17#include "IpPDSystemSolver.hpp"
18#include <list>
19#include <vector>
20
21namespace Ipopt
22{
23
33
34
40 {
41 public:
48 {
49 //ToDo figure out if that here is necessary
50 // Clear();
51 }
53
54
56 // Initialize Piecewise Penalty list
58 {
59 return PiecewisePenalty_list_.empty();
60 }
61
62 void InitPiecewisePenaltyList(Number pen_r, Number barrier_obj, Number infeasi)
63 {
64 AddEntry( pen_r, barrier_obj, infeasi);
65 }
66
70 bool Acceptable(Number Fzconst, Number Fzlin);
71
74
77 void UpdateEntry(Number barrier_obj, Number infeasi);
78
81 void AddEntry(Number pen_r, Number barrier_obj, Number infeasi)
82 {
83 PiecewisePenEntry TmpEntry;
85 TmpEntry.pen_r = 0.0;
86 }
87 else {
88 TmpEntry.pen_r = pen_r;
89 }
90 TmpEntry.barrier_obj = barrier_obj;
91 TmpEntry.infeasi = infeasi;
92 PiecewisePenalty_list_.push_back(TmpEntry);
93 }
94
97 void ResetList(Number pen_r, Number barrier_obj, Number infeasi)
98 {
100 AddEntry( pen_r, barrier_obj, infeasi);
101 }
102
104
106 void Clear()
107 {
109 }
110
112 void Print(const Journalist& jnlst);
113
114 private:
127
131
134
137
140
142 std::vector<PiecewisePenEntry> PiecewisePenalty_list_;
143
144 };
145
146
147
148
149
150
151
152} // namespace Ipopt
153
154#endif
Class responsible for all message output.
Class for the Piecewise Penalty.
void operator=(const PiecewisePenalty &)
Overloaded Equals Operator.
PiecewisePenalty()
Default Constructor.
Index dim_
Dimension of the Piecewise Penalty (number of coordinates per entry)
void ResetList(Number pen_r, Number barrier_obj, Number infeasi)
Clear and reset the piecewise penalty list.
void UpdateEntry(Number barrier_obj, Number infeasi)
Update Piecewise Penalty entry for given coordinates.
Number BiggestBarr()
Get the value of the biggest barrier function so far.
void AddEntry(Number pen_r, Number barrier_obj, Number infeasi)
Add a entry to the list.
void Clear()
Delete all Piecewise Penalty entries.
bool Acceptable(Number Fzconst, Number Fzlin)
Check acceptability of given coordinates with respect to the Piecewise Penalty.
Index max_piece_number_
The max number of the break points in the piecewise penalty list.
Number min_piece_penalty_
The min penalty value for the piecewise penalty list.
~PiecewisePenalty()
Default Destructor.
PiecewisePenalty(Index dim)
Default Constructor.
void Print(const Journalist &jnlst)
Print current Piecewise Penalty entries.
PiecewisePenalty(const PiecewisePenalty &)
Copy Constructor.
std::vector< PiecewisePenEntry > PiecewisePenalty_list_
vector storing the Piecewise Penalty entries
void InitPiecewisePenaltyList(Number pen_r, Number barrier_obj, Number infeasi)
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
double Number
Type of all numbers.
Definition IpTypes.hpp:17
struct for one Piecewise Penalty entry.