idea174-catopt-swarm/primitives.py

24 lines
521 B
Python

from dataclasses import dataclass
from typing import Dict, Any
@dataclass
class LocalProblem:
robot_id: str
target_pos: float
current_pos: float = 0.0
dual_var: float = 0.0 # y_i
@dataclass
class SharedVariables:
version: int
global_consensus: float # z
@dataclass
class SafetyPolicy:
max_travel_distance: float
def verify(self, start_pos: float, new_pos: float) -> bool:
if abs(new_pos - start_pos) > self.max_travel_distance:
return False
return True