Skip to content

'TwoTermApproximation' object has no attribute 'chop' #42

@1ozturkbe

Description

@1ozturkbe

Found this when I was playing with the skeleton of 'SyntheticModel'

In [31]: run robust/synthetic_model/synthetic_model.py
nominal cost = 3.356158

box uncertainty using Simple Conservative formulation:
         cost : 3.904778
         relative cost : 1.16346667827
         number of constraints : 7
         setup time : 0.171999931335
         solve time : 0.0460000038147

elliptical uncertainty using Simple Conservative formulation:
         cost : 3.904778
         relative cost : 1.16346667827
         number of constraints : 7
         setup time : 0.161999940872
         solve time : 0.0520000457764
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model\synthetic_model.py in <module>()
     46                                                                             method_names[method_name]['boyd'],
     47                                                                             method_names[method_name]['simpleModel'],
---> 48                                                                             uncertainty_set)
     49             print_robust_results(robust_model, robust_model_solution, nominal_solution, method_name)

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model\synthetic_model.py in robustify_synthetic_model(the_model, is_two_term, is_boyd, is_simple_model, the_uncertainty_set, the_min_number_of_linear_sections, the_max_number_of_linear_sections, the_verbosity, the_linearization_tolerance)
     16                                                              linearizationTolerance=the_linearization_tolerance,
     17                                                              minNumOfLinearSections=the_min_number_of_linear_sections,
---> 18                                                              maxNumOfLinearSections=the_max_number_of_linear_sections)
     19     return the_robust_model, the_robust_model_solution
     20

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in robustsolve(self, verbosity, **options)
    233     def robustsolve(self, verbosity=1, **options):
    234         if self._robust_model is None:
--> 235             self.setup(verbosity, **options)
    236         try:
    237             sol = self._robust_model.solve(verbosity=verbosity)

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in setup(self, verbosity, **options)
    180             large_posynomials = self.large_gp_posynomials + large_sp_posynomials
    181
--> 182             permutation_indices = self.new_permutation_indices(old_solution, large_posynomials)
    183
    184             two_term_data_posynomials = []

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in new_permutation_indices(self, solution, large_posynomials)
    446         permutation_indices = []
    447         for two_term_approximation in large_posynomials:
--> 448             permutation_indices.append(self.find_permutation_with_minimum_value(two_term_approximation, solution))
    449         return permutation_indices
    450

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in find_permutation_with_minimum_value(self, two_term_approximation, solution)
    365         for i in range(len(two_term_approximation.list_of_permutations)):
    366             temp_value = self. \
--> 367                 calculate_value_of_two_term_approximated_posynomial(two_term_approximation, i, solution)
    368             if temp_value < minimum_value:
    369                 minimum_value = temp_value

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in calculate_value_of_two_term_approximated_posynomial(self, two_term_approximation, index_of_permutation, solution)
    333         values = []
    334
--> 335         mons = two_term_approximation.chop()
    336
    337         for i in range(number_of_two_terms):

AttributeError: 'TwoTermApproximation' object has no attribute 'chop'

In [32]: run robust/synthetic_model/synthetic_model.py
nominal cost = 3.356158

box uncertainty using Simple Conservative formulation:
         cost : 3.904778
         relative cost : 1.16346667827
         number of constraints : 7
         setup time : 0.203999996185
         solve time : 0.0469999313354

elliptical uncertainty using Simple Conservative formulation:
         cost : 3.904778
         relative cost : 1.16346667827
         number of constraints : 7
         setup time : 0.204999923706
         solve time : 0.0510001182556
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model\synthetic_model.py in <module>()
     46                                                                             method_names[method_name]['boyd'],
     47                                                                             method_names[method_name]['simpleModel'],
---> 48                                                                             uncertainty_set)
     49             print_robust_results(robust_model, robust_model_solution, nominal_solution, method_name)

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model\synthetic_model.py in robustify_synthetic_model(the_model, is_two_term, is_boyd, is_simple_model, the_uncertainty_set, the_min_number_of_linear_sections, the_max_number_of_linear_sections, the_verbosity, the_linearization_tolerance)
     16                                                              linearizationTolerance=the_linearization_tolerance,
     17                                                              minNumOfLinearSections=the_min_number_of_linear_sections,
---> 18                                                              maxNumOfLinearSections=the_max_number_of_linear_sections)
     19     return the_robust_model, the_robust_model_solution
     20

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in robustsolve(self, verbosity, **options)
    233     def robustsolve(self, verbosity=1, **options):
    234         if self._robust_model is None:
--> 235             self.setup(verbosity, **options)
    236         try:
    237             sol = self._robust_model.solve(verbosity=verbosity)

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in setup(self, verbosity, **options)
    180             large_posynomials = self.large_gp_posynomials + large_sp_posynomials
    181
--> 182             permutation_indices = self.new_permutation_indices(old_solution, large_posynomials)
    183
    184             two_term_data_posynomials = []

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in new_permutation_indices(self, solution, large_posynomials)
    446     def new_permutation_indices(self, solution, large_posynomials):
    447         permutation_indices = []
--> 448         for two_term_approximation in large_posynomials:
    449             permutation_indices.append(self.find_permutation_with_minimum_value(two_term_approximation, solution))
    450         return permutation_indices

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in find_permutation_with_minimum_value(self, two_term_approximation, solution)
    365         minimum_index = len(two_term_approximation.list_of_permutations)
    366         for i in range(len(two_term_approximation.list_of_permutations)):
--> 367             temp_value = self. \
    368                 calculate_value_of_two_term_approximated_posynomial(two_term_approximation, i, solution)
    369             if temp_value < minimum_value:

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\robust.py in calculate_value_of_two_term_approximated_posynomial(self, two_term_approximation, index_of_permutation, solution)
    333         values = []
    334
--> 335         print two_term_approximation
    336         mons = two_term_approximation.chop()
    337

AttributeError: 'TwoTermApproximation' object has no attribute 'chop'

In [33]: quit()

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust>cd robust

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust>cd synthetic_model

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model>ipython2
Python 2.7.13 |Anaconda 2.4.1 (64-bit)| (default, May 11 2017, 13:17:26) [MSC v.1500 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 4.0.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: run synthetic_model.py
  File "c:\users\berk\dropbox (mit)\mit graduate school\code\robust\robust\robust.py", line 335
    print two_term_approximation
                               ^
SyntaxError: invalid syntax


In [2]: run synthetic_model.py
nominal cost = 3.356158

box uncertainty using Simple Conservative formulation:
         cost : 3.904778
         relative cost : 1.16346667827
         number of constraints : 7
         setup time : 0.18700003624
         solve time : 0.0629999637604

elliptical uncertainty using Simple Conservative formulation:
         cost : 3.904778
         relative cost : 1.16346667827
         number of constraints : 7
         setup time : 0.171999931335
         solve time : 0.0620000362396
TwoTermApproximation(a*x + a^-1*x + a^-2*x^2 + a^3*x^1.3)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model\synthetic_model.py in <module>()
     46                                                                             method_names[method_name]['boyd'],
     47                                                                             method_names[method_name]['simpleModel'],
---> 48                                                                             uncertainty_set)
     49             print_robust_results(robust_model, robust_model_solution, nominal_solution, method_name)

C:\Users\Berk\Dropbox (MIT)\MIT Graduate School\Code\robust\robust\synthetic_model\synthetic_model.py in robustify_synthetic_model(the_model, is_two_term, is_boyd, is_simple_model, the_uncertainty_set, the_min_number_of_linear_sections, the_max_number_of_linear_sections, the_verbosity, the_linearization_tolerance)
     16                                                              linearizationTolerance=the_linearization_tolerance,
     17                                                              minNumOfLinearSections=the_min_number_of_linear_sections,
---> 18                                                              maxNumOfLinearSections=the_max_number_of_linear_sections)
     19     return the_robust_model, the_robust_model_solution
     20

c:\users\berk\dropbox (mit)\mit graduate school\code\robust\robust\robust.py in robustsolve(self, verbosity, **options)
    233     def robustsolve(self, verbosity=1, **options):
    234         if self._robust_model is None:
--> 235             self.setup(verbosity, **options)
    236         try:
    237             sol = self._robust_model.solve(verbosity=verbosity)

c:\users\berk\dropbox (mit)\mit graduate school\code\robust\robust\robust.py in setup(self, verbosity, **options)
    180             large_posynomials = self.large_gp_posynomials + large_sp_posynomials
    181
--> 182             permutation_indices = self.new_permutation_indices(old_solution, large_posynomials)
    183
    184             two_term_data_posynomials = []

c:\users\berk\dropbox (mit)\mit graduate school\code\robust\robust\robust.py in new_permutation_indices(self, solution, large_posynomials)
    447         permutation_indices = []
    448         for two_term_approximation in large_posynomials:
--> 449             permutation_indices.append(self.find_permutation_with_minimum_value(two_term_approximation, solution))
    450         return permutation_indices
    451

c:\users\berk\dropbox (mit)\mit graduate school\code\robust\robust\robust.py in find_permutation_with_minimum_value(self, two_term_approximation, solution)
    366         for i in range(len(two_term_approximation.list_of_permutations)):
    367             temp_value = self. \
--> 368                 calculate_value_of_two_term_approximated_posynomial(two_term_approximation, i, solution)
    369             if temp_value < minimum_value:
    370                 minimum_value = temp_value

c:\users\berk\dropbox (mit)\mit graduate school\code\robust\robust\robust.py in calculate_value_of_two_term_approximated_posynomial(self, two_term_approximation, index_of_permutation, solution)
    334
    335         print(two_term_approximation)
--> 336         mons = two_term_approximation.chop()
    337
    338         for i in range(number_of_two_terms):

AttributeError: 'TwoTermApproximation' object has no attribute 'chop'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions