KR101498391B1 - 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치 - Google Patents

전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치 Download PDF

Info

Publication number
KR101498391B1
KR101498391B1 KR20130145262A KR20130145262A KR101498391B1 KR 101498391 B1 KR101498391 B1 KR 101498391B1 KR 20130145262 A KR20130145262 A KR 20130145262A KR 20130145262 A KR20130145262 A KR 20130145262A KR 101498391 B1 KR101498391 B1 KR 101498391B1
Authority
KR
South Korea
Prior art keywords
time
chromosome
place
cost function
battery
Prior art date
Application number
KR20130145262A
Other languages
English (en)
Inventor
이정훈
박경린
이슬비
강지현
김효빈
Original Assignee
제주대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제주대학교 산학협력단 filed Critical 제주대학교 산학협력단
Priority to KR20130145262A priority Critical patent/KR101498391B1/ko
Application granted granted Critical
Publication of KR101498391B1 publication Critical patent/KR101498391B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Genetics & Genomics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Physiology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

유전 알고리즘을 이용한 스케쥴링 방법이 개시된다. 실시예들은 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 표현하는 염색체 및 전기 자동차의 배터리 충전을 위한 대기시간에 기초하는 비용 함수를 이용할 수 있다.

Description

전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치{METHOD AND APPARATUS OF SCHEDULING A MULTI-DAY VISITING SCHEDULE OVER MULTIPLE PLACES FOR AN ELECTRIC VEHICLE}
아래 실시예들은 유전 알고리즘을 이용한 스케쥴링 방법에 관한 것이다.
에너지 효율은 미래의 전력 그리드에서 가장 중요한 키워드이다. 전기 자동차 기술이 발전됨에 따라, 스마트 그리드 기술이 교통 시스템에도 적용될 수 있다. 에너지 효율의 측면에서뿐 아니라, 전기 자동차는 화석 연료를 사용하는 가솔린 자동차에 비하여 환경적 혜택의 측면에서도 큰 장점을 가진다.
이로 인하여, 많은 현대(modern) 도시들에 전기 자동차를 위한 충전 시설들이 구비되고 있다. 하지만, 전기 자동차를 운영하기 위해서는 주행거리 불안(range anxiety)이 해소되어야 한다. 주행거리 불안은 전기 자동차를 운전하면서 배터리가 충분하지 못할 것을 우려함으로써 발생되는 정신적 피로 또는 불안이다.
실시예들은 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 기술을 제공한다. 실시예들은 유전 알고리즘을 통하여 주행거리 불안을 해소하는 스케쥴링 결과를 도출할 수 있다. 예를 들어, 실시예들은 전기 자동차 기반 렌트 카(rent-a-car) 시스템에 적용됨으로써, 전기 자동차를 대여하여 멀티-데이 투어(multi-day tour)를 하는 여행 일정을 스케쥴링할 수 있다.
일 측에 따른 스케쥴링 방법은 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 표현하는 염색체를 이용하여 해 집단을 생성하는 단계; 및 상기 전기 자동차의 배터리 충전을 위한 대기시간에 기초하는 비용 함수를 이용하여 상기 해 집단에 포함된 최적 해를 검출하는 단계를 포함한다.
이 때, 상기 염색체는 상기 복수의 장소들에 대응하는 복수의 제1 부호의 정수들 및 상기 복수의 날짜들 사이를 구분하는 적어도 하나의 제2 부호의 정수를 포함한다. 또한, 상기 염색체는 서로 다른 값을 가지는 정수들의 순열로 구성될 수 있다.
또한, 상기 대기시간은 염색체에 대응하는 스케쥴에 따라 상기 복수의 장소들을 방문하는 경우, 상기 전기 자동차의 배터리 충전을 위해 요구되는 시간을 합산함으로써 계산될 수 있다. 또한, 상기 전기 자동차의 배터리 충전을 위해 요구되는 시간은 상기 복수의 장소들 중 충전 가능한 장소에 머무르는 시간을 초과하여 추가적으로 요구되는 시간일 수 있다.
또한, 상기 비용 함수는 상기 대기시간의 길이에 비례하는 비용을 출력할 수 있다. 또한, 상기 비용 함수는 상기 대기시간 및 날짜 별 소모시간에 기초할 수 있다. 또한, 상기 비용 함수는 적어도 하나의 날짜 별 소모시간이 임계시간을 초과하는 경우 최대 비용을 출력할 수 있다.
또한, 상기 비용 함수는 복수의 날짜 별 소모시간들 중 최대 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력할 수 있다. 또한, 상기 비용 함수는 복수의 날짜 별 소모시간들 중 최소 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력할 수 있다. 또한, 상기 비용 함수는 미리 정해진 날짜의 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력할 수 있다.
또한, 상기 비용 함수의 출력은 입력되는 염색체에 대응하는 스케쥴에 따라 무브(move) 연산과 스테이(stay) 연산을 번갈아 수행함으로써 계산될 수 있다. 또한, 상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 상기 대기시간 및 날짜 별 소모시간 중 적어도 하나를 갱신할 수 있다.
또한, 상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 시간에 기초하여 날짜 별 소모시간을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 날짜 별 소모시간을 갱신할 수 있다. 또한, 상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 배터리 잔량을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 배터리 잔량을 갱신할 수 있다.
또한, 상기 해 집단을 생성하는 단계는 상기 염색체를 이용하여 미리 정해진 크기의 초기 해 집단을 생성하는 단계를 포함할 수 있다. 또한, 상기 해 집단을 생성하는 단계는 상기 비용 함수를 이용하여 상기 해 집단으로부터 적어도 두 개의 부모 해들을 선택(selection)하는 단계; 및 상기 선택된 부모 해들을 교차(crossover)함으로써 자식 해를 생성하는 단계를 포함할 수 있다.
또한, 상기 해 집단을 생성하는 단계는 상기 자식 해를 변이(mutation)하는 단계; 및 상기 자식 해를 수선(repair)하는 단계 중 적어도 하나를 더 포함할 수 있다. 또한, 상기 해 집단을 생성하는 단계는 상기 비용 함수를 이용하여 상기 해 집단의 적어도 일부를 상기 자식 해로 대치(replacement)하는 단계를 더 포함할 수 있다.
다른 일 측에 따른 스케쥴링 장치는 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 나타내는 염색체를 이용하여 해 집단을 생성하는 생성부; 및 상기 전기 자동차의 배터리 충전을 위한 대기시간에 기초하는 비용 함수를 이용하여 상기 해 집단에 포함된 최적 해를 검출하는 검출부를 포함한다.
이 때, 상기 염색체는 상기 복수의 장소들에 대응하는 복수의 제1 부호의 정수들 및 상기 복수의 날짜들 사이를 구분하는 적어도 하나의 제2 부호의 정수를 포함할 수 있다.
또한, 상기 대기시간은 염색체에 대응하는 스케쥴에 따라 상기 복수의 장소들을 방문하는 경우, 상기 전기 자동차의 배터리 충전을 위해 요구되는 시간을 합산함으로써 계산될 수 있다.
또한, 상기 전기 자동차의 배터리 충전을 위해 요구되는 시간은 상기 복수의 장소들 중 충전 가능한 장소에 머무르는 시간을 초과하여 추가적으로 요구되는 시간일 수 있다.
또한, 상기 비용 함수는 상기 대기시간의 길이에 비례하는 비용을 출력할 수 있다. 또한, 상기 비용 함수는 적어도 하나의 날짜 별 소모시간이 임계시간을 초과하는 경우 최대 비용을 출력할 수 있다. 또한, 상기 비용 함수는 복수의 날짜 별 소모시간들 중 어느 하나의 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력할 수 있다.
또한, 상기 비용 함수의 출력은 입력되는 염색체에 대응하는 스케쥴에 따라 무브 연산과 스테이 연산을 번갈아 수행함으로써 계산될 수 있다. 또한, 상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 상기 대기시간 및 날짜 별 소모시간 중 적어도 하나를 갱신할 수 있다.
또한, 상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 시간에 기초하여 날짜 별 소모시간을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 날짜 별 소모시간을 갱신할 수 있다. 또한, 상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 배터리 잔량을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 배터리 잔량을 갱신할 수 있다.
또한, 상기 생성부는 상기 비용 함수를 이용하여 상기 해 집단으로부터 적어도 두 개의 부모 해들을 선택하고, 상기 선택된 부모 해들을 교차함으로써 자식 해를 생성하며, 상기 비용 함수를 이용하여 상기 해 집단의 적어도 일부를 상기 자식 해로 대치할 수 있다.
도 1은 일 실시예에 따른 스케쥴링 방법을 나타낸 동작 흐름도.
도 2a 내지 도 3b는 실시예들에 따른 염색체 표현을 설명하는 도면.
도 4는 일 실시예에 따른 비용 함수의 출력을 계산하는 도면.
도 5는 일 실시예에 따른 스케쥴링 장치를 나타낸 블록도.
실시예에 따른 유전 알고리즘( genetic algorithm )을 이용한 스케쥴링 방법
도 1은 일 실시예에 따른 스케쥴링 방법을 나타낸 동작 흐름도이다. 도 1을 참조하면, 일 실시예에 따른 스케쥴링 방법은 해 집단을 생성하는 단계(110) 및 해 집단에 포함된 최적 해를 검출하는 단계(120)를 포함한다. 여기서, 단계(110) 및 단계(120)은 각각 유전 알고리즘에 기초하여 수행될 수 있다. 유전 알고리즘은 최적화 문제를 해결하는 기법의 하나로, 전역 최적화 기법이다. 유전 알고리즘은 생물의 진화를 모방한 기법인 진화 연산의 대표로서, 생명체에 적용되는 많은 방식을 차용하여 돌연변이에 대응하는 변이 연산, 교배에 대응하는 교차 연산 등을 포함한다.
보다 구체적으로, 유전 알고리즘은 정해진 수의 해로 구성되는 해 집단(population)을 갖는다. 유전 알고리즘은 먼저 n개의 해를 임의로 생성하는 초기화 단계로 시작된다. 예를 들어, 단계(111)에서 초기 해 집단이 생성될 수 있다.
해 집단으로부터 k개의 새로운 해를 만들어 내기 위하여, 선택(selection), 교차(crossover), 변이(mutation)가 수행된다. 예를 들어, 단계(112)에서 적어도 두 개의 부모 해들이 선택되고, 단계(113)에서 자식 해가 생성되며, 단계(114)에서 해 집단의 적어도 일부가 자식 해로 대치될 수 있다. 새로운 k개의 해는 해 집단 내의 k개의 해와 대치(replacement)된다. k는 해 집단이 한 번에 얼마나 많이 대치되느냐를 결정하는데 k/n을 세대 차(generation gap)라 한다. 선택 연산자는 교차를 위해 해 집단에서 임의의 해를 선택하는 연산자이고, 우수한 해가 선택될 확률이 증가하도록 동작한다. 선택된 해를 부모 해(parent)라 한다. 교차 연산자는 두 개의 부모 해로부터 자식 해(offspring)를 생성하는 연산자이다. 교차 연산자는 유전 알고리즘의 대표적 연산자로서 유전 알고리즘의 성능에 지대한 영향을 미친다.
전술한 과정은 임의의 정지 조건이 만족될 때까지 반복된 뒤, 해 집단에 남은 해 중 가장 좋은 해가 검출된다. 예를 들어, 정지 조건이 만족되지 않는 경우, 단계(112) 내지 단계(114)가 반복될 수 있다. 정지 조건이 만족되는 경우, 단계(115)에서 해 집단에 포함된 최적 해가 검출될 수 있다. 유전 알고리즘이 정지하기 위한 조건도 다양하게 설정될 수 있다. 일 예로, 리피트-언틸(repeat-until) 루프를 일정 횟수만큼 수행한 다음 정지하도록 설정될 수 있다. 다른 예로, 해 집단에 있는 해들의 다양성이 어느 정도 이하로 떨어지는 시점에 정지하도록 설정될 수 있다. 다양성이 떨어지는 것을 판단하기 위하여 해 집단 내의 해들 중 대부분(예를 들면 70%)이 동일한지 여부가 확인될 수 있다.
실시예에 따른 시스템 모델
일 실시예에 따르면, 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 순서가 스케쥴링될 수 있다. 이하, 설명의 편의를 위하여, 전기 자동차를 이용하는 여행객이 복수의 날짜들에 걸쳐 복수의 여행지(tour spot)들을 방문하는 경우를 설명한다.
S = {S1, S2, ..., Sn}는 여행지들의 집합(set)을 지칭한다. 전기 자동차를 이용하는 여행객은 전체 여행 일정에서 S 내 모든 여행지들을 방문하기를 원할 수 있다. S 내 각각의 여행지들은 서로 다른 장소이다. S 내 각각의 여행지들은 전체 여행 일정에서 한 번씩 방문되도록 스케쥴링된다. S는 여행객에 의하여 입력되거나, 여행객에게 자동으로 추천될 수 있다.
S 내 여행지들을 자신들만의 방문시간(stay time)을 가지는데 이는 여행지에서 활동을 위해 머무는 시간을 의미한다. 예를 들어, S 내 각각의 여행지들을 관광하기 위하여 필요한 방문시간은 서로 다르게 설정될 수 있다. 방문시간은 여행객의 선호도, 날씨 등 다양한 요소(factor)들에 의하여 영향을 받을 수 있다. 만약 스케쥴링 목표(scheduling goal)가 대기시간(waiting time)을 감소시키는 것인 경우, 방문시간은 전체 분포 내 합리적인 하한선(reasonable lower bound of the entire distribution)으로 설정될 수 있다. Si에서 방문시간은 T(Si)라고 지칭될 수 있다. S 내 여행지들 각각의 방문시간은 여행객에 의하여 입력되거나, 여행객에게 자동으로 추천될 수 있다.
매일의 시작 지점(start point)과 종료 지점(end point)은 미리 정해질 수 있다. i번째 날의 시작 지점-종료 지점 페어 Hi는 {Hi s, Hi e}로 표현될 수 있다. 여기서, 1 ≤ i ≤ m이고, m은 총 여행 날짜이다. Hi s는 i번째 날의 시작 지점을 지칭하고, Hi e는 i번째 날의 종료 지점을 지칭한다. 예를 들어, 첫째 날의 시작 지점 H1 s는 공항의 전기 자동차 픽업 장소로 지정되고, 첫째 날의 종료 지점 H1 e는 첫째 날 투숙하는 호텔로 지정될 수 있다. 마지막 날의 종료 지점 Hm e는 공항의 전기 자동차 리턴 장소로 지정될 수 있다. 또한, 여행객이 호텔에서 투숙한 뒤 다음 날 동일한 호텔에서 출발하는 경우, Hi +1 s = Hi e 로 설정될 수 있다. 이 경우, 다음 날 시작 지점은 전날 종료 지점과 동일하게 지정될 수 있다. 예를 들어, 둘째 날의 시작 지점은 첫째 날 투숙하는 호텔로 지정될 수 있다. 매일의 시작 지점과 종료 지점은 여행객에 의하여 입력되거나, 여행객에게 자동으로 추천될 수 있다.
S 내 여행지들 사이의 거리들은 로드 네트워크(road network)에 기초하여 정해질 수 있다. Si와 Sj 사이의 거리는 Dist(Si, Sj)로 지칭될 수 있다.
실시예에 따른 염색체( chromosome )의 표현
유전 알고리즘에서 모든 해는 염색체로 표현된다. 하나의 해는 하나 또는 그 이상의 염색체와 대응될 수 있다. 염색체에는 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴이 인코딩될 수 있다. 예를 들어, 기본적으로 염색체는 n개의 여행지들을 포함할 수 있다. 또한, 총 여행 날짜가 m인 경우, (m-1)개의 서로 다른 음의 정수들이 염색체에 포함될 수 있다. 이 경우, 염색체는 총 (n+m-1)개의 개별 원소들을 포함할 수 있다. 전술한 염색체의 표현 방식에 따르면, 복수의 날짜들을 위한 스케쥴이 단일 날짜를 위한 스케쥴처럼 취급될 수 있다.
도 2a 내지 도 3b는 실시예들에 따른 염색체 표현을 설명하는 도면이다. 도 2a를 참조하면, 일 실시예에 따른 염색체(200)는 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 표현한다. 예를 들어, 염색체(200)는 복수의 장소들에 대응하는 양의 정수들(210, 230, 250)을 포함할 수 있다. 또한, 염색체(200)는 복수의 날짜들 사이를 구분하는 음의 정수들(220, 240)을 포함할 수 있다. 이 경우, 음의 정수들(220, 240)을 기준으로 구분되는 양의 정수들(210, 230, 250)은 각각 다른 날짜에 방문하도록 스케쥴링된 장소들을 지시할 수 있다.
염색체(200)는 (음의 정수들의 개수 + 1)의 날짜들에 걸쳐 (양의 정수들의 개수)의 장소들을 방문하는 스케쥴을 표현한다. 예를 들어, 염색체(200)은 제1 음의 정수(220)보다 앞에 위치하는 제1 양의 정수들(210), 제1 음의 정수(220)보다 뒤에 위치하고 제2 음의 정수(240)보다 앞에 위치하는 제2 양의 정수들(230), 및 제2 음의 정수(240)보다 뒤에 위치하는 제3 양의 정수들(250)로 구성된다. 이 경우, 제1 양의 정수들(210)은 첫째 날 방문하도록 스케쥴링된 장소들을 지시하고, 제2 양의 정수들(230)은 둘째 날 방문하도록 스케쥴링된 장소들을 지시하며, 제3 양의 정수들(250)은 셋째 날 방문하도록 스케쥴링된 장소들을 지시할 수 있다.
염색체(200)는 서로 다른 값을 가지는 정수들의 순열로 구성될 수 있다. 예를 들어, 염색체(200) 내에는 동일한 값을 가지는 원소들이 존재하지 않을 수 있다. 이 경우, 양의 정수들(210, 230, 250)은 각각 서로 다른 장소들에 대응한다. 제1 양의 정수들(210)에 포함된 (1, 2, 3)은 (S1, S2, S3)에 대응할 수 있다. 여기서, (S1, S2, S3)은 각각 제1 장소, 제2 장소, 및 제3 장소를 지시할 수 있다. 또한, 제2 양의 정수들(230)에 포함된 (4, 5, 6)은 (S4, S5, S6)에 대응할 수 있다. 여기서, (S4, S5, S6)은 각각 제4 장소, 제5 장소, 및 제6 장소를 지시할 수 있다. 또한, 제3 양의 정수들(250)에 포함된 (7, 8, 9)는 (S7, S8, S9)에 대응할 수 있다. 여기서, (S7, S8, S9)는 각각 제7 장소, 제8 장소, 및 제9 장소를 지시할 수 있다.
음의 정수들(220, 240)은 각각 날짜의 경계에 대응한다. 음의 정수들(220, 240)의 절대값은 별도의 의미를 가지지 않을 수 있다. 예를 들어, 염색체(200)에서 (-1)의 값을 가지는 제1 음의 정수(220)의 위치와 (-2)의 값을 가지는 제2 음의 정수(240)의 위치가 서로 뒤바뀌는 경우, 염색체는 (1, 2, 3, -2, 4, 5, 6, -1, 7, 8, 9)로 표현될 수 있다. 이 때, (1, 2, 3, -2, 4, 5, 6, -1, 7, 8, 9)로 표현되는 염색체의 스케쥴은 (1, 2, 3, -1, 4, 5, 6, -2, 7, 8, 9)로 표현되는 염색체의 스케쥴과 실질적으로 동일할 수 있다. 다시 말해, (1, 2, 3, -2, 4, 5, 6, -1, 7, 8, 9)로 표현되는 염색체와 (1, 2, 3, -1, 4, 5, 6, -2, 7, 8, 9)로 표현되는 염색체 모두 도 2b의 스케쥴을 나타낼 수 있다.
도 2b를 참조하면, 도 2a의 염색체(200)는 첫째 날 (S1, S2, S3)(260)에 방문하고, 둘째 날 (S4, S5, S6)(270)에 방문하며, 셋째 날 (S7, S8, S9)(280)에 방문하는 스케쥴을 표현할 수 있다. 보다 구체적으로, 여행객은 첫째 날 시작 지점 H1 s(291)에서 전기 자동차를 픽업한 뒤, 시작 지점 H1 s(291)에서 제1 장소 S1으로 이동한다. 여행객은 제1 장소 S1에서 S1에 대응하는 시간(예를 들어, S1의 방문시간) 동안 머무를 수 있다. 여행객은 제1 장소 S1에서 제2 장소 S2로 이동하고, 제2 장소 S2에서 S2에 대응하는 시간(예를 들어, S2의 방문시간) 동안 머무를 수 있다. 여행객은 제2 장소 S2에서 제3 장소 S3로 이동하고, 제3 장소 S3에서 S3에 대응하는 시간(예를 들어, S3의 방문시간) 동안 머무를 수 있다. 여행객은 제3 장소 S3에서 첫째 날 종료 지점 H1 e(292)로 이동할 수 있다.
또한, 여행객은 둘째 날 시작 지점 H2 s(292)에서 제4 장소 S4로 이동한다. 여행객은 제4 장소 S4에서 S4에 대응하는 시간(예를 들어, S4의 방문시간) 동안 머무를 수 있다. 여행객은 제4 장소 S4에서 제5 장소 S5로 이동하고, 제5 장소 S5에서 S5에 대응하는 시간(예를 들어, S5의 방문시간) 동안 머무를 수 있다. 여행객은 제5 장소 S5에서 제6 장소 S6으로 이동하고, 제6 장소 S6에서 S6에 대응하는 시간(예를 들어, S6의 방문시간) 동안 머무를 수 있다. 여행객은 제6 장소 S6에서 둘째 날 종료 지점 H2 e(293)로 이동할 수 있다.
마지막으로, 여행객은 셋째 날 시작 지점 H3 s(293)에서 제7 장소 S7로 이동한다. 여행객은 제7 장소 S7에서 S7에 대응하는 시간(예를 들어, S7의 방문시간) 동안 머무를 수 있다. 여행객은 제7 장소 S7에서 제8 장소 S8로 이동하고, 제8 장소 S8에서 S8에 대응하는 시간(예를 들어, S8의 방문시간) 동안 머무를 수 있다. 여행객은 제8 장소 S8에서 제9 장소 S9로 이동하고, 제9 장소 S9에서 S9에 대응하는 시간(예를 들어, S9의 방문시간) 동안 머무를 수 있다. 여행객은 제9 장소 S9에서 셋째 날 종료 지점 H3 e(294)로 이동할 수 있다.
여기서, 첫째 날 시작 지점 H1 s(291)은 공항 픽업 스테이션이고, 첫째 날 종료 지점 H1 e(292) 및 둘째 날 시작 지점 H2 s(292)은 제1 호텔이며, 둘째 날 종료 지점 H2 e(293) 및 셋째 날 시작 지점 H3 s(293)은 제2 호텔이고, 셋째 날 종료 지점 H3 e(294)은 공항 리턴 스테이션일 수 있다.
도 3a를 참조하면, 다른 실시예에 따른 염색체(300)에서, 각각의 날짜에 방문하도록 스케쥴링된 장소들의 수는 균일하지 않을 수 있다. 예를 들어 염색체(300)는 총 9개의 장소들 중 2개의 장소들을 첫째 날 방문하고, 4개의 장소들을 둘째 날 방문하며, 나머지 3개의 장소들을 셋째 날 방문하는 스케쥴을 표현할 수 있다. 이 경우, 제1 양의 정수들(310)은 2개의 원소들을 포함하고, 제2 양의 정수들(330)은 4개의 원소들을 포함하며, 제3 양의 정수들(350)은 3개의 원소들을 포함한다. 염색체(300) 내에서 제1 양의 정수들(310) 및 제2 양의 정수들(330) 사이에는 제1 음의 정수(320)가 배치되며, 제2 양의 정수들(330) 및 제3 양의 정수들(350) 사이에는 제2 음의 정수(340)가 배치된다. 전술한 바와 같이, 제1 음의 정수(320) 및 제2 음의 정수(340)는 날짜를 구분하는 경계 역할을 할 뿐, 제1 음의 정수(320) 및 제2 음의 정수(340) 각각의 절대값은 별다른 의미를 가지지 않을 수 있다. 다만, 제1 음의 정수(320) 및 제2 음의 정수(340)의 절대값을 다르게 함으로써, 염색체(300)가 서로 다른 정수 값을 가지는 원소들의 순열로 구성될 수 있다. 이로 인하여, 순열로 구성되는 염색체를 대상으로 하는 교차 연산 등이 염색체(300)에 적용될 수 있다.
도 3b를 참조하면, 도 3a의 염색체(300)는 첫째 날 (S1, S3)(360)에 방문하고, 둘째 날 (S5, S8, S2, S6)(370)에 방문하며, 셋째 날 (S7, S9, S4)(380)에 방문하는 스케쥴을 표현할 수 있다. 보다 구체적으로, 여행객은 첫째 날 시작 지점 H1 s(391)에서 전기 자동차를 픽업한 뒤, 시작 지점 H1 s(391)에서 제1 장소 S1으로 이동한다. 여행객은 제1 장소 S1에서 S1에 대응하는 시간(예를 들어, S1의 방문시간) 동안 머무를 수 있다. 여행객은 제1 장소 S1에서 제3 장소 S3으로 이동하고, 제3 장소 S3에서 S3에 대응하는 시간(예를 들어, S3의 방문시간) 동안 머무를 수 있다. 여행객은 제3 장소 S3에서 첫째 날 종료 지점 H1 e(392)로 이동할 수 있다.
또한, 여행객은 둘째 날 시작 지점 H2 s(392)에서 제5 장소 S5로 이동한다. 여행객은 제5 장소 S5에서 S5에 대응하는 시간(예를 들어, S5의 방문시간) 동안 머무를 수 있다. 여행객은 제5 장소 S5에서 제8 장소 S8로 이동하고, 제8 장소 S8에서 S8에 대응하는 시간(예를 들어, S8의 방문시간) 동안 머무를 수 있다. 여행객은 제8 장소 S8에서 제2 장소 S2로 이동하고, 제2 장소 S2에서 S2에 대응하는 시간(예를 들어, S2의 방문시간) 동안 머무를 수 있다. 여행객은 제2 장소 S2에서 제6 장소 S6로 이동하고, 제6 장소 S6에서 S6에 대응하는 시간(예를 들어, S6의 방문시간) 동안 머무를 수 있다. 여행객은 제6 장소 S6에서 둘째 날 종료 지점 H2 e(393)로 이동할 수 있다.
마지막으로, 여행객은 셋째 날 시작 지점 H3 s(393)에서 제7 장소 S7로 이동한다. 여행객은 제7 장소 S7에서 S7에 대응하는 시간(예를 들어, S7의 방문시간) 동안 머무를 수 있다. 여행객은 제7 장소 S7에서 제9 장소 S9로 이동하고, 제9 장소 S9에서 S9에 대응하는 시간(예를 들어, S9의 방문시간) 동안 머무를 수 있다. 여행객은 제9 장소 S9에서 제4 장소 S4로 이동하고, 제4 장소 S4에서 S4에 대응하는 시간(예를 들어, S4의 방문시간) 동안 머무를 수 있다. 여행객은 제4 장소 S4에서 셋째 날 종료 지점 H3 e(394)로 이동할 수 있다.
여기서, 첫째 날 시작 지점 H1 s(391)은 공항 픽업 스테이션이고, 첫째 날 종료 지점 H1 e(392) 및 둘째 날 시작 지점 H2 s(392)은 제1 호텔이며, 둘째 날 종료 지점 H2 e(393) 및 셋째 날 시작 지점 H3 s(393)은 제2 호텔이고, 셋째 날 종료 지점 H3 e(394)은 공항 리턴 스테이션일 수 있다.
실시예에 따른 비용 함수( cost function )
비용 함수는 알고리즘에 의하여 도출한 개개의 해가 해당 알고리즘의 궁극적 목적에 얼마나 근접한 것인지에 대하여 평가하는 성능지수(figure of merit)를 계산하기 위하여 사용되는 목적 함수(objective function)이다. 유전 알고리즘에서의 비용 함수는 유전 알고리즘을 수행하는데 있어서 진화의 방향성, 즉 최적 해에 대한 방향성을 제시할 수 있다. 비용 함수 또는 적합도 함수(fitness function)는 스케쥴의 품질을 평가한다. 해 집단 내 스케쥴들은 적합도 수치(fitness value)에 의하여 정렬될 수 있다. 비용이 높을수록 적합도는 낮아지므로, 비용 함수 및 적합도 함수는 상호 교환적으로(interchangeably) 이용될 수 있다.
일 실시예에 따르면, 스케쥴링 결과들 각각은 독립적인 염색체로 표현되고, 유전 알고리즘의 초기화 단계에서 n개의 염색체로 구성된 해 집단이 생성되며, 해 집단으로부터 k개의 새로운 해가 생성되고, k개의 새로운 해는 기존 해 집단 내의 k개의 해와 대치될 수 있다. 이 때, 비용 함수를 이용하여 각각의 해, 즉 각각의 염색체의 성능지수가 평가되고, 성능지수의 평가 결과가 안 좋은 k개의 해가 대치될 수 있다. 뿐만 아니라, 비용 함수는 교차 연산을 위한 부모 해의 선택 연산에서도 사용될 수 있다. 이에 대하여는 후술한다.
염색체에 인코딩된 스케쥴은 비용 함수에 의하여 평가될 수 있다. 예를 들어, 비용 함수는 대기시간이나 총 여행시간(total tour length) 등 미리 정해진 비용요소에 기초하여 염색체의 품질을 평가할 수 있다. 대기시간이나 총 여행시간 등 미리 정해진 비용요소는 염색체에 인코딩된 스케쥴, 호텔의 스펙 등에 기초하여 계산될 수 있다. 여기서, 호텔의 스펙은 날짜 별 투숙하는 호텔의 위치, 해당 호텔에서 전기 자동차의 충전 가부 등을 포함할 수 있다.
비용 함수에서 이용되는 대기시간을 추정하기 위하여 두 개의 원시 연산자(primitive operator)들이 정의될 수 있다. 두 개의 원시 연산자들은 무브(move) 연산자와 스테이(stay) 연산자이다. 염색체에 대응하는 스케쥴에 따라 두 개의 원시 연산자들은 번갈아 가며 호출된다. 이하, 대기 시간은 W라고 지칭되고, i번째 날짜의 날짜 별 소모시간은 Li라고 지칭될 수 있다. 대기시간 및 날짜 별 소모시간은, 염색체에 대응하는 스케쥴에 따라, 각각의 여행지에 대하여 계산될 수 있다.
무브 연산은 두 여행지들 사이의 이동과 관련된다. 배터리 잔량이 충분한 경우, 무브 연산은 배터리 잔량을 감소시킬 뿐, 대기시간을 갱신하지는 않는다. 무브 연산은 두 여행지들 사이의 이동시간만큼 해당하는 날짜의 날짜 별 소모시간을 증가시킬 수 있다. 반면, 배터리 잔량이 부족한 경우, 무브 연산은 부족한 배터리량에 대응하는 충전시간만큼 대기시간을 증가시킨다. 무브 연산은 해당하는 날짜의 날짜 별 소모시간을 이동시간 및 충전시간의 합만큼 증가시킬 수 있다.
스테이 연산은 여행지에서 충전되는 배터리량을 추적할 수 있다. 여행지에 충전소가 없는 경우, 스테이 연산은 배터리 잔량을 갱신하지 않는다. 반면, 특정 여행지에 충전소가 있는 경우, 스테이 연산은 해당 여행지에 대응하는 방문시간에 따라 선형으로(linearly) 배터리 잔량을 증가시킬 수 있다. 여기서, 배터리의 충전에는 다양한 배터리 모델들이 적용될 수 있다. 다만, 배터리 잔량은 최대 배터리 용량 Bmax를 초과할 수 없다. 따라서, 충전소를 가지면서 긴 방문시간을 가지는 여행지들이 연달아 배치되는 방문 순서는 기피(avoid)될 수 있다.
일 예로, 2일 여행(2-day trip)은 {(H1 s, H1 e), (H2 s, H2 e)}의 호텔 스펙과 {S1, S2, -1, S3, S4}의 스케쥴로 기술될 수 있다. 이 경우, 첫째 날에 대하여 Move(Dist(H1 s, S1)), Stay(T(S1)), Move(Dist(S1, S2)), Stay(T(S2)), 및 Move(Dist(S2, H1 e))가 순차적으로(sequentially) 호출되고, 둘째 날에 대하여 Move(Dist(H2 s, S3)), Stay(T(S3)), Move(Dist(S3, S4)), Stay(T(S4)), 및 Move(Dist(S4, H2 e))가 순차적으로(sequentially) 호출됨으로써, 대기시간 W가 계산될 수 있다. 이와 동시에, 염색체에 대응하는 스케쥴의 비용 또는 적합도를 평가하기 위하여, 날짜 별 소모시간 Li가 계산될 수 있다.
도 4를 참조하면, 첫째 날의 Move(Dist(H1 s, S1))(410)는 Dist(H1 s, S1)를 이동하기에 전기 자동차의 배터리 잔량이 충분한지 여부를 판단할 수 있다. 배터리 잔량이 충분한 경우(411), 배터리 잔량 Bleft는 Dist(H1 s, S1)를 이동하기 위하여 소모되는 배터리 소모량만큼 감소된다. 또한, 첫째 날의 날짜 별 소모시간 L1은 Dist(H1 s, S1)를 이동하는 이동시간만큼 증가된다. 이 경우, 대기시간 W는 증가되지 않는다.
만약 배터리 잔량이 부족한 경우(412), 배터리 잔량 Bleft는 0으로 설정된다. 대기시간 W는 Dist(H1 s, S1)를 이동하기에 부족한 배터리량을 충전하는 데 걸리는 충전시간만큼 증가된다. 또한, 첫째 날의 날짜 별 소모시간 L1은 Dist(H1 s, S1)를 이동하는 이동시간 및 충전시간의 합만큼 증가된다.
첫째 날의 Stay(T(S1))(420)은 S1에서 전기 자동차의 배터리를 충전할 수 있는지 여부를 판단할 수 있다. S1에서 충전이 가능한 경우(421), 배터리 잔량 Bleft는 배터리 충전량만큼 증가된다. 여기서, 배터리 충전량은 S1에 머무르는 시간(예를 들어, S1의 방문시간)과 배터리 충전 모델에 의하여 계산될 수 있다. 예를 들어, 배터리 충전량은 S1에 머무르는 시간에 선형적으로 비례할 수 있다. 다만, 배터리 잔량 Bleft는 최대 배터리 용량 Bmax를 초과할 수 없다. 또한, 첫째 날의 날짜 별 소모시간 L1은 S1에 머무르는 시간만큼 증가된다. 만약 S1에서 충전이 불가능한 경우(422), 첫째 날의 날짜 별 소모시간 L1이 S1에 머무르는 시간만큼 증가될 뿐, 배터리 잔량 Bleft는 증가되지 않는다.
날짜 별 소모시간의 바운더리(boundary)는 여행객에 의해 설정될 수 있다. 각각의 날짜에 대한 날짜 별 소모시간은 설정된 바운더리와 비교된다. 바운더리를 초과하는 날짜 별 소모시간이 존재하는 경우, 해당 염색체에 대응하는 스케쥴은 유효(valid)하지 않다. 그러나, 유효하지 않은 스케쥴의 염색체라도 재생산(reproduction)에 의하여 적합도의 향상에 기여할 수 있기 때문에, 해당 염색체가 해 집단 내에서 폐기(discard)되지 않을 수 있다. 대신, 비용 함수는 유효하지 않은 스케쥴의 염색체에 대하여 최대 비용(예를 들어, 무한대)을 출력한다.
대기시간은 여행객의 편의를 위하여 가장 중요한 요소이고, 대기시간은 작으면 작을수록 좋다. 날짜 별 소모시간은 비용 함수에 다양하게 영향을 미칠 수 있다. 일 예로, 매일 일정 뒤 휴식시간이나 여분의 자유시간을 확보하기 위하여, 날짜 별 소모시간은 날짜 별로 고르게(evenly) 분포되는 것이 선호될 수 있다. 이 경우, 스케쥴 x에 대한 비용 함수 F는 수학식 1과 같이 정의될 수 있다.
Figure 112013108320642-pat00001
여기서, Max(Li)는 복수의 날짜들에 대한 날짜 별 소모시간들 중 최대 날짜 별 소모시간이고, Tb는 날짜 별 소모시간의 바운더리이다.
다른 예로, 가능한 적은 일수 안에 여행 일정이 스케쥴되도록 하기 위하여, 날짜 별 소모시간은 날짜 별로 고르지 않게 분포되는 것이 선호될 수 있다. 이 경우, 스케쥴 x에 대한 비용 함수 F는 수학식 2와 같이 정의될 수 있다.
Figure 112013108320642-pat00002
여기서, Min(Li)는 복수의 날짜들에 대한 날짜 별 소모시간들 중 최소 날짜 별 소모시간이다.
또 다른 예로, 미리 정해진 날짜에 자유 시간을 최대한 확보하기 위하여, 해당 날짜의 날짜 별 소모시간이 작게 스케쥴되는 것이 선호될 수 있다. 이 경우, 스케쥴 x에 대한 비용 함수 F는 수학식 3과 같이 정의될 수 있다.
Figure 112013108320642-pat00003
여기서, La는 미리 정해진 날짜의 날짜 별 소모시간이다. 이처럼 어느 경우든 간에, 비용 함수는 대기시간 및 날짜 별 소모시간을 고려하여 염색체의 품질을 평가할 수 있다.
실시예에 따른 선택 연산
선택 연산은 교차 연산에 쓰이는 두 개의 부모 해를 고르기 위한 연산자이다. 다양한 선택 연산자들이 있으나 공통된 원칙은 우수한 해가 선택될 확률이 높아야 한다는 것이다. 우수한 해들과 열등한 해들 사이의 적합도 차이를 조절함으로써 선택 확률을 조절할 수 있고, 이 차이의 정도를 선택압(selection pressure)이라 한다. 선택압이 높을수록 수렴은 빠르나 설익은 수렴(premature convergence)의 가능성이 높아진다. 반면 선택압이 너무 낮으면 해 집단의 평균 품질이 좋아지지 않을 가능성이 많다. 선택압은 프로그래머가 조절할 수 있는 파라미터이다.
선택 연산을 위하여 품질 비례 룰렛휠 선택(roulette wheel selection) 기법이 이용될 수 있다. 품질 비례 룰렛휠 선택(roulette wheel selection) 기법은 가상의 룰렛휠을 이용한다. 룰렛휠의 크기는 각 염색체의 적합도를 모두 합한 값만큼의 크기를 가지고, 각 염색체는 룰렛휠 상에 자신의 적합도만큼의 공간을 배정받는다. 즉, 배정받은 공간의 크기만큼 부모 해로 선택될 확률이 높아진다.
품질 비례 룰렛휠 선택(Roulette Wheel selection) 방법은 각 해의 품질을 평가한 다음 가장 좋은 해의 적합도가 가장 나쁜 해의 적합도보다 k배가 되도록 조절한다. 일 실시예에 따른 유전 알고리즘은 품질 비례 룰렛휠 선택(roulette wheel selection) 기법을 이용할 때 k값으로 3~4를 사용할 수 있다.
일 실시예에 따른 유전 알고리즘은 다양한 선택 연산을 이용하는 형태로 응용될 수 있다. 예를 들어, 두 개의 염색체를 임의로 선택하여 0~1 범위의 난수를 발생시킨 다음, 난수가 파라미터화 할 수 있는 t값보다 작으면 두 염색체 중 품질이 좋은 것을 선택하고, 그렇지 않으면 품질이 나쁜 것을 선택하는 토너먼트 선택 방법이나 해 집단 내의 해들을 품질 순으로 순위를 매긴 다음 가장 좋은 해부터 일차 함수적으로 적합도를 배정하는 순위 기반 선택 방법 등이 이용될 수 있다.
실시예에 따른 교차 연산
일 실시예에 따른 유전 알고리즘은 균등 교차(uniform crossover) 기법을 이용하여 부모 염색체의 교차시킴으로써 자식 염색체를 생성할 수 있다. 교차 연산은 두 해의 특징을 부분 결합하여 하나의 새로운 해를 만들어내는 연산자이다. 따라서 교차로 인해 만들어지는 해의 유전자들은 모두 부모 해로부터 물려받은 것이고, 부모 해의 유전자들을 좋은 방향으로 결합할 수 있다. 균등 교차는 일점 교차와 다점 교차와 달리 자름선을 이용하여 이루어지지 아니한다. 균등 교차는 먼저 임계확률
Figure 112013108320642-pat00004
를 설정하고, 각각의 유전자 위치에 대하여 난수를 발생한 다음 이 값이
Figure 112013108320642-pat00005
이상이면 제1 부모 해의 같은 위치로부터 유전자를 복사해오고, 그렇지 않으면 제2 부모 해의 같은 위치로부터 복사를 한다.
또한, 일 실시예에 따른 유전 알고리즘은 일점 교차 및 다점 교차 연산을 수행 자식 염색체를 생성할 수 있다. 일점 교차는 두 부모 해의 동일한 위치에 자름선을 정하고, 이 자름선은 각 부모 해를 두 부분으로 나누며, 각 부모 해로부터 한 부분씩만 가져와서 합쳐 새로운 해를 생성한다. 길이가 n인 일차원 염색체 상에서 일점 교차로 자르는 방법의 총 수는 n-1가지이다. 다점 교차는 두 부모 해를 나누는 자름선의 개수가 3개 이상인 교차 연산이다. 염색체의 길이가 n일 때 k점 교차로 자르는 방법의 총 수는
Figure 112013108320642-pat00006
가지이다.
또한, 일 실시예에 따른 유전 알고리즘은 순열을 표현하는 염색체에 적용 가능한 싸이클 교차(cycle crossover), 순서 교차(order crossover), 및 PMX(partially matched crossover) 등을 이용할 수 있다.
실시예에 따른 대치 연산
일 실시예에 따른 유전 알고리즘은 중복 복제 배제 대치(replacement for duplicated genes) 기법을 이용하여 해 집단 내 동일한 염색체의 존재를 배제하는 대치 연산을 수행할 수 있다. 교차 연산으로 생성한 자식 해가 기존 해 집단에 존재하는 염색체와 동일한 경우, 새로운 염색체가 생성되어 해 집단의 적어도 일부가 대치될 수 있다.
일 실시예에 따른 유전 알고리즘은 다양한 대치 연산을 이용하는 형태로 응용될 수 있다. 예를 들어, 해 집단 내에서 가장 품질이 낮은 해를 대치하는 방법; 두 부모 해 중 품질이 나쁜 해와 대치하는 프리선택(preselection) 방법; 부모 해 중의 하나보다 품질이 좋을 경우에는 부모 해와 대치하고 그렇지 못하면 해 집단에서 가장 나쁜 해를 대치하는 방법; 부모 해 중의 하나보다 좋을 때만 대치하고 그렇지 않은 경우에는 대치를 포기하는 방법; 해 집단 전체를 비교하여 자신과 가장 가까운 해를 대치하는 방법; 및 해 집단에서 임의로 몇 개의 해를 선택하여 그 중 새로 만든 해와 가장 닮은 해를 제거하는 군집대치(crowding) 방법 등이 이용될 수 있다.
실시예에 따른 변이 연산 및 수선 연산
일 실시예에 따른 유전 알고리즘은 생명체의 돌연변이에 대응하는 변이 연산을 이용할 수 있다. 유전 알고리즘은 변이 연산을 통하여 부모 해에 없는 유전자를 도입할 수 있다. 예를 들어, 교차 연산을 통하여 생성된 자식 해에서 일부 원소들의 순서가 뒤바뀔 수 있다.
교차 연산이나 변이 연산의 결과로 생성된 해는 적격 해(feasible solution)가아닐 수 있다. 예를 들어, 복수의 날짜들 각각에 적어도 하나의 여행지이 포함되어야 하는 경우, 염색체 내에서 음의 정수들이 연달아 배치되거나 염색체의 처음이나 끝에 음의 정수가 배치되는 해는 부적격하다. 수선 연산은 부적격 해를 적격 해로 변이시키는 역할을 할 수 있다.
실시예에 따른 스케쥴링 장치
도 5는 일 실시예에 따른 스케쥴링 장치를 나타낸 블록도이다. 도 5를 참조하면, 일 실시예에 따른 스케쥴링 장치(500)는 생성부(510) 및 검출부(520)를 포함한다. 생성부(510)는 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 나타내는 염색체를 이용하여 해 집단을 생성할 수 있다. 검출부(520)는 전기 자동차의 배터리 충전을 위한 대기시간에 기초하는 비용 함수를 이용하여 해 집단에 포함된 최적 해를 검출할 수 있다. 도 5에 도시된 각 모듈들에는 도 1 내지 도 4를 통하여 기술된 사항들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (32)

  1. 스케쥴링 장치가, 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 표현하는 염색체를 이용하여 해 집단을 생성하는 단계; 및
    상기 스케쥴링 장치가, 상기 전기 자동차의 배터리 충전을 위한 대기시간에 기초하는 비용 함수를 이용하여 상기 해 집단에 포함된 최적 해를 검출하는 단계
    를 포함하는 스케쥴링 방법.
  2. 제1항에 있어서,
    상기 염색체는 상기 복수의 장소들에 대응하는 복수의 제1 부호의 정수들 및 상기 복수의 날짜들 사이를 구분하는 적어도 하나의 제2 부호의 정수를 포함하는 스케쥴링 방법.
  3. 제2항에 있어서,
    상기 염색체는 서로 다른 값을 가지는 정수들의 순열로 구성되는 스케쥴링 방법.
  4. 제1항에 있어서,
    상기 대기시간은 염색체에 대응하는 스케쥴에 따라 상기 복수의 장소들을 방문하는 경우, 상기 전기 자동차의 배터리 충전을 위해 요구되는 시간을 합산함으로써 계산되는 스케쥴링 방법.
  5. 제4항에 있어서,
    상기 전기 자동차의 배터리 충전을 위해 요구되는 시간은 상기 복수의 장소들 중 충전 가능한 장소에 머무르는 시간을 초과하여 추가적으로 요구되는 시간인 스케쥴링 방법.
  6. 제1항에 있어서,
    상기 비용 함수는 상기 대기시간의 길이에 비례하는 비용을 출력하는 스케쥴링 방법.
  7. 제1항에 있어서,
    상기 비용 함수는 상기 대기시간 및 날짜 별 소모시간에 기초하는 스케쥴링 방법.
  8. 제1항에 있어서,
    상기 비용 함수는 적어도 하나의 날짜 별 소모시간이 임계시간을 초과하는 경우 최대 비용을 출력하는 스케쥴링 방법.
  9. 제1항에 있어서,
    상기 비용 함수는 복수의 날짜 별 소모시간들 중 최대 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력하는 스케쥴링 방법.
  10. 제1항에 있어서,
    상기 비용 함수는 복수의 날짜 별 소모시간들 중 최소 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력하는 스케쥴링 방법.
  11. 제1항에 있어서,
    상기 비용 함수는 미리 정해진 날짜의 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력하는 스케쥴링 방법.
  12. 제1항에 있어서,
    상기 비용 함수의 출력은 입력되는 염색체에 대응하는 스케쥴에 따라 무브(move) 연산과 스테이(stay) 연산을 번갈아 수행함으로써 계산되는 스케쥴링 방법.
  13. 제12항에 있어서,
    상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 상기 대기시간 및 날짜 별 소모시간 중 적어도 하나를 갱신하는 스케쥴링 방법.
  14. 제12항에 있어서,
    상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 시간에 기초하여 날짜 별 소모시간을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 날짜 별 소모시간을 갱신하는 스케쥴링 방법.
  15. 제12항에 있어서,
    상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 배터리 잔량을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 배터리 잔량을 갱신하는 스케쥴링 방법.
  16. 제1항에 있어서,
    상기 해 집단을 생성하는 단계는
    상기 스케쥴링 장치가, 상기 염색체를 이용하여 미리 정해진 크기의 초기 해 집단을 생성하는 단계
    를 포함하는 스케쥴링 방법.
  17. 제1항에 있어서,
    상기 해 집단을 생성하는 단계는
    상기 스케쥴링 장치가, 상기 비용 함수를 이용하여 상기 해 집단으로부터 적어도 두 개의 부모 해들을 선택(selection)하는 단계; 및
    상기 스케쥴링 장치가, 상기 선택된 부모 해들을 교차(crossover)함으로써 자식 해를 생성하는 단계
    를 포함하는 스케쥴링 방법.
  18. 제17항에 있어서,
    상기 해 집단을 생성하는 단계는
    상기 스케쥴링 장치가, 상기 자식 해를 변이(mutation)하는 단계; 및
    상기 스케쥴링 장치가, 상기 자식 해를 수선(repair)하는 단계
    중 적어도 하나를 더 포함하는 스케쥴링 방법.
  19. 제17항에 있어서,
    상기 해 집단을 생성하는 단계는
    상기 스케쥴링 장치가, 상기 비용 함수를 이용하여 상기 해 집단의 적어도 일부를 상기 자식 해로 대치(replacement)하는 단계
    를 더 포함하는 스케쥴링 방법.
  20. 제1항 내지 제19항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  21. 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 나타내는 염색체를 이용하여 해 집단을 생성하는 생성부; 및
    상기 전기 자동차의 배터리 충전을 위한 대기시간에 기초하는 비용 함수를 이용하여 상기 해 집단에 포함된 최적 해를 검출하는 검출부
    를 포함하는 스케쥴링 장치.
  22. 제21항에 있어서,
    상기 염색체는 상기 복수의 장소들에 대응하는 복수의 제1 부호의 정수들 및 상기 복수의 날짜들 사이를 구분하는 적어도 하나의 제2 부호의 정수를 포함하는 스케쥴링 장치.
  23. 제21항에 있어서,
    상기 대기시간은 염색체에 대응하는 스케쥴에 따라 상기 복수의 장소들을 방문하는 경우, 상기 전기 자동차의 배터리 충전을 위해 요구되는 시간을 합산함으로써 계산되는 스케쥴링 장치.
  24. 제23항에 있어서,
    상기 전기 자동차의 배터리 충전을 위해 요구되는 시간은 상기 복수의 장소들 중 충전 가능한 장소에 머무르는 시간을 초과하여 추가적으로 요구되는 시간인 스케쥴링 장치.
  25. 제21항에 있어서,
    상기 비용 함수는 상기 대기시간의 길이에 비례하는 비용을 출력하는 스케쥴링 장치.
  26. 제21항에 있어서,
    상기 비용 함수는 적어도 하나의 날짜 별 소모시간이 임계시간을 초과하는 경우 최대 비용을 출력하는 스케쥴링 장치.
  27. 제21항에 있어서,
    상기 비용 함수는 복수의 날짜 별 소모시간들 중 어느 하나의 날짜 별 소모시간 및 상기 대기시간에 비례하는 비용을 출력하는 스케쥴링 장치.
  28. 제21항에 있어서,
    상기 비용 함수의 출력은 입력되는 염색체에 대응하는 스케쥴에 따라 무브 연산과 스테이 연산을 번갈아 수행함으로써 계산되는 스케쥴링 장치.
  29. 제28항에 있어서,
    상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 상기 대기시간 및 날짜 별 소모시간 중 적어도 하나를 갱신하는 스케쥴링 장치.
  30. 제28항에 있어서,
    상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 시간에 기초하여 날짜 별 소모시간을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 날짜 별 소모시간을 갱신하는 스케쥴링 장치.
  31. 제28항에 있어서,
    상기 무브 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 제1 장소에서 제2 장소로의 이동을 위하여 소모되는 배터리 소모량에 기초하여 배터리 잔량을 갱신하고, 상기 스테이 연산은 상기 입력되는 염색체에 대응하는 스케쥴에 따른 장소에 머무르는 시간에 기초하여 배터리 잔량을 갱신하는 스케쥴링 장치.
  32. 제21항에 있어서,
    상기 생성부는
    상기 비용 함수를 이용하여 상기 해 집단으로부터 적어도 두 개의 부모 해들을 선택하고, 상기 선택된 부모 해들을 교차함으로써 자식 해를 생성하며, 상기 비용 함수를 이용하여 상기 해 집단의 적어도 일부를 상기 자식 해로 대치하는 스케쥴링 장치.
KR20130145262A 2013-11-27 2013-11-27 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치 KR101498391B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130145262A KR101498391B1 (ko) 2013-11-27 2013-11-27 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130145262A KR101498391B1 (ko) 2013-11-27 2013-11-27 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101498391B1 true KR101498391B1 (ko) 2015-03-03

Family

ID=53026142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130145262A KR101498391B1 (ko) 2013-11-27 2013-11-27 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101498391B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463995A (zh) * 2017-08-01 2017-12-12 浙江大学 具有自适应遗传策略rna‑ga的燃料电池优化建模方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000209707A (ja) * 1999-01-07 2000-07-28 Mitsubishi Electric Corp 電気自動車の充電計画装置
JP2012205425A (ja) * 2011-03-25 2012-10-22 Toshiba Corp 電気自動車充電スケジューリングシステム
KR20130082957A (ko) * 2011-12-26 2013-07-22 주식회사 케이티 전기자동차 카쉐어링 서비스 시스템 및 이를 이용한 서비스 방법
KR20130094919A (ko) * 2012-02-17 2013-08-27 제주대학교 산학협력단 전기차량의 예약충전 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000209707A (ja) * 1999-01-07 2000-07-28 Mitsubishi Electric Corp 電気自動車の充電計画装置
JP2012205425A (ja) * 2011-03-25 2012-10-22 Toshiba Corp 電気自動車充電スケジューリングシステム
KR20130082957A (ko) * 2011-12-26 2013-07-22 주식회사 케이티 전기자동차 카쉐어링 서비스 시스템 및 이를 이용한 서비스 방법
KR20130094919A (ko) * 2012-02-17 2013-08-27 제주대학교 산학협력단 전기차량의 예약충전 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463995A (zh) * 2017-08-01 2017-12-12 浙江大学 具有自适应遗传策略rna‑ga的燃料电池优化建模方法
CN107463995B (zh) * 2017-08-01 2020-04-17 浙江大学 具有自适应遗传策略rna-ga的燃料电池优化建模方法

Similar Documents

Publication Publication Date Title
Lee et al. A joint bottom-up solution methodology for system-level pavement rehabilitation and reconstruction
Cao et al. Coarse-grained parallel genetic algorithm applied to a vector based land use allocation optimization problem: the case study of Tongzhou Newtown, Beijing, China
KR102023163B1 (ko) 유전 알고리즘에 기초한 전기 자동차 충전기 위치 선정 기법
CN110739696B (zh) 智能配网环境中需求侧资源与可再生能源的集成调度方法
Khmeleva et al. Fuzzy-logic controlled genetic algorithm for the rail-freight crew-scheduling problem
CN113885555A (zh) 面向输电线路密集通道巡检的多机任务分配方法和系统
Amiripour et al. Hybrid method for bus network design with high seasonal demand variation
Krzysztof The importance of automatic traffic lights time algorithms to reduce the negative impact of transport on the urban environment
Davidov et al. Stochastic expansion planning of the electric-drive vehicle charging infrastructure
Reich et al. Survey of ETA prediction methods in public transport networks
KR101498391B1 (ko) 전기 자동차를 이용하여 복수의 날짜들에 걸쳐 복수의 장소들을 방문하는 스케쥴을 스케쥴링하는 방법 및 장치
CN108197749B (zh) 飞行器滑行调度方法与装置
Zhao et al. Evaluating ground–air network vulnerabilities in an integrated terminal maneuvering area using co-evolutionary computational red teaming
CN115130791B (zh) 面向车载智能机场的无人机与车辆协同调度方法及装置
CN111310985B (zh) 一种行程规划方法及系统
Liu et al. Dynamic immune cooperative scheduling of agricultural machineries
Chand et al. A multi objective genetic algorithm for solving vehicle routing problem
US11747153B1 (en) Apparatus and associated method for determining a travel itinerary
Fang et al. Multi-objective emergency scheduling for geological disasters
Dib et al. Computing multicriteria shortest paths in stochastic multimodal networks using a memetic algorithm
KR101462337B1 (ko) 유전 알고리즘을 이용한 전기 자동차 재배치 스케줄링 방법 및 장치
Saha et al. Optimal sizing and efficient routing of electric vehicles for a vehicle-on-demand system
Li et al. Analysis of the challenges and solutions of building a smart city
KR101401787B1 (ko) 하이브리드 오리엔티어링 모델에 기초한 전기 자동차를 위한 경로 추천 서비스 방법 및 장치
Zafar et al. An Optimization Approach for Convolutional Neural Network Using Non-Dominated Sorted Genetic Algorithm-II.

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190218

Year of fee payment: 5