Ipopt  3.11.9
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 
21 namespace Ipopt
22 {
23 
25  typedef struct
27  {
31  }
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  {
99  PiecewisePenalty_list_.clear();
100  AddEntry( pen_r, barrier_obj, infeasi);
101  }
102 
104 
106  void Clear()
107  {
108  PiecewisePenalty_list_.clear();
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)
struct Ipopt::PiecewisePenEntry PiecewisePenEntry
struct for one Piecewise Penalty entry.
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.