본문 바로가기

분류 전체보기147

강화학습 응용 <DP를 활용한 교차로 우회전 경로 생성> 패스트 캠퍼스 강화학습 교육에서 들은 Dynamic Programming 기법을 경로 생성 로직에 적용할 수 있는 방안을 고민해보았다. 요즘 최 우선 기능 개발 목표가 수치 최적화 기반의 교차로 우회전 경로 생성이다. 수치 최적화 그리고 교차로 우회전 경로 생성이 중요한 것이 아니다. 대신 로직이 충돌판단, 차량의 Kinematic Constraint 고려, 부드러운 경로 생성을 모두 반영한 Full stack 경로 생성 로직을 하나의 알고리즘에 녹여낼 수 있는 것이 수치 최적화 기반이고, 위 3가지 특징을 모두 요구하는 구간이 교차로 우회전이기 때문에 개발 진행 중이다. DP는 MDP로 정의된 문제에서, state transition probability와 reward를 알고 있을 때 사용할 수 있는 .. 2021. 11. 30.
강화학습 - 2 <MDP를 푸는 Dynamic Programming 기법> 강화학습 문제는 MDP로 정의되는 문제이다. 따라서 강화학습 문제를 풀고 싶으면 MDP 문제를 푸는 기법을 사용하면 된다. MDP 문제는 Agent가 환경을 아는 상황(State Transition Matrix와 Discounted rate를 아는 상황)이냐 그렇지 않느냐에 따라 적용할 수 있는 기법이 다르다. 가장 먼저 환경을 아는 상황에서는 Dynamic Programming 기법 (이하 DP)를 적용할 수 있다. DP를 적용해 문제를 풀기 위해선 문제가 2가지 특성을 가지고 있어야 한다. 첫번째는 Optimal structure이다. 큰 문제의 하위 문제인 작은 문제에서의 최적 값이, 큰 문제에서도 최적값인 것이다. 두번째는 Overlapping problems이다. 큰 문제를 풀기 위해서 작은 문.. 2021. 11. 28.
강화학습 - 1 <Markov 개념> 강화학습은 인공지능의 한 분야로 분류된다. 강화학습이라는 단어를 뜯어보면 강화 + 학습으로 나누어진다. 즉, 강화학습은 학습을 하는 주체가 있고, 학습을 하는 이유는 무엇인가를 강화하기 위함이라고 생각해볼 수 있다. 강화학습은 어떤 환경(Environment)에서 어떤 주체가(Agent) 최대의 보상(Reward)를 얻을 수 있도록 정책(Policy)을 학습하는 기법을 일컫는다. 여기서 환경과 주체는 현실에서 주어지는 문제이고, 보상은 개발자가 정의하는 것 그리고 정책은 주체가 보상을 받도록 하는 행동을 결정하는 기준을 말한다. 강화학습도 여타 다른 알고리즘과 같이 현실의 문제를 해결하기 위한 도구이다. 강화학습을 현실 문제를 풀 기위한 도구로 사용하는데 있어, 가장 기본 배경 개념은 Markov Dec.. 2021. 11. 27.
[소프티어] 성적 평균 https://softeer.ai/practice/formCodeEditor.do 문제 풀이 : 배열과 인덱스를 입력받아 평균을 내는 것 난이도 : 쉬움 특이 사항 : float 연산과 int 연산의 차이점 알아야 함, 소수점 출력하는 법 알아야 함 ex) printf("%.2f\n", Num]); : 소숫점 둘째 자리까지 표기 printf("%.3f\n", Num]); : 소숫점 셋째 자리까지 표기 printf("%.4f\n", Num]); : 소숫점 넷째 자리까지 표기 2021. 10. 19.
[소프티어] 스마트 물류 https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=414 Softeer 제한시간 : C/C+/Java/Python/JS(2초) | 메모리 제한 : 512MB 현대자동차그룹은 주요 물류센터에 각종 자동화 기기를 도입하며 ‘스마트 물류’를 실현하고 있다. 최근에는 자동차 반조립 부품(KD, Knock-Dow softeer.ai 그리디 알고리즘을 사용하면 풀린다. 문제는 이게 그리디 알고리즘을 사용해도 되는지 증명해보아야 한다. 2021. 10. 19.
[소프티어] 지능형 교통 시스템 https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=580 Softeer 제한시간 : C/C++(1초), Java/Python/JS(2초) | 메모리 제한 : 256MB 지능형 교통시스템(Intelligent Transport System)은 이미 우리의 삶에 밀접하게 연결되어 있다. 내비게이션 실시간 교통정보, 고속도로의 하이 softeer.ai Recursion과 Queue 개념을 사용하여 문제에 접근 함. 1. Input 입력 받기 2. 신호 DB 저장하기 3. Recursion과 Queue 사용해 답안 계산하기 입력 예제와 몇몇 테스트케이스에서 정상 동작하였으나, 일부 테스트 케이스에서 오답을 내기도 하고 런타임 에러가 발생하기도 함. 배운 것.. 2021. 10. 19.