update end condition

This commit is contained in:
mjjo
2018-08-20 17:32:15 +09:00
parent 442944ca19
commit 20648e9bf8

View File

@@ -19,7 +19,7 @@ class Loader:
class Stepper: class Stepper:
def __init__(self, print_gap=1.0e-2, break_gap=1.0e-9): def __init__(self, print_gap=1.0e-4, break_gap=1.0e-9):
self._prev_cost = 0 self._prev_cost = 0
self._cost = 0 self._cost = 0
self._cost_diff = 0 self._cost_diff = 0
@@ -41,22 +41,19 @@ class Stepper:
self._cost = step self._cost = step
self._cost_diff = self._cost - self._prev_cost self._cost_diff = self._cost - self._prev_cost
self.accumulator += self._cost_diff self.accumulator += abs(self._cost_diff)
if self.accumulator >= self._print_gap: if self.accumulator >= self._print_gap:
self.accumulator -= self._print_gap self.accumulator = 0
self._b_print_turn = True self._b_print_turn = True
if self._prev_cost != 0 and self._cost_diff > 0: if self._prev_cost != 0 and (self._cost_diff > 0 or abs(self._cost_diff) < self._break_gap):
self._serial_divergence_cnt += 1 self._serial_divergence_cnt += 1
if self._serial_divergence_cnt >= 3: if self._serial_divergence_cnt >= 5:
self._b_break_turn = True self._b_break_turn = True
else: else:
self._serial_divergence_cnt = 0 self._serial_divergence_cnt = 0
if abs(self._cost_diff) < self._break_gap:
self._b_break_turn = True
def is_print_turn(self): def is_print_turn(self):
return self._b_print_turn return self._b_print_turn