mirror of
https://github.com/illiumst/marl-factory-grid.git
synced 2025-05-22 14:56:43 +02:00
28 lines
1.0 KiB
Python
28 lines
1.0 KiB
Python
from mfg_package.algorithms.static.TSP_base_agent import TSPBaseAgent
|
|
|
|
from mfg_package.modules.clean_up import constants as di
|
|
|
|
future_planning = 7
|
|
|
|
|
|
class TSPDirtAgent(TSPBaseAgent):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(TSPDirtAgent, self).__init__(*args, **kwargs)
|
|
|
|
def predict(self, *_, **__):
|
|
if self._env.state[di.DIRT].by_pos(self.state.pos) is not None:
|
|
# Translate the action_object to an integer to have the same output as any other model
|
|
action = di.CLEAN_UP
|
|
elif door := self._door_is_close():
|
|
action = self._use_door_or_move(door, di.DIRT)
|
|
else:
|
|
action = self._predict_move(di.DIRT)
|
|
# Translate the action_object to an integer to have the same output as any other model
|
|
try:
|
|
action_obj = next(action_i for action_i, a in enumerate(self.state.actions) if a.name == action)
|
|
except (StopIteration, UnboundLocalError):
|
|
print('Will not happen')
|
|
raise EnvironmentError
|
|
return action_obj
|