Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
LMM: rename sharing_weight into sharing_penalty for sake of clarity
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 5 Jun 2019 15:07:28 +0000 (17:07 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 5 Jun 2019 15:07:35 +0000 (17:07 +0200)
This is similar to what just happened in surf yesterday. It allows:
  -   cnst.usage_ += elem.consumption_weight / elem.variable->sharing_weight_;
  +   cnst.usage_ += elem.consumption_weight / elem.variable->sharing_penalty_;
which seems far more understandable to me.

I'm glad I finally got the will to do this boooooring cleanup, after
hours of being puzzled whether a sharing_weight is actually an
advantage or a drawback for the action in the LMM. The answer was "it
depends on whether you are in app, surf or LMM". Now, you know that
having a high priority is the opposite of having a high penalty, and
things should be less intricate.

13 files changed:
src/kernel/lmm/fair_bottleneck.cpp
src/kernel/lmm/maxmin.cpp
src/kernel/lmm/maxmin.hpp
src/kernel/resource/Action.cpp
src/surf/cpu_cas01.cpp
src/surf/cpu_interface.cpp
src/surf/network_cm02.cpp
src/surf/network_interface.hpp
src/surf/ptask_L07.cpp
src/surf/storage_n11.cpp
teshsuite/surf/lmm_usage/lmm_usage.cpp
teshsuite/surf/maxmin_bench/maxmin_bench_medium.tesh
teshsuite/surf/maxmin_bench/maxmin_bench_small.tesh

index e50d3a7..1db0704 100644 (file)
@@ -29,13 +29,13 @@ void simgrid::kernel::lmm::FairBottleneck::bottleneck_solve()
   for (Variable& var : variable_set) {
     var.value_ = 0.0;
     XBT_DEBUG("Handling variable %p", &var);
-    if (var.sharing_weight_ > 0.0 && std::find_if(begin(var.cnsts_), end(var.cnsts_), [](Element const& x) {
-                                       return x.consumption_weight != 0.0;
-                                     }) != end(var.cnsts_)) {
+    if (var.sharing_penalty_ > 0.0 && std::find_if(begin(var.cnsts_), end(var.cnsts_), [](Element const& x) {
+                                        return x.consumption_weight != 0.0;
+                                      }) != end(var.cnsts_)) {
       saturated_variable_set.push_back(var);
     } else {
       XBT_DEBUG("Err, finally, there is no need to take care of variable %p", &var);
-      if (var.sharing_weight_ > 0.0)
+      if (var.sharing_penalty_ > 0.0)
         var.value_ = 1.0;
     }
   }
@@ -68,7 +68,7 @@ void simgrid::kernel::lmm::FairBottleneck::bottleneck_solve()
       XBT_DEBUG("Processing cnst %p ", &cnst);
       cnst.usage_ = 0.0;
       for (Element& elem : cnst.enabled_element_set_) {
-        xbt_assert(elem.variable->sharing_weight_ > 0);
+        xbt_assert(elem.variable->sharing_penalty_ > 0);
         if (elem.consumption_weight > 0 && elem.variable->saturated_variable_set_hook_.is_linked())
           nb++;
       }
@@ -109,14 +109,14 @@ void simgrid::kernel::lmm::FairBottleneck::bottleneck_solve()
       XBT_DEBUG("Updating cnst %p ", &cnst);
       if (cnst.sharing_policy_ != s4u::Link::SharingPolicy::FATPIPE) {
         for (Element& elem : cnst.enabled_element_set_) {
-          xbt_assert(elem.variable->sharing_weight_ > 0);
+          xbt_assert(elem.variable->sharing_penalty_ > 0);
           XBT_DEBUG("\tUpdate constraint %p (%g) with variable %p by %g", &cnst, cnst.remaining_, elem.variable,
                     elem.variable->mu_);
           double_update(&cnst.remaining_, elem.consumption_weight * elem.variable->mu_, sg_maxmin_precision);
         }
       } else {
         for (Element& elem : cnst.enabled_element_set_) {
-          xbt_assert(elem.variable->sharing_weight_ > 0);
+          xbt_assert(elem.variable->sharing_penalty_ > 0);
           XBT_DEBUG("\tNon-Shared variable. Update constraint usage of %p (%g) with variable %p by %g", &cnst,
                     cnst.usage_, elem.variable, elem.variable->mu_);
           cnst.usage_ = std::min(cnst.usage_, elem.consumption_weight * elem.variable->mu_);
@@ -131,7 +131,7 @@ void simgrid::kernel::lmm::FairBottleneck::bottleneck_solve()
 
         iter = cnst_list.erase(iter);
         for (Element& elem : cnst.enabled_element_set_) {
-          if (elem.variable->sharing_weight_ <= 0)
+          if (elem.variable->sharing_penalty_ <= 0)
             break;
           if (elem.consumption_weight > 0 && elem.variable->saturated_variable_set_hook_.is_linked()) {
             XBT_DEBUG("\t\tGet rid of variable %p", elem.variable);
index d4de8c9..25a5f24 100644 (file)
@@ -66,13 +66,13 @@ void System::check_concurrency() const
   for (Constraint const& cnst : constraint_set) {
     int concurrency       = 0;
     for (Element const& elem : cnst.enabled_element_set_) {
-      xbt_assert(elem.variable->sharing_weight_ > 0);
+      xbt_assert(elem.variable->sharing_penalty_ > 0);
       concurrency += elem.get_concurrency();
     }
 
     for (Element const& elem : cnst.disabled_element_set_) {
       // We should have staged variables only if concurrency is reached in some constraint
-      xbt_assert(cnst.get_concurrency_limit() < 0 || elem.variable->staged_weight_ == 0 ||
+      xbt_assert(cnst.get_concurrency_limit() < 0 || elem.variable->staged_penalty_ == 0 ||
                      elem.variable->get_min_concurrency_slack() < elem.variable->concurrency_share_,
                  "should not have staged variable!");
     }
@@ -114,7 +114,7 @@ void System::var_free(Variable* var)
     update_modified_set(var->cnsts_[0].constraint);
 
   for (Element& elem : var->cnsts_) {
-    if (var->sharing_weight_ > 0)
+    if (var->sharing_penalty_ > 0)
       elem.decrease_concurrency();
     if (elem.enabled_element_set_hook.is_linked())
       simgrid::xbt::intrusive_erase(elem.constraint->enabled_element_set_, elem);
@@ -202,13 +202,14 @@ void System::variable_mallocator_free_f(void* var)
   delete static_cast<Variable*>(var);
 }
 
-Variable* System::variable_new(resource::Action* id, double sharing_weight, double bound, size_t number_of_constraints)
+Variable* System::variable_new(resource::Action* id, double sharing_penalty, double bound, size_t number_of_constraints)
 {
-  XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%zu)", this, id, sharing_weight, bound, number_of_constraints);
+  XBT_IN("(sys=%p, id=%p, penalty=%f, bound=%f, num_cons =%zu)", this, id, sharing_penalty, bound,
+         number_of_constraints);
 
   Variable* var = static_cast<Variable*>(xbt_mallocator_get(variable_mallocator_));
-  var->initialize(id, sharing_weight, bound, number_of_constraints, visited_counter_ - 1);
-  if (sharing_weight > 0)
+  var->initialize(id, sharing_penalty, bound, number_of_constraints, visited_counter_ - 1);
+  if (sharing_penalty > 0)
     variable_set.push_front(*var);
   else
     variable_set.push_back(*var);
@@ -238,14 +239,14 @@ void System::expand(Constraint* cnst, Variable* var, double consumption_weight)
   }
 
   // Check if we need to disable the variable
-  if (var->sharing_weight_ > 0 && var->concurrency_share_ - current_share > cnst->get_concurrency_slack()) {
-    double weight = var->sharing_weight_;
+  if (var->sharing_penalty_ > 0 && var->concurrency_share_ - current_share > cnst->get_concurrency_slack()) {
+    double penalty = var->sharing_penalty_;
     disable_var(var);
     for (Element const& elem : var->cnsts_)
       on_disabled_var(elem.constraint);
     consumption_weight = 0;
-    var->staged_weight_ = weight;
-    xbt_assert(not var->sharing_weight_);
+    var->staged_penalty_ = penalty;
+    xbt_assert(not var->sharing_penalty_);
   }
 
   xbt_assert(var->cnsts_.size() < var->cnsts_.capacity(), "Too much constraints");
@@ -257,7 +258,7 @@ void System::expand(Constraint* cnst, Variable* var, double consumption_weight)
   elem.constraint         = cnst;
   elem.variable           = var;
 
-  if (var->sharing_weight_) {
+  if (var->sharing_penalty_) {
     elem.constraint->enabled_element_set_.push_front(elem);
     elem.increase_concurrency();
   } else
@@ -265,7 +266,7 @@ void System::expand(Constraint* cnst, Variable* var, double consumption_weight)
 
   if (not selective_update_active) {
     make_constraint_active(cnst);
-  } else if (elem.consumption_weight > 0 || var->sharing_weight_ > 0) {
+  } else if (elem.consumption_weight > 0 || var->sharing_penalty_ > 0) {
     make_constraint_active(cnst);
     update_modified_set(cnst);
     // TODOLATER: Why do we need this second call?
@@ -287,7 +288,7 @@ void System::expand_add(Constraint* cnst, Variable* var, double value)
       std::find_if(begin(var->cnsts_), end(var->cnsts_), [&cnst](Element const& x) { return x.constraint == cnst; });
   if (elem_it != end(var->cnsts_)) {
     Element& elem = *elem_it;
-    if (var->sharing_weight_)
+    if (var->sharing_penalty_)
       elem.decrease_concurrency();
 
     if (cnst->sharing_policy_ != s4u::Link::SharingPolicy::FATPIPE)
@@ -296,14 +297,14 @@ void System::expand_add(Constraint* cnst, Variable* var, double value)
       elem.consumption_weight = std::max(elem.consumption_weight, value);
 
     // We need to check that increasing value of the element does not cross the concurrency limit
-    if (var->sharing_weight_) {
+    if (var->sharing_penalty_) {
       if (cnst->get_concurrency_slack() < elem.get_concurrency()) {
-        double weight = var->sharing_weight_;
+        double penalty = var->sharing_penalty_;
         disable_var(var);
         for (Element const& elem2 : var->cnsts_)
           on_disabled_var(elem2.constraint);
-        var->staged_weight_ = weight;
-        xbt_assert(not var->sharing_weight_);
+        var->staged_penalty_ = penalty;
+        xbt_assert(not var->sharing_penalty_);
       }
       elem.increase_concurrency();
     }
@@ -408,8 +409,7 @@ static inline void saturated_variable_set_update(ConstraintLight* cnst_light_tab
   for (int const& saturated_cnst : saturated_constraints) {
     ConstraintLight& cnst = cnst_light_tab[saturated_cnst];
     for (Element const& elem : cnst.cnst->active_element_set_) {
-      // Visiting active_element_set, so, by construction, should never get a zero weight, correct?
-      xbt_assert(elem.variable->sharing_weight_ > 0);
+      xbt_assert(elem.variable->sharing_penalty_ > 0); // All elements of active_element_set should be active
       if (elem.consumption_weight > 0 && not elem.variable->saturated_variable_set_hook_.is_linked())
         sys->saturated_variable_set.push_back(*elem.variable);
     }
@@ -437,7 +437,7 @@ void System::print() const
 
   /* Printing Objective */
   for (Variable const& var : variable_set)
-    buf += "'" + std::to_string(var.rank_) + "'(" + std::to_string(var.sharing_weight_) + ") ";
+    buf += "'" + std::to_string(var.rank_) + "'(" + std::to_string(var.sharing_penalty_) + ") ";
   buf += ")";
   XBT_DEBUG("%20s", buf.c_str());
   buf.clear();
@@ -468,11 +468,11 @@ void System::print() const
   /* Printing Result */
   for (Variable const& var : variable_set) {
     if (var.bound_ > 0) {
-      XBT_DEBUG("'%d'(%f) : %f (<=%f)", var.rank_, var.sharing_weight_, var.value_, var.bound_);
+      XBT_DEBUG("'%d'(%f) : %f (<=%f)", var.rank_, var.sharing_penalty_, var.value_, var.bound_);
       xbt_assert(not double_positive(var.value_ - var.bound_, var.bound_ * sg_maxmin_precision),
                  "Incorrect value (%f is not smaller than %f", var.value_, var.bound_);
     } else {
-      XBT_DEBUG("'%d'(%f) : %f", var.rank_, var.sharing_weight_, var.value_);
+      XBT_DEBUG("'%d'(%f) : %f", var.rank_, var.sharing_penalty_, var.value_);
     }
   }
 }
@@ -501,7 +501,7 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
   /* Init: Only modified code portions: reset the value of active variables */
   for (Constraint const& cnst : cnst_list) {
     for (Element const& elem : cnst.enabled_element_set_) {
-      xbt_assert(elem.variable->sharing_weight_ > 0.0);
+      xbt_assert(elem.variable->sharing_penalty_ > 0.0);
       elem.variable->value_ = 0.0;
     }
   }
@@ -518,12 +518,12 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
       continue;
     cnst.usage_ = 0;
     for (Element& elem : cnst.enabled_element_set_) {
-      xbt_assert(elem.variable->sharing_weight_ > 0);
+      xbt_assert(elem.variable->sharing_penalty_ > 0);
       if (elem.consumption_weight > 0) {
         if (cnst.sharing_policy_ != s4u::Link::SharingPolicy::FATPIPE)
-          cnst.usage_ += elem.consumption_weight / elem.variable->sharing_weight_;
-        else if (cnst.usage_ < elem.consumption_weight / elem.variable->sharing_weight_)
-          cnst.usage_ = elem.consumption_weight / elem.variable->sharing_weight_;
+          cnst.usage_ += elem.consumption_weight / elem.variable->sharing_penalty_;
+        else if (cnst.usage_ < elem.consumption_weight / elem.variable->sharing_penalty_)
+          cnst.usage_ = elem.consumption_weight / elem.variable->sharing_penalty_;
 
         elem.make_active();
         resource::Action* action = static_cast<resource::Action*>(elem.variable->id_);
@@ -554,16 +554,16 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
     /* Fix the variables that have to be */
     auto& var_list = saturated_variable_set;
     for (Variable const& var : var_list) {
-      if (var.sharing_weight_ <= 0.0)
+      if (var.sharing_penalty_ <= 0.0)
         DIE_IMPOSSIBLE;
       /* First check if some of these variables could reach their upper bound and update min_bound accordingly. */
-      XBT_DEBUG("var=%d, var.bound=%f, var.weight=%f, min_usage=%f, var.bound*var.weight=%f", var.rank_, var.bound_,
-                var.sharing_weight_, min_usage, var.bound_ * var.sharing_weight_);
-      if ((var.bound_ > 0) && (var.bound_ * var.sharing_weight_ < min_usage)) {
+      XBT_DEBUG("var=%d, var.bound=%f, var.penalty=%f, min_usage=%f, var.bound*var.penalty=%f", var.rank_, var.bound_,
+                var.sharing_penalty_, min_usage, var.bound_ * var.sharing_penalty_);
+      if ((var.bound_ > 0) && (var.bound_ * var.sharing_penalty_ < min_usage)) {
         if (min_bound < 0)
-          min_bound = var.bound_ * var.sharing_weight_;
+          min_bound = var.bound_ * var.sharing_penalty_;
         else
-          min_bound = std::min(min_bound, (var.bound_ * var.sharing_weight_));
+          min_bound = std::min(min_bound, (var.bound_ * var.sharing_penalty_));
         XBT_DEBUG("Updated min_bound=%f", min_bound);
       }
     }
@@ -573,11 +573,11 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
       if (min_bound < 0) {
         // If no variable could reach its bound, deal iteratively the constraints usage ( at worst one constraint is
         // saturated at each cycle)
-        var.value_ = min_usage / var.sharing_weight_;
+        var.value_ = min_usage / var.sharing_penalty_;
         XBT_DEBUG("Setting var (%d) value to %f\n", var.rank_, var.value_);
       } else {
         // If there exist a variable that can reach its bound, only update it (and other with the same bound) for now.
-        if (double_equals(min_bound, var.bound_ * var.sharing_weight_, sg_maxmin_precision)) {
+        if (double_equals(min_bound, var.bound_ * var.sharing_penalty_, sg_maxmin_precision)) {
           var.value_ = var.bound_;
           XBT_DEBUG("Setting %p (%d) value to %f\n", &var, var.rank_, var.value_);
         } else {
@@ -587,7 +587,7 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
           continue;
         }
       }
-      XBT_DEBUG("Min usage: %f, Var(%d).weight: %f, Var(%d).value: %f ", min_usage, var.rank_, var.sharing_weight_,
+      XBT_DEBUG("Min usage: %f, Var(%d).penalty: %f, Var(%d).value: %f ", min_usage, var.rank_, var.sharing_penalty_,
                 var.rank_, var.value_);
 
       /* Update the usage of contraints where this variable is involved */
@@ -596,7 +596,7 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
         if (cnst->sharing_policy_ != s4u::Link::SharingPolicy::FATPIPE) {
           // Remember: shared constraints require that sum(elem.value * var.value) < cnst->bound
           double_update(&(cnst->remaining_), elem.consumption_weight * var.value_, cnst->bound_ * sg_maxmin_precision);
-          double_update(&(cnst->usage_), elem.consumption_weight / var.sharing_weight_, sg_maxmin_precision);
+          double_update(&(cnst->usage_), elem.consumption_weight / var.sharing_penalty_, sg_maxmin_precision);
           // If the constraint is saturated, remove it from the set of active constraints (light_tab)
           if (not double_positive(cnst->usage_, sg_maxmin_precision) ||
               not double_positive(cnst->remaining_, cnst->bound_ * sg_maxmin_precision)) {
@@ -618,11 +618,11 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
           cnst->usage_ = 0.0;
           elem.make_inactive();
           for (Element& elem2 : cnst->enabled_element_set_) {
-            xbt_assert(elem2.variable->sharing_weight_ > 0);
+            xbt_assert(elem2.variable->sharing_penalty_ > 0);
             if (elem2.variable->value_ > 0)
               continue;
             if (elem2.consumption_weight > 0)
-              cnst->usage_ = std::max(cnst->usage_, elem2.consumption_weight / elem2.variable->sharing_weight_);
+              cnst->usage_ = std::max(cnst->usage_, elem2.consumption_weight / elem2.variable->sharing_penalty_);
           }
           // If the constraint is saturated, remove it from the set of active constraints (light_tab)
           if (not double_positive(cnst->usage_, sg_maxmin_precision) ||
@@ -698,14 +698,14 @@ void System::update_variable_bound(Variable* var, double bound)
     update_modified_set(var->cnsts_[0].constraint);
 }
 
-void Variable::initialize(resource::Action* id_value, double sharing_weight_value, double bound_value,
+void Variable::initialize(resource::Action* id_value, double sharing_penalty, double bound_value,
                           int number_of_constraints, unsigned visited_value)
 {
   id_     = id_value;
   rank_   = next_rank_++;
   cnsts_.reserve(number_of_constraints);
-  sharing_weight_    = sharing_weight_value;
-  staged_weight_     = 0.0;
+  sharing_penalty_   = sharing_penalty;
+  staged_penalty_    = 0.0;
   bound_             = bound_value;
   concurrency_share_ = 1;
   value_             = 0.0;
@@ -739,8 +739,8 @@ void System::enable_var(Variable* var)
 {
   xbt_assert(not XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug) || var->can_enable());
 
-  var->sharing_weight_ = var->staged_weight_;
-  var->staged_weight_  = 0;
+  var->sharing_penalty_ = var->staged_penalty_;
+  var->staged_penalty_  = 0;
 
   // Enabling the variable, move var to list head. Subtlety is: here, we need to call update_modified_set AFTER
   // moving at least one element of var.
@@ -762,7 +762,7 @@ void System::enable_var(Variable* var)
 
 void System::disable_var(Variable* var)
 {
-  xbt_assert(not var->staged_weight_, "Staged weight should have been cleared");
+  xbt_assert(not var->staged_penalty_, "Staged penalty should have been cleared");
   // Disabling the variable, move to var to list tail. Subtlety is: here, we need to call update_modified_set
   // BEFORE moving the last element of var.
   simgrid::xbt::intrusive_erase(variable_set, *var);
@@ -777,15 +777,15 @@ void System::disable_var(Variable* var)
     elem.decrease_concurrency();
   }
 
-  var->sharing_weight_ = 0.0;
-  var->staged_weight_  = 0.0;
+  var->sharing_penalty_ = 0.0;
+  var->staged_penalty_  = 0.0;
   var->value_          = 0.0;
   check_concurrency();
 }
 
 /* /brief Find variables that can be enabled and enable them.
  *
- * Assuming that the variable has already been removed from non-zero weights
+ * Assuming that the variable has already been removed from non-zero penalties
  * Can we find a staged variable to add?
  * If yes, check that none of the constraints that this variable is involved in is at the limit of its concurrency
  * And then add it to enabled variables
@@ -812,7 +812,7 @@ void System::on_disabled_var(Constraint* cnstr)
       nextelem = nullptr;
     }
 
-    if (elem->variable->staged_weight_ > 0 && elem->variable->can_enable()) {
+    if (elem->variable->staged_penalty_ > 0 && elem->variable->can_enable()) {
       // Found a staged variable
       // TODOLATER: Add random timing function to model reservation protocol fuzziness? Then how to make sure that
       // staged variables will eventually be called?
@@ -831,40 +831,37 @@ void System::on_disabled_var(Constraint* cnstr)
   // Anyway, caller functions all call check_concurrency() in the end.
 }
 
-/* @brief update the weight of a variable, and enable/disable it.
- * @return Returns whether a change was made
- */
-void System::update_variable_weight(Variable* var, double weight)
+/** @brief update the penalty of a variable (disable it by passing 0 as a penalty) */
+void System::update_variable_penalty(Variable* var, double penalty)
 {
-  xbt_assert(weight >= 0, "Variable weight should not be negative!");
+  xbt_assert(penalty >= 0, "Variable penalty should not be negative!");
 
-  if (weight == var->sharing_weight_)
+  if (penalty == var->sharing_penalty_)
     return;
 
-  int enabling_var  = (weight > 0 && var->sharing_weight_ <= 0);
-  int disabling_var = (weight <= 0 && var->sharing_weight_ > 0);
+  int enabling_var  = (penalty > 0 && var->sharing_penalty_ <= 0);
+  int disabling_var = (penalty <= 0 && var->sharing_penalty_ > 0);
 
-  XBT_IN("(sys=%p, var=%p, weight=%f)", this, var, weight);
+  XBT_IN("(sys=%p, var=%p, penalty=%f)", this, var, penalty);
 
   modified_ = true;
 
   // Are we enabling this variable?
   if (enabling_var) {
-    var->staged_weight_ = weight;
+    var->staged_penalty_ = penalty;
     int minslack       = var->get_min_concurrency_slack();
     if (minslack < var->concurrency_share_) {
-      XBT_DEBUG("Staging var (instead of enabling) because min concurrency slack %i, with weight %f and concurrency"
+      XBT_DEBUG("Staging var (instead of enabling) because min concurrency slack %i, with penalty %f and concurrency"
                 " share %i",
-                minslack, weight, var->concurrency_share_);
+                minslack, penalty, var->concurrency_share_);
       return;
     }
     XBT_DEBUG("Enabling var with min concurrency slack %i", minslack);
     enable_var(var);
   } else if (disabling_var) {
-    // Are we disabling this variable?
     disable_var(var);
   } else {
-    var->sharing_weight_ = weight;
+    var->sharing_penalty_ = penalty;
   }
 
   check_concurrency();
index e688ead..abbb741 100644 (file)
@@ -289,8 +289,8 @@ private:
  */
 class XBT_PUBLIC Variable {
 public:
-  void initialize(resource::Action* id_value, double sharing_weight_value, double bound_value,
-                  int number_of_constraints, unsigned visited_value);
+  void initialize(resource::Action* id_value, double sharing_penalty, double bound_value, int number_of_constraints,
+                  unsigned visited_value);
 
   /** @brief Get the value of the variable after the last lmm solve */
   double get_value() const { return value_; }
@@ -327,16 +327,16 @@ public:
   /** @brief Get the data associated to a variable */
   resource::Action* get_id() const { return id_; }
 
-  /** @brief Get the weight of a variable */
-  double get_weight() const { return sharing_weight_; }
+  /** @brief Get the penalty of a variable */
+  double get_penalty() const { return sharing_penalty_; }
 
   /** @brief Measure the minimum concurrency slack across all constraints where the given var is involved */
   int get_min_concurrency_slack() const;
 
   /** @brief Check if a variable can be enabled
-   * Make sure to set staged_weight before, if your intent is only to check concurrency
+   * Make sure to set staged_penalty before, if your intent is only to check concurrency
    */
-  int can_enable() const { return staged_weight_ > 0 && get_min_concurrency_slack() >= concurrency_share_; }
+  int can_enable() const { return staged_penalty_ > 0 && get_min_concurrency_slack() >= concurrency_share_; }
 
   /* hookup to system */
   boost::intrusive::list_member_hook<> variable_set_hook_;
@@ -344,13 +344,13 @@ public:
 
   std::vector<Element> cnsts_;
 
-  // sharing_weight: variable's impact on the resource during the sharing
+  // sharing_penalty: variable's impact on the resource during the sharing
   //   if == 0, the variable is not considered by LMM
   //   on CPU, actions with N threads have a sharing of N
-  //   on network, the actions with higher latency have a lesser sharing_weight
-  double sharing_weight_;
+  //   on network, the actions with higher latency have a lesser sharing_penalty
+  double sharing_penalty_;
 
-  double staged_weight_; /* If non-zero, variable is staged for addition as soon as maxconcurrency constraints will be
+  double staged_penalty_; /* If non-zero, variable is staged for addition as soon as maxconcurrency constraints will be
                             met */
   double bound_;
   double value_;
@@ -428,12 +428,8 @@ public:
   /** @brief Update the bound of a variable */
   void update_variable_bound(Variable * var, double bound);
 
-  /**
-   * @brief Update the weight of a variable
-   * @param var A variable
-   * @param weight The new weight of the variable
-   */
-  void update_variable_weight(Variable * var, double weight);
+  /** @brief Update the sharing penalty of a variable */
+  void update_variable_penalty(Variable* var, double penalty);
 
   /** @brief Update a constraint bound */
   void update_constraint_bound(Constraint * cnst, double bound);
index 871842d..e5688bf 100644 (file)
@@ -125,7 +125,7 @@ void Action::set_sharing_penalty(double sharing_penalty)
 {
   XBT_IN("(%p,%g)", this, sharing_penalty);
   sharing_penalty_ = sharing_penalty;
-  get_model()->get_maxmin_system()->update_variable_weight(get_variable(), sharing_penalty);
+  get_model()->get_maxmin_system()->update_variable_penalty(get_variable(), sharing_penalty);
 
   if (get_model()->get_update_algorithm() == Model::UpdateAlgo::LAZY)
     get_model()->get_action_heap().remove(this);
@@ -156,7 +156,7 @@ void Action::suspend()
 {
   XBT_IN("(%p)", this);
   if (suspended_ != SuspendStates::SLEEPING) {
-    get_model()->get_maxmin_system()->update_variable_weight(get_variable(), 0.0);
+    get_model()->get_maxmin_system()->update_variable_penalty(get_variable(), 0.0);
     if (get_model()->get_update_algorithm() == Model::UpdateAlgo::LAZY) {
       get_model()->get_action_heap().remove(this);
       if (state_set_ == get_model()->get_started_action_set() && sharing_penalty_ > 0) {
@@ -173,7 +173,7 @@ void Action::resume()
 {
   XBT_IN("(%p)", this);
   if (suspended_ != SuspendStates::SLEEPING) {
-    get_model()->get_maxmin_system()->update_variable_weight(get_variable(), get_sharing_penalty());
+    get_model()->get_maxmin_system()->update_variable_penalty(get_variable(), get_sharing_penalty());
     suspended_ = SuspendStates::RUNNING;
     if (get_model()->get_update_algorithm() == Model::UpdateAlgo::LAZY)
       get_model()->get_action_heap().remove(this);
index 18fc64d..d11dd87 100644 (file)
@@ -188,7 +188,7 @@ CpuAction* CpuCas01::sleep(double duration)
   if (duration == NO_MAX_DURATION)
     action->set_state(Action::State::IGNORED);
 
-  get_model()->get_maxmin_system()->update_variable_weight(action->get_variable(), 0.0);
+  get_model()->get_maxmin_system()->update_variable_penalty(action->get_variable(), 0.0);
   if (get_model()->get_update_algorithm() == Model::UpdateAlgo::LAZY) { // remove action from the heap
     get_model()->get_action_heap().remove(action);
     // this is necessary for a variable with weight 0 since such variables are ignored in lmm and we need to set its
index 76d5691..caca3f5 100644 (file)
@@ -43,7 +43,7 @@ void CpuModel::update_actions_state_full(double /*now*/, double delta)
     action.update_remains(action.get_variable()->get_value() * delta);
     action.update_max_duration(delta);
 
-    if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_weight() > 0)) ||
+    if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_penalty() > 0)) ||
         ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
       action.finish(Action::State::FINISHED);
     }
index a876c53..bf98103 100644 (file)
@@ -105,7 +105,7 @@ void NetworkCm02Model::update_actions_state_lazy(double now, double /*delta*/)
     // if I am wearing a latency hat
     if (action->get_type() == ActionHeap::Type::latency) {
       XBT_DEBUG("Latency paid for action %p. Activating", action);
-      get_maxmin_system()->update_variable_weight(action->get_variable(), action->weight_);
+      get_maxmin_system()->update_variable_penalty(action->get_variable(), action->sharing_penalty_);
       get_action_heap().remove(action);
       action->set_last_update();
 
@@ -136,7 +136,7 @@ void NetworkCm02Model::update_actions_state_full(double /*now*/, double delta)
         action.latency_ = 0.0;
       }
       if (action.latency_ <= 0.0 && not action.is_suspended())
-        get_maxmin_system()->update_variable_weight(action.get_variable(), action.weight_);
+        get_maxmin_system()->update_variable_penalty(action.get_variable(), action.sharing_penalty_);
     }
 
     if (not action.get_variable()->get_number_of_constraint()) {
@@ -150,7 +150,7 @@ void NetworkCm02Model::update_actions_state_full(double /*now*/, double delta)
     if (action.get_max_duration() != NO_MAX_DURATION)
       action.update_max_duration(delta);
 
-    if (((action.get_remains() <= 0) && (action.get_variable()->get_weight() > 0)) ||
+    if (((action.get_remains() <= 0) && (action.get_variable()->get_penalty() > 0)) ||
         ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
       action.finish(Action::State::FINISHED);
     }
@@ -180,7 +180,7 @@ Action* NetworkCm02Model::communicate(s4u::Host* src, s4u::Host* dst, double siz
   }
 
   NetworkCm02Action *action = new NetworkCm02Action(this, size, failed);
-  action->weight_ = latency;
+  action->sharing_penalty_  = latency;
   action->latency_ = latency;
   action->rate_ = rate;
   if (get_update_algorithm() == Model::UpdateAlgo::LAZY) {
@@ -188,8 +188,8 @@ Action* NetworkCm02Model::communicate(s4u::Host* src, s4u::Host* dst, double siz
   }
 
   if (sg_weight_S_parameter > 0) {
-    action->weight_ =
-        std::accumulate(route.begin(), route.end(), action->weight_, [](double total, LinkImpl* const& link) {
+    action->sharing_penalty_ =
+        std::accumulate(route.begin(), route.end(), action->sharing_penalty_, [](double total, LinkImpl* const& link) {
           return total + sg_weight_S_parameter / link->get_bandwidth();
         });
   }
@@ -323,9 +323,9 @@ void NetworkCm02Link::set_bandwidth(double value)
     int numelem                  = 0;
     while ((var = get_constraint()->get_variable_safe(&elem, &nextelem, &numelem))) {
       NetworkCm02Action* action = static_cast<NetworkCm02Action*>(var->get_id());
-      action->weight_ += delta;
+      action->sharing_penalty_ += delta;
       if (not action->is_suspended())
-        get_model()->get_maxmin_system()->update_variable_weight(action->get_variable(), action->weight_);
+        get_model()->get_maxmin_system()->update_variable_penalty(action->get_variable(), action->sharing_penalty_);
     }
   }
 }
@@ -343,7 +343,7 @@ void NetworkCm02Link::set_latency(double value)
   while ((var = get_constraint()->get_variable_safe(&elem, &nextelem, &numelem))) {
     NetworkCm02Action* action = static_cast<NetworkCm02Action*>(var->get_id());
     action->lat_current_ += delta;
-    action->weight_ += delta;
+    action->sharing_penalty_ += delta;
     if (action->rate_ < 0)
       get_model()->get_maxmin_system()->update_variable_bound(action->get_variable(), NetworkModel::cfg_tcp_gamma /
                                                                                           (2.0 * action->lat_current_));
@@ -358,7 +358,7 @@ void NetworkCm02Link::set_latency(double value)
       }
     }
     if (not action->is_suspended())
-      get_model()->get_maxmin_system()->update_variable_weight(action->get_variable(), action->weight_);
+      get_model()->get_maxmin_system()->update_variable_penalty(action->get_variable(), action->sharing_penalty_);
   }
 }
 
@@ -383,7 +383,7 @@ void NetworkCm02Action::update_remains_lazy(double now)
 
   update_max_duration(delta);
 
-  if ((get_remains_no_update() <= 0 && (get_variable()->get_weight() > 0)) ||
+  if ((get_remains_no_update() <= 0 && (get_variable()->get_penalty() > 0)) ||
       ((get_max_duration() != NO_MAX_DURATION) && (get_max_duration() <= 0))) {
     finish(Action::State::FINISHED);
     get_model()->get_action_heap().remove(this);
index c92e3d6..79103fd 100644 (file)
@@ -194,7 +194,7 @@ public:
 
   double latency_    = {};
   double lat_current_ = {};
-  double weight_     = {};
+  double sharing_penalty_ = {};
   double rate_       = {};
 };
 } // namespace resource
index b31f4de..17dca14 100644 (file)
@@ -93,7 +93,7 @@ void HostL07Model::update_actions_state(double /*now*/, double delta)
       }
       if ((action.latency_ <= 0.0) && (action.is_suspended() == 0)) {
         action.updateBound();
-        get_maxmin_system()->update_variable_weight(action.get_variable(), 1.0);
+        get_maxmin_system()->update_variable_penalty(action.get_variable(), 1.0);
         action.set_last_update();
       }
     }
@@ -110,7 +110,7 @@ void HostL07Model::update_actions_state(double /*now*/, double delta)
      * If it's not done, it may have failed.
      */
 
-    if (((action.get_remains() <= 0) && (action.get_variable()->get_weight() > 0)) ||
+    if (((action.get_remains() <= 0) && (action.get_variable()->get_penalty() > 0)) ||
         ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
       action.finish(kernel::resource::Action::State::FINISHED);
       continue;
@@ -180,7 +180,7 @@ L07Action::L07Action(kernel::resource::Model* model, const std::vector<s4u::Host
       model->get_maxmin_system()->variable_new(this, 1.0, (rate > 0 ? rate : -1.0), host_list.size() + link_nb));
 
   if (latency_ > 0)
-    model->get_maxmin_system()->update_variable_weight(get_variable(), 0.0);
+    model->get_maxmin_system()->update_variable_penalty(get_variable(), 0.0);
 
   /* Expand it for the CPUs even if there is nothing to compute, to make sure that it gets expended even if there is no
    * communication either */
@@ -273,7 +273,7 @@ kernel::resource::CpuAction* CpuL07::sleep(double duration)
   L07Action *action = static_cast<L07Action*>(execution_start(1.0));
   action->set_max_duration(duration);
   action->set_suspend_state(kernel::resource::Action::SuspendStates::SLEEPING);
-  get_model()->get_maxmin_system()->update_variable_weight(action->get_variable(), 0.0);
+  get_model()->get_maxmin_system()->update_variable_penalty(action->get_variable(), 0.0);
 
   return action;
 }
index 6704150..ecf5544 100644 (file)
@@ -79,7 +79,7 @@ void StorageN11Model::update_actions_state(double /*now*/, double delta)
     action.update_remains(lrint(action.get_variable()->get_value() * delta));
     action.update_max_duration(delta);
 
-    if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_weight() > 0)) ||
+    if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_penalty() > 0)) ||
         ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
       action.finish(Action::State::FINISHED);
     }
@@ -147,7 +147,7 @@ void StorageN11Action::suspend()
 {
   XBT_IN("(%p)", this);
   if (is_running()) {
-    get_model()->get_maxmin_system()->update_variable_weight(get_variable(), 0.0);
+    get_model()->get_maxmin_system()->update_variable_penalty(get_variable(), 0.0);
     set_suspend_state(Action::SuspendStates::SUSPENDED);
   }
   XBT_OUT();
index 95644ca..8e9f518 100644 (file)
@@ -103,10 +103,10 @@ static void test1()
   lmm::Variable* R_2     = Sys->variable_new(nullptr, 1.0, -1.0, 1);
   lmm::Variable* R_3     = Sys->variable_new(nullptr, 1.0, -1.0, 1);
 
-  Sys->update_variable_weight(R_1_2_3, 1.0);
-  Sys->update_variable_weight(R_1, 1.0);
-  Sys->update_variable_weight(R_2, 1.0);
-  Sys->update_variable_weight(R_3, 1.0);
+  Sys->update_variable_penalty(R_1_2_3, 1.0);
+  Sys->update_variable_penalty(R_1, 1.0);
+  Sys->update_variable_penalty(R_2, 1.0);
+  Sys->update_variable_penalty(R_3, 1.0);
 
   Sys->expand(L1, R_1_2_3, 1.0);
   Sys->expand(L2, R_1_2_3, 1.0);
@@ -140,8 +140,8 @@ static void test2()
   lmm::Variable* T1 = Sys->variable_new(nullptr, 1.0, -1.0, 1);
   lmm::Variable* T2 = Sys->variable_new(nullptr, 1.0, -1.0, 1);
 
-  Sys->update_variable_weight(T1, 1.0);
-  Sys->update_variable_weight(T2, 1.0);
+  Sys->update_variable_penalty(T1, 1.0);
+  Sys->update_variable_penalty(T2, 1.0);
 
   Sys->expand(CPU1, T1, 1.0);
   Sys->expand(CPU2, T2, 1.0);
@@ -204,7 +204,7 @@ static void test3()
   lmm::Variable** tmp_var = new lmm::Variable*[16];
   for (int j = 0; j < 16; j++) {
     tmp_var[j] = Sys->variable_new(nullptr, 1.0, -1.0, 15);
-    Sys->update_variable_weight(tmp_var[j], 1.0);
+    Sys->update_variable_penalty(tmp_var[j], 1.0);
   }
 
   /* Link constraints and variables */
index a7f2d7f..ff97eee 100644 (file)
@@ -106,176 +106,176 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '21' usage: 8.493506 remaining: 6.673327 concurrency: 4<=4<=9
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '3' usage: 10.696304 remaining: 5.434565 concurrency: 5<=5<=40
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '34' usage: 7.922577 remaining: 1.878122 concurrency: 3<=3<=-1
-> [0.000000]: [surf_maxmin/DEBUG] var=10, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=12, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=14, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=17, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=18, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=20, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=21, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=33, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=59, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=61, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=86, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=100, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004363, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=10, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=12, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=14, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=17, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=18, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=20, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=21, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=33, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=59, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=61, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=86, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=100, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004363, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (10) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(10).weight: 1.000000, Var(10).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(10).penalty: 1.000000, Var(10).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (12) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(12).weight: 1.000000, Var(12).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(12).penalty: 1.000000, Var(12).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (14) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(14).weight: 1.000000, Var(14).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(14).penalty: 1.000000, Var(14).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (17) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(17).weight: 1.000000, Var(17).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(17).penalty: 1.000000, Var(17).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (18) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(18).weight: 1.000000, Var(18).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(18).penalty: 1.000000, Var(18).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (20) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(20).weight: 1.000000, Var(20).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(20).penalty: 1.000000, Var(20).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (21) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(21).weight: 1.000000, Var(21).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(21).penalty: 1.000000, Var(21).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (33) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(33).weight: 1.000000, Var(33).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(33).penalty: 1.000000, Var(33).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (59) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(59).weight: 1.000000, Var(59).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(59).penalty: 1.000000, Var(59).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (61) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(61).weight: 1.000000, Var(61).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(61).penalty: 1.000000, Var(61).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (86) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(86).weight: 1.000000, Var(86).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(86).penalty: 1.000000, Var(86).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (100) value to 0.004363
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(100).weight: 1.000000, Var(100).value: 0.004363 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004363, Var(100).penalty: 1.000000, Var(100).value: 0.004363 
 > [0.000000]: [surf_maxmin/DEBUG] index: 86     cnst_light_num: 100     || usage: 0.000000 remaining: 0.000000 bound: 0.089910  
-> [0.000000]: [surf_maxmin/DEBUG] var=2, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=3, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=19, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=24, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=29, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=31, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=35, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=65, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=66, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008030, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=2, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=3, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=19, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=24, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=29, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=31, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=35, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=65, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=66, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008030, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (2) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(2).weight: 1.000000, Var(2).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(2).penalty: 1.000000, Var(2).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (3) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(3).weight: 1.000000, Var(3).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(3).penalty: 1.000000, Var(3).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (19) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(19).weight: 1.000000, Var(19).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(19).penalty: 1.000000, Var(19).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (24) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(24).weight: 1.000000, Var(24).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(24).penalty: 1.000000, Var(24).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (29) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(29).weight: 1.000000, Var(29).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(29).penalty: 1.000000, Var(29).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (31) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(31).weight: 1.000000, Var(31).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(31).penalty: 1.000000, Var(31).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (35) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(35).weight: 1.000000, Var(35).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(35).penalty: 1.000000, Var(35).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (65) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(65).weight: 1.000000, Var(65).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(65).penalty: 1.000000, Var(65).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (66) value to 0.008030
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(66).weight: 1.000000, Var(66).value: 0.008030 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008030, Var(66).penalty: 1.000000, Var(66).value: 0.008030 
 > [0.000000]: [surf_maxmin/DEBUG] index: 33     cnst_light_num: 99      || usage: 0.000000 remaining: 0.000000 bound: 0.139860  
-> [0.000000]: [surf_maxmin/DEBUG] var=5, var.bound=-1.000000, var.weight=1.000000, min_usage=0.021367, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=13, var.bound=-1.000000, var.weight=1.000000, min_usage=0.021367, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=36, var.bound=-1.000000, var.weight=1.000000, min_usage=0.021367, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=39, var.bound=-1.000000, var.weight=1.000000, min_usage=0.021367, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=42, var.bound=-1.000000, var.weight=1.000000, min_usage=0.021367, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=57, var.bound=-1.000000, var.weight=1.000000, min_usage=0.021367, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=5, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.021367, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=13, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.021367, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=36, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.021367, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=39, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.021367, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=42, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.021367, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=57, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.021367, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (5) value to 0.021367
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(5).weight: 1.000000, Var(5).value: 0.021367 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(5).penalty: 1.000000, Var(5).value: 0.021367 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (13) value to 0.021367
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(13).weight: 1.000000, Var(13).value: 0.021367 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(13).penalty: 1.000000, Var(13).value: 0.021367 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (36) value to 0.021367
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(36).weight: 1.000000, Var(36).value: 0.021367 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(36).penalty: 1.000000, Var(36).value: 0.021367 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (39) value to 0.021367
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(39).weight: 1.000000, Var(39).value: 0.021367 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(39).penalty: 1.000000, Var(39).value: 0.021367 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (42) value to 0.021367
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(42).weight: 1.000000, Var(42).value: 0.021367 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(42).penalty: 1.000000, Var(42).value: 0.021367 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (57) value to 0.021367
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(57).weight: 1.000000, Var(57).value: 0.021367 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.021367, Var(57).penalty: 1.000000, Var(57).value: 0.021367 
 > [0.000000]: [surf_maxmin/DEBUG] index: 30     cnst_light_num: 98      || usage: 0.000000 remaining: 0.000000 bound: 0.239760  
-> [0.000000]: [surf_maxmin/DEBUG] var=7, var.bound=-1.000000, var.weight=1.000000, min_usage=0.111522, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=9, var.bound=-1.000000, var.weight=1.000000, min_usage=0.111522, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=25, var.bound=-1.000000, var.weight=1.000000, min_usage=0.111522, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=7, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.111522, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=9, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.111522, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=25, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.111522, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (7) value to 0.111522
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.111522, Var(7).weight: 1.000000, Var(7).value: 0.111522 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.111522, Var(7).penalty: 1.000000, Var(7).value: 0.111522 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (9) value to 0.111522
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.111522, Var(9).weight: 1.000000, Var(9).value: 0.111522 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.111522, Var(9).penalty: 1.000000, Var(9).value: 0.111522 
 > [0.000000]: [surf_maxmin/DEBUG] index: 43     cnst_light_num: 97      || usage: 0.000000 remaining: 6.351599 bound: 6.573427  
 > [0.000000]: [surf_maxmin/DEBUG] index: 35     cnst_light_num: 96      || usage: 0.000000 remaining: 6.501325 bound: 6.783217  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (25) value to 0.111522
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.111522, Var(25).weight: 1.000000, Var(25).value: 0.111522 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.111522, Var(25).penalty: 1.000000, Var(25).value: 0.111522 
 > [0.000000]: [surf_maxmin/DEBUG] index: 64     cnst_light_num: 95      || usage: 0.000000 remaining: 0.000000 bound: 0.419580  
 > [0.000000]: [surf_maxmin/DEBUG] index: 37     cnst_light_num: 94      || usage: 0.000000 remaining: 5.229520 bound: 5.464535  
-> [0.000000]: [surf_maxmin/DEBUG] var=11, var.bound=-1.000000, var.weight=1.000000, min_usage=0.114197, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=60, var.bound=-1.000000, var.weight=1.000000, min_usage=0.114197, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=94, var.bound=-1.000000, var.weight=1.000000, min_usage=0.114197, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=11, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.114197, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=60, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.114197, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=94, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.114197, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (11) value to 0.114197
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.114197, Var(11).weight: 1.000000, Var(11).value: 0.114197 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.114197, Var(11).penalty: 1.000000, Var(11).value: 0.114197 
 > [0.000000]: [surf_maxmin/DEBUG] index: 78     cnst_light_num: 93      || usage: 0.000000 remaining: 3.639923 bound: 3.946054  
 > [0.000000]: [surf_maxmin/DEBUG] index: 89     cnst_light_num: 92      || usage: 0.000000 remaining: 1.712163 bound: 1.928072  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (60) value to 0.114197
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.114197, Var(60).weight: 1.000000, Var(60).value: 0.114197 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.114197, Var(60).penalty: 1.000000, Var(60).value: 0.114197 
 > [0.000000]: [surf_maxmin/DEBUG] index: 77     cnst_light_num: 91      || usage: 0.000000 remaining: 1.857045 bound: 2.437562  
 > [0.000000]: [surf_maxmin/DEBUG] index: 30     cnst_light_num: 90      || usage: 0.000000 remaining: 6.367133 bound: 6.673327  
 > [0.000000]: [surf_maxmin/DEBUG] index: 39     cnst_light_num: 89      || usage: 0.000000 remaining: 6.894919 bound: 7.282717  
 > [0.000000]: [surf_maxmin/DEBUG] index: 45     cnst_light_num: 88      || usage: 0.000000 remaining: 4.984682 bound: 5.784216  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (94) value to 0.114197
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.114197, Var(94).weight: 1.000000, Var(94).value: 0.114197 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.114197, Var(94).penalty: 1.000000, Var(94).value: 0.114197 
 > [0.000000]: [surf_maxmin/DEBUG] index: 30     cnst_light_num: 87      || usage: 0.000000 remaining: 0.000000 bound: 0.909091  
 > [0.000000]: [surf_maxmin/DEBUG] index: 35     cnst_light_num: 86      || usage: 0.000000 remaining: 2.100813 bound: 2.467532  
 > [0.000000]: [surf_maxmin/DEBUG] index: 39     cnst_light_num: 85      || usage: 0.000000 remaining: 8.371246 bound: 8.641359  
 > [0.000000]: [surf_maxmin/DEBUG] index: 30     cnst_light_num: 84      || usage: 0.000000 remaining: 1.719694 bound: 1.878122  
 > [0.000000]: [surf_maxmin/DEBUG] index: 78     cnst_light_num: 83      || usage: 0.000000 remaining: 2.160269 bound: 2.597403  
 > [0.000000]: [surf_maxmin/DEBUG] index: 67     cnst_light_num: 82      || usage: 0.000000 remaining: 2.175342 bound: 2.557443  
-> [0.000000]: [surf_maxmin/DEBUG] var=6, var.bound=-1.000000, var.weight=1.000000, min_usage=0.220110, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=22, var.bound=-1.000000, var.weight=1.000000, min_usage=0.220110, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=6, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.220110, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=22, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.220110, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (6) value to 0.220110
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.220110, Var(6).weight: 1.000000, Var(6).value: 0.220110 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.220110, Var(6).penalty: 1.000000, Var(6).value: 0.220110 
 > [0.000000]: [surf_maxmin/DEBUG] index: 69     cnst_light_num: 81      || usage: 0.000000 remaining: 5.566744 bound: 6.223776  
 > [0.000000]: [surf_maxmin/DEBUG] index: 71     cnst_light_num: 80      || usage: 0.000000 remaining: 8.565684 bound: 9.140859  
 > [0.000000]: [surf_maxmin/DEBUG] index: 73     cnst_light_num: 79      || usage: 0.000000 remaining: 0.742072 bound: 1.418581  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (22) value to 0.220110
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.220110, Var(22).weight: 1.000000, Var(22).value: 0.220110 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.220110, Var(22).penalty: 1.000000, Var(22).value: 0.220110 
 > [0.000000]: [surf_maxmin/DEBUG] index: 64     cnst_light_num: 78      || usage: 0.000000 remaining: 0.265229 bound: 0.819181  
 > [0.000000]: [surf_maxmin/DEBUG] index: 29     cnst_light_num: 77      || usage: 0.000000 remaining: 0.000000 bound: 1.078921  
 > [0.000000]: [surf_maxmin/DEBUG] index: 64     cnst_light_num: 76      || usage: 0.000000 remaining: 7.994916 bound: 8.301698  
 > [0.000000]: [surf_maxmin/DEBUG] index: 36     cnst_light_num: 75      || usage: 0.000000 remaining: 0.153476 bound: 1.148851  
-> [0.000000]: [surf_maxmin/DEBUG] var=28, var.bound=-1.000000, var.weight=1.000000, min_usage=0.263657, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=28, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.263657, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (28) value to 0.263657
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.263657, Var(28).weight: 1.000000, Var(28).value: 0.263657 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.263657, Var(28).penalty: 1.000000, Var(28).value: 0.263657 
 > [0.000000]: [surf_maxmin/DEBUG] index: 29     cnst_light_num: 74      || usage: 0.000000 remaining: 8.806164 bound: 9.620380  
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 73      || usage: 0.000000 remaining: 8.089858 bound: 9.280719  
 > [0.000000]: [surf_maxmin/DEBUG] index: 33     cnst_light_num: 72      || usage: 0.000000 remaining: 4.844821 bound: 5.434565  
@@ -283,11 +283,11 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 70      || usage: 0.000000 remaining: 4.360482 bound: 5.334665  
 > [0.000000]: [surf_maxmin/DEBUG] index: 25     cnst_light_num: 69      || usage: 0.000000 remaining: 0.000000 bound: 0.949051  
 > [0.000000]: [surf_maxmin/DEBUG] index: 37     cnst_light_num: 68      || usage: 0.000000 remaining: 5.851198 bound: 6.473526  
-> [0.000000]: [surf_maxmin/DEBUG] var=1, var.bound=-1.000000, var.weight=1.000000, min_usage=0.281538, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=15, var.bound=-1.000000, var.weight=1.000000, min_usage=0.281538, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=1, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.281538, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=15, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.281538, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (1) value to 0.281538
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.281538, Var(1).weight: 1.000000, Var(1).value: 0.281538 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.281538, Var(1).penalty: 1.000000, Var(1).value: 0.281538 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 67      || usage: 0.000000 remaining: 2.572545 bound: 3.166833  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 66      || usage: 0.000000 remaining: 2.546729 bound: 3.766234  
 > [0.000000]: [surf_maxmin/DEBUG] index: 4      cnst_light_num: 65      || usage: 0.000000 remaining: 8.853024 bound: 9.710290  
@@ -298,7 +298,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 21     cnst_light_num: 60      || usage: 0.000000 remaining: 1.765549 bound: 2.777223  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (15) value to 0.281538
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.281538, Var(15).weight: 1.000000, Var(15).value: 0.281538 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.281538, Var(15).penalty: 1.000000, Var(15).value: 0.281538 
 > [0.000000]: [surf_maxmin/DEBUG] index: 24     cnst_light_num: 59      || usage: 0.000000 remaining: 6.743340 bound: 9.040959  
 > [0.000000]: [surf_maxmin/DEBUG] index: 28     cnst_light_num: 58      || usage: 0.000000 remaining: 3.193824 bound: 3.966034  
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 57      || usage: 0.000000 remaining: 0.152448 bound: 1.528472  
@@ -306,11 +306,11 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 41     cnst_light_num: 55      || usage: 0.000000 remaining: 1.804698 bound: 3.346653  
 > [0.000000]: [surf_maxmin/DEBUG] index: 14     cnst_light_num: 54      || usage: 0.000000 remaining: 7.352391 bound: 9.780220  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 53      || usage: 0.000000 remaining: 4.865037 bound: 6.283716  
-> [0.000000]: [surf_maxmin/DEBUG] var=8, var.bound=-1.000000, var.weight=1.000000, min_usage=0.293237, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=16, var.bound=-1.000000, var.weight=1.000000, min_usage=0.293237, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=8, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.293237, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=16, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.293237, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (8) value to 0.293237
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.293237, Var(8).weight: 1.000000, Var(8).value: 0.293237 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.293237, Var(8).penalty: 1.000000, Var(8).value: 0.293237 
 > [0.000000]: [surf_maxmin/DEBUG] index: 37     cnst_light_num: 52      || usage: 0.000000 remaining: 8.183363 bound: 9.610390  
 > [0.000000]: [surf_maxmin/DEBUG] index: 29     cnst_light_num: 51      || usage: 0.000000 remaining: 5.407458 bound: 6.343656  
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 50      || usage: 0.000000 remaining: 8.934859 bound: 9.760240  
@@ -330,7 +330,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 36      || usage: 0.000000 remaining: 5.604287 bound: 7.692308  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (16) value to 0.293237
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.293237, Var(16).weight: 1.000000, Var(16).value: 0.293237 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.293237, Var(16).penalty: 1.000000, Var(16).value: 0.293237 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 35      || usage: 0.000000 remaining: 0.000000 bound: 1.948052  
 > [0.000000]: [surf_maxmin/DEBUG] index: 26     cnst_light_num: 34      || usage: 0.000000 remaining: 5.197662 bound: 5.894106  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 33      || usage: 0.000000 remaining: 1.441086 bound: 3.006993  
@@ -345,10 +345,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 24      || usage: 0.000000 remaining: 2.217343 bound: 4.375624  
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 23      || usage: 0.000000 remaining: 5.049686 bound: 5.934066  
 > [0.000000]: [surf_maxmin/DEBUG] index: 16     cnst_light_num: 22      || usage: 0.000000 remaining: 5.574190 bound: 7.082917  
-> [0.000000]: [surf_maxmin/DEBUG] var=4, var.bound=-1.000000, var.weight=1.000000, min_usage=0.319893, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=4, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.319893, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (4) value to 0.319893
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.319893, Var(4).weight: 1.000000, Var(4).value: 0.319893 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.319893, Var(4).penalty: 1.000000, Var(4).value: 0.319893 
 > [0.000000]: [surf_maxmin/DEBUG] index: 20     cnst_light_num: 21      || usage: 0.000000 remaining: 4.569620 bound: 6.783217  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 20      || usage: 0.000000 remaining: 3.597397 bound: 4.915085  
 > [0.000000]: [surf_maxmin/DEBUG] index: 10     cnst_light_num: 19      || usage: 0.000000 remaining: 4.238922 bound: 6.713287  
@@ -675,166 +675,166 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '131' usage: 10.369630 remaining: 1.608392 concurrency: 6<=7<=40
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '156' usage: 10.795205 remaining: 5.774226 concurrency: 6<=7<=9
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '103' usage: 11.283716 remaining: 1.088911 concurrency: 7<=8<=-1
-> [0.000000]: [surf_maxmin/DEBUG] var=101, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=110, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=125, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=130, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=131, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=132, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=136, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=138, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=139, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=153, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007926, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=101, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=110, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=125, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=130, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=131, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=132, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=136, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=138, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=139, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=153, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007926, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (101) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(101).weight: 1.000000, Var(101).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(101).penalty: 1.000000, Var(101).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (110) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(110).weight: 1.000000, Var(110).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(110).penalty: 1.000000, Var(110).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (125) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(125).weight: 1.000000, Var(125).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(125).penalty: 1.000000, Var(125).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (130) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(130).weight: 1.000000, Var(130).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(130).penalty: 1.000000, Var(130).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (131) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(131).weight: 1.000000, Var(131).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(131).penalty: 1.000000, Var(131).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (132) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(132).weight: 1.000000, Var(132).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(132).penalty: 1.000000, Var(132).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (136) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(136).weight: 1.000000, Var(136).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(136).penalty: 1.000000, Var(136).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (138) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(138).weight: 1.000000, Var(138).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(138).penalty: 1.000000, Var(138).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (139) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(139).weight: 1.000000, Var(139).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(139).penalty: 1.000000, Var(139).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (153) value to 0.007926
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(153).weight: 1.000000, Var(153).value: 0.007926 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007926, Var(153).penalty: 1.000000, Var(153).value: 0.007926 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 100     || usage: 0.000000 remaining: 0.000000 bound: 0.119880  
-> [0.000000]: [surf_maxmin/DEBUG] var=102, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=103, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=104, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=105, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=106, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=112, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=127, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=129, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008159, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=102, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=103, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=104, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=105, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=106, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=112, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=127, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=129, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008159, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (102) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(102).weight: 1.000000, Var(102).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(102).penalty: 1.000000, Var(102).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (103) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(103).weight: 1.000000, Var(103).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(103).penalty: 1.000000, Var(103).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (104) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(104).weight: 1.000000, Var(104).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(104).penalty: 1.000000, Var(104).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (105) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(105).weight: 1.000000, Var(105).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(105).penalty: 1.000000, Var(105).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (106) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(106).weight: 1.000000, Var(106).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(106).penalty: 1.000000, Var(106).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (112) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(112).weight: 1.000000, Var(112).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(112).penalty: 1.000000, Var(112).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (127) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(127).weight: 1.000000, Var(127).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(127).penalty: 1.000000, Var(127).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (129) value to 0.008159
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(129).weight: 1.000000, Var(129).value: 0.008159 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008159, Var(129).penalty: 1.000000, Var(129).value: 0.008159 
 > [0.000000]: [surf_maxmin/DEBUG] index: 65     cnst_light_num: 99      || usage: 0.000000 remaining: 2.401264 bound: 2.457542  
 > [0.000000]: [surf_maxmin/DEBUG] index: 13     cnst_light_num: 98      || usage: 0.000000 remaining: 0.000000 bound: 0.159840  
-> [0.000000]: [surf_maxmin/DEBUG] var=108, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008523, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=114, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008523, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=116, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008523, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=121, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008523, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=141, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008523, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=144, var.bound=-1.000000, var.weight=1.000000, min_usage=0.008523, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=108, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008523, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=114, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008523, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=116, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008523, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=121, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008523, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=141, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008523, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=144, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.008523, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (108) value to 0.008523
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(108).weight: 1.000000, Var(108).value: 0.008523 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(108).penalty: 1.000000, Var(108).value: 0.008523 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (114) value to 0.008523
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(114).weight: 1.000000, Var(114).value: 0.008523 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(114).penalty: 1.000000, Var(114).value: 0.008523 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (116) value to 0.008523
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(116).weight: 1.000000, Var(116).value: 0.008523 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(116).penalty: 1.000000, Var(116).value: 0.008523 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (121) value to 0.008523
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(121).weight: 1.000000, Var(121).value: 0.008523 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(121).penalty: 1.000000, Var(121).value: 0.008523 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (141) value to 0.008523
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(141).weight: 1.000000, Var(141).value: 0.008523 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(141).penalty: 1.000000, Var(141).value: 0.008523 
 > [0.000000]: [surf_maxmin/DEBUG] index: 71     cnst_light_num: 97      || usage: 0.000000 remaining: 8.670797 bound: 8.741259  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (144) value to 0.008523
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(144).weight: 1.000000, Var(144).value: 0.008523 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.008523, Var(144).penalty: 1.000000, Var(144).value: 0.008523 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 96      || usage: 0.000000 remaining: 0.000000 bound: 0.149850  
 > [0.000000]: [surf_maxmin/DEBUG] index: 53     cnst_light_num: 95      || usage: 0.000000 remaining: 6.333684 bound: 6.373626  
-> [0.000000]: [surf_maxmin/DEBUG] var=117, var.bound=-1.000000, var.weight=1.000000, min_usage=0.016848, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=119, var.bound=-1.000000, var.weight=1.000000, min_usage=0.016848, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=181, var.bound=-1.000000, var.weight=1.000000, min_usage=0.016848, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=117, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.016848, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=119, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.016848, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=181, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.016848, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (117) value to 0.016848
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.016848, Var(117).weight: 1.000000, Var(117).value: 0.016848 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.016848, Var(117).penalty: 1.000000, Var(117).value: 0.016848 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (119) value to 0.016848
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.016848, Var(119).weight: 1.000000, Var(119).value: 0.016848 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.016848, Var(119).penalty: 1.000000, Var(119).value: 0.016848 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (181) value to 0.016848
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.016848, Var(181).weight: 1.000000, Var(181).value: 0.016848 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.016848, Var(181).penalty: 1.000000, Var(181).value: 0.016848 
 > [0.000000]: [surf_maxmin/DEBUG] index: 69     cnst_light_num: 94      || usage: 0.000000 remaining: 5.020334 bound: 5.094905  
 > [0.000000]: [surf_maxmin/DEBUG] index: 22     cnst_light_num: 93      || usage: 0.000000 remaining: 0.000000 bound: 0.149850  
-> [0.000000]: [surf_maxmin/DEBUG] var=115, var.bound=-1.000000, var.weight=1.000000, min_usage=0.017542, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=120, var.bound=-1.000000, var.weight=1.000000, min_usage=0.017542, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=122, var.bound=-1.000000, var.weight=1.000000, min_usage=0.017542, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=115, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.017542, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=120, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.017542, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=122, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.017542, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (115) value to 0.017542
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.017542, Var(115).weight: 1.000000, Var(115).value: 0.017542 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.017542, Var(115).penalty: 1.000000, Var(115).value: 0.017542 
 > [0.000000]: [surf_maxmin/DEBUG] index: 44     cnst_light_num: 92      || usage: 0.000000 remaining: 1.917360 bound: 2.027972  
 > [0.000000]: [surf_maxmin/DEBUG] index: 54     cnst_light_num: 91      || usage: 0.000000 remaining: 4.207907 bound: 4.305694  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (120) value to 0.017542
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.017542, Var(120).weight: 1.000000, Var(120).value: 0.017542 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.017542, Var(120).penalty: 1.000000, Var(120).value: 0.017542 
 > [0.000000]: [surf_maxmin/DEBUG] index: 74     cnst_light_num: 90      || usage: 0.000000 remaining: 2.741877 bound: 2.887113  
 > [0.000000]: [surf_maxmin/DEBUG] index: 28     cnst_light_num: 89      || usage: 0.000000 remaining: 7.135906 bound: 7.252747  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (122) value to 0.017542
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.017542, Var(122).weight: 1.000000, Var(122).value: 0.017542 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.017542, Var(122).penalty: 1.000000, Var(122).value: 0.017542 
 > [0.000000]: [surf_maxmin/DEBUG] index: 59     cnst_light_num: 88      || usage: 0.000000 remaining: 4.167871 bound: 4.315684  
 > [0.000000]: [surf_maxmin/DEBUG] index: 68     cnst_light_num: 87      || usage: 0.000000 remaining: 0.000000 bound: 0.249750  
-> [0.000000]: [surf_maxmin/DEBUG] var=109, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023470, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=111, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023470, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=118, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023470, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=109, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023470, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=111, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023470, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=118, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023470, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (109) value to 0.023470
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023470, Var(109).weight: 1.000000, Var(109).value: 0.023470 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023470, Var(109).penalty: 1.000000, Var(109).value: 0.023470 
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 86      || usage: 0.000000 remaining: 3.751087 bound: 3.896104  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (111) value to 0.023470
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023470, Var(111).weight: 1.000000, Var(111).value: 0.023470 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023470, Var(111).penalty: 1.000000, Var(111).value: 0.023470 
 > [0.000000]: [surf_maxmin/DEBUG] index: 54     cnst_light_num: 85      || usage: 0.000000 remaining: 1.804308 bound: 1.878122  
 > [0.000000]: [surf_maxmin/DEBUG] index: 69     cnst_light_num: 84      || usage: 0.000000 remaining: 8.730985 bound: 8.861139  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (118) value to 0.023470
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023470, Var(118).weight: 1.000000, Var(118).value: 0.023470 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023470, Var(118).penalty: 1.000000, Var(118).value: 0.023470 
 > [0.000000]: [surf_maxmin/DEBUG] index: 28     cnst_light_num: 83      || usage: 0.000000 remaining: 2.564810 bound: 2.737263  
 > [0.000000]: [surf_maxmin/DEBUG] index: 26     cnst_light_num: 82      || usage: 0.000000 remaining: 7.605992 bound: 7.722278  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 81      || usage: 0.000000 remaining: 0.000000 bound: 0.229770  
 > [0.000000]: [surf_maxmin/DEBUG] index: 66     cnst_light_num: 80      || usage: 0.000000 remaining: 6.046675 bound: 6.253746  
 > [0.000000]: [surf_maxmin/DEBUG] index: 62     cnst_light_num: 79      || usage: 0.000000 remaining: 7.487702 bound: 7.702298  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 78      || usage: 0.000000 remaining: 1.079910 bound: 1.168831  
-> [0.000000]: [surf_maxmin/DEBUG] var=113, var.bound=-1.000000, var.weight=1.000000, min_usage=0.052532, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=156, var.bound=-1.000000, var.weight=1.000000, min_usage=0.052532, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=113, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.052532, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=156, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.052532, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (113) value to 0.052532
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.052532, Var(113).weight: 1.000000, Var(113).value: 0.052532 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.052532, Var(113).penalty: 1.000000, Var(113).value: 0.052532 
 > [0.000000]: [surf_maxmin/DEBUG] index: 42     cnst_light_num: 77      || usage: 0.000000 remaining: 6.792157 bound: 7.062937  
 > [0.000000]: [surf_maxmin/DEBUG] index: 31     cnst_light_num: 76      || usage: 0.000000 remaining: 9.368723 bound: 9.540460  
 > [0.000000]: [surf_maxmin/DEBUG] index: 50     cnst_light_num: 75      || usage: 0.000000 remaining: 8.560864 bound: 8.751249  
@@ -843,7 +843,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 45     cnst_light_num: 72      || usage: 0.000000 remaining: 4.138470 bound: 4.365634  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (156) value to 0.052532
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.052532, Var(156).weight: 1.000000, Var(156).value: 0.052532 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.052532, Var(156).penalty: 1.000000, Var(156).value: 0.052532 
 > [0.000000]: [surf_maxmin/DEBUG] index: 20     cnst_light_num: 71      || usage: 0.000000 remaining: 5.229336 bound: 5.404595  
 > [0.000000]: [surf_maxmin/DEBUG] index: 52     cnst_light_num: 70      || usage: 0.000000 remaining: 9.576867 bound: 9.730270  
 > [0.000000]: [surf_maxmin/DEBUG] index: 40     cnst_light_num: 69      || usage: 0.000000 remaining: 0.000000 bound: 0.299700  
@@ -852,10 +852,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 65     cnst_light_num: 66      || usage: 0.000000 remaining: 5.550824 bound: 5.774226  
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 65      || usage: 0.000000 remaining: 6.938266 bound: 7.102897  
 > [0.000000]: [surf_maxmin/DEBUG] index: 23     cnst_light_num: 64      || usage: 0.000000 remaining: 3.985576 bound: 4.125874  
-> [0.000000]: [surf_maxmin/DEBUG] var=147, var.bound=-1.000000, var.weight=1.000000, min_usage=0.060227, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=147, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.060227, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (147) value to 0.060227
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.060227, Var(147).weight: 1.000000, Var(147).value: 0.060227 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.060227, Var(147).penalty: 1.000000, Var(147).value: 0.060227 
 > [0.000000]: [surf_maxmin/DEBUG] index: 60     cnst_light_num: 63      || usage: 0.000000 remaining: 0.790150 bound: 1.138861  
 > [0.000000]: [surf_maxmin/DEBUG] index: 57     cnst_light_num: 62      || usage: 0.000000 remaining: 1.626935 bound: 1.938062  
 > [0.000000]: [surf_maxmin/DEBUG] index: 59     cnst_light_num: 61      || usage: 0.000000 remaining: 1.881502 bound: 2.127872  
@@ -865,11 +865,11 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 57      || usage: 0.000000 remaining: 7.011837 bound: 7.362637  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 56      || usage: 0.000000 remaining: 0.000000 bound: 0.239760  
 > [0.000000]: [surf_maxmin/DEBUG] index: 36     cnst_light_num: 55      || usage: 0.000000 remaining: 1.363107 bound: 1.548452  
-> [0.000000]: [surf_maxmin/DEBUG] var=107, var.bound=-1.000000, var.weight=1.000000, min_usage=0.151955, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=124, var.bound=-1.000000, var.weight=1.000000, min_usage=0.151955, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=107, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.151955, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=124, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.151955, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (107) value to 0.151955
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.151955, Var(107).weight: 1.000000, Var(107).value: 0.151955 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.151955, Var(107).penalty: 1.000000, Var(107).value: 0.151955 
 > [0.000000]: [surf_maxmin/DEBUG] index: 47     cnst_light_num: 54      || usage: 0.000000 remaining: 5.898751 bound: 6.563437  
 > [0.000000]: [surf_maxmin/DEBUG] index: 34     cnst_light_num: 53      || usage: 0.000000 remaining: 8.764203 bound: 9.020979  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 52      || usage: 0.000000 remaining: 0.367055 bound: 0.569431  
@@ -881,7 +881,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 26     cnst_light_num: 46      || usage: 0.000000 remaining: 1.453623 bound: 1.828172  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (124) value to 0.151955
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.151955, Var(124).weight: 1.000000, Var(124).value: 0.151955 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.151955, Var(124).penalty: 1.000000, Var(124).value: 0.151955 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 45      || usage: 0.000000 remaining: 7.302255 bound: 7.932068  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 44      || usage: 0.000000 remaining: 7.271628 bound: 8.151848  
 > [0.000000]: [surf_maxmin/DEBUG] index: 17     cnst_light_num: 43      || usage: 0.000000 remaining: 8.011786 bound: 8.281718  
@@ -903,10 +903,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 27      || usage: 0.000000 remaining: 9.218764 bound: 9.880120  
 > [0.000000]: [surf_maxmin/DEBUG] index: 13     cnst_light_num: 26      || usage: 0.000000 remaining: 1.190898 bound: 1.608392  
 > [0.000000]: [surf_maxmin/DEBUG] index: 14     cnst_light_num: 25      || usage: 0.000000 remaining: 3.822706 bound: 4.185814  
-> [0.000000]: [surf_maxmin/DEBUG] var=143, var.bound=-1.000000, var.weight=1.000000, min_usage=0.162422, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=143, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.162422, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (143) value to 0.162422
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.162422, Var(143).weight: 1.000000, Var(143).value: 0.162422 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.162422, Var(143).penalty: 1.000000, Var(143).value: 0.162422 
 > [0.000000]: [surf_maxmin/DEBUG] index: 14     cnst_light_num: 24      || usage: 0.000000 remaining: 9.155216 bound: 9.790210  
 > [0.000000]: [surf_maxmin/DEBUG] index: 13     cnst_light_num: 23      || usage: 0.000000 remaining: 8.797972 bound: 9.480519  
 > [0.000000]: [surf_maxmin/DEBUG] index: 8      cnst_light_num: 22      || usage: 0.000000 remaining: 6.211834 bound: 6.843157  
@@ -1236,188 +1236,188 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '234' usage: 12.654845 remaining: 4.035964 concurrency: 6<=6<=24
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '272' usage: 19.035465 remaining: 1.598402 concurrency: 8<=9<=24
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '224' usage: 16.651349 remaining: 9.110889 concurrency: 10<=10<=10
-> [0.000000]: [surf_maxmin/DEBUG] var=204, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=205, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=208, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=209, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=217, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=220, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=221, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=222, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=223, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=240, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=259, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=272, var.bound=-1.000000, var.weight=1.000000, min_usage=0.004588, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=204, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=205, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=208, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=209, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=217, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=220, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=221, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=222, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=223, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=240, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=259, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=272, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.004588, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (204) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(204).weight: 1.000000, Var(204).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(204).penalty: 1.000000, Var(204).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (205) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(205).weight: 1.000000, Var(205).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(205).penalty: 1.000000, Var(205).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (208) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(208).weight: 1.000000, Var(208).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(208).penalty: 1.000000, Var(208).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (209) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(209).weight: 1.000000, Var(209).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(209).penalty: 1.000000, Var(209).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (217) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(217).weight: 1.000000, Var(217).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(217).penalty: 1.000000, Var(217).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (220) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(220).weight: 1.000000, Var(220).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(220).penalty: 1.000000, Var(220).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (221) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(221).weight: 1.000000, Var(221).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(221).penalty: 1.000000, Var(221).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (222) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(222).weight: 1.000000, Var(222).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(222).penalty: 1.000000, Var(222).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (223) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(223).weight: 1.000000, Var(223).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(223).penalty: 1.000000, Var(223).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (240) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(240).weight: 1.000000, Var(240).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(240).penalty: 1.000000, Var(240).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (259) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(259).weight: 1.000000, Var(259).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(259).penalty: 1.000000, Var(259).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (272) value to 0.004588
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(272).weight: 1.000000, Var(272).value: 0.004588 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.004588, Var(272).penalty: 1.000000, Var(272).value: 0.004588 
 > [0.000000]: [surf_maxmin/DEBUG] index: 57     cnst_light_num: 100     || usage: 0.000000 remaining: 0.000000 bound: 0.069930  
-> [0.000000]: [surf_maxmin/DEBUG] var=203, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=215, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=216, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=226, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=230, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=244, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=253, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=254, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011179, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=203, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=215, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=216, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=226, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=230, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=244, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=253, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=254, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011179, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (203) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(203).weight: 1.000000, Var(203).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(203).penalty: 1.000000, Var(203).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (215) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(215).weight: 1.000000, Var(215).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(215).penalty: 1.000000, Var(215).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (216) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(216).weight: 1.000000, Var(216).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(216).penalty: 1.000000, Var(216).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (226) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(226).weight: 1.000000, Var(226).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(226).penalty: 1.000000, Var(226).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (230) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(230).weight: 1.000000, Var(230).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(230).penalty: 1.000000, Var(230).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (244) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(244).weight: 1.000000, Var(244).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(244).penalty: 1.000000, Var(244).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (253) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(253).weight: 1.000000, Var(253).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(253).penalty: 1.000000, Var(253).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (254) value to 0.011179
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(254).weight: 1.000000, Var(254).value: 0.011179 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011179, Var(254).penalty: 1.000000, Var(254).value: 0.011179 
 > [0.000000]: [surf_maxmin/DEBUG] index: 41     cnst_light_num: 99      || usage: 0.000000 remaining: 0.000000 bound: 0.129870  
-> [0.000000]: [surf_maxmin/DEBUG] var=206, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=214, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=224, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=228, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=235, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=255, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=261, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011967, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=206, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=214, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=224, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=228, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=235, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=255, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=261, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011967, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (206) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(206).weight: 1.000000, Var(206).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(206).penalty: 1.000000, Var(206).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (214) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(214).weight: 1.000000, Var(214).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(214).penalty: 1.000000, Var(214).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (224) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(224).weight: 1.000000, Var(224).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(224).penalty: 1.000000, Var(224).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (228) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(228).weight: 1.000000, Var(228).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(228).penalty: 1.000000, Var(228).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (235) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(235).weight: 1.000000, Var(235).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(235).penalty: 1.000000, Var(235).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (255) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(255).weight: 1.000000, Var(255).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(255).penalty: 1.000000, Var(255).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (261) value to 0.011967
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(261).weight: 1.000000, Var(261).value: 0.011967 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011967, Var(261).penalty: 1.000000, Var(261).value: 0.011967 
 > [0.000000]: [surf_maxmin/DEBUG] index: 44     cnst_light_num: 98      || usage: 0.000000 remaining: 0.000000 bound: 0.209790  
-> [0.000000]: [surf_maxmin/DEBUG] var=210, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018751, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=218, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018751, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=219, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018751, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=245, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018751, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=210, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018751, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=218, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018751, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=219, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018751, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=245, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018751, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (210) value to 0.018751
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(210).weight: 1.000000, Var(210).value: 0.018751 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(210).penalty: 1.000000, Var(210).value: 0.018751 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (218) value to 0.018751
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(218).weight: 1.000000, Var(218).value: 0.018751 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(218).penalty: 1.000000, Var(218).value: 0.018751 
 > [0.000000]: [surf_maxmin/DEBUG] index: 63     cnst_light_num: 97      || usage: 0.000000 remaining: 0.578879 bound: 0.679321  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (219) value to 0.018751
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(219).weight: 1.000000, Var(219).value: 0.018751 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(219).penalty: 1.000000, Var(219).value: 0.018751 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (245) value to 0.018751
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(245).weight: 1.000000, Var(245).value: 0.018751 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018751, Var(245).penalty: 1.000000, Var(245).value: 0.018751 
 > [0.000000]: [surf_maxmin/DEBUG] index: 93     cnst_light_num: 96      || usage: 0.000000 remaining: 3.076350 bound: 3.146853  
 > [0.000000]: [surf_maxmin/DEBUG] index: 45     cnst_light_num: 95      || usage: 0.000000 remaining: 3.769672 bound: 3.896104  
 > [0.000000]: [surf_maxmin/DEBUG] index: 84     cnst_light_num: 94      || usage: 0.000000 remaining: 0.000000 bound: 0.219780  
-> [0.000000]: [surf_maxmin/DEBUG] var=212, var.bound=-1.000000, var.weight=1.000000, min_usage=0.024496, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=213, var.bound=-1.000000, var.weight=1.000000, min_usage=0.024496, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=247, var.bound=-1.000000, var.weight=1.000000, min_usage=0.024496, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=251, var.bound=-1.000000, var.weight=1.000000, min_usage=0.024496, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=270, var.bound=-1.000000, var.weight=1.000000, min_usage=0.024496, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=212, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.024496, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=213, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.024496, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=247, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.024496, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=251, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.024496, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=270, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.024496, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (212) value to 0.024496
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(212).weight: 1.000000, Var(212).value: 0.024496 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(212).penalty: 1.000000, Var(212).value: 0.024496 
 > [0.000000]: [surf_maxmin/DEBUG] index: 61     cnst_light_num: 93      || usage: 0.000000 remaining: 2.039851 bound: 2.127872  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (213) value to 0.024496
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(213).weight: 1.000000, Var(213).value: 0.024496 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(213).penalty: 1.000000, Var(213).value: 0.024496 
 > [0.000000]: [surf_maxmin/DEBUG] index: 44     cnst_light_num: 92      || usage: 0.000000 remaining: 3.878060 bound: 4.035964  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (247) value to 0.024496
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(247).weight: 1.000000, Var(247).value: 0.024496 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(247).penalty: 1.000000, Var(247).value: 0.024496 
 > [0.000000]: [surf_maxmin/DEBUG] index: 60     cnst_light_num: 91      || usage: 0.000000 remaining: 7.260437 bound: 7.472527  
 > [0.000000]: [surf_maxmin/DEBUG] index: 78     cnst_light_num: 90      || usage: 0.000000 remaining: 6.425400 bound: 6.613387  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (251) value to 0.024496
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(251).weight: 1.000000, Var(251).value: 0.024496 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(251).penalty: 1.000000, Var(251).value: 0.024496 
 > [0.000000]: [surf_maxmin/DEBUG] index: 70     cnst_light_num: 89      || usage: 0.000000 remaining: 5.064446 bound: 5.214785  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (270) value to 0.024496
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(270).weight: 1.000000, Var(270).value: 0.024496 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.024496, Var(270).penalty: 1.000000, Var(270).value: 0.024496 
 > [0.000000]: [surf_maxmin/DEBUG] index: 45     cnst_light_num: 88      || usage: 0.000000 remaining: 4.866697 bound: 5.074925  
 > [0.000000]: [surf_maxmin/DEBUG] index: 54     cnst_light_num: 87      || usage: 0.000000 remaining: 2.783177 bound: 2.847153  
 > [0.000000]: [surf_maxmin/DEBUG] index: 73     cnst_light_num: 86      || usage: 0.000000 remaining: 0.000000 bound: 0.269730  
-> [0.000000]: [surf_maxmin/DEBUG] var=231, var.bound=-1.000000, var.weight=1.000000, min_usage=0.028740, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=258, var.bound=-1.000000, var.weight=1.000000, min_usage=0.028740, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=231, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.028740, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=258, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.028740, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (231) value to 0.028740
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028740, Var(231).weight: 1.000000, Var(231).value: 0.028740 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028740, Var(231).penalty: 1.000000, Var(231).value: 0.028740 
 > [0.000000]: [surf_maxmin/DEBUG] index: 63     cnst_light_num: 85      || usage: 0.000000 remaining: 7.996007 bound: 8.151848  
 > [0.000000]: [surf_maxmin/DEBUG] index: 56     cnst_light_num: 84      || usage: 0.000000 remaining: 1.988515 bound: 2.207792  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (258) value to 0.028740
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028740, Var(258).weight: 1.000000, Var(258).value: 0.028740 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028740, Var(258).penalty: 1.000000, Var(258).value: 0.028740 
 > [0.000000]: [surf_maxmin/DEBUG] index: 58     cnst_light_num: 83      || usage: 0.000000 remaining: 0.000000 bound: 0.219780  
 > [0.000000]: [surf_maxmin/DEBUG] index: 52     cnst_light_num: 82      || usage: 0.000000 remaining: 3.636900 bound: 3.856144  
 > [0.000000]: [surf_maxmin/DEBUG] index: 48     cnst_light_num: 81      || usage: 0.000000 remaining: 5.787038 bound: 6.073926  
 > [0.000000]: [surf_maxmin/DEBUG] index: 76     cnst_light_num: 80      || usage: 0.000000 remaining: 6.904787 bound: 7.102897  
 > [0.000000]: [surf_maxmin/DEBUG] index: 76     cnst_light_num: 79      || usage: 0.000000 remaining: 2.965961 bound: 3.096903  
 > [0.000000]: [surf_maxmin/DEBUG] index: 63     cnst_light_num: 78      || usage: 0.000000 remaining: 4.074735 bound: 4.255744  
-> [0.000000]: [surf_maxmin/DEBUG] var=207, var.bound=-1.000000, var.weight=1.000000, min_usage=0.081677, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=211, var.bound=-1.000000, var.weight=1.000000, min_usage=0.081677, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=225, var.bound=-1.000000, var.weight=1.000000, min_usage=0.081677, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=241, var.bound=-1.000000, var.weight=1.000000, min_usage=0.081677, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=207, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.081677, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=211, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.081677, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=225, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.081677, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=241, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.081677, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (207) value to 0.081677
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(207).weight: 1.000000, Var(207).value: 0.081677 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(207).penalty: 1.000000, Var(207).value: 0.081677 
 > [0.000000]: [surf_maxmin/DEBUG] index: 58     cnst_light_num: 77      || usage: 0.000000 remaining: 8.327882 bound: 8.671329  
 > [0.000000]: [surf_maxmin/DEBUG] index: 40     cnst_light_num: 76      || usage: 0.000000 remaining: 6.555929 bound: 6.863137  
 > [0.000000]: [surf_maxmin/DEBUG] index: 50     cnst_light_num: 75      || usage: 0.000000 remaining: 1.475985 bound: 1.838162  
@@ -1425,7 +1425,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 70     cnst_light_num: 73      || usage: 0.000000 remaining: 9.192322 bound: 9.540460  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (211) value to 0.081677
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(211).weight: 1.000000, Var(211).value: 0.081677 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(211).penalty: 1.000000, Var(211).value: 0.081677 
 > [0.000000]: [surf_maxmin/DEBUG] index: 50     cnst_light_num: 72      || usage: 0.000000 remaining: 3.995254 bound: 4.445554  
 > [0.000000]: [surf_maxmin/DEBUG] index: 60     cnst_light_num: 71      || usage: 0.000000 remaining: 8.857261 bound: 9.130869  
 > [0.000000]: [surf_maxmin/DEBUG] index: 42     cnst_light_num: 70      || usage: 0.000000 remaining: 6.483225 bound: 6.703297  
@@ -1433,7 +1433,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 54     cnst_light_num: 68      || usage: 0.000000 remaining: 3.798887 bound: 4.235764  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (225) value to 0.081677
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(225).weight: 1.000000, Var(225).value: 0.081677 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(225).penalty: 1.000000, Var(225).value: 0.081677 
 > [0.000000]: [surf_maxmin/DEBUG] index: 65     cnst_light_num: 67      || usage: 0.000000 remaining: 7.072223 bound: 7.462537  
 > [0.000000]: [surf_maxmin/DEBUG] index: 50     cnst_light_num: 66      || usage: 0.000000 remaining: 2.691950 bound: 2.967033  
 > [0.000000]: [surf_maxmin/DEBUG] index: 64     cnst_light_num: 65      || usage: 0.000000 remaining: 0.118066 bound: 0.439560  
@@ -1449,7 +1449,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 44     cnst_light_num: 55      || usage: 0.000000 remaining: 2.679793 bound: 2.957043  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (241) value to 0.081677
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(241).weight: 1.000000, Var(241).value: 0.081677 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.081677, Var(241).penalty: 1.000000, Var(241).value: 0.081677 
 > [0.000000]: [surf_maxmin/DEBUG] index: 41     cnst_light_num: 54      || usage: 0.000000 remaining: 1.184105 bound: 1.598402  
 > [0.000000]: [surf_maxmin/DEBUG] index: 39     cnst_light_num: 53      || usage: 0.000000 remaining: 3.653829 bound: 3.896104  
 > [0.000000]: [surf_maxmin/DEBUG] index: 39     cnst_light_num: 52      || usage: 0.000000 remaining: 0.077489 bound: 0.369630  
@@ -1466,10 +1466,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 39     cnst_light_num: 41      || usage: 0.000000 remaining: 6.589209 bound: 6.963037  
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 40      || usage: 0.000000 remaining: 8.777468 bound: 9.170829  
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 39      || usage: 0.000000 remaining: 6.325405 bound: 6.563437  
-> [0.000000]: [surf_maxmin/DEBUG] var=202, var.bound=-1.000000, var.weight=1.000000, min_usage=0.128912, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=202, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.128912, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (202) value to 0.128912
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.128912, Var(202).weight: 1.000000, Var(202).value: 0.128912 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.128912, Var(202).penalty: 1.000000, Var(202).value: 0.128912 
 > [0.000000]: [surf_maxmin/DEBUG] index: 20     cnst_light_num: 38      || usage: 0.000000 remaining: 2.032430 bound: 2.307692  
 > [0.000000]: [surf_maxmin/DEBUG] index: 21     cnst_light_num: 37      || usage: 0.000000 remaining: 6.334159 bound: 6.913087  
 > [0.000000]: [surf_maxmin/DEBUG] index: 22     cnst_light_num: 36      || usage: 0.000000 remaining: 0.404144 bound: 0.889111  
@@ -1488,10 +1488,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 22     cnst_light_num: 23      || usage: 0.000000 remaining: 5.378706 bound: 5.894106  
 > [0.000000]: [surf_maxmin/DEBUG] index: 21     cnst_light_num: 22      || usage: 0.000000 remaining: 7.128378 bound: 7.842158  
 > [0.000000]: [surf_maxmin/DEBUG] index: 20     cnst_light_num: 21      || usage: 0.000000 remaining: 3.080921 bound: 3.706294  
-> [0.000000]: [surf_maxmin/DEBUG] var=201, var.bound=-1.000000, var.weight=1.000000, min_usage=1.559233, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=201, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.559233, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (201) value to 1.559233
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.559233, Var(201).weight: 1.000000, Var(201).value: 1.559233 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.559233, Var(201).penalty: 1.000000, Var(201).value: 1.559233 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 20      || usage: 0.000000 remaining: 2.120434 bound: 3.656344  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 19      || usage: 0.000000 remaining: 3.188475 bound: 5.324675  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 18      || usage: 0.000000 remaining: 0.342262 bound: 3.136863  
@@ -1817,190 +1817,190 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '344' usage: 12.720779 remaining: 3.846154 concurrency: 6<=7<=16
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '390' usage: 8.037962 remaining: 2.907093 concurrency: 5<=6<=40
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '313' usage: 11.415584 remaining: 0.679321 concurrency: 5<=6<=40
-> [0.000000]: [surf_maxmin/DEBUG] var=302, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=307, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=308, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=309, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=311, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=312, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=327, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=328, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=335, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=338, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=352, var.bound=-1.000000, var.weight=1.000000, min_usage=0.007198, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=302, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=307, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=308, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=309, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=311, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=312, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=327, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=328, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=335, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=338, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=352, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.007198, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (302) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(302).weight: 1.000000, Var(302).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(302).penalty: 1.000000, Var(302).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (307) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(307).weight: 1.000000, Var(307).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(307).penalty: 1.000000, Var(307).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (308) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(308).weight: 1.000000, Var(308).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(308).penalty: 1.000000, Var(308).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (309) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(309).weight: 1.000000, Var(309).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(309).penalty: 1.000000, Var(309).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (311) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(311).weight: 1.000000, Var(311).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(311).penalty: 1.000000, Var(311).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (312) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(312).weight: 1.000000, Var(312).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(312).penalty: 1.000000, Var(312).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (327) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(327).weight: 1.000000, Var(327).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(327).penalty: 1.000000, Var(327).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (328) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(328).weight: 1.000000, Var(328).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(328).penalty: 1.000000, Var(328).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (335) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(335).weight: 1.000000, Var(335).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(335).penalty: 1.000000, Var(335).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (338) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(338).weight: 1.000000, Var(338).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(338).penalty: 1.000000, Var(338).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (352) value to 0.007198
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(352).weight: 1.000000, Var(352).value: 0.007198 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.007198, Var(352).penalty: 1.000000, Var(352).value: 0.007198 
 > [0.000000]: [surf_maxmin/DEBUG] index: 39     cnst_light_num: 100     || usage: 0.000000 remaining: 0.000000 bound: 0.139860  
-> [0.000000]: [surf_maxmin/DEBUG] var=301, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=304, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=315, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=318, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=319, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=322, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=332, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=333, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=334, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=339, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=343, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=344, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=345, var.bound=-1.000000, var.weight=1.000000, min_usage=0.011252, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=301, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=304, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=315, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=318, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=319, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=322, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=332, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=333, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=334, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=339, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=343, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=344, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=345, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.011252, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (301) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(301).weight: 1.000000, Var(301).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(301).penalty: 1.000000, Var(301).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (304) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(304).weight: 1.000000, Var(304).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(304).penalty: 1.000000, Var(304).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (315) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(315).weight: 1.000000, Var(315).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(315).penalty: 1.000000, Var(315).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (318) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(318).weight: 1.000000, Var(318).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(318).penalty: 1.000000, Var(318).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (319) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(319).weight: 1.000000, Var(319).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(319).penalty: 1.000000, Var(319).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (322) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(322).weight: 1.000000, Var(322).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(322).penalty: 1.000000, Var(322).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (332) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(332).weight: 1.000000, Var(332).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(332).penalty: 1.000000, Var(332).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (333) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(333).weight: 1.000000, Var(333).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(333).penalty: 1.000000, Var(333).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (334) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(334).weight: 1.000000, Var(334).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(334).penalty: 1.000000, Var(334).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (339) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(339).weight: 1.000000, Var(339).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(339).penalty: 1.000000, Var(339).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (343) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(343).weight: 1.000000, Var(343).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(343).penalty: 1.000000, Var(343).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (344) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(344).weight: 1.000000, Var(344).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(344).penalty: 1.000000, Var(344).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (345) value to 0.011252
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(345).weight: 1.000000, Var(345).value: 0.011252 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.011252, Var(345).penalty: 1.000000, Var(345).value: 0.011252 
 > [0.000000]: [surf_maxmin/DEBUG] index: 14     cnst_light_num: 99      || usage: 0.000000 remaining: 0.000000 bound: 0.299700  
-> [0.000000]: [surf_maxmin/DEBUG] var=306, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=310, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=313, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=314, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=342, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=350, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=368, var.bound=-1.000000, var.weight=1.000000, min_usage=0.018582, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=306, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=310, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=313, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=314, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=342, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=350, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=368, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.018582, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (306) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(306).weight: 1.000000, Var(306).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(306).penalty: 1.000000, Var(306).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (310) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(310).weight: 1.000000, Var(310).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(310).penalty: 1.000000, Var(310).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (313) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(313).weight: 1.000000, Var(313).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(313).penalty: 1.000000, Var(313).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (314) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(314).weight: 1.000000, Var(314).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(314).penalty: 1.000000, Var(314).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (342) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(342).weight: 1.000000, Var(342).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(342).penalty: 1.000000, Var(342).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (350) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(350).weight: 1.000000, Var(350).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(350).penalty: 1.000000, Var(350).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (368) value to 0.018582
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(368).weight: 1.000000, Var(368).value: 0.018582 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.018582, Var(368).penalty: 1.000000, Var(368).value: 0.018582 
 > [0.000000]: [surf_maxmin/DEBUG] index: 14     cnst_light_num: 98      || usage: 0.000000 remaining: 2.790101 bound: 2.907093  
 > [0.000000]: [surf_maxmin/DEBUG] index: 35     cnst_light_num: 97      || usage: 0.000000 remaining: 0.000000 bound: 0.249750  
 > [0.000000]: [surf_maxmin/DEBUG] index: 80     cnst_light_num: 96      || usage: 0.000000 remaining: 5.032823 bound: 5.104895  
-> [0.000000]: [surf_maxmin/DEBUG] var=326, var.bound=-1.000000, var.weight=1.000000, min_usage=0.028518, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=365, var.bound=-1.000000, var.weight=1.000000, min_usage=0.028518, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=326, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.028518, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=365, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.028518, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (326) value to 0.028518
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028518, Var(326).weight: 1.000000, Var(326).value: 0.028518 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028518, Var(326).penalty: 1.000000, Var(326).value: 0.028518 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (365) value to 0.028518
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028518, Var(365).weight: 1.000000, Var(365).value: 0.028518 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.028518, Var(365).penalty: 1.000000, Var(365).value: 0.028518 
 > [0.000000]: [surf_maxmin/DEBUG] index: 92     cnst_light_num: 95      || usage: 0.000000 remaining: 0.000000 bound: 0.239760  
-> [0.000000]: [surf_maxmin/DEBUG] var=321, var.bound=-1.000000, var.weight=1.000000, min_usage=0.047771, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=346, var.bound=-1.000000, var.weight=1.000000, min_usage=0.047771, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=370, var.bound=-1.000000, var.weight=1.000000, min_usage=0.047771, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=321, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.047771, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=346, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.047771, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=370, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.047771, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (321) value to 0.047771
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.047771, Var(321).weight: 1.000000, Var(321).value: 0.047771 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.047771, Var(321).penalty: 1.000000, Var(321).value: 0.047771 
 > [0.000000]: [surf_maxmin/DEBUG] index: 23     cnst_light_num: 94      || usage: 0.000000 remaining: 4.018641 bound: 4.205794  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (346) value to 0.047771
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.047771, Var(346).weight: 1.000000, Var(346).value: 0.047771 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.047771, Var(346).penalty: 1.000000, Var(346).value: 0.047771 
 > [0.000000]: [surf_maxmin/DEBUG] index: 58     cnst_light_num: 93      || usage: 0.000000 remaining: 6.974816 bound: 7.122877  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (370) value to 0.047771
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.047771, Var(370).weight: 1.000000, Var(370).value: 0.047771 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.047771, Var(370).penalty: 1.000000, Var(370).value: 0.047771 
 > [0.000000]: [surf_maxmin/DEBUG] index: 85     cnst_light_num: 92      || usage: 0.000000 remaining: 4.120057 bound: 4.375624  
 > [0.000000]: [surf_maxmin/DEBUG] index: 63     cnst_light_num: 91      || usage: 0.000000 remaining: 9.066800 bound: 9.350649  
 > [0.000000]: [surf_maxmin/DEBUG] index: 89     cnst_light_num: 90      || usage: 0.000000 remaining: 0.000000 bound: 0.359640  
-> [0.000000]: [surf_maxmin/DEBUG] var=317, var.bound=-1.000000, var.weight=1.000000, min_usage=0.094009, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=324, var.bound=-1.000000, var.weight=1.000000, min_usage=0.094009, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=317, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.094009, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=324, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.094009, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (317) value to 0.094009
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.094009, Var(317).weight: 1.000000, Var(317).value: 0.094009 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.094009, Var(317).penalty: 1.000000, Var(317).value: 0.094009 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (324) value to 0.094009
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.094009, Var(324).weight: 1.000000, Var(324).value: 0.094009 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.094009, Var(324).penalty: 1.000000, Var(324).value: 0.094009 
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 89      || usage: 0.000000 remaining: 4.485784 bound: 4.885115  
 > [0.000000]: [surf_maxmin/DEBUG] index: 4      cnst_light_num: 88      || usage: 0.000000 remaining: 0.000000 bound: 0.399600  
 > [0.000000]: [surf_maxmin/DEBUG] index: 63     cnst_light_num: 87      || usage: 0.000000 remaining: 7.782300 bound: 8.471528  
-> [0.000000]: [surf_maxmin/DEBUG] var=303, var.bound=-1.000000, var.weight=1.000000, min_usage=0.142202, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=305, var.bound=-1.000000, var.weight=1.000000, min_usage=0.142202, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=329, var.bound=-1.000000, var.weight=1.000000, min_usage=0.142202, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=355, var.bound=-1.000000, var.weight=1.000000, min_usage=0.142202, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=303, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.142202, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=305, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.142202, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=329, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.142202, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=355, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.142202, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (303) value to 0.142202
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(303).weight: 1.000000, Var(303).value: 0.142202 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(303).penalty: 1.000000, Var(303).value: 0.142202 
 > [0.000000]: [surf_maxmin/DEBUG] index: 45     cnst_light_num: 86      || usage: 0.000000 remaining: 8.926300 bound: 9.280719  
 > [0.000000]: [surf_maxmin/DEBUG] index: 43     cnst_light_num: 85      || usage: 0.000000 remaining: 2.225982 bound: 2.907093  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (305) value to 0.142202
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(305).weight: 1.000000, Var(305).value: 0.142202 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(305).penalty: 1.000000, Var(305).value: 0.142202 
 > [0.000000]: [surf_maxmin/DEBUG] index: 34     cnst_light_num: 84      || usage: 0.000000 remaining: 7.001496 bound: 7.732268  
 > [0.000000]: [surf_maxmin/DEBUG] index: 62     cnst_light_num: 83      || usage: 0.000000 remaining: 4.311663 bound: 4.855145  
 > [0.000000]: [surf_maxmin/DEBUG] index: 74     cnst_light_num: 82      || usage: 0.000000 remaining: 1.415789 bound: 1.658342  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (329) value to 0.142202
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(329).weight: 1.000000, Var(329).value: 0.142202 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(329).penalty: 1.000000, Var(329).value: 0.142202 
 > [0.000000]: [surf_maxmin/DEBUG] index: 58     cnst_light_num: 81      || usage: 0.000000 remaining: 5.694817 bound: 5.954046  
 > [0.000000]: [surf_maxmin/DEBUG] index: 30     cnst_light_num: 80      || usage: 0.000000 remaining: 8.782447 bound: 9.170829  
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 79      || usage: 0.000000 remaining: 4.018510 bound: 4.255744  
@@ -2008,7 +2008,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 77      || usage: 0.000000 remaining: 3.346839 bound: 3.656344  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (355) value to 0.142202
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(355).weight: 1.000000, Var(355).value: 0.142202 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.142202, Var(355).penalty: 1.000000, Var(355).value: 0.142202 
 > [0.000000]: [surf_maxmin/DEBUG] index: 52     cnst_light_num: 76      || usage: 0.000000 remaining: 4.150664 bound: 4.915085  
 > [0.000000]: [surf_maxmin/DEBUG] index: 33     cnst_light_num: 75      || usage: 0.000000 remaining: 4.834649 bound: 5.974026  
 > [0.000000]: [surf_maxmin/DEBUG] index: 31     cnst_light_num: 74      || usage: 0.000000 remaining: 1.696954 bound: 2.277722  
@@ -2020,10 +2020,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 19     cnst_light_num: 68      || usage: 0.000000 remaining: 4.722579 bound: 5.504496  
 > [0.000000]: [surf_maxmin/DEBUG] index: 8      cnst_light_num: 67      || usage: 0.000000 remaining: 0.055535 bound: 0.659341  
 > [0.000000]: [surf_maxmin/DEBUG] index: 64     cnst_light_num: 66      || usage: 0.000000 remaining: 3.635989 bound: 4.465534  
-> [0.000000]: [surf_maxmin/DEBUG] var=320, var.bound=-1.000000, var.weight=1.000000, min_usage=0.201077, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=320, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.201077, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (320) value to 0.201077
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.201077, Var(320).weight: 1.000000, Var(320).value: 0.201077 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.201077, Var(320).penalty: 1.000000, Var(320).value: 0.201077 
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 65      || usage: 0.000000 remaining: 0.438337 bound: 0.799201  
 > [0.000000]: [surf_maxmin/DEBUG] index: 30     cnst_light_num: 64      || usage: 0.000000 remaining: 5.921236 bound: 6.273726  
 > [0.000000]: [surf_maxmin/DEBUG] index: 21     cnst_light_num: 63      || usage: 0.000000 remaining: 4.308459 bound: 4.995005  
@@ -2037,11 +2037,11 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 14     cnst_light_num: 55      || usage: 0.000000 remaining: 1.926234 bound: 2.987013  
 > [0.000000]: [surf_maxmin/DEBUG] index: 9      cnst_light_num: 54      || usage: 0.000000 remaining: 6.057243 bound: 6.453546  
 > [0.000000]: [surf_maxmin/DEBUG] index: 45     cnst_light_num: 53      || usage: 0.000000 remaining: 5.985763 bound: 6.363636  
-> [0.000000]: [surf_maxmin/DEBUG] var=316, var.bound=-1.000000, var.weight=1.000000, min_usage=0.288945, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=336, var.bound=-1.000000, var.weight=1.000000, min_usage=0.288945, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=316, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.288945, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=336, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.288945, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (316) value to 0.288945
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.288945, Var(316).weight: 1.000000, Var(316).value: 0.288945 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.288945, Var(316).penalty: 1.000000, Var(316).value: 0.288945 
 > [0.000000]: [surf_maxmin/DEBUG] index: 28     cnst_light_num: 52      || usage: 0.000000 remaining: 1.281667 bound: 2.327672  
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 51      || usage: 0.000000 remaining: 6.258337 bound: 7.092907  
 > [0.000000]: [surf_maxmin/DEBUG] index: 10     cnst_light_num: 50      || usage: 0.000000 remaining: 8.679785 bound: 9.950050  
@@ -2058,7 +2058,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 39      || usage: 0.000000 remaining: 3.396353 bound: 4.475524  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (336) value to 0.288945
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.288945, Var(336).weight: 1.000000, Var(336).value: 0.288945 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.288945, Var(336).penalty: 1.000000, Var(336).value: 0.288945 
 > [0.000000]: [surf_maxmin/DEBUG] index: 22     cnst_light_num: 38      || usage: 0.000000 remaining: 8.886978 bound: 9.790210  
 > [0.000000]: [surf_maxmin/DEBUG] index: 12     cnst_light_num: 37      || usage: 0.000000 remaining: 2.289452 bound: 3.766234  
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 36      || usage: 0.000000 remaining: 6.936049 bound: 7.642358  
@@ -2076,10 +2076,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 16     cnst_light_num: 24      || usage: 0.000000 remaining: 7.844363 bound: 9.010989  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 23      || usage: 0.000000 remaining: 5.328389 bound: 6.893107  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 22      || usage: 0.000000 remaining: 6.171176 bound: 7.512488  
-> [0.000000]: [surf_maxmin/DEBUG] var=323, var.bound=-1.000000, var.weight=1.000000, min_usage=0.301983, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=323, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.301983, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (323) value to 0.301983
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.301983, Var(323).weight: 1.000000, Var(323).value: 0.301983 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.301983, Var(323).penalty: 1.000000, Var(323).value: 0.301983 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 21      || usage: 0.000000 remaining: 3.866850 bound: 4.515485  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 20      || usage: 0.000000 remaining: 8.277577 bound: 9.640360  
 > [0.000000]: [surf_maxmin/DEBUG] index: 12     cnst_light_num: 19      || usage: 0.000000 remaining: 6.671593 bound: 8.811189  
@@ -2406,185 +2406,185 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '434' usage: 13.643856 remaining: 9.670330 concurrency: 7<=8<=9
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '474' usage: 12.365634 remaining: 3.756244 concurrency: 6<=7<=9
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '414' usage: 8.673327 remaining: 3.066933 concurrency: 4<=6<=10
-> [0.000000]: [surf_maxmin/DEBUG] var=405, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=410, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=412, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=413, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=419, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=421, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=423, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=431, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=433, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=462, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=482, var.bound=-1.000000, var.weight=1.000000, min_usage=0.013951, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=405, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=410, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=412, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=413, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=419, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=421, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=423, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=431, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=433, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=462, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=482, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.013951, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (405) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(405).weight: 1.000000, Var(405).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(405).penalty: 1.000000, Var(405).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (410) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(410).weight: 1.000000, Var(410).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(410).penalty: 1.000000, Var(410).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (412) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(412).weight: 1.000000, Var(412).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(412).penalty: 1.000000, Var(412).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (413) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(413).weight: 1.000000, Var(413).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(413).penalty: 1.000000, Var(413).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (419) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(419).weight: 1.000000, Var(419).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(419).penalty: 1.000000, Var(419).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (421) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(421).weight: 1.000000, Var(421).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(421).penalty: 1.000000, Var(421).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (423) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(423).weight: 1.000000, Var(423).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(423).penalty: 1.000000, Var(423).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (431) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(431).weight: 1.000000, Var(431).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(431).penalty: 1.000000, Var(431).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (433) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(433).weight: 1.000000, Var(433).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(433).penalty: 1.000000, Var(433).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (462) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(462).weight: 1.000000, Var(462).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(462).penalty: 1.000000, Var(462).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (482) value to 0.013951
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(482).weight: 1.000000, Var(482).value: 0.013951 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.013951, Var(482).penalty: 1.000000, Var(482).value: 0.013951 
 > [0.000000]: [surf_maxmin/DEBUG] index: 67     cnst_light_num: 100     || usage: 0.000000 remaining: 0.000000 bound: 0.299700  
-> [0.000000]: [surf_maxmin/DEBUG] var=402, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=406, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=408, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=415, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=418, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=420, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=424, var.bound=-1.000000, var.weight=1.000000, min_usage=0.023700, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=402, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=406, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=408, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=415, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=418, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=420, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=424, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.023700, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (402) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(402).weight: 1.000000, Var(402).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(402).penalty: 1.000000, Var(402).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (406) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(406).weight: 1.000000, Var(406).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(406).penalty: 1.000000, Var(406).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (408) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(408).weight: 1.000000, Var(408).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(408).penalty: 1.000000, Var(408).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (415) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(415).weight: 1.000000, Var(415).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(415).penalty: 1.000000, Var(415).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (418) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(418).weight: 1.000000, Var(418).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(418).penalty: 1.000000, Var(418).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (420) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(420).weight: 1.000000, Var(420).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(420).penalty: 1.000000, Var(420).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (424) value to 0.023700
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(424).weight: 1.000000, Var(424).value: 0.023700 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.023700, Var(424).penalty: 1.000000, Var(424).value: 0.023700 
 > [0.000000]: [surf_maxmin/DEBUG] index: 29     cnst_light_num: 99      || usage: 0.000000 remaining: 0.000000 bound: 0.359640  
-> [0.000000]: [surf_maxmin/DEBUG] var=414, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036913, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=425, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036913, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=427, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036913, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=429, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036913, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=435, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036913, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=452, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036913, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=414, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036913, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=425, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036913, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=427, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036913, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=429, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036913, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=435, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036913, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=452, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036913, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (414) value to 0.036913
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(414).weight: 1.000000, Var(414).value: 0.036913 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(414).penalty: 1.000000, Var(414).value: 0.036913 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (425) value to 0.036913
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(425).weight: 1.000000, Var(425).value: 0.036913 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(425).penalty: 1.000000, Var(425).value: 0.036913 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (427) value to 0.036913
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(427).weight: 1.000000, Var(427).value: 0.036913 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(427).penalty: 1.000000, Var(427).value: 0.036913 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (429) value to 0.036913
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(429).weight: 1.000000, Var(429).value: 0.036913 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(429).penalty: 1.000000, Var(429).value: 0.036913 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (435) value to 0.036913
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(435).weight: 1.000000, Var(435).value: 0.036913 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(435).penalty: 1.000000, Var(435).value: 0.036913 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (452) value to 0.036913
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(452).weight: 1.000000, Var(452).value: 0.036913 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036913, Var(452).penalty: 1.000000, Var(452).value: 0.036913 
 > [0.000000]: [surf_maxmin/DEBUG] index: 84     cnst_light_num: 98      || usage: 0.000000 remaining: 0.000000 bound: 0.459540  
-> [0.000000]: [surf_maxmin/DEBUG] var=403, var.bound=-1.000000, var.weight=1.000000, min_usage=0.046599, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=404, var.bound=-1.000000, var.weight=1.000000, min_usage=0.046599, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=407, var.bound=-1.000000, var.weight=1.000000, min_usage=0.046599, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=416, var.bound=-1.000000, var.weight=1.000000, min_usage=0.046599, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=426, var.bound=-1.000000, var.weight=1.000000, min_usage=0.046599, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=403, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.046599, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=404, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.046599, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=407, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.046599, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=416, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.046599, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=426, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.046599, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (403) value to 0.046599
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(403).weight: 1.000000, Var(403).value: 0.046599 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(403).penalty: 1.000000, Var(403).value: 0.046599 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (404) value to 0.046599
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(404).weight: 1.000000, Var(404).value: 0.046599 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(404).penalty: 1.000000, Var(404).value: 0.046599 
 > [0.000000]: [surf_maxmin/DEBUG] index: 36     cnst_light_num: 97      || usage: 0.000000 remaining: 9.763793 bound: 9.860140  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (407) value to 0.046599
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(407).weight: 1.000000, Var(407).value: 0.046599 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(407).penalty: 1.000000, Var(407).value: 0.046599 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (416) value to 0.046599
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(416).weight: 1.000000, Var(416).value: 0.046599 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(416).penalty: 1.000000, Var(416).value: 0.046599 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (426) value to 0.046599
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(426).weight: 1.000000, Var(426).value: 0.046599 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.046599, Var(426).penalty: 1.000000, Var(426).value: 0.046599 
 > [0.000000]: [surf_maxmin/DEBUG] index: 49     cnst_light_num: 96      || usage: 0.000000 remaining: 1.560732 bound: 2.027972  
 > [0.000000]: [surf_maxmin/DEBUG] index: 57     cnst_light_num: 95      || usage: 0.000000 remaining: 0.000000 bound: 0.399600  
-> [0.000000]: [surf_maxmin/DEBUG] var=409, var.bound=-1.000000, var.weight=1.000000, min_usage=0.068172, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=417, var.bound=-1.000000, var.weight=1.000000, min_usage=0.068172, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=444, var.bound=-1.000000, var.weight=1.000000, min_usage=0.068172, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=455, var.bound=-1.000000, var.weight=1.000000, min_usage=0.068172, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=409, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.068172, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=417, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.068172, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=444, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.068172, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=455, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.068172, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (409) value to 0.068172
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(409).weight: 1.000000, Var(409).value: 0.068172 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(409).penalty: 1.000000, Var(409).value: 0.068172 
 > [0.000000]: [surf_maxmin/DEBUG] index: 90     cnst_light_num: 94      || usage: 0.000000 remaining: 9.436551 bound: 9.690310  
 > [0.000000]: [surf_maxmin/DEBUG] index: 31     cnst_light_num: 93      || usage: 0.000000 remaining: 6.950082 bound: 7.382617  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (417) value to 0.068172
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(417).weight: 1.000000, Var(417).value: 0.068172 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(417).penalty: 1.000000, Var(417).value: 0.068172 
 > [0.000000]: [surf_maxmin/DEBUG] index: 32     cnst_light_num: 92      || usage: 0.000000 remaining: 0.895015 bound: 1.248751  
 > [0.000000]: [surf_maxmin/DEBUG] index: 41     cnst_light_num: 91      || usage: 0.000000 remaining: 6.666825 bound: 7.132867  
 > [0.000000]: [surf_maxmin/DEBUG] index: 82     cnst_light_num: 90      || usage: 0.000000 remaining: 3.514705 bound: 3.956044  
 > [0.000000]: [surf_maxmin/DEBUG] index: 67     cnst_light_num: 89      || usage: 0.000000 remaining: 2.726842 bound: 3.066933  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (444) value to 0.068172
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(444).weight: 1.000000, Var(444).value: 0.068172 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(444).penalty: 1.000000, Var(444).value: 0.068172 
 > [0.000000]: [surf_maxmin/DEBUG] index: 71     cnst_light_num: 88      || usage: 0.000000 remaining: 8.404470 bound: 8.981019  
 > [0.000000]: [surf_maxmin/DEBUG] index: 25     cnst_light_num: 87      || usage: 0.000000 remaining: 8.866678 bound: 9.160839  
 > [0.000000]: [surf_maxmin/DEBUG] index: 46     cnst_light_num: 86      || usage: 0.000000 remaining: 7.947211 bound: 8.301698  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (455) value to 0.068172
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(455).weight: 1.000000, Var(455).value: 0.068172 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.068172, Var(455).penalty: 1.000000, Var(455).value: 0.068172 
 > [0.000000]: [surf_maxmin/DEBUG] index: 47     cnst_light_num: 85      || usage: 0.000000 remaining: 0.000000 bound: 0.599401  
 > [0.000000]: [surf_maxmin/DEBUG] index: 83     cnst_light_num: 84      || usage: 0.000000 remaining: 5.185774 bound: 5.594406  
 > [0.000000]: [surf_maxmin/DEBUG] index: 55     cnst_light_num: 83      || usage: 0.000000 remaining: 1.636352 bound: 1.838162  
-> [0.000000]: [surf_maxmin/DEBUG] var=401, var.bound=-1.000000, var.weight=1.000000, min_usage=0.075245, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=464, var.bound=-1.000000, var.weight=1.000000, min_usage=0.075245, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=401, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.075245, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=464, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.075245, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (401) value to 0.075245
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.075245, Var(401).weight: 1.000000, Var(401).value: 0.075245 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.075245, Var(401).penalty: 1.000000, Var(401).value: 0.075245 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 82      || usage: 0.000000 remaining: 1.943854 bound: 2.417582  
 > [0.000000]: [surf_maxmin/DEBUG] index: 10     cnst_light_num: 81      || usage: 0.000000 remaining: 6.465660 bound: 6.663337  
 > [0.000000]: [surf_maxmin/DEBUG] index: 15     cnst_light_num: 80      || usage: 0.000000 remaining: 6.454602 bound: 6.843157  
 > [0.000000]: [surf_maxmin/DEBUG] index: 21     cnst_light_num: 79      || usage: 0.000000 remaining: 0.613333 bound: 0.969031  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (464) value to 0.075245
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.075245, Var(464).weight: 1.000000, Var(464).value: 0.075245 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.075245, Var(464).penalty: 1.000000, Var(464).value: 0.075245 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 78      || usage: 0.000000 remaining: 5.604611 bound: 6.223776  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 77      || usage: 0.000000 remaining: 0.000000 bound: 0.439560  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 76      || usage: 0.000000 remaining: 8.337354 bound: 8.961039  
-> [0.000000]: [surf_maxmin/DEBUG] var=422, var.bound=-1.000000, var.weight=1.000000, min_usage=0.209953, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=422, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.209953, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (422) value to 0.209953
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.209953, Var(422).weight: 1.000000, Var(422).value: 0.209953 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.209953, Var(422).penalty: 1.000000, Var(422).value: 0.209953 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 75      || usage: 0.000000 remaining: 0.000000 bound: 0.739261  
 > [0.000000]: [surf_maxmin/DEBUG] index: 43     cnst_light_num: 74      || usage: 0.000000 remaining: 3.910501 bound: 4.485514  
 > [0.000000]: [surf_maxmin/DEBUG] index: 13     cnst_light_num: 73      || usage: 0.000000 remaining: 0.637351 bound: 1.218781  
 > [0.000000]: [surf_maxmin/DEBUG] index: 67     cnst_light_num: 72      || usage: 0.000000 remaining: 8.292394 bound: 8.981019  
-> [0.000000]: [surf_maxmin/DEBUG] var=443, var.bound=-1.000000, var.weight=1.000000, min_usage=0.248078, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=460, var.bound=-1.000000, var.weight=1.000000, min_usage=0.248078, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=470, var.bound=-1.000000, var.weight=1.000000, min_usage=0.248078, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=443, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.248078, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=460, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.248078, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=470, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.248078, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (443) value to 0.248078
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.248078, Var(443).weight: 1.000000, Var(443).value: 0.248078 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.248078, Var(443).penalty: 1.000000, Var(443).value: 0.248078 
 > [0.000000]: [surf_maxmin/DEBUG] index: 46     cnst_light_num: 71      || usage: 0.000000 remaining: 4.903913 bound: 6.603397  
 > [0.000000]: [surf_maxmin/DEBUG] index: 56     cnst_light_num: 70      || usage: 0.000000 remaining: 5.661916 bound: 6.923077  
 > [0.000000]: [surf_maxmin/DEBUG] index: 10     cnst_light_num: 69      || usage: 0.000000 remaining: 6.671691 bound: 7.712288  
@@ -2594,7 +2594,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 59     cnst_light_num: 65      || usage: 0.000000 remaining: 6.079014 bound: 7.212787  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (460) value to 0.248078
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.248078, Var(460).weight: 1.000000, Var(460).value: 0.248078 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.248078, Var(460).penalty: 1.000000, Var(460).value: 0.248078 
 > [0.000000]: [surf_maxmin/DEBUG] index: 19     cnst_light_num: 64      || usage: 0.000000 remaining: 1.852859 bound: 2.937063  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 63      || usage: 0.000000 remaining: 1.517831 bound: 2.447552  
 > [0.000000]: [surf_maxmin/DEBUG] index: 51     cnst_light_num: 62      || usage: 0.000000 remaining: 2.711337 bound: 4.165834  
@@ -2607,7 +2607,7 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 21     cnst_light_num: 55      || usage: 0.000000 remaining: 3.908501 bound: 5.144855  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (470) value to 0.248078
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.248078, Var(470).weight: 1.000000, Var(470).value: 0.248078 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.248078, Var(470).penalty: 1.000000, Var(470).value: 0.248078 
 > [0.000000]: [surf_maxmin/DEBUG] index: 10     cnst_light_num: 54      || usage: 0.000000 remaining: 9.086266 bound: 9.800200  
 > [0.000000]: [surf_maxmin/DEBUG] index: 25     cnst_light_num: 53      || usage: 0.000000 remaining: 4.317833 bound: 5.174825  
 > [0.000000]: [surf_maxmin/DEBUG] index: 47     cnst_light_num: 52      || usage: 0.000000 remaining: 0.574793 bound: 2.097902  
@@ -2619,10 +2619,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 31     cnst_light_num: 46      || usage: 0.000000 remaining: 6.113568 bound: 6.903097  
 > [0.000000]: [surf_maxmin/DEBUG] index: 40     cnst_light_num: 45      || usage: 0.000000 remaining: 0.000000 bound: 1.958042  
 > [0.000000]: [surf_maxmin/DEBUG] index: 29     cnst_light_num: 44      || usage: 0.000000 remaining: 2.366551 bound: 3.756244  
-> [0.000000]: [surf_maxmin/DEBUG] var=499, var.bound=-1.000000, var.weight=1.000000, min_usage=0.371099, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=499, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.371099, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (499) value to 0.371099
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.371099, Var(499).weight: 1.000000, Var(499).value: 0.371099 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.371099, Var(499).penalty: 1.000000, Var(499).value: 0.371099 
 > [0.000000]: [surf_maxmin/DEBUG] index: 38     cnst_light_num: 43      || usage: 0.000000 remaining: 4.195116 bound: 5.504496  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 42      || usage: 0.000000 remaining: 3.396551 bound: 4.695305  
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 41      || usage: 0.000000 remaining: 4.348232 bound: 5.834166  
@@ -2644,10 +2644,10 @@ $ ${bindir:=.}/maxmin_bench medium 5 test
 > [0.000000]: [surf_maxmin/DEBUG] index: 18     cnst_light_num: 25      || usage: 0.000000 remaining: 0.897299 bound: 1.988012  
 > [0.000000]: [surf_maxmin/DEBUG] index: 9      cnst_light_num: 24      || usage: 0.000000 remaining: 0.066581 bound: 1.008991  
 > [0.000000]: [surf_maxmin/DEBUG] index: 9      cnst_light_num: 23      || usage: 0.000000 remaining: 3.392560 bound: 4.405594  
-> [0.000000]: [surf_maxmin/DEBUG] var=411, var.bound=-1.000000, var.weight=1.000000, min_usage=1.157925, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=411, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.157925, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (411) value to 1.157925
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.157925, Var(411).weight: 1.000000, Var(411).value: 1.157925 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.157925, Var(411).penalty: 1.000000, Var(411).value: 1.157925 
 > [0.000000]: [surf_maxmin/DEBUG] index: 9      cnst_light_num: 22      || usage: 0.000000 remaining: 4.884981 bound: 7.072927  
 > [0.000000]: [surf_maxmin/DEBUG] index: 19     cnst_light_num: 21      || usage: 0.000000 remaining: 2.075096 bound: 4.745255  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 20      || usage: 0.000000 remaining: 3.819295 bound: 5.634366  
index 9ec6403..ceb76df 100644 (file)
@@ -16,36 +16,36 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '4' usage: 1.014486 remaining: 7.082917 concurrency: 1<=1<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '8' usage: 2.985015 remaining: 3.026973 concurrency: 1<=1<=-1
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '3' usage: 2.495005 remaining: 5.434565 concurrency: 1<=1<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=9, var.bound=-1.000000, var.weight=1.000000, min_usage=1.014056, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=9, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.014056, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (9) value to 1.014056
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.014056, Var(9).weight: 1.000000, Var(9).value: 1.014056 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.014056, Var(9).penalty: 1.000000, Var(9).value: 1.014056 
 > [0.000000]: [surf_maxmin/DEBUG] index: 8      cnst_light_num: 10      || usage: 0.000000 remaining: 0.000000 bound: 3.026973  
-> [0.000000]: [surf_maxmin/DEBUG] var=2, var.bound=-1.000000, var.weight=1.000000, min_usage=1.024059, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=10, var.bound=-1.000000, var.weight=1.000000, min_usage=1.024059, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=2, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.024059, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=10, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.024059, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (2) value to 1.024059
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.024059, Var(2).weight: 1.000000, Var(2).value: 1.024059 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.024059, Var(2).penalty: 1.000000, Var(2).value: 1.024059 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (10) value to 1.024059
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.024059, Var(10).weight: 1.000000, Var(10).value: 1.024059 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.024059, Var(10).penalty: 1.000000, Var(10).value: 1.024059 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 2.487512  
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 8       || usage: 0.000000 remaining: 6.044024 bound: 7.082917  
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 7       || usage: 0.000000 remaining: 2.879533 bound: 5.434565  
-> [0.000000]: [surf_maxmin/DEBUG] var=1, var.bound=-1.000000, var.weight=1.000000, min_usage=1.338213, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=4, var.bound=-1.000000, var.weight=1.000000, min_usage=1.338213, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=1, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.338213, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=4, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.338213, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (1) value to 1.338213
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.338213, Var(1).weight: 1.000000, Var(1).value: 1.338213 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.338213, Var(1).penalty: 1.000000, Var(1).value: 1.338213 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (4) value to 1.338213
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.338213, Var(4).weight: 1.000000, Var(4).value: 1.338213 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.338213, Var(4).penalty: 1.000000, Var(4).value: 1.338213 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 6       || usage: 0.000000 remaining: 0.000000 bound: 5.594406  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 5       || usage: 0.000000 remaining: 1.623266 bound: 6.573427  
-> [0.000000]: [surf_maxmin/DEBUG] var=3, var.bound=-1.000000, var.weight=1.000000, min_usage=1.625653, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=3, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.625653, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (3) value to 1.625653
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.625653, Var(3).weight: 1.000000, Var(3).value: 1.625653 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.625653, Var(3).penalty: 1.000000, Var(3).value: 1.625653 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 4       || usage: 0.000000 remaining: 1.548031 bound: 9.860140  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 3       || usage: 0.000000 remaining: 0.581095 bound: 7.282717  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 2       || usage: 0.000000 remaining: 0.000000 bound: 7.082917  
@@ -85,44 +85,44 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '11' usage: 4.858142 remaining: 4.975025 concurrency: 3<=3<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '13' usage: 5.908591 remaining: 1.088911 concurrency: 3<=3<=-1
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '14' usage: 1.957043 remaining: 7.702298 concurrency: 1<=1<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=14, var.bound=-1.000000, var.weight=1.000000, min_usage=0.184293, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=15, var.bound=-1.000000, var.weight=1.000000, min_usage=0.184293, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=17, var.bound=-1.000000, var.weight=1.000000, min_usage=0.184293, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=14, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.184293, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=15, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.184293, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=17, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.184293, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (14) value to 0.184293
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.184293, Var(14).weight: 1.000000, Var(14).value: 0.184293 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.184293, Var(14).penalty: 1.000000, Var(14).value: 0.184293 
 > [0.000000]: [surf_maxmin/DEBUG] index: 9      cnst_light_num: 10      || usage: 0.000000 remaining: 7.341629 bound: 7.702298  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (15) value to 0.184293
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.184293, Var(15).weight: 1.000000, Var(15).value: 0.184293 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.184293, Var(15).penalty: 1.000000, Var(15).value: 0.184293 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (17) value to 0.184293
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.184293, Var(17).weight: 1.000000, Var(17).value: 0.184293 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.184293, Var(17).penalty: 1.000000, Var(17).value: 0.184293 
 > [0.000000]: [surf_maxmin/DEBUG] index: 8      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 1.088911  
-> [0.000000]: [surf_maxmin/DEBUG] var=11, var.bound=-1.000000, var.weight=1.000000, min_usage=0.316463, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=12, var.bound=-1.000000, var.weight=1.000000, min_usage=0.316463, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=13, var.bound=-1.000000, var.weight=1.000000, min_usage=0.316463, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=19, var.bound=-1.000000, var.weight=1.000000, min_usage=0.316463, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=11, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.316463, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=12, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.316463, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=13, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.316463, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=19, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.316463, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (11) value to 0.316463
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(11).weight: 1.000000, Var(11).value: 0.316463 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(11).penalty: 1.000000, Var(11).value: 0.316463 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (12) value to 0.316463
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(12).weight: 1.000000, Var(12).value: 0.316463 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(12).penalty: 1.000000, Var(12).value: 0.316463 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (13) value to 0.316463
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(13).weight: 1.000000, Var(13).value: 0.316463 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(13).penalty: 1.000000, Var(13).value: 0.316463 
 > [0.000000]: [surf_maxmin/DEBUG] index: 4      cnst_light_num: 8       || usage: 0.000000 remaining: 5.345264 bound: 6.663337  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 7       || usage: 0.000000 remaining: 2.183786 bound: 3.366633  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (19) value to 0.316463
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(19).weight: 1.000000, Var(19).value: 0.316463 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.316463, Var(19).penalty: 1.000000, Var(19).value: 0.316463 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 6       || usage: 0.000000 remaining: 4.337989 bound: 6.053946  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 5       || usage: 0.000000 remaining: 0.000000 bound: 1.978022  
-> [0.000000]: [surf_maxmin/DEBUG] var=18, var.bound=-1.000000, var.weight=1.000000, min_usage=1.961597, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=18, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.961597, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (18) value to 1.961597
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.961597, Var(18).weight: 1.000000, Var(18).value: 1.961597 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.961597, Var(18).penalty: 1.000000, Var(18).value: 1.961597 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 4       || usage: 0.000000 remaining: 0.987622 bound: 4.975025  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 3       || usage: 0.000000 remaining: 0.000000 bound: 2.127872  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 2       || usage: 0.000000 remaining: 0.826438 bound: 4.575425  
@@ -162,36 +162,36 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '30' usage: 3.939560 remaining: 2.967033 concurrency: 2<=2<=-1
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '27' usage: 3.490010 remaining: 8.721279 concurrency: 1<=1<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '21' usage: 3.869131 remaining: 7.462537 concurrency: 2<=2<=3
-> [0.000000]: [surf_maxmin/DEBUG] var=21, var.bound=-1.000000, var.weight=1.000000, min_usage=0.258940, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=23, var.bound=-1.000000, var.weight=1.000000, min_usage=0.258940, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=28, var.bound=-1.000000, var.weight=1.000000, min_usage=0.258940, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=21, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.258940, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=23, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.258940, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=28, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.258940, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (21) value to 0.258940
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.258940, Var(21).weight: 1.000000, Var(21).value: 0.258940 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.258940, Var(21).penalty: 1.000000, Var(21).value: 0.258940 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (23) value to 0.258940
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.258940, Var(23).weight: 1.000000, Var(23).value: 0.258940 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.258940, Var(23).penalty: 1.000000, Var(23).value: 0.258940 
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 10      || usage: 0.000000 remaining: 0.713448 bound: 1.428571  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (28) value to 0.258940
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.258940, Var(28).weight: 1.000000, Var(28).value: 0.258940 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.258940, Var(28).penalty: 1.000000, Var(28).value: 0.258940 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 9       || usage: 0.000000 remaining: 1.451551 bound: 2.127872  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 8       || usage: 0.000000 remaining: 0.000000 bound: 1.258741  
-> [0.000000]: [surf_maxmin/DEBUG] var=22, var.bound=-1.000000, var.weight=1.000000, min_usage=0.493696, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=24, var.bound=-1.000000, var.weight=1.000000, min_usage=0.493696, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=25, var.bound=-1.000000, var.weight=1.000000, min_usage=0.493696, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=22, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.493696, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=24, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.493696, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=25, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.493696, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (22) value to 0.493696
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.493696, Var(22).weight: 1.000000, Var(22).value: 0.493696 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.493696, Var(22).penalty: 1.000000, Var(22).value: 0.493696 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 7       || usage: 0.000000 remaining: 5.661363 bound: 6.863137  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 6       || usage: 0.000000 remaining: 1.851017 bound: 3.856144  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (24) value to 0.493696
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.493696, Var(24).weight: 1.000000, Var(24).value: 0.493696 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.493696, Var(24).penalty: 1.000000, Var(24).value: 0.493696 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 5       || usage: 0.000000 remaining: 7.221658 bound: 8.721279  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (25) value to 0.493696
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.493696, Var(25).weight: 1.000000, Var(25).value: 0.493696 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.493696, Var(25).penalty: 1.000000, Var(25).value: 0.493696 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 4       || usage: 0.000000 remaining: 0.000000 bound: 3.396603  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 3       || usage: 0.000000 remaining: 1.022089 bound: 2.967033  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 2       || usage: 0.000000 remaining: 6.051192 bound: 7.462537  
@@ -231,44 +231,44 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '38' usage: 3.966533 remaining: 4.475524 concurrency: 2<=2<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '36' usage: 4.104396 remaining: 1.678322 concurrency: 3<=3<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '37' usage: 0.000000 remaining: 0.139860 concurrency: 0<=1<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=36, var.bound=-1.000000, var.weight=1.000000, min_usage=0.408908, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=38, var.bound=-1.000000, var.weight=1.000000, min_usage=0.408908, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=39, var.bound=-1.000000, var.weight=1.000000, min_usage=0.408908, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=36, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.408908, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=38, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.408908, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=39, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.408908, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (36) value to 0.408908
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.408908, Var(36).weight: 1.000000, Var(36).value: 0.408908 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.408908, Var(36).penalty: 1.000000, Var(36).value: 0.408908 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (38) value to 0.408908
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.408908, Var(38).weight: 1.000000, Var(38).value: 0.408908 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.408908, Var(38).penalty: 1.000000, Var(38).value: 0.408908 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (39) value to 0.408908
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.408908, Var(39).weight: 1.000000, Var(39).value: 0.408908 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.408908, Var(39).penalty: 1.000000, Var(39).value: 0.408908 
 > [0.000000]: [surf_maxmin/DEBUG] index: 8      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 1.678322  
-> [0.000000]: [surf_maxmin/DEBUG] var=32, var.bound=-1.000000, var.weight=1.000000, min_usage=0.565462, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=33, var.bound=-1.000000, var.weight=1.000000, min_usage=0.565462, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=32, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.565462, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=33, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.565462, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (32) value to 0.565462
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.565462, Var(32).weight: 1.000000, Var(32).value: 0.565462 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.565462, Var(32).penalty: 1.000000, Var(32).value: 0.565462 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (33) value to 0.565462
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.565462, Var(33).weight: 1.000000, Var(33).value: 0.565462 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.565462, Var(33).penalty: 1.000000, Var(33).value: 0.565462 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 8       || usage: 0.000000 remaining: 0.541481 bound: 4.375624  
 > [0.000000]: [surf_maxmin/DEBUG] index: 4      cnst_light_num: 7       || usage: 0.000000 remaining: 0.000000 bound: 1.758242  
-> [0.000000]: [surf_maxmin/DEBUG] var=31, var.bound=-1.000000, var.weight=1.000000, min_usage=0.757364, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=40, var.bound=-1.000000, var.weight=1.000000, min_usage=0.757364, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=31, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.757364, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=40, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.757364, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (31) value to 0.757364
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.757364, Var(31).weight: 1.000000, Var(31).value: 0.757364 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.757364, Var(31).penalty: 1.000000, Var(31).value: 0.757364 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 6       || usage: 0.000000 remaining: 9.030772 bound: 9.950050  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 5       || usage: 0.000000 remaining: 3.662606 bound: 5.414585  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (40) value to 0.757364
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.757364, Var(40).weight: 1.000000, Var(40).value: 0.757364 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.757364, Var(40).penalty: 1.000000, Var(40).value: 0.757364 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 4       || usage: 0.000000 remaining: 0.000000 bound: 3.656344  
-> [0.000000]: [surf_maxmin/DEBUG] var=35, var.bound=-1.000000, var.weight=1.000000, min_usage=1.232357, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=35, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.232357, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (35) value to 1.232357
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.232357, Var(35).weight: 1.000000, Var(35).value: 1.232357 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.232357, Var(35).penalty: 1.000000, Var(35).value: 1.232357 
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 3       || usage: 0.000000 remaining: 0.095809 bound: 4.255744  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 2       || usage: 0.000000 remaining: 0.000000 bound: 8.941059  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 1       || usage: 0.000000 remaining: 0.886438 bound: 4.475524  
@@ -307,40 +307,40 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '50' usage: 5.187812 remaining: 4.485514 concurrency: 2<=2<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '46' usage: 3.005994 remaining: 6.933067 concurrency: 1<=2<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '43' usage: 1.075924 remaining: 4.485514 concurrency: 1<=1<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=42, var.bound=-1.000000, var.weight=1.000000, min_usage=0.182815, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=46, var.bound=-1.000000, var.weight=1.000000, min_usage=0.182815, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=50, var.bound=-1.000000, var.weight=1.000000, min_usage=0.182815, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=42, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.182815, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=46, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.182815, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=50, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.182815, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (42) value to 0.182815
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.182815, Var(42).weight: 1.000000, Var(42).value: 0.182815 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.182815, Var(42).penalty: 1.000000, Var(42).value: 0.182815 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 10      || usage: 0.000000 remaining: 5.372434 bound: 5.524476  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (46) value to 0.182815
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.182815, Var(46).weight: 1.000000, Var(46).value: 0.182815 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.182815, Var(46).penalty: 1.000000, Var(46).value: 0.182815 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (50) value to 0.182815
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.182815, Var(50).weight: 1.000000, Var(50).value: 0.182815 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.182815, Var(50).penalty: 1.000000, Var(50).value: 0.182815 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 0.599401  
-> [0.000000]: [surf_maxmin/DEBUG] var=41, var.bound=-1.000000, var.weight=1.000000, min_usage=0.380694, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=44, var.bound=-1.000000, var.weight=1.000000, min_usage=0.380694, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=47, var.bound=-1.000000, var.weight=1.000000, min_usage=0.380694, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=41, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.380694, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=44, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.380694, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=47, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.380694, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (41) value to 0.380694
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.380694, Var(41).weight: 1.000000, Var(41).value: 0.380694 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.380694, Var(41).penalty: 1.000000, Var(41).value: 0.380694 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (44) value to 0.380694
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.380694, Var(44).weight: 1.000000, Var(44).value: 0.380694 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.380694, Var(44).penalty: 1.000000, Var(44).value: 0.380694 
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 8       || usage: 0.000000 remaining: 0.977541 bound: 2.507493  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (47) value to 0.380694
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.380694, Var(47).weight: 1.000000, Var(47).value: 0.380694 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.380694, Var(47).penalty: 1.000000, Var(47).value: 0.380694 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 7       || usage: 0.000000 remaining: 4.075916 bound: 4.485514  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 6       || usage: 0.000000 remaining: 1.304610 bound: 2.117882  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 5       || usage: 0.000000 remaining: 0.000000 bound: 3.556444  
-> [0.000000]: [surf_maxmin/DEBUG] var=43, var.bound=-1.000000, var.weight=1.000000, min_usage=1.071335, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=43, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.071335, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (43) value to 1.071335
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.071335, Var(43).weight: 1.000000, Var(43).value: 1.071335 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.071335, Var(43).penalty: 1.000000, Var(43).value: 1.071335 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 4       || usage: 0.000000 remaining: 1.585454 bound: 2.447552  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 3       || usage: 0.000000 remaining: 0.000000 bound: 2.097902  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 2       || usage: 0.000000 remaining: 2.853240 bound: 4.485514  
@@ -380,44 +380,44 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '52' usage: 5.824675 remaining: 6.383616 concurrency: 3<=3<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '56' usage: 2.324176 remaining: 0.769231 concurrency: 2<=2<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '51' usage: 1.348651 remaining: 4.935065 concurrency: 1<=1<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=52, var.bound=-1.000000, var.weight=1.000000, min_usage=0.194386, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=53, var.bound=-1.000000, var.weight=1.000000, min_usage=0.194386, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=56, var.bound=-1.000000, var.weight=1.000000, min_usage=0.194386, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=57, var.bound=-1.000000, var.weight=1.000000, min_usage=0.194386, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=59, var.bound=-1.000000, var.weight=1.000000, min_usage=0.194386, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=52, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.194386, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=53, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.194386, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=56, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.194386, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=57, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.194386, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=59, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.194386, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (52) value to 0.194386
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(52).weight: 1.000000, Var(52).value: 0.194386 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(52).penalty: 1.000000, Var(52).value: 0.194386 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (53) value to 0.194386
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(53).weight: 1.000000, Var(53).value: 0.194386 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(53).penalty: 1.000000, Var(53).value: 0.194386 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (56) value to 0.194386
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(56).weight: 1.000000, Var(56).value: 0.194386 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(56).penalty: 1.000000, Var(56).value: 0.194386 
 > [0.000000]: [surf_maxmin/DEBUG] index: 9      cnst_light_num: 10      || usage: 0.000000 remaining: 4.672906 bound: 4.935065  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (57) value to 0.194386
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(57).weight: 1.000000, Var(57).value: 0.194386 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(57).penalty: 1.000000, Var(57).value: 0.194386 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (59) value to 0.194386
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(59).weight: 1.000000, Var(59).value: 0.194386 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194386, Var(59).penalty: 1.000000, Var(59).value: 0.194386 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 1.248751  
-> [0.000000]: [surf_maxmin/DEBUG] var=54, var.bound=-1.000000, var.weight=1.000000, min_usage=0.330969, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=54, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.330969, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (54) value to 0.330969
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.330969, Var(54).weight: 1.000000, Var(54).value: 0.330969 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.330969, Var(54).penalty: 1.000000, Var(54).value: 0.330969 
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 8       || usage: 0.000000 remaining: 5.027881 bound: 6.383616  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 7       || usage: 0.000000 remaining: 6.410722 bound: 7.262737  
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 6       || usage: 0.000000 remaining: 0.000000 bound: 0.769231  
-> [0.000000]: [surf_maxmin/DEBUG] var=51, var.bound=-1.000000, var.weight=1.000000, min_usage=1.219766, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=58, var.bound=-1.000000, var.weight=1.000000, min_usage=1.219766, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=51, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.219766, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=58, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.219766, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (51) value to 1.219766
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.219766, Var(51).weight: 1.000000, Var(51).value: 1.219766 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.219766, Var(51).penalty: 1.000000, Var(51).value: 1.219766 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 5       || usage: 0.000000 remaining: 1.051250 bound: 4.255744  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (58) value to 1.219766
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.219766, Var(58).weight: 1.000000, Var(58).value: 1.219766 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.219766, Var(58).penalty: 1.000000, Var(58).value: 1.219766 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 4       || usage: 0.000000 remaining: 2.727287 bound: 6.793207  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 3       || usage: 0.000000 remaining: 0.000000 bound: 3.456543  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 2       || usage: 0.000000 remaining: 1.596251 bound: 3.636364  
@@ -457,35 +457,35 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '63' usage: 3.103397 remaining: 5.574426 concurrency: 2<=2<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '70' usage: 1.173327 remaining: 3.576424 concurrency: 1<=2<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '67' usage: 0.000000 remaining: 5.854146 concurrency: 0<=0<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=61, var.bound=-1.000000, var.weight=1.000000, min_usage=0.596470, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=64, var.bound=-1.000000, var.weight=1.000000, min_usage=0.596470, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=61, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.596470, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=64, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.596470, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (61) value to 0.596470
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.596470, Var(61).weight: 1.000000, Var(61).value: 0.596470 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.596470, Var(61).penalty: 1.000000, Var(61).value: 0.596470 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (64) value to 0.596470
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.596470, Var(64).weight: 1.000000, Var(64).value: 0.596470 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.596470, Var(64).penalty: 1.000000, Var(64).value: 0.596470 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 2.937063  
-> [0.000000]: [surf_maxmin/DEBUG] var=62, var.bound=-1.000000, var.weight=1.000000, min_usage=0.840184, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=66, var.bound=-1.000000, var.weight=1.000000, min_usage=0.840184, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=67, var.bound=-1.000000, var.weight=1.000000, min_usage=0.840184, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=62, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.840184, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=66, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.840184, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=67, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.840184, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (62) value to 0.840184
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.840184, Var(62).weight: 1.000000, Var(62).value: 0.840184 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.840184, Var(62).penalty: 1.000000, Var(62).value: 0.840184 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 8       || usage: 0.000000 remaining: 5.699228 bound: 7.852148  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (66) value to 0.840184
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.840184, Var(66).weight: 1.000000, Var(66).value: 0.840184 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.840184, Var(66).penalty: 1.000000, Var(66).value: 0.840184 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 7       || usage: 0.000000 remaining: 2.590613 bound: 3.576424  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (67) value to 0.840184
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.840184, Var(67).weight: 1.000000, Var(67).value: 0.840184 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.840184, Var(67).penalty: 1.000000, Var(67).value: 0.840184 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 6       || usage: 0.000000 remaining: 3.285095 bound: 5.574426  
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 5       || usage: 0.000000 remaining: 0.000000 bound: 5.684316  
-> [0.000000]: [surf_maxmin/DEBUG] var=63, var.bound=-1.000000, var.weight=1.000000, min_usage=1.205488, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=63, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.205488, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (63) value to 1.205488
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.205488, Var(63).weight: 1.000000, Var(63).value: 1.205488 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.205488, Var(63).penalty: 1.000000, Var(63).value: 1.205488 
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 4       || usage: 0.000000 remaining: 3.912988 bound: 6.843157  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 3       || usage: 0.000000 remaining: 0.000000 bound: 5.944056  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 2       || usage: 0.000000 remaining: 5.529444 bound: 7.422577  
@@ -525,44 +525,44 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '80' usage: 3.623377 remaining: 7.912088 concurrency: 3<=3<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '75' usage: 4.765235 remaining: 0.539461 concurrency: 3<=3<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '74' usage: 1.476024 remaining: 1.428571 concurrency: 1<=1<=4
-> [0.000000]: [surf_maxmin/DEBUG] var=74, var.bound=-1.000000, var.weight=1.000000, min_usage=0.113208, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=75, var.bound=-1.000000, var.weight=1.000000, min_usage=0.113208, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=76, var.bound=-1.000000, var.weight=1.000000, min_usage=0.113208, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=77, var.bound=-1.000000, var.weight=1.000000, min_usage=0.113208, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=74, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.113208, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=75, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.113208, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=76, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.113208, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=77, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.113208, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (74) value to 0.113208
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(74).weight: 1.000000, Var(74).value: 0.113208 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(74).penalty: 1.000000, Var(74).value: 0.113208 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (75) value to 0.113208
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(75).weight: 1.000000, Var(75).value: 0.113208 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(75).penalty: 1.000000, Var(75).value: 0.113208 
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 10      || usage: 0.000000 remaining: 0.783405 bound: 1.168831  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (76) value to 0.113208
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(76).weight: 1.000000, Var(76).value: 0.113208 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(76).penalty: 1.000000, Var(76).value: 0.113208 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (77) value to 0.113208
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(77).weight: 1.000000, Var(77).value: 0.113208 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.113208, Var(77).penalty: 1.000000, Var(77).value: 0.113208 
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 9       || usage: 0.000000 remaining: 1.261474 bound: 1.428571  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 8       || usage: 0.000000 remaining: 0.000000 bound: 0.539461  
-> [0.000000]: [surf_maxmin/DEBUG] var=71, var.bound=-1.000000, var.weight=1.000000, min_usage=0.854701, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=73, var.bound=-1.000000, var.weight=1.000000, min_usage=0.854701, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=71, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.854701, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=73, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.854701, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (71) value to 0.854701
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.854701, Var(71).weight: 1.000000, Var(71).value: 0.854701 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.854701, Var(71).penalty: 1.000000, Var(71).value: 0.854701 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (73) value to 0.854701
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.854701, Var(73).weight: 1.000000, Var(73).value: 0.854701 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.854701, Var(73).penalty: 1.000000, Var(73).value: 0.854701 
 > [0.000000]: [surf_maxmin/DEBUG] index: 3      cnst_light_num: 7       || usage: 0.000000 remaining: 0.000000 bound: 3.446553  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 6       || usage: 0.000000 remaining: 2.798086 bound: 4.355644  
-> [0.000000]: [surf_maxmin/DEBUG] var=72, var.bound=-1.000000, var.weight=1.000000, min_usage=1.655984, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=80, var.bound=-1.000000, var.weight=1.000000, min_usage=1.655984, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=72, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.655984, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=80, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.655984, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (72) value to 1.655984
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.655984, Var(72).weight: 1.000000, Var(72).value: 1.655984 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.655984, Var(72).penalty: 1.000000, Var(72).value: 1.655984 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 5       || usage: 0.000000 remaining: 3.146068 bound: 7.882118  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (80) value to 1.655984
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.655984, Var(80).weight: 1.000000, Var(80).value: 1.655984 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.655984, Var(80).penalty: 1.000000, Var(80).value: 1.655984 
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 4       || usage: 0.000000 remaining: 3.590351 bound: 7.262737  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 3       || usage: 0.000000 remaining: 5.451282 bound: 7.912088  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 2       || usage: 0.000000 remaining: 0.000000 bound: 7.782218  
@@ -602,40 +602,40 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '82' usage: 3.173826 remaining: 7.812188 concurrency: 2<=2<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '87' usage: 2.877123 remaining: 5.074925 concurrency: 1<=2<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '83' usage: 1.522478 remaining: 0.199800 concurrency: 1<=1<=3
-> [0.000000]: [surf_maxmin/DEBUG] var=83, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036726, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=85, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036726, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=89, var.bound=-1.000000, var.weight=1.000000, min_usage=0.036726, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=83, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036726, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=85, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036726, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=89, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.036726, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (83) value to 0.036726
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036726, Var(83).weight: 1.000000, Var(83).value: 0.036726 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036726, Var(83).penalty: 1.000000, Var(83).value: 0.036726 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (85) value to 0.036726
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036726, Var(85).weight: 1.000000, Var(85).value: 0.036726 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036726, Var(85).penalty: 1.000000, Var(85).value: 0.036726 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (89) value to 0.036726
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036726, Var(89).weight: 1.000000, Var(89).value: 0.036726 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.036726, Var(89).penalty: 1.000000, Var(89).value: 0.036726 
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 10      || usage: 0.000000 remaining: 0.000000 bound: 0.189810  
 > [0.000000]: [surf_maxmin/DEBUG] index: 5      cnst_light_num: 9       || usage: 0.000000 remaining: 0.143886 bound: 0.199800  
-> [0.000000]: [surf_maxmin/DEBUG] var=81, var.bound=-1.000000, var.weight=1.000000, min_usage=0.133180, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=82, var.bound=-1.000000, var.weight=1.000000, min_usage=0.133180, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=84, var.bound=-1.000000, var.weight=1.000000, min_usage=0.133180, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=81, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.133180, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=82, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.133180, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=84, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.133180, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (81) value to 0.133180
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.133180, Var(81).weight: 1.000000, Var(81).value: 0.133180 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.133180, Var(81).penalty: 1.000000, Var(81).value: 0.133180 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (82) value to 0.133180
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.133180, Var(82).weight: 1.000000, Var(82).value: 0.133180 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.133180, Var(82).penalty: 1.000000, Var(82).value: 0.133180 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (84) value to 0.133180
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.133180, Var(84).weight: 1.000000, Var(84).value: 0.133180 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.133180, Var(84).penalty: 1.000000, Var(84).value: 0.133180 
 > [0.000000]: [surf_maxmin/DEBUG] index: 7      cnst_light_num: 8       || usage: 0.000000 remaining: 7.532445 bound: 7.812188  
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 7       || usage: 0.000000 remaining: 7.706925 bound: 8.081918  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 6       || usage: 0.000000 remaining: 0.000000 bound: 0.609391  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 5       || usage: 0.000000 remaining: 4.876179 bound: 5.074925  
-> [0.000000]: [surf_maxmin/DEBUG] var=88, var.bound=-1.000000, var.weight=1.000000, min_usage=0.552648, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=88, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.552648, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (88) value to 0.552648
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.552648, Var(88).weight: 1.000000, Var(88).value: 0.552648 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.552648, Var(88).penalty: 1.000000, Var(88).value: 0.552648 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 4       || usage: 0.000000 remaining: 2.232278 bound: 3.776224  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 3       || usage: 0.000000 remaining: 5.081262 bound: 5.934066  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 2       || usage: 0.000000 remaining: 3.095879 bound: 4.025974  
@@ -675,36 +675,36 @@ $ ${bindir:=.}/maxmin_bench small  10 test
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '91' usage: 1.179321 remaining: 8.421578 concurrency: 1<=1<=4
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '96' usage: 2.234266 remaining: 3.876124 concurrency: 1<=1<=3
 > [0.000000]: [surf_maxmin/DEBUG] Constraint '93' usage: 4.747253 remaining: 8.971029 concurrency: 3<=3<=3
-> [0.000000]: [surf_maxmin/DEBUG] var=91, var.bound=-1.000000, var.weight=1.000000, min_usage=0.147116, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=94, var.bound=-1.000000, var.weight=1.000000, min_usage=0.147116, var.bound*var.weight=-1.000000
-> [0.000000]: [surf_maxmin/DEBUG] var=97, var.bound=-1.000000, var.weight=1.000000, min_usage=0.147116, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=91, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.147116, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=94, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.147116, var.bound*var.penalty=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=97, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.147116, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (91) value to 0.147116
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.147116, Var(91).weight: 1.000000, Var(91).value: 0.147116 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.147116, Var(91).penalty: 1.000000, Var(91).value: 0.147116 
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (94) value to 0.147116
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.147116, Var(94).weight: 1.000000, Var(94).value: 0.147116 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.147116, Var(94).penalty: 1.000000, Var(94).value: 0.147116 
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 10      || usage: 0.000000 remaining: 3.978948 bound: 4.585415  
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (97) value to 0.147116
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.147116, Var(97).weight: 1.000000, Var(97).value: 0.147116 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.147116, Var(97).penalty: 1.000000, Var(97).value: 0.147116 
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 9       || usage: 0.000000 remaining: 0.000000 bound: 0.949051  
-> [0.000000]: [surf_maxmin/DEBUG] var=93, var.bound=-1.000000, var.weight=1.000000, min_usage=0.194272, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=93, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.194272, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (93) value to 0.194272
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194272, Var(93).weight: 1.000000, Var(93).value: 0.194272 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.194272, Var(93).penalty: 1.000000, Var(93).value: 0.194272 
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 8       || usage: 0.000000 remaining: 0.000000 bound: 0.649351  
 > [0.000000]: [surf_maxmin/DEBUG] index: 6      cnst_light_num: 7       || usage: 0.000000 remaining: 8.192469 bound: 8.421578  
-> [0.000000]: [surf_maxmin/DEBUG] var=92, var.bound=-1.000000, var.weight=1.000000, min_usage=0.546822, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=92, var.bound=-1.000000, var.penalty=1.000000, min_usage=0.546822, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (92) value to 0.546822
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.546822, Var(92).weight: 1.000000, Var(92).value: 0.546822 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 0.546822, Var(92).penalty: 1.000000, Var(92).value: 0.546822 
 > [0.000000]: [surf_maxmin/DEBUG] index: 4      cnst_light_num: 6       || usage: 0.000000 remaining: 0.000000 bound: 1.198801  
 > [0.000000]: [surf_maxmin/DEBUG] index: 4      cnst_light_num: 5       || usage: 0.000000 remaining: 7.799890 bound: 8.541459  
-> [0.000000]: [surf_maxmin/DEBUG] var=95, var.bound=-1.000000, var.weight=1.000000, min_usage=1.734854, var.bound*var.weight=-1.000000
+> [0.000000]: [surf_maxmin/DEBUG] var=95, var.bound=-1.000000, var.penalty=1.000000, min_usage=1.734854, var.bound*var.penalty=-1.000000
 > [0.000000]: [surf_maxmin/DEBUG] Setting var (95) value to 1.734854
 > 
-> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.734854, Var(95).weight: 1.000000, Var(95).value: 1.734854 
+> [0.000000]: [surf_maxmin/DEBUG] Min usage: 1.734854, Var(95).penalty: 1.000000, Var(95).value: 1.734854 
 > [0.000000]: [surf_maxmin/DEBUG] index: 2      cnst_light_num: 4       || usage: 0.000000 remaining: 3.148664 bound: 5.714286  
 > [0.000000]: [surf_maxmin/DEBUG] index: 0      cnst_light_num: 3       || usage: 0.000000 remaining: 0.000000 bound: 3.876124  
 > [0.000000]: [surf_maxmin/DEBUG] index: 1      cnst_light_num: 2       || usage: 0.000000 remaining: 6.621449 bound: 8.971029