30 lines
935 B
Python
30 lines
935 B
Python
from negotiation_agent.environment import NegotiationEnv
|
|
from negotiation_agent.agent import QLearningAgent
|
|
from usecases.train_agent_usecase import TrainAgentUseCase # 유스케이스 임포트
|
|
import config
|
|
|
|
|
|
def main():
|
|
# 1. 의존성(객체) 생성: 필요한 모든 '재료'를 준비합니다.
|
|
env = NegotiationEnv(
|
|
scenario=config.SCENARIO,
|
|
target_price=config.TARGET_PRICE,
|
|
threshold_price=config.THRESHOLD_PRICE,
|
|
)
|
|
|
|
agent = QLearningAgent(
|
|
state_dims=env.observation_space.nvec,
|
|
action_size=env.action_space.n,
|
|
learning_rate=config.LEARNING_RATE,
|
|
gamma=config.GAMMA,
|
|
epsilon=config.EPSILON_START,
|
|
)
|
|
|
|
# 2. 유스케이스 생성 및 실행: 준비된 재료로 '요리사'에게 '요리'를 지시합니다.
|
|
train_use_case = TrainAgentUseCase(env=env, agent=agent)
|
|
train_use_case.execute()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|