Changeset 1839
- Timestamp:
- 12/06/08 03:45:09 (3 years ago)
- Location:
- trunk/openopt/scikits/openopt/Kernel
- Files:
-
- 5 modified
-
Function.py (modified) (3 diffs)
-
GUI.py (modified) (1 diff)
-
Point.py (modified) (4 diffs)
-
objFunRelated.py (modified) (1 diff)
-
ooMisc.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/openopt/scikits/openopt/Kernel/Function.py
r1588 r1839 12 12 input = None # if None then x will be used 13 13 args = () 14 ooVarsAreAlreadyConnected = False 14 15 15 16 # finite-difference aproximation step … … 302 303 303 304 def __connect_ooVars__(self, p): 305 if self.ooVarsAreAlreadyConnected: return 304 306 if self.input is None: p.err('got oofun w/o connection to oovar (empty input instead). Use x0 or connect oovars.') 305 307 if not type(self.input) in (list, tuple): … … 313 315 inp.__connect_ooVars__(p) # recursive 314 316 else: p.err('incorrect input for oofun instance') 317 318 self.ooVarsAreAlreadyConnected = True 315 319 316 320 -
trunk/openopt/scikits/openopt/Kernel/GUI.py
r1545 r1839 1 from Tkinter import Tk, Toplevel, Button, Label, Frame, StringVar, DISABLED, ACTIVE 1 # SAGE has some problems with Tkinter 2 try: 3 from Tkinter import Tk, Toplevel, Button, Label, Frame, StringVar, DISABLED, ACTIVE 4 except: 5 pass 6 2 7 from threading import Thread 3 8 from scikits.openopt import __version__ as ooversion -
trunk/openopt/scikits/openopt/Kernel/Point.py
r1597 r1839 135 135 beq = p.beq[ind_lin_eq] 136 136 d += dot(aeq.T, dot(aeq, self.x) - beq) # 0.5*d/dx((Aeq x - beq)^2) 137 self._all_lin_ineq_gradient = d / self.__all_lin_ineq() 137 devider = self.__all_lin_ineq() 138 if devider != 0: 139 self._all_lin_ineq_gradient = d / devider 140 else: 141 self._all_lin_ineq_gradient = d 138 142 return copy(self._all_lin_ineq_gradient) 139 143 … … 206 210 # ind = ind_max 207 211 208 if r < all_lin_ineq:212 if r <= all_lin_ineq: 209 213 self._mr_alt, self._mrName_alt, self._mrInd_alt = all_lin_ineq, 'all_lin_ineq', 0 210 214 else: … … 241 245 if self.p.h(self.x, ind) < 0: g -= dh#CHECKME!! 242 246 else: g += dh#CHECKME!! 247 else: 248 # TODO: error or debug warning 249 pass 250 #self.p.err('incorrect resType') 251 243 252 self._dmr, self._dmrName, self._dmrInd = g, resType, ind 244 253 if retAll: … … 260 269 if self.p.isUC: 261 270 return self.f() < point2compare.f() 262 else: 271 272 if altLinInEq: 273 mr_field = 'mr_alt' 274 else: 275 mr_field = 'mr' 276 point2compareResidual = getattr(point2compare, mr_field)() 277 278 criticalResidualValue = max((self.p.contol, point2compareResidual)) 279 280 if hasattr(self, '_'+mr_field): 281 if getattr(self, '_'+mr_field) > criticalResidualValue: return False 282 else: 283 #TODO: simplify it! 284 #for fn in Residuals: (...) 263 285 if altLinInEq: 264 mr_field = 'mr_alt' 265 point2compareResidual = getattr(point2compare, mr_field)() 266 else: 267 mr_field = 'mr' 268 point2compareResidual = getattr(point2compare, mr_field)() 269 270 criticalResidualValue = max(self.p.contol, point2compareResidual) 271 272 if hasattr(self, '_'+mr_field): 273 if getattr(self, '_'+mr_field) > criticalResidualValue: return False 274 else: 275 #TODO: simplify it! 276 #for fn in Residuals: (...) 277 if altLinInEq: 278 if self.__all_lin_ineq() > criticalResidualValue: return False 279 else: 280 if any(self.lb() > criticalResidualValue): return False 281 if any(self.ub() > criticalResidualValue): return False 282 if any(self.lin_ineq() > criticalResidualValue): return False 283 if any(abs(self.lin_eq()) > criticalResidualValue): return False 284 if any(abs(self.h()) > criticalResidualValue): return False 285 if any(self.c() > criticalResidualValue): return False 286 287 mr = getattr(self, mr_field)() 288 289 if not self.p.isNaNInConstraintsAllowed: 290 if point2compare.__nNaNs__() > self.__nNaNs__(): return True 291 elif point2compare.__nNaNs__() < self.__nNaNs__(): return False 292 # TODO: check me 293 if mr <= self.p.contol and point2compareResidual <= self.p.contol and self.__nNaNs__() != 0: return mr < point2compareResidual 294 295 if mr < point2compareResidual and self.p.contol < point2compareResidual: return True 296 297 point2compareF_is_NaN = isnan(point2compare.f()) 298 selfF_is_NaN = isnan(self.f()) 299 300 if not point2compareF_is_NaN: # f(point2compare) is not NaN 301 if not selfF_is_NaN: # f(newPoint) is not NaN 302 return self.f() < point2compare.f() 303 else: # f(newPoint) is NaN 304 return False 305 else: # f(point2compare) is NaN 306 if selfF_is_NaN: # f(newPoint) is NaN 307 return mr < point2compareResidual 308 else: # f(newPoint) is not NaN 309 return True 286 if self.__all_lin_ineq() > criticalResidualValue: return False 287 else: 288 if any(self.lb() > criticalResidualValue): return False 289 if any(self.ub() > criticalResidualValue): return False 290 if any(self.lin_ineq() > criticalResidualValue): return False 291 if any(abs(self.lin_eq()) > criticalResidualValue): return False 292 if any(abs(self.h()) > criticalResidualValue): return False 293 if any(self.c() > criticalResidualValue): return False 294 295 mr = getattr(self, mr_field)() 296 297 if not self.p.isNaNInConstraintsAllowed: 298 if point2compare.__nNaNs__() > self.__nNaNs__(): return True 299 elif point2compare.__nNaNs__() < self.__nNaNs__(): return False 300 # TODO: check me 301 if mr <= self.p.contol and point2compareResidual <= self.p.contol and self.__nNaNs__() != 0: return mr < point2compareResidual 302 303 if mr < point2compareResidual and self.p.contol < point2compareResidual: return True 304 305 point2compareF_is_NaN = isnan(point2compare.f()) 306 selfF_is_NaN = isnan(self.f()) 307 308 if not point2compareF_is_NaN: # f(point2compare) is not NaN 309 if not selfF_is_NaN: # f(newPoint) is not NaN 310 return self.f() < point2compare.f() 311 else: # f(newPoint) is NaN 312 return False 313 else: # f(point2compare) is NaN 314 if selfF_is_NaN: # f(newPoint) is NaN 315 return mr < point2compareResidual 316 else: # f(newPoint) is not NaN 317 return True 310 318 311 319 def isFeas(self, **kwargs): -
trunk/openopt/scikits/openopt/Kernel/objFunRelated.py
r1609 r1839 83 83 if len(ind) > 1: 84 84 # TODO! Don't forget to remove ind[0] and use ind instead 85 p.err("mul piple index for block problems isn't implemented yet")85 p.err("multiple index for block problems isn't implemented yet") 86 86 87 87 #getting number of block and shift -
trunk/openopt/scikits/openopt/Kernel/ooMisc.py
r1597 r1839 173 173 class killThread: 174 174 def __init__(self): pass 175 176
