KR20230018082A - Method and apparatus for parking enforcement scheduling based on genetic algorithm - Google Patents

Method and apparatus for parking enforcement scheduling based on genetic algorithm Download PDF

Info

Publication number
KR20230018082A
KR20230018082A KR1020210099823A KR20210099823A KR20230018082A KR 20230018082 A KR20230018082 A KR 20230018082A KR 1020210099823 A KR1020210099823 A KR 1020210099823A KR 20210099823 A KR20210099823 A KR 20210099823A KR 20230018082 A KR20230018082 A KR 20230018082A
Authority
KR
South Korea
Prior art keywords
enforcement
visit
fitness
parking
candidate solutions
Prior art date
Application number
KR1020210099823A
Other languages
Korean (ko)
Other versions
KR102571957B1 (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 KR1020210099823A priority Critical patent/KR102571957B1/en
Publication of KR20230018082A publication Critical patent/KR20230018082A/en
Application granted granted Critical
Publication of KR102571957B1 publication Critical patent/KR102571957B1/en

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/017Detecting movement of traffic to be counted or controlled identifying vehicles
    • G08G1/0175Detecting movement of traffic to be counted or controlled identifying vehicles by photographing vehicles, e.g. when violating traffic rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A parking enforcement scheduling method and apparatus based on a genetic algorithm are provided. According to one embodiment, the method may include the steps of: initializing candidate solutions corresponding to integer vectors which represent a visit sequence of visiting candidates in target enforcement areas, respectively; evaluating the goodness of fit of candidate solutions based on the expected number of enforcement actions and travel time according to each visit sequence of candidate solutions; repeatedly performing a genetic operation based on the goodness of fit and determining a final solution; and determining a parking enforcement schedule based on the visit sequence corresponding to the final solution.

Description

유전자 알고리즘 기반의 주차 단속 스케줄링 방법 및 장치{METHOD AND APPARATUS FOR PARKING ENFORCEMENT SCHEDULING BASED ON GENETIC ALGORITHM}Parking Enforcement Scheduling Method and Apparatus Based on Genetic Algorithm

아래 실시예들은 유전자 알고리즘 기반의 주차 단속 스케줄링 방법 및 장치에 관한 것이다.The following embodiments relate to a parking enforcement scheduling method and apparatus based on a genetic algorithm.

주차공간의 확보가 차량보급의 증가를 따라가지 못한다면 필연적으로 불법주차가 늘어나게 된다. 더욱이 지하철 등 예측가능성이 높은 교통수단이 서비스되지 않는 중소도시에서는 승용차가 주요 이동수단이 되는데 사람들이 이동이 빈번한 시간 동안 특히 도심의 인구집중지역에서는 주차공간의 부족때문에 주차난이 발생하게 된다. 이를 극복하기 위해서는 우선적으로 관제시스템의 운영과 주차요금제의 운영 등을 통한 효율적인 관리에 의해 지능적인 공간사용을 추구할 수 있다. 그러나 이런 운영만으로는 다양한 원인에 의해 발생하는 주차위반을 대폭 줄이기는 미흡하기 때문에 대부분의 도시에서는 교통의 편의를 증진시키고 대중교통 활용을 유도하기 위해 이러한 주차위반을 단속하고 있다.If the securing of parking spaces cannot keep up with the increase in vehicle supply, illegal parking will inevitably increase. Moreover, in small and medium-sized cities where highly predictable transportation means such as subways are not serviced, cars are the main means of transportation. In order to overcome this, it is possible to pursue intelligent space use through efficient management through the operation of the control system and the operation of the parking fee system. However, since this operation alone is not enough to drastically reduce parking violations caused by various causes, most cities are cracking down on these parking violations to improve transportation convenience and induce the use of public transportation.

불법주차 단속은 고정식 CCTV, 공용버스에 탑재된 카메라, 주민 신고, 이동 단속차량을 통해 이루어진다. CCTV는 고정된 위치에 설치되어 제한된 영역의 주차위반을 단속할 수 있는 반면 이동차량은 다양한 지역을 특정 정책에 따라 옮겨가며 단속을 실시할 수 있다. 그러나 이동 단속차량의 운행은 한정된 자원의 활용에 해당하므로 효율적인 운행계획의 수립이 필요하다. 일반적으로 각 단속차량마다 할당된 지역이 있어서 이 지역을 순회하면서 불법주차 차량을 발견하고 단속하게 되는데, 어떤 순서로 순회해야 하는지 특정 지역에서 얼마만큼 단속을 수행해야 하는지 등을 결정하는 것이 중요하다.Illegal parking crackdowns are carried out through fixed CCTVs, cameras mounted on public buses, residents' reports, and mobile enforcement vehicles. CCTV is installed in a fixed location and can crack down on parking violations in a limited area, while mobile vehicles can enforce crackdowns by moving to various areas according to specific policies. However, since the operation of mobile enforcement vehicles corresponds to the utilization of limited resources, it is necessary to establish an efficient operation plan. In general, each enforcement vehicle has an assigned area, and illegally parked vehicles are discovered and cracked down while touring the area.

일 실시예에 따르면, 유전자 알고리즘 기반의 주차 단속 스케줄링 방법은 각각 대상 단속 지역들 중의 방문 후보들의 방문 시퀀스를 나타내는 정수 벡터에 해당하는 후보 해들을 초기화하는 단계; 상기 후보 해들의 각 방문 시퀀스에 따른 예상 단속 수 및 이동 시간에 기초하여 상기 후보 해들의 적합도를 평가하는 단계; 상기 적합도에 기초하여 유전 연산을 반복적으로 수행하여 최종 해를 결정하는 단계; 및 상기 최종 해에 대응하는 방문 시퀀스에 기초하여 주차 단속 스케줄을 결정하는 단계를 포함한다.According to an embodiment, a genetic algorithm-based parking enforcement scheduling method includes initializing candidate solutions corresponding to integer vectors representing visit sequences of visit candidates in target enforcement areas; Evaluating the fitness of the candidate solutions based on the expected number of punctures and travel time according to each visit sequence of the candidate solutions; determining a final solution by repeatedly performing a genetic operation based on the fitness; and determining a parking enforcement schedule based on the visit sequence corresponding to the final solution.

상기 적합도를 평가하는 단계는 과거 주차 단속 기록을 저장하는 단속 기록 데이터베이스에 기초하여 각 방문 시퀀스의 방문 후보들 및 방문 시간들에 따른 예상 단속 수를 결정하는 단계; 및 상기 대상 단속 지역들의 위치 정보에 기초하여 각 방문 시퀀스의 방문 후보들 간의 이동 시간을 결정하는 단계를 포함할 수 있다.The step of evaluating the suitability may include determining an expected number of enforcements according to visit candidates and visit times of each visit sequence based on an enforcement record database storing past parking enforcement records; and determining a movement time between visit candidates of each visit sequence based on the location information of the target enforcement areas.

상기 적합도를 평가하는 단계는 상기 예상 단속 수가 많을수록 상기 적합도가 높아지고, 상기 이동 시간이 길수록 상기 적합도가 낮아지도록, 상기 적합도를 평가하는 단계를 포함할 수 있다. 상기 적합도를 평가하는 단계는 상기 예상 단속 수에서 상기 이동 시간과 단위 단속 시간 간의 비에 따른 손실 요인을 차감하여 상기 적합도를 평가하는 단계를 포함할 수 있다.The step of evaluating the fitness may include evaluating the fitness so that the fitness increases as the expected number of policing increases, and the fitness decreases as the moving time increases. Evaluating the fitness may include evaluating the fitness by subtracting a loss factor according to a ratio between the movement time and the unit enforcement time from the expected number of enforcements.

상기 최종 해를 결정하는 단계는 상기 적합도에 기초하여 상기 후보 해들로부터 부모 해들을 선택하는 단계; 및 상기 부모 해들에 기초하여 재생산 및 변이 중 적어도 일부를 수행하여 다음 세대의 후보 해들을 결정하는 단계를 포함할 수 있다. 상기 다음 세대의 후보 해들을 결정하는 단계는 상기 다음 세대의 후보 해들에 중복이 발생하지 않도록 중복된 후보 해를 다른 후보 해로 대체하는 단계를 포함할 수 있다. 상기 최종 해는 미리 정해진 반복 횟수만큼의 진화를 통해 결정될 수 있다.Determining the final solution may include selecting parent solutions from the candidate solutions based on the fitness; and determining candidate solutions of the next generation by performing at least some of reproduction and mutation based on the parent solutions. The determining of candidate solutions of the next generation may include replacing duplicated candidate solutions with other candidate solutions so that duplication does not occur in the candidate solutions of the next generation. The final solution may be determined through evolution by a predetermined number of iterations.

일 실시예에 따르면, 유전자 알고리즘 기반의 주차 단속 스케줄링 장치는 프로세서; 및 상기 프로세서에서 실행가능한 명령어들을 포함하는 메모리를 포함하고, 상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는 각각 대상 단속 지역들 중의 방문 후보들의 방문 시퀀스를 나타내는 정수 벡터에 해당하는 후보 해들을 초기화하고, 상기 후보 해들의 각 방문 시퀀스에 따른 예상 단속 수 및 이동 시간에 기초하여 상기 후보 해들의 적합도를 평가하고, 상기 적합도에 기초하여 유전 연산을 반복적으로 수행하여 최종 해를 결정하고, 상기 최종 해에 대응하는 방문 시퀀스에 기초하여 주차 단속 스케줄을 결정한다.According to one embodiment, a genetic algorithm-based parking enforcement scheduling apparatus includes a processor; and a memory comprising instructions executable by the processor, wherein when the instructions are executed by the processor, the processor initializes candidate solutions corresponding to integer vectors each representing a visit sequence of visit candidates in target enforcement areas; , Evaluate the goodness of the candidate solutions based on the expected number of saccades and travel time according to each visit sequence of the candidate solutions, determine the final solution by repeatedly performing a genetic operation based on the goodness of fit, and determine the final solution A parking enforcement schedule is determined based on the corresponding visit sequence.

도 1은 일 실시예에 따른 주차 단속 스케줄링 장치의 동작을 개략적으로 나타낸다.
도 2는 일 실시예에 따른 시간에 따른 차량 단속 수를 나타낸다.
도 3은 일 실시예에 따른 지리적 단속 빈도를 나타낸다.
도 4는 일 실시예에 따른 단속 지역 정보 및 방문 시퀀스를 나타낸다.
도 5는 일 실시예에 따른 유전자 알고리즘의 연산들을 나타낸다.
도 6 및 도 7은 일 실시예에 따른 진화 과정의 예시들을 나타낸다.
도 8은 다양한 스킴들 간의 비교 결과를 나타낸다.
도 9는 일 실시예에 따른 이동 거리의 영향을 나타낸다.
도 10은 일 실시예에 따른 주차 단속 스케줄링 방법을 나타내는 플로우 차트이다.
도 11은 일 실시예에 따른 주차 단속 스케줄링 장치의 구성을 나타내는 블록도이다.
도 12는 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
1 schematically shows the operation of a parking enforcement scheduling apparatus according to an embodiment.
2 shows the number of vehicle enforcement over time according to an embodiment.
3 shows geographic enforcement frequency according to one embodiment.
4 shows enforcement area information and a visit sequence according to an embodiment.
5 shows operations of a genetic algorithm according to one embodiment.
6 and 7 show examples of an evolution process according to an embodiment.
8 shows comparison results between various schemes.
9 shows an effect of a moving distance according to an embodiment.
10 is a flowchart illustrating a parking enforcement scheduling method according to an embodiment.
11 is a block diagram showing the configuration of a parking enforcement scheduling device according to an embodiment.
12 is a block diagram illustrating a configuration of an electronic device according to an exemplary embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 일 실시예에 따른 주차 단속 스케줄링 장치의 동작을 개략적으로 나타낸다.1 schematically shows the operation of a parking enforcement scheduling apparatus according to an embodiment.

도 1을 참조하면, 주차 단속 스케줄링 장치(100)는 주차 단속 기록 및 단속 지역 정보에 기초하여 주차 단속 스케줄을 생성할 수 있다. 주차 단속 차량은 주차 단속 스케줄에 따라 주차 단속을 수행할 수 있다.Referring to FIG. 1 , the parking enforcement scheduling apparatus 100 may generate a parking enforcement schedule based on a parking enforcement record and enforcement area information. The parking enforcement vehicle may perform parking enforcement according to a parking enforcement schedule.

단속 지역들에 관한 주차 단속 기록이 수집되어 주차 단속 스케줄링 장치(100)에 제공될 수 있다. 효율적인 순회 스케줄을 계산하기 위해서는 기존의 데이터를 적극적으로 활용하여야 하며 최근 스마트 시티에서는 센서나 다양한 방법으로 수집되어 축적된 데이터들을 기반으로 시스템 운영에 관련된 적절한 제어를 결정하고 있다. 주차 단속의 경우는 도시마다 수년간의 데이터가 저장되어 있으며 이 데이터에 의해 어떤 시간대에 어떤 장소에서 불법주차가 일어날 가능성이 많은 지 추정할 수 있다. 신규 CCTV의 설치, 주차공간의 증설 등 다양한 환경변화를 겪게 되며 변화 이전의 데이터가 현재의 상황과 다소 유리된 경우, 인공지능 등 다양한 예측 기법의 적용을 통해 그 정확성을 향상시킬 수 있다.Parking enforcement records for enforcement areas may be collected and provided to the parking enforcement scheduling device 100 . In order to calculate an efficient tour schedule, existing data must be actively utilized, and in recent smart cities, appropriate control related to system operation is determined based on accumulated data collected by sensors or various methods. In the case of parking enforcement, several years of data are stored for each city, and based on this data, it is possible to estimate the likelihood of illegal parking occurring at a certain time and place. In the case of experiencing various environmental changes such as installation of new CCTVs and expansion of parking spaces, and the data before the change is somewhat different from the current situation, the accuracy can be improved through the application of various prediction techniques such as artificial intelligence.

예측된 빈도가 주어진다면 특정 순회 스케줄의 단속 효율을 추정할 수 있고 이 효율이 가장 좋은 스케줄을 선택할 수 있다. 그러나 대상 장소가 N개, 단속 시간 구간의 수가 M 슬롯이라고 한다면 이에 해당하는 경우의 수는 NM에 달하며 컴퓨터 알고리즘에서도 상당히 시간 복잡도가 큰 문제에 속한다. 유사한 문제로는 동적 배낭 문제(random knapsack problem)와 동적 외판원 순회 문제(TSP; traveling salesman problem) 등이 있다. 기본적으로 배낭문제는 시간마다 변하는 이득이 주어져 있고 선택할 수 있는 대상의 수나 양에 제한이 있을 때 이 제한을 벗어나지 않는 범위 내에서 가장 많은 이익을 취하는 답을 찾는 문제이다. 또 동적 TSP는 어떤 장소에 있을 때의 이득보다는 모든 대상을 정확히 한 번씩 방문하면서 가장 짧은 거리 혹은 비용을 갖는 스케줄을 찾는 문제이다.Given the predicted frequency, it is possible to estimate the enforcement efficiency of a specific tour schedule and select the schedule with the highest efficiency. However, if the number of target locations is N and the number of intermittent time intervals is M slots, the number of cases corresponding to this reaches N M , and it is a problem with considerably high time complexity even in computer algorithms. Similar problems include the random knapsack problem and the dynamic traveling salesman problem (TSP). Basically, the knapsack problem is a problem to find an answer that gives the most profit within a range that does not deviate from this limit when a gain that changes every time is given and the number or amount of objects that can be selected is limited. In addition, the dynamic TSP is a problem of finding a schedule with the shortest distance or cost while visiting all objects exactly once, rather than the benefit of being in a certain place.

반면, 주차 단속 차량의 스케줄 문제는 특정지역에 도착했을 때의 이득(예상 단속 수), 이동에 필요한 시간 등을 모두 고려해야 하는 문제이며, 한 장소를 방문하지 않거나 여러 번 방문하는 경우도 적합한 해로 인정될 수 있다. 이런 NP(Non-polynomial) 문제들은 N이나 M이 커짐에 따라 수행시간이 폭발적으로 증가하는 특징을 갖는다. 따라서 모든 경우를 고려하여 최적의 방식을 찾아내는 exhaustive search는 방문 대상 지역이 10개 이내일 때는 적절한 시간내 스케줄을 찾을 수 있지만 대상 지역의 수가 조금만 늘어나도 수행 시간이 N배씩 지수적으로 증가할 수 있다. 따라서 최적의 해를 구하기보다는 허용할 수 있는 시간에 적절한 수준의 해를 구하는 suboptimal 방식이 적합할 수 있다.On the other hand, the schedule problem of parking enforcement vehicles is a problem that must consider both the benefits (expected number of enforcement actions) and the time required to travel when arriving at a specific area, and it is recognized that it is a suitable year even if one does not visit a place or visits several times. It can be. These NP (Non-polynomial) problems are characterized by an explosive increase in execution time as N or M increases. Therefore, exhaustive search, which finds the optimal method in consideration of all cases, can find a schedule within an appropriate time when the number of target regions to visit is less than 10, but the execution time can increase exponentially by N times even if the number of target regions is slightly increased. . Therefore, a suboptimal method that obtains an appropriate level of solution in an acceptable time rather than obtaining an optimal solution may be appropriate.

유전자 알고리즘(genetic algorithm)은 이런 최적화 문제에 이용될 수 있다. 유전자 알고리즘은 가능한 해의 집합들을 정수 벡터로 인코딩한 다음 선택(selection), 재생산(reproduction), 변이(mutation), 적합도 평가 및 정렬(fitness evaluation) 등의 진화 과정을 통해 적자 생존 방식으로 좋은 해일 수록 끝까지 생존하여 최종 답으로 선택될 가능성을 높일 수 있다. 여기서 어떤 해, 즉 방문 시퀀스가 좋은지를 결정하는 데는 단속의 효율성, 공평성, 이동 거리의 길이 등 다양한 판단 기준이 있을 수 있고 이를 계량화하여 적합도 함수 (fitness function)로 나타내야 한다. 이와 아울러 유전자 연산들은 주어진 문제들의 요구사항에 부합하도록 수정되어야 한다. 실시예들은 주차 단속 차량의 단속 스케줄을 결정하는데 있어서 기존 단속 이력 데이터를 활용하고 유전자 알고리즘을 적용하여 예상 단속 수를 최대화할 수 있다.Genetic algorithms can be used for such optimization problems. The genetic algorithm encodes a set of possible solutions into an integer vector, and then goes through evolutionary processes such as selection, reproduction, mutation, fitness evaluation, etc. You can survive to the end and increase your chances of being selected as the final answer. Here, there may be various criteria such as enforcement efficiency, fairness, and distance traveled to determine which solution, that is, the visit sequence is good, and these must be quantified and expressed as a fitness function. In addition, genetic operations must be modified to meet the requirements of a given problem. Embodiments may maximize the expected number of enforcements by utilizing existing enforcement history data and applying a genetic algorithm in determining enforcement schedules for parking enforcement vehicles.

일반적으로 도청, 시청과 같은 지방자치단체의 교통관련 부서들은 CCTV 이외에도 이동식 주차단속을 주기적 혹은 비주기적으로 실시하고 있으며 적발된 차량들에게는 벌금을 부과하고 있다. CCTV로부터는 실시간으로 주차장 상황정보나 단속 기록이 축적될 수 있고, 이동단속 기록은 배치모드로 일괄적으로 저장될 수 있다. 각 적발 기록들은 단속 위치 주소 및 시간과 차량과 소유주에 관련된 정보들을 포함할 수 있다. 이 정보에 의해 불법주차 빈발 지역을 파악할 수 있으며, 각 시간대별 빈도도 추정할 수 있다. 특정된 위반 고 빈발 지역에 대해서는 CCTV를 설치하거나 단속 차량 순회의 빈도를 높일 수 있다.In general, traffic-related departments of local governments, such as provincial government offices and city halls, conduct mobile parking enforcement periodically or non-periodically, in addition to CCTV, and impose fines on detected vehicles. From CCTV, parking lot situation information or crackdown records can be accumulated in real time, and moving crackdown records can be collectively stored in batch mode. Each seizure record may include the address and time of the enforcement location and information related to the vehicle and its owner. With this information, it is possible to identify areas where illegal parking is frequent, and the frequency of each time slot can be estimated. CCTVs can be installed or the frequency of enforcement vehicle patrols can be increased for specific areas with high frequency of violations.

도 2는 일 실시예에 따른 시간에 따른 차량 단속 수를 나타낸다. 그래프(210)를 참조하면, 시간대별 빈도가 상당히 차이가 나는 것을 알 수 있다. 위반 빈도가 극히 높은 시간대에는 불법주차로 인한 생활불편이나 교통 흐름 방해가 크게 증가하므로, 이에 대한 단속이나 사전 예방이 이루어져야 한다. 또 차종별로 시간에 따른 주차위반 발생 패턴이 조금씩 달라지는 것을 알 수 있으며 추가적인 분석결과 계절, 요일별로 시간대별 위반의 패턴이 다른 것을 알 수 있다. 이런 영향 요소들의 시간대별 차이를 종합적으로 고려한 단속차량의 운행이 필요하다.2 shows the number of vehicle enforcement over time according to an embodiment. Referring to the graph 210, it can be seen that the frequency for each time period is significantly different. In the time zone when the frequency of violations is extremely high, inconveniences in life or obstruction of traffic flow due to illegal parking greatly increase, so crackdowns or prevention must be conducted. In addition, it can be seen that the patterns of parking violations according to the time of each vehicle type are slightly different, and as a result of additional analysis, it can be seen that the patterns of violations by time of day and season are different. It is necessary to operate enforcement vehicles that comprehensively consider the time-specific differences in these influencing factors.

도 3은 일 실시예에 따른 지리적 단속 빈도를 나타낸다. 그래프(310)는 주어진 불법주차 정보를 이용하여 빈발 위치를 도로별로 추출하고 그 빈도를 1-10까지의 레벨로 분류하여 도시한 결과이다. 각 위반정보는 도로명 주소(로, 길)를 포함하고 있어서 같은 도로에 속하면 동일한 영역으로 그루핑할 수 있다. 도로명 주소상 대부분은 작은 영역으로 볼 수 있지만, 일부 도로는 지역적으로 넓게 퍼져 있기도 하다. 그러나 그 도로 상에서 주차위반이 자주 발생하는 지역은 작은 범위로 특정할 수 있어서 이 지점을 대표 위치로 산정할 수 있다. 빈발 지역의 경위도 좌표는 화면 좌표계로 변환되었고, 빈도 레벨은 원의 크기를 통해 표현되었다. 그래프(310)에서 보는 바와 같이 불법주차는 지역적으로 편중될 수 있으므로, 전반적인 통계를 기반으로 지역들을 클러스터로 나누어 각 이동차량에게 할당할 수 있고. 한 클러스터를 여러 단속차량이 담당하도록 할 수도 있다.3 shows geographic enforcement frequency according to one embodiment. The graph 310 is a result of extracting frequent locations for each road using given illegal parking information and classifying the frequency into levels from 1 to 10. Each violation information includes the road name address (road, road), so if it belongs to the same road, it can be grouped in the same area. Most of the street names address can be seen as a small area, but some roads are geographically spread out. However, since the area where parking violations frequently occur on the road can be specified within a small range, this point can be calculated as a representative location. The latitude and longitude coordinates of the frequent areas were converted into screen coordinates, and the frequency level was expressed through the size of the circle. As shown in the graph 310, since illegal parking can be regionally biased, regions can be divided into clusters based on overall statistics and assigned to each moving vehicle. It is also possible to have several enforcement vehicles in charge of one cluster.

빈발 지역이 파악되고 단속차량이 배정된다면 주차단속은 특정시간대에 한 빈발 지역을 순찰함으로써 수행될 수 있다. 한 지역에서 다른 지역으로 이동할 때는 시간의 공백이 생기게 되며 이 공백은 차량의 이동시간을 통해 산정할 수 있다. 이동 중에는 주차단속을 실시하지 않는다고 가정할 수 있다. 예를 들어, A 지역에서 B 지역으로 이동하는 이동 시간은 A 지역의 대표 위치와 B 지역의 대표 위치 간의 거리를 통해 추정될 수 있다. 두 지점이 주어진다면 이들 간의 유클리디언 거리로 이동 시간을 추정하거나, 많은 지도 서비스에서 제공하는 이동 시간을 이용할 수도 있다.If frequent areas are identified and enforcement vehicles are allocated, parking enforcement can be carried out by patrolling a frequent area at a specific time. When moving from one area to another, there is a gap in time, and this gap can be calculated through the travel time of the vehicle. It can be assumed that parking enforcement is not conducted while on the move. For example, a travel time to move from area A to area B may be estimated through a distance between a representative location in area A and a representative location in area B. If two points are given, the travel time can be estimated with the Euclidean distance between them, or the travel time provided by many map services can be used.

표 1은 각 지역의 시간대별 발생빈도의 일부를 나타낸다. 각 순찰차마다 특정 지역들의 집합을 담당한다면 이 지역들을 어떤 순서에 따라 이동하게 된다.Table 1 shows some of the frequency of occurrence by time zone in each region. If each patrol car is responsible for a set of specific areas, these areas will be moved in a certain order.

99 1010 1111 1212 1313 Area 1Area 1 578578 699699 219219 00 770770 Area 2Area 2 381381 183183 6363 00 330330 Area 3Area 3 966966 595595 4343 1One 546546 Area 4Area 4 274274 326326 4444 00 331331 Area 5Area 5 111111 146146 184184 144144 161161 Area 6Area 6 197197 114114 00 00 237237 Area 7Area 7 239239 212212 2828 00 159159 Area 8Area 8 233233 333333 2222 1515 253253 Area 9Area 9 157157 298298 3434 1One 7373 Area 10Area 10 205205 313313 44 00 354354

단속차량의 순회 스케줄을 결정하기 위해 활용할 데이터들은 각 빈발지역별 시간대별 단속 빈도와 지역간 이동시간을 포함할 수 있다. 직관적으로 가장 많은 주차위반이 발생하는 지역에서 계속 머물러도 차량들을 충분히 적발할 수 있다. 또 이동거리가 멀지 않다면 각 시간대별로 가장 많은 주차위반이 발생하는 지역별로 순회하여도 단속의 효율을 높일 수 있다. 이 경우 특정장소에서 수 시간 동안 빈도가 가장 높다면 계속 그 지역에 머무르는 경우도 발생할 수 있다.도 4는 일 실시예에 따른 단속 지역 정보 및 방문 시퀀스를 나타낸다. 도 4를 참조하면, 단속 지역 정보(410)는 대상 단속 지역들(X1, X2, ..., Xk)의 위치 정보를 포함할 수 있다. 이러한 위치 정보에 기초하여 단속 지역들(X1, X2, ..., Xk) 간의 거리, 이동 경로, 이동 시간 등이 결정될 수 있다. 방문 시퀀스(420)는 대상 단속 지역들(X1, X2, ..., Xk) 중의 방문 후보들의 방문 순서를 나타낼 수 있다. 서로 다른 방문 시퀀스는 서로 다른 방문 후보들 및/또는 방문 순서를 특정할 수 있다. 예를 들어, 어느 방문 시퀀스는 X1, X2, X3를 순서대로 방문하는 방문 순서를 특정할 수 있고, 다른 방문 시퀀스는 X2, X6, X3를 순서대로 방문하는 방문 순서를 특정할 수 있고, 또 다른 방문 시퀀스는 X3, X2, X1을 순서대로 방문하는 방문 순서를 특정할 수 있다.The data to be used to determine the tour schedule of enforcement vehicles may include the frequency of enforcement by time zone in each frequent region and the travel time between regions. Intuitively, staying in the area with the most parking violations is sufficient to detect vehicles. In addition, if the moving distance is not long, the efficiency of enforcement can be increased even if it is toured by area where the most parking violations occur in each time zone. In this case, if the frequency is the highest in a specific place for several hours, a case may occur where the user continues to stay in that area. Referring to FIG. 4 , enforcement area information 410 may include location information of target enforcement areas (X1, X2, ..., Xk). Based on this location information, the distance between the enforcement areas X1, X2, ..., Xk, a movement route, a movement time, etc. may be determined. The visit sequence 420 may indicate a visit order of visit candidates among target enforcement areas X1, X2, ..., Xk. Different visiting sequences may specify different visiting candidates and/or visiting order. For example, one visit sequence may specify a visit order that visits X1, X2, and X3 in that order, another visit sequence may specify a visit order that visits X2, X6, and X3 in that order, and another visit sequence may specify a visit order that visits X2, X6, and X3 in that order. The visit sequence may specify a visit order in which X3, X2, and X1 are sequentially visited.

도 5는 일 실시예에 따른 유전자 알고리즘의 연산들을 나타낸다. 유전자 알고리즘(500)은 도 5에 도시된 것처럼 인구(population) 초기화(510) 이후, 선택(520), 재생산(530), 변이(540), 평가 및 정렬(550) 등의 유전자 연산들을 정해진 횟수만큼 혹은 원하는 적합도가 산출될 때까지 반복하여 결과 생성(560)을 할 수 있다. 인구는 가능한 해의 집합이며 각 해들은 정수 벡터로 표시될 수 있다. 해는 유전자 알고리즘의 유전자에 해당할 수 있다. 결과적인 해는 최종 해로 부를 수 있고, 최종 해를 도출하는 과정의 해는 후보 해로 부를 수 있다. 각 해는 방문 시퀀스에 해당한다. 만약 대상 단속 지역이 30개이고 잠정적으로 10개의 시간 슬롯의 시작마다 어느 장소로 갈지 결정한다면, 방문 시퀀스는 10개의 정수 값을 가지며 각 정수 값은 0 내지 29일 수 있다. 정수 값들은 각 대상 단속 지역에 부여된 식별 번호이다. 유전자 알고리즘(500)에서는 각 반복 단계마다 적합도가 진화 향상될 수 있다.5 shows operations of a genetic algorithm according to one embodiment. As shown in FIG. 5, the genetic algorithm 500 performs genetic operations such as selection 520, reproduction 530, mutation 540, evaluation and alignment 550 after population initialization 510, a predetermined number of times. Result generation 560 may be repeated as many times as possible or until a desired degree of fitness is calculated. A population is a set of possible solutions, and each solution can be represented by an integer vector. A solution may correspond to a gene of a genetic algorithm. The resulting solution can be called a final solution, and the solution in the process of deriving the final solution can be called a candidate solution. Each year corresponds to a visiting sequence. If there are 30 target enforcement areas and it is determined which place to go to every start of 10 time slots tentatively, the visit sequence has 10 integer values, each integer value being 0 to 29. Integer values are identification numbers assigned to each target enforcement area. In the genetic algorithm 500, the degree of fitness may be evolutionarily improved at each iteration step.

방문 시퀀스의 특성상 한 정수 벡터에 동일한 정수가 여러 차례 나올 수도 있으며 어느 정수는 한 번도 나타나지 않을 수 있다. TSP의 경우에는 모든 범위 내 정수가 한 번씩 정수 벡터에 나타나야 한다는 제약이 있지만 단속 스케줄 문제에는 이런 제약이 존재하지 않을 수 있다. 정수 벡터로 나타낸 방문 시퀀스는 시간 축을 고정 크기의 시간 슬롯으로 나누어 각 시간 슬롯이 시작할 때 단속 차량이 어디로 이동할지 혹은 그대로 머무를지를 결정한다고 가정할 수 있다. 어떤 정수 값이 연속으로 나타난다면 이는 연속된 시간 구간 동안 다른 지역으로 이동하지 않고 같은 지역에 머무르는 것을 의미할 수 있다.Due to the nature of the visit sequence, the same integer may appear several times in one integer vector, and an integer may not appear even once. In the case of TSP, there is a restriction that integers in all ranges must appear in an integer vector once, but this restriction may not exist in the enforcement schedule problem. It can be assumed that the visit sequence, represented as an integer vector, divides the time axis into fixed-size time slots, at the start of each time slot, the enforcement vehicle determines where to go or where to stay. If an integer value appears consecutively, it may mean staying in the same region without moving to another region for consecutive time intervals.

유전자 연산에 의해 해들을 진화시키려면 먼저 적합도 함수를 정의해야 한다. 적합도는 예상 단속 효율에 해당할 수 있다. 이를 계산하는데는 대상 지역에 관련된 데이터를 전처리하여야 한다. 단속 기록들에서 불법 주차가 가장 빈번히 발생하는 지역을 선정하여 이들의 시간대별 빈도를 구하여 이차원 배열 G[i][j]에 저장할 수 있다. 인덱스 i는 지역을 나타낼 수 있다. 예를 들어, i는 0 내지 29의 값을 가질 수 있다. 인덱스 j는 시간대를 나타낼 수 있다. 예를 들어, j는 9시부터 19시까지 11시간을 나타낼 수 있다. 이때, 총시간대의 개수를 M으로 둘 수 있고, 11시간에 대한 시간 슬롯의 크기 Ts가 1시간이라면 M은 11, Ts가 30분이라면 M은 22가 될 수 있다. 이에 따라, G[i][j]는 j 시간에 i 지역을 단속했을 때의 예상 단속 수 혹은 효율을 나타낼 수 있다.To evolve solutions by genetic computation, we must first define a goodness-of-fit function. The goodness of fit may correspond to the expected enforcement efficiency. To calculate this, data related to the target area must be preprocessed. It is possible to select the areas where illegal parking occurs most frequently in the enforcement records, obtain their frequency by time period, and store them in a two-dimensional array G[i][j]. Index i may indicate a region. For example, i may have a value of 0 to 29. Index j may indicate a time zone. For example, j may represent 11 hours from 9:00 to 19:00. In this case, the total number of time zones can be set to M, and if the size T s of time slots for 11 hours is 1 hour, M can be 11, and if T s is 30 minutes, M can be 22. Accordingly, G[i][j] may represent the expected number or efficiency of enforcement when regulating area i at time j.

또한, 매 슬롯의 시작마다 한 지역에서 다른 지역으로 이동하게 된다면 이 시간만큼은 단속 효율이 저하될 수 있다. 만약 a 지역에서 b 지역으로 이동하는데 10분의 시간이 걸린다면 b 지역에서 얻을 수 있는 이득의 10/60이 감소할 수 있다. 이를 정량화하기 위해 30개 대상 단속 지역들 간의 거리에 따른 이동 시간을 D[][]에 저장할 수 있다. 두 지역들 간의 유클리드 거리가 같아도 이동 시간은 다를 수 있기 때문에 D[a][b]와 D[b][a]는 다를 수 있다. 또, 동일한 지역 간의 이동 시간은 0이 되어 이동에 따르는 손실은 없을 수 있다. 단속 차량이 하루의 업무를 시작하는 장소와 종료하는 장소에는 제약이 없다고 가정할 수 있다.In addition, if it moves from one area to another area at the beginning of each slot, enforcement efficiency may decrease for this time. If it takes 10 minutes to travel from area a to area b, 10/60 of the gain in area b can be reduced. To quantify this, the travel time according to the distance between the 30 target enforcement areas can be stored in D[][]. D[a][b] and D[b][a] may be different because the travel time may be different even if the Euclidean distance between the two regions is the same. Also, since the travel time between the same regions becomes zero, there may be no loss due to movement. It can be assumed that there are no restrictions on where the enforcement vehicles start and end their day's work.

d를 방문 후보 지역의 수라 할 때 방문 시퀀스는 벡터 V:{vi|0<=i<(d-1)}로 나타낼 수 있고, 적합도 함수는 G 및 D를 기반으로 수학식 1과 같이 계산될 수 있다.When d is the number of visit candidate regions, the visit sequence can be represented by the vector V:{v i |0<=i<(d-1)}, and the fitness function is calculated as in Equation 1 based on G and D It can be.

Figure pat00001
Figure pat00001

예를 들어, Ts=1(1시간) 혹은 Ts=0.5(30분) 등일 수 있다. 단속 이력 데이터 분석으로 산출한 G[][]가 1시간 단위의 빈도이므로 Ts가 1시간이 아니라면 이에 맞추어 빈도를 재조정할 수 있다. 만약 D[vi-1][vi] 값이 Ts보다 크게 된다면 이는 한 슬롯시간 동안 이동만 하고 단속은 할 수 없다는 의미를 가질 수 있다. 이 경우 수학식 1에서 해당 슬롯의 이득이 음수가 되는데, 이처럼 음수가 된다면 이득은 0으로 처리될 수 있다.For example, T s =1 (1 hour) or T s =0.5 (30 minutes). Since G[][] calculated by analyzing enforcement history data is the frequency in units of 1 hour, if T s is not 1 hour, the frequency can be readjusted accordingly. If the value of D[v i -1][v i ] is greater than T s , this may mean that only movement is performed during one slot time and control cannot be performed. In this case, the gain of the corresponding slot becomes a negative number in Equation 1. If the gain becomes negative, the gain can be treated as zero.

이와 같이 방문 시퀀스를 나타내는 정수 벡터로 인구 초기화(510)를 수행할 수 있고, 적합도 함수를 통해 유전자 연산(520 내지 550)을 구현할 수 있다. 적합도가 높은 해들이 높은 확률을 갖도록 선택(520) 및 재생산(530)이 수행될 수 있다. 예를 들어, 선택(520) 연산은 룰렛 휠(roulette wheel) 방식으로 구현될 수 있다. 적합도 값의 범위와 편차에 따라 선택(520)이 적절하게 이루어지지 않을 수 있기 때문에 10단계의 레벨을 두고 이 레벨에 따라 적합도를 보정할 수 있다. 각 진화 단계마다 인구의 각 해를 적합도에 따라 정렬하는 과정을 수행하며 각 해마다 보정 적합도를 구하고, 이들의 누적합을 추가적인 배열에 저장할 수 있다. 이후 0에서 제일 마지막 해의 누적 합 값까지의 범위에서 난수를 발생시키고, 이 난수에 해당하는 구간을 그 배열에서 찾아 재생산에 사용할 해를 선택할 수 있다. 파이썬은 bisect 라이브러리에 의해 난수 값에 따라 이에 해당하는 해의 인덱스를 이진탐색 방식을 통해 고속을 찾을 수 있도록 지원한다.In this way, population initialization 510 may be performed with an integer vector representing a visit sequence, and genetic operations 520 to 550 may be implemented through a fitness function. Selection 520 and reproduction 530 may be performed so that solutions with high fitness have a high probability. For example, the selection 520 operation may be implemented in a roulette wheel fashion. Since the selection 520 may not be appropriately made according to the range and deviation of the fitness value, the fitness may be corrected according to the 10-level level. For each evolutionary stage, a process of aligning each solution of the population according to fitness is performed, and a calibrated fitness is obtained for each year, and the cumulative sum of these can be stored in an additional array. Then, a random number is generated in the range from 0 to the cumulative sum of the last year, and an interval corresponding to this random number is found in the array to select a year to be used for reproduction. Python supports finding the index of the corresponding solution according to the random number value by the bisect library through the binary search method at high speed.

선택(520) 연산을 통해 2개의 해, P1, P2가 결정되면 이들을 부모로 하여 2개의 자식 해, C1, C2를 재생산하는데, 이는 [0, M)의 구간에서 두 개의 정수, r1, r2를 선택하고 수학식 2 및 수학식 3과 같이 서브스트링을 교환할 수 있다.When two solutions, P 1 and P 2 , are determined through the selection 520 operation, they are used as parents to reproduce two child solutions, C 1 and C 2 , which are two integers in the interval [0, M), You can select r 1 and r 2 and exchange substrings as in Equation 2 and Equation 3.

Figure pat00002
Figure pat00002

Figure pat00003
Figure pat00003

또, 진화 과정에서 부모로부터 형질을 물려받지 않은 변이(540)를 일정 주기마다 수행하며, 변이(540)는 한 해에서 임의의 두 정수를 교환할 수 있다. 그 밖에, 재생산(530)과 변이(540) 연산에는 알려진 유전자 연산이 적용될 수 있다. 경우에 따라 유전자의 유효성에 제약이 있을 때는 재생산된 C1과 C2가 유효성을 위반하는지 체크하여야 하며, 이동 스케줄에 있어서는 중복과 생략 등을 모두 허용하므로 추가적으로 고려할 제약 조건은 존재하지 않을 수 있다.Also, in the process of evolution, mutations 540 that do not inherit traits from parents are performed at regular intervals, and mutations 540 can exchange two arbitrary integers in one year. In addition, known genetic operations may be applied to the reproduction 530 and mutation 540 operations. In some cases, when there is a restriction on the validity of the gene, it is necessary to check whether the reproduced C 1 and C 2 violate the validity, and in the movement schedule, both duplication and omission are allowed, so there may be no additional constraints to be considered.

선택(520), 재생산(530), 변이(540) 등의 유전자 연산이 구현되면 이를 이용하여 진화 과정을 반복할 수 있다. 먼저 후보 해들을 초기화하여 추기 인구를 구출할 수 있다. 초기 인구 구축에 임의의 난수 선택을 이용할 수 있다. 인구는 가능한 후보 해들의 집합으로, 인구가 많은 후보 해들을 포함한다면 선택의 다양성이 증가할 수 있으나 연산 시간도 길어질 수 있다. 인구의 크기가 Np라면 각 진화 단계마다 Np/2개의 해는 생존하고 Np/2개의 해는 도태되어 새로운 자식들로 변경될 수 있다. 각 단계에서 적합도에 따라 각 해들이 정렬(550)될 수 있는데, 여기에 유전자 알고리즘(500) 수행 과정에서 가장 많은 시간이 소요될 수 있다. 이 정렬(550) 부분의 시간 복잡도는 O(NplogNp)이며 인구의 크기에 따라 결정될 수 있다.If genetic operations such as selection (520), reproduction (530), and mutation (540) are implemented, the evolution process can be repeated using them. First, the candidate solutions can be initialized to rescue the additional population. Random selection of random numbers can be used to build the initial population. The population is a set of possible candidate solutions. If the candidate solutions with a large population are included, the variety of choices may increase, but the computation time may also increase. If the size of the population is N p , then at each evolutionary stage, N p /2 solutions survive and N p /2 solutions can be culled and replaced with new offspring. In each step, each solution may be sorted 550 according to the degree of fitness, and this may take the most time in the process of performing the genetic algorithm 500. The time complexity of this part of the alignment 550 is O(N p logN p ) and may depend on the size of the population.

인구 초기화(510)나 재생산(530) 등에서 새로운 해를 만들어내는 과정에서 이미 인구에 존재하는 해가 중복하여 생성될 수 있다. 11개의 정수로 구성된 경우라도 좋은 형질들이 지속적으로 유전될 가능성이 높아 실제 서치 스페이스는 상당히 축소될 수 있어서 중복 발생의 가능성이 커질 수 있다. 유전자 알고리즘(500)을 적용하는데 있어서 이런 중복된 해를 허용하게 되면 일부 해들이 편중적으로 재생산에 선택될 가능성이 높아지고 경우에 따라 어느 정도 진화가 진행된 후에는 소수의 일부 해들이 인구를 독점하는 상황이 발생할 수 있다. 중복은 의미 없는 정보가 되며 다양성에 의해 새로운 해가 생성될 가능성을 축소할 수 있다.In the process of creating a new solution in population initialization (510) or reproduction (530), a solution that already exists in the population may be duplicated. Even if it consists of 11 integers, good traits are likely to be continuously inherited, so the actual search space can be significantly reduced, increasing the possibility of duplicate occurrence. In applying the genetic algorithm 500, if such overlapping solutions are allowed, the possibility of some solutions being biasedly selected for reproduction increases, and in some cases, after evolution has progressed to some extent, a situation in which a small number of solutions monopolize the population. this can happen Duplication becomes meaningless information and can reduce the possibility of new solutions being created by diversity.

더욱이, 실시예들이 대상으로 하고 있는 방문 시퀀스에 있어서는 단속 가능성이 높은 소수의 지역에 대부분 머물고 일부 시간대만 다른 지역으로 이동하는 경우가 높은 적합도를 가질 수 있다. 따라서 다른 조정이 없다면 중복된 해들이 인구를 점유하는 경우가 많아질 수 있다. 중복을 배제하기 위해서 각 진화 단계의 시작 부분에서 집합 자료 구조를 생성하고 재생산(530), 변이(540), 임의 생성 과정에서 이미 집합에 있는 해가 생성되면 이를 배제하고 다른 해를 생성할 수 있다. 집합을 이용한 중복제거 과정으로 인해 시간 복잡도는 평균 Np 회 이내에 신규 후보 해를 찾는다는 가정하에 O(NplogNp)이 추가될 수 있다. 이 과정에서 도태되었던 해가 다시 생성되어도 이미 집합에서 제거된 상태이기 때문에 유효한 해로 인정할 수 있다.Moreover, in the visit sequence targeted by the embodiments, a case in which most of the visitors stay in a small number of areas with a high possibility of enforcement and move to other areas for only a part of the time period may have a high degree of suitability. Thus, in the absence of other adjustments, overlapping years may be more likely to account for the population. In order to eliminate redundancy, a set data structure is created at the beginning of each evolution step, and if a solution already in the set is created in the processes of reproduction (530), mutation (540), and random generation, it can be excluded and another solution can be created. . O(N p logN p ) can be added to the time complexity on the assumption that new candidate solutions are found within an average of Np times due to the deduplication process using sets. Even if a solution that was eliminated in this process is regenerated, it can be recognized as a valid solution because it has already been removed from the set.

진화 과정을 종료하는데 있어서 최적의 해가 어느 정도의 적합도를 갖는지 미리 알 수 없기 때문에 일정 횟수 진화 과정을 반복하고 그 단계까지 얻은 해중 가장 적합도가 높은 해를 최종 해로 결정할 수 있다. N개의 방문 후보에 대해 M 시간 슬롯 동안의 방문 스케줄에 있어서 최적의 해를 구하는데 O(NM)의 시간이 걸릴 수 있다. 예를 들어, N은 30, M은 11 혹은 22의 값을 가질 수 있다. 이 경우 일반적인 컴퓨터 사양으로는 엄청난 시간을 요구하지만, 제안된 방식은 진화 과정에서 특정 해로 빠르게 수렴해가는 과정을 보여줄 수 있다.At the end of the evolution process, since it is not known in advance what level of fitness the optimal solution has, the evolution process is repeated a certain number of times and the solution with the highest fitness among the solutions obtained up to that stage can be determined as the final solution. For N visit candidates, it may take O(N M ) time to obtain an optimal solution in a visit schedule for M time slots. For example, N may have a value of 30 and M may have a value of 11 or 22. In this case, it requires a lot of time with general computer specifications, but the proposed method can show the process of rapidly converging to a specific solution in the evolutionary process.

도 6 내지 도 9는 실시예들에 따른 유전자 알고리즘의 성능을 나타낸다. 비교대상 스케줄 방법으로 먼저 유전자 알고리즘이 수행되는 시간과 근사한 시간 동안 임의로 스케줄을 발생시켜 그 중에서 제일 좋은 스케줄을 선택하는 임의 선택 방식(random 방식)을 이용한다. 또, 가장 빈도가 높은 지역에 계속 머무르는 방식(stay 방식)과도 비교하는데, 이는 이동에 소요되는 시간이 없어 단속 효율이 향상될 수 있고 특정 지역에 주차 위반 빈도가 편중될 경우 유리할 수 있다.6 to 9 show performance of genetic algorithms according to embodiments. As a comparison target schedule method, a random selection method (random method) in which schedules are randomly generated during a time approximate to the time when the genetic algorithm is executed and the best schedule among them is selected is used. In addition, it is compared with the method of staying in the area with the highest frequency (stay method), which can improve enforcement efficiency because it does not take time to move, and can be advantageous if the frequency of parking violations is concentrated in a specific area.

각 방식에 있어서 30개의 후보 지역에 대해 아침 9시부터 오후 7시까지 한 시간 혹은 30분 단위 11개의 시간 슬롯에 대해 단속차량의 방문 스케줄을 결정하도록 하는데, 매일 고정된 지역들만 단속이 수행되는 것은 아니고 각 차량마다 할당된 지역 내에서 당일 방문하려 하는 후보 지역들을 변경할 수 있다. 또 각 스케줄에 있어서 적합도로 표현되는 이익(gain)은 스케줄에 따라 단속 차량을 운행했을 때 예상 단속 수, 혹은 효율에 해당하며 적합도와도 부합할 수 있다. 특정 후보 지역마다 하나의 단속 차량이 할당되어 있다고 가정할 수 있다.In each method, the visit schedule of enforcement vehicles is determined for 11 time slots of 1 hour or 30 minutes from 9:00 am to 7:00 pm for 30 candidate areas. Instead, candidate regions to be visited on the same day may be changed within the region allocated for each vehicle. In addition, the gain expressed as the degree of fitness in each schedule corresponds to the expected number of enforcement actions or efficiency when the enforcement vehicle is operated according to the schedule, and may also coincide with the degree of fitness. It can be assumed that one enforcement vehicle is assigned to each specific candidate area.

도 6의 그래프(610)는 시간 슬롯의 크기를 1시간으로 설정했을 때, 즉 1시간마다 다른 지역으로의 이동 여부를 결정한다고 했을 때, 각 방식에 의한 예상 단속 수를 나타낸다. 이 실험에서 인구 사이즈는 60으로 설정될 수 있다. random 방식으로 스케줄을 정하면 9.89 개의 단속을 할 수 있는 반면 stay 방식으론 20.14 개의 단속을 기대할 수 있다. 이 두 방식은 진화 과정과는 관련이 없다. 제안된 유전자 알고리즘을 사용한다면 진화 과정에 따라 점차 개선되고 있으며 첫 단계에서는 6.45로 random 방식보다 낮은 성능을 보이다가 2회 진화만에 이를 넘어섰고 16회의 진화 후에는 stay 방식보다도 좋은 효율을 보인다. 이후에도 완만하게 개선이 되어 34번째 단계에서 22.23으로 수렴하는 것을 볼 수 있다.A graph 610 of FIG. 6 shows the expected number of crackdowns by each method when the size of the time slot is set to 1 hour, that is, when it is determined whether or not to move to another area every 1 hour. In this experiment, the population size can be set to 60. If the schedule is set in the random method, 9.89 crackdowns can be carried out, whereas with the stay method, 20.14 crackdowns can be expected. These two methods have nothing to do with evolutionary processes. If the proposed genetic algorithm is used, it is gradually improved according to the evolution process. In the first stage, it showed lower performance than the random method at 6.45, but surpassed this in only two evolutions, and after 16 evolutions, it shows better efficiency than the stay method. After that, it can be seen that it is gradually improved and converges to 22.23 in the 34th step.

도 7의 그래프(710)는 시간 슬롯의 크기를 30분으로 설정한 경우인데, 이 경우는 정수 벡터의 원소 수가 2배로 늘어난다. 시간 슬롯의 크기가 작다면 좀더 정밀한 스케줄을 생성할 수 있으며 빈도가 낮은 지역으로 배정이 될 때 좀더 빠르게 다른 지역으로 이동할 수 있다. 도 6과 유사한 패턴을 보이기는 하지만 정수 벡터의 길이가 2배로 늘어나기 때문에 수렴하는데 슬롯 시간이 1시간인 경우보다는 좀더 걸려서 50 단계가 소요되는데 두 경우 모두 상당히 빠른 시간에 적절한 수준의 답을 찾아낼 수 있다. 결과적으로 정밀한 스케줄을 생성하면서 적합도가 24.44로 향상됨을 보인다. 역시 초기에는 random 방식보다 적합도가 떨어지지만 4회의 진화만에 random 방식을 넘어선다. random 방식은 우수한 형질 등을 고려하지 않고 서치 스페이스가 넒은 상태에서 임의로 스케줄을 발생시키기 때문에 적합도가 높은 해를 찾지 못한다.In the graph 710 of FIG. 7, the size of the time slot is set to 30 minutes. In this case, the number of elements of the integer vector doubles. If the size of the time slot is small, a more precise schedule can be created, and when it is assigned to an area with a low frequency, it can be moved to another area more quickly. Although it shows a pattern similar to FIG. 6, since the length of the integer vector doubles, it takes 50 steps to converge rather than the case where the slot time is 1 hour. can As a result, it is shown that the goodness of fit is improved to 24.44 while creating a precise schedule. Again, although the fit is lower than the random method in the beginning, it surpasses the random method after 4 evolutions. The random method cannot find a solution with high fit because it randomly generates a schedule in a wide search space without considering excellent characteristics.

도 8의 그래프(810)는 인구 크기에 따른 진화 과정을 나타내며, 이 실험에서 시간 슬롯의 크기는 30분으로 설정된다. 인구 크기는 20에서 100까지 변경될 수 있고, 그래프(810)는 진화 과정에 따른 적합도를 나타낼 수 있다. 실험 결과에 의하면 인구 크기가 20과 40일 때 적합도가 22.74와 22.83에 수렴하였고 80일 때 가장 좋은 23.78을 보이기는 하지만 나머지 경우와 큰 차이가 없다. 결국, 인구 크기는 60 이상이면 유사한 수준의 적합도로 수렴하는 것을 볼 수 있다. 모든 경우에 있어서 50회 정도의 진화로 수렴되는 값을 찾을 수 있으며 더 이상 진행한다고 해도 미미한 수준이며 거의 적합도 개선은 일어나지 않을 수 있다. 이는 각 지역간 단속 수의 편차가 크기 때문일 수 있고, 더 다양한 해들을 탐색하는 경우 인구 크기의 영향이 있을 수 있다.A graph 810 of FIG. 8 shows an evolutionary process according to population size, and in this experiment, the size of a time slot is set to 30 minutes. The population size may vary from 20 to 100, and the graph 810 may indicate fitness according to the evolutionary process. According to the experimental results, the fit converged to 22.74 and 22.83 when the population size was 20 and 40, and showed the best 23.78 when the population size was 80, but there was no significant difference from the other cases. After all, if the population size is 60 or more, it can be seen that convergence to a similar level of fitness is observed. In all cases, it is possible to find a value that converges with about 50 evolutions, and even if it proceeds further, it is insignificant and almost no improvement in fitness may occur. This may be because there is a large variation in the number of enforcements in each region, and when more diverse solutions are searched, there may be an effect of the population size.

도 9의 그래프(910)는 진화 과정에 따른 단속 차량의 이동 거리를 비교한 결과를 나타낸다. 적합도 함수가 예상 단속 수를 기준으로 하였기 때문에 앞선 그래프(810)와 같은 단조 증가 혹은 감소 패턴이 보이지는 않으며 진화에 따라 약간의 진동을 보이다가 적합도가 수렴하여 동일 값에 머물게 되면 이동 거리도 더 이상 변화가 없게 된다. 그래프(910)에 나타난 것처럼 시간 구간의 길이를 1시간으로 하였을 때 이동 거리가 짧아질 수 있다. 즉, 어떤 장소에서 단속 효율이 저하되더라도 바로 다른 장소로 이동하지 않고 일단은 다음 슬롯의 시작 시간까지 그 장소에서 머무르는 스케줄을 지속적으로 생성하기 때문에 단속 효율은 떨어지더라도 이동 거리는 단축될 수 있다. 또, 슬롯 시간을 너무 짧게 설정하면 한 시간 슬롯의 대부분은 이동으로 소비되므로 가까운 지역으로만의 이동만 포함한 스케줄이 생성되는 경향이 나타날 수 있다.A graph 910 of FIG. 9 shows a result of comparing moving distances of enforcement vehicles according to the evolution process. Since the fitness function is based on the expected number of punctures, a monotonic increase or decrease pattern as shown in the previous graph 810 is not seen, and shows a slight oscillation according to evolution, and then when the fitness converges and stays at the same value, the moving distance is no longer there will be no change As shown in the graph 910, when the length of the time interval is 1 hour, the moving distance may be shortened. That is, even if the enforcement efficiency is reduced in one place, the moving distance can be shortened even if the enforcement efficiency is reduced because the schedule to stay at that place is continuously created until the start time of the next slot without moving to another place immediately. In addition, if the slot time is set too short, since most of one time slot is consumed by movement, a schedule including only movement to a nearby area may tend to be created.

도 10은 일 실시예에 따른 주차 단속 스케줄링 방법을 나타내는 플로우 차트이다. 도 10을 참조하면, 단계(1010)에서 주차 단속 스케줄링 장치는 각각 대상 단속 지역들 중의 방문 후보들의 방문 시퀀스를 나타내는 정수 벡터에 해당하는 후보 해들을 초기화한다.10 is a flowchart illustrating a parking enforcement scheduling method according to an embodiment. Referring to FIG. 10 , in step 1010, the parking enforcement scheduling apparatus initializes candidate solutions corresponding to integer vectors representing visit sequences of visit candidates in target enforcement areas.

단계(1020)에서 주차 단속 스케줄링 장치는 후보 해들의 각 방문 시퀀스에 따른 예상 단속 수 및 이동 시간에 기초하여 후보 해들의 적합도를 평가한다. 주차 단속 스케줄링 장치는 과거 주차 단속 기록을 저장하는 단속 기록 데이터베이스에 기초하여 각 방문 시퀀스의 방문 후보들 및 방문 시간들에 따른 예상 단속 수를 결정하고, 대상 단속 지역들의 위치 정보에 기초하여 각 방문 시퀀스의 방문 후보들 간의 이동 시간을 결정할 수 있다.In step 1020, the parking enforcement scheduling apparatus evaluates the suitability of the candidate solutions based on the expected number of enforcement actions according to each visiting sequence of candidate solutions and the moving time. The parking enforcement scheduling device determines the expected number of enforcement according to visit candidates and visit times of each visit sequence based on an enforcement record database storing past parking enforcement records, and determines the number of enforcement of each visit sequence based on location information of target enforcement areas. A travel time between visiting candidates may be determined.

주차 단속 스케줄링 장치는 수학식 1에 기초하여 적합도를 평가할 수 있다. 주차 단속 스케줄링 장치는 예상 단속 수가 많을수록 적합도가 높아지고, 이동 시간이 길수록 적합도가 낮아지도록, 적합도를 평가할 수 있다. 주차 단속 스케줄링 장치는 예상 단속 수에서 이동 시간과 단위 단속 시간 간의 비에 따른 손실 요인을 차감하여 적합도를 평가할 수 있다.The parking enforcement scheduling device may evaluate suitability based on Equation 1. The parking enforcement scheduling apparatus may evaluate the fitness so that the higher the expected number of enforcement, the higher the fitness, and the longer the moving time, the lower the fitness. The parking enforcement scheduling apparatus may evaluate fitness by subtracting a loss factor according to a ratio between movement time and unit enforcement time from the expected number of enforcements.

단계(1030)에서 주차 단속 스케줄링 장치는 적합도에 기초하여 유전 연산을 반복적으로 수행하여 최종 해를 결정한다. 주차 단속 스케줄링 장치는 적합도에 기초하여 후보 해들에서 부모 해들을 선택하고, 부모 해들에 기초하여 재생산 및 변이 중 적어도 일부를 수행하여 다음 세대의 후보 해들을 결정할 수 있다. 주차 단속 스케줄링 장치는 다음 세대의 후보 해들에 중복이 발생하지 않도록 중복된 후보 해를 다른 후보 해로 대체할 수 있다. 최종 해는 미리 정해진 반복 횟수만큼의 진화를 통해 결정될 수 있다.In step 1030, the parking enforcement scheduling apparatus determines a final solution by repeatedly performing a genetic operation based on the degree of fitness. The parking enforcement scheduling apparatus may select parent solutions from candidate solutions based on the degree of fitness, and may determine candidate solutions of the next generation by performing at least some of reproduction and mutation based on the parent solutions. The parking enforcement scheduling apparatus may replace duplicated candidate solutions with other candidate solutions so that duplication does not occur in candidate solutions of the next generation. The final solution may be determined through evolution for a predetermined number of iterations.

단계(1040)에서 주차 단속 스케줄링 장치는 최종 해에 대응하는 방문 시퀀스에 기초하여 주차 단속 스케줄을 결정한다. 주차 단속 스케줄은 최종 해의 최종 방문 시퀀스에 따른 방문 후보들의 방문 순서를 포함할 수 있다. 그 밖에, 주차 단속 스케줄링 방법에는 도 1 내지 도 9, 도 11, 및 도 12의 설명이 적용될 수 있다.In step 1040, the parking enforcement scheduling device determines a parking enforcement schedule based on the visit sequence corresponding to the last year. The parking enforcement schedule may include a visit order of visit candidates according to the last visit sequence of the last year. In addition, the description of FIGS. 1 to 9, 11, and 12 may be applied to the parking enforcement scheduling method.

도 11은 일 실시예에 따른 주차 단속 스케줄링 장치의 구성을 나타내는 블록도이다. 도 11을 참조하면, 주차 단속 스케줄링 장치(1100)는 프로세서(1110) 및 메모리(1120)를 포함한다. 메모리(1120)는 프로세서(1110)에 연결되고, 프로세서(1110)에 의해 실행가능한 명령어들, 프로세서(1110)가 연산할 데이터 또는 프로세서(1110)에 의해 처리된 데이터를 저장할 수 있다. 메모리(1120)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.11 is a block diagram showing the configuration of a parking enforcement scheduling device according to an embodiment. Referring to FIG. 11 , a parking enforcement scheduling device 1100 includes a processor 1110 and a memory 1120 . The memory 1120 is connected to the processor 1110 and may store instructions executable by the processor 1110, data to be operated by the processor 1110, or data processed by the processor 1110. Memory 1120 may include non-transitory computer readable media such as high-speed random access memory and/or non-volatile computer readable storage media (e.g., one or more disk storage devices, flash memory devices, or other non-volatile solid state memory devices). can include

프로세서(1110)는 도 1 내지 도 10 및 도 12의 동작을 수행하기 위한 명령어들을 실행할 수 있다. 예를 들어, 프로세서(1110)는 각각 대상 단속 지역들 중의 방문 후보들의 방문 시퀀스를 나타내는 정수 벡터에 해당하는 후보 해들을 초기화하고, 후보 해들의 각 방문 시퀀스에 따른 예상 단속 수 및 이동 시간에 기초하여 후보 해들의 적합도를 평가하고, 적합도에 기초하여 유전 연산을 반복적으로 수행하여 최종 해를 결정하고, 최종 해에 대응하는 방문 시퀀스에 기초하여 주차 단속 스케줄을 결정할 수 있다. 그 밖에, 주차 단속 스케줄링 장치(1100)에는 도 1 내지 도 10 및 도 12의 설명이 적용될 수 있다.The processor 1110 may execute instructions for performing the operations of FIGS. 1 to 10 and 12 . For example, the processor 1110 initializes candidate solutions corresponding to integer vectors representing visit sequences of visit candidates in target enforcement areas, respectively, and based on the expected enforcement number and travel time according to each visit sequence of candidate solutions The suitability of the candidate solutions may be evaluated, a genetic operation may be repeatedly performed based on the suitability, a final solution may be determined, and a parking enforcement schedule may be determined based on a visit sequence corresponding to the final solution. In addition, the description of FIGS. 1 to 10 and 12 may be applied to the parking enforcement scheduling device 1100 .

도 12는 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다. 도 12를 참조하면, 전자 장치(1200)는 프로세서(1210), 메모리(1220), 카메라(1230), 저장 장치(1240), 입력 장치(1250), 출력 장치(1260) 및 네트워크 인터페이스(1270)를 포함할 수 있으며, 이들은 통신 버스(1280)를 통해 서로 통신할 수 있다. 예를 들어, 전자 장치(1200)는 이동 전화, 스마트 폰, PDA, 넷북, 태블릿 컴퓨터, 랩톱 컴퓨터 등과 같은 모바일 장치, 스마트 워치, 스마트 밴드, 스마트 안경 등과 같은 웨어러블 디바이스, 데스크탑, 서버 등과 같은 컴퓨팅 장치, 자율주행 차량, 스마트 차량 등과 같은 차량의 적어도 일부로 구현될 수 있다. 전자 장치(1200)는 도 1의 주차 단속 스케줄링 장치(100) 및/또는 도 11의 주차 단속 스케줄링 장치(1100)를 구조적 및/또는 기능적으로 포함할 수 있다.12 is a block diagram illustrating a configuration of an electronic device according to an exemplary embodiment. Referring to FIG. 12 , an electronic device 1200 includes a processor 1210, a memory 1220, a camera 1230, a storage device 1240, an input device 1250, an output device 1260, and a network interface 1270. may include, and they may communicate with each other through the communication bus 1280. For example, the electronic device 1200 includes a mobile device such as a mobile phone, a smart phone, a PDA, a netbook, a tablet computer, and a laptop computer, a wearable device such as a smart watch, a smart band, and smart glasses, and a computing device such as a desktop and a server. , may be implemented as at least a part of a vehicle such as an autonomous vehicle, a smart vehicle, and the like. The electronic device 1200 may structurally and/or functionally include the parking enforcement scheduling device 100 of FIG. 1 and/or the parking enforcement scheduling device 1100 of FIG. 11 .

프로세서(1210)는 전자 장치(1200) 내에서 실행하기 위한 기능 및 명령어들을 실행한다. 예를 들어, 프로세서(1210)는 메모리(1220) 또는 저장 장치(1240)에 저장된 명령어들을 처리할 수 있다. 프로세서(1210)는 도 1 내지 도 11을 통하여 설명된 하나 이상의 동작을 수행할 수 있다. 메모리(1220)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함할 수 있다. 메모리(1220)는 프로세서(1210)에 의해 실행하기 위한 명령어들을 저장할 수 있고, 전자 장치(1200)에 의해 소프트웨어 및/또는 애플리케이션이 실행되는 동안 관련 정보를 저장할 수 있다.The processor 1210 executes functions and instructions to be executed within the electronic device 1200 . For example, the processor 1210 may process instructions stored in the memory 1220 or the storage device 1240 . The processor 1210 may perform one or more operations described with reference to FIGS. 1 to 11 . The memory 1220 may include a computer readable storage medium or a computer readable storage device. The memory 1220 may store instructions to be executed by the processor 1210 and may store related information while software and/or applications are executed by the electronic device 1200 .

카메라(1230)는 사진 및/또는 비디오를 촬영할 수 있다. 저장 장치(1240)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함한다. 저장 장치(1240)는 메모리(1220)보다 더 많은 양의 정보를 저장하고, 정보를 장기간 저장할 수 있다. 예를 들어, 저장 장치(1240)는 자기 하드 디스크, 광 디스크, 플래쉬 메모리, 플로피 디스크 또는 이 기술 분야에서 알려진 다른 형태의 비휘발성 메모리를 포함할 수 있다.The camera 1230 may take pictures and/or videos. Storage device 1240 includes a computer readable storage medium or a computer readable storage device. The storage device 1240 may store a larger amount of information than the memory 1220 and may store the information for a long period of time. For example, the storage device 1240 may include a magnetic hard disk, an optical disk, flash memory, a floppy disk, or other form of non-volatile memory known in the art.

입력 장치(1250)는 키보드 및 마우스를 통한 전통적인 입력 방식, 및 터치 입력, 음성 입력, 및 이미지 입력과 같은 새로운 입력 방식을 통해 사용자로부터 입력을 수신할 수 있다. 예를 들어, 입력 장치(1250)는 키보드, 마우스, 터치 스크린, 마이크로폰, 또는 사용자로부터 입력을 검출하고, 검출된 입력을 전자 장치(1200)에 전달할 수 있는 임의의 다른 장치를 포함할 수 있다. 출력 장치(1260)는 시각적, 청각적 또는 촉각적인 채널을 통해 사용자에게 전자 장치(1200)의 출력을 제공할 수 있다. 출력 장치(1260)는 예를 들어, 디스플레이, 터치 스크린, 스피커, 진동 발생 장치 또는 사용자에게 출력을 제공할 수 있는 임의의 다른 장치를 포함할 수 있다. 네트워크 인터페이스(1270)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.The input device 1250 may receive an input from a user through a traditional input method using a keyboard and a mouse, and a new input method such as touch input, voice input, and image input. For example, input device 1250 may include a keyboard, mouse, touch screen, microphone, or any other device capable of detecting input from a user and passing the detected input to electronic device 1200 . The output device 1260 may provide the output of the electronic device 1200 to the user through a visual, auditory, or tactile channel. The output device 1260 may include, for example, a display, a touch screen, a speaker, a vibration generating device, or any other device capable of providing an output to a user. The network interface 1270 may communicate with an external device through a wired or wireless network.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (12)

유전자 알고리즘 기반의 주차 단속 스케줄링 방법에 있어서,
각각 대상 단속 지역들 중의 방문 후보들의 방문 시퀀스를 나타내는 정수 벡터에 해당하는 후보 해들을 초기화하는 단계;
상기 후보 해들의 각 방문 시퀀스에 따른 예상 단속 수 및 이동 시간에 기초하여 상기 후보 해들의 적합도를 평가하는 단계;
상기 적합도에 기초하여 유전 연산을 반복적으로 수행하여 최종 해를 결정하는 단계; 및
상기 최종 해에 대응하는 방문 시퀀스에 기초하여 주차 단속 스케줄을 결정하는 단계
를 포함하는 주차 단속 스케줄링 방법.
In the genetic algorithm-based parking enforcement scheduling method,
initializing candidate solutions corresponding to integer vectors each indicating a visit sequence of visit candidates in target enforcement areas;
Evaluating the fitness of the candidate solutions based on the expected number of punctures and travel time according to each visit sequence of the candidate solutions;
determining a final solution by repeatedly performing a genetic operation based on the fitness; and
Determining a parking enforcement schedule based on a visit sequence corresponding to the final solution
Parking enforcement scheduling method comprising a.
제1항에 있어서,
상기 적합도를 평가하는 단계는
과거 주차 단속 기록을 저장하는 단속 기록 데이터베이스에 기초하여 각 방문 시퀀스의 방문 후보들 및 방문 시간들에 따른 예상 단속 수를 결정하는 단계; 및
상기 대상 단속 지역들의 위치 정보에 기초하여 각 방문 시퀀스의 방문 후보들 간의 이동 시간을 결정하는 단계
를 포함하는, 주차 단속 스케줄링 방법.
According to claim 1,
The step of evaluating the fit is
Determining an expected number of enforcements according to visit candidates and visit times of each visit sequence based on a control record database for storing past parking control records; and
Determining a movement time between visit candidates of each visit sequence based on location information of the target enforcement areas
Including, parking enforcement scheduling method.
제1항에 있어서,
상기 적합도를 평가하는 단계는
상기 예상 단속 수가 많을수록 상기 적합도가 높아지고, 상기 이동 시간이 길수록 상기 적합도가 낮아지도록, 상기 적합도를 평가하는 단계를 포함하는,
주차 단속 스케줄링 방법.
According to claim 1,
The step of evaluating the fit is
Evaluating the fitness so that the fitness is increased as the expected number of enforcement increases and the fitness is decreased as the travel time is longer.
How to schedule parking enforcement.
제1항에 있어서,
상기 적합도를 평가하는 단계는
상기 예상 단속 수에서 상기 이동 시간과 단위 단속 시간 간의 비에 따른 손실 요인을 차감하여 상기 적합도를 평가하는 단계를 포함하는,
주차 단속 스케줄링 방법.
According to claim 1,
The step of evaluating the fit is
Evaluating the fitness by subtracting a loss factor according to the ratio between the movement time and the unit enforcement time from the expected number of enforcements,
How to schedule parking enforcement.
제1항에 있어서,
상기 최종 해를 결정하는 단계는
상기 적합도에 기초하여 상기 후보 해들로부터 부모 해들을 선택하는 단계; 및
상기 부모 해들에 기초하여 재생산 및 변이 중 적어도 일부를 수행하여 다음 세대의 후보 해들을 결정하는 단계
를 포함하는, 주차 단속 스케줄링 방법.
According to claim 1,
The step of determining the final solution is
selecting parent solutions from the candidate solutions based on the fitness; and
Determining candidate solutions of the next generation by performing at least some of reproduction and mutation based on the parent solutions.
Including, parking enforcement scheduling method.
제5항에 있어서,
상기 다음 세대의 후보 해들을 결정하는 단계는
상기 다음 세대의 후보 해들에 중복이 발생하지 않도록 중복된 후보 해를 다른 후보 해로 대체하는 단계를 포함하는,
주차 단속 스케줄링 방법.
According to claim 5,
The step of determining candidate solutions of the next generation
Replacing duplicated candidate solutions with other candidate solutions so that duplicates do not occur in the candidate solutions of the next generation.
How to schedule parking enforcement.
제1항에 있어서,
상기 최종 해는 미리 정해진 반복 횟수만큼의 진화를 통해 결정되는,
주차 단속 스케줄링 방법.
According to claim 1,
The final solution is determined through evolution by a predetermined number of iterations,
How to schedule parking enforcement.
하드웨어와 결합되어 제1항 내지 제7항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer readable recording medium in order to execute the method of any one of claims 1 to 7 in combination with hardware. 유전자 알고리즘 기반의 주차 단속 스케줄링 장치에 있어서,
프로세서; 및
상기 프로세서에서 실행가능한 명령어들을 포함하는 메모리
를 포함하고,
상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는
각각 대상 단속 지역들 중의 방문 후보들의 방문 시퀀스를 나타내는 정수 벡터에 해당하는 후보 해들을 초기화하고,
상기 후보 해들의 각 방문 시퀀스에 따른 예상 단속 수 및 이동 시간에 기초하여 상기 후보 해들의 적합도를 평가하고,
상기 적합도에 기초하여 유전 연산을 반복적으로 수행하여 최종 해를 결정하고,
상기 최종 해에 대응하는 방문 시퀀스에 기초하여 주차 단속 스케줄을 결정하는,
주차 단속 스케줄링 장치.
In the genetic algorithm-based parking enforcement scheduling device,
processor; and
Memory containing instructions executable by the processor
including,
When the instructions are executed in the processor, the processor
Initializing candidate solutions corresponding to integer vectors representing visit sequences of visit candidates in target enforcement areas, respectively;
Evaluate the suitability of the candidate solutions based on the expected number of punctures and travel time according to each visit sequence of the candidate solutions;
Based on the goodness of fit, a genetic operation is repeatedly performed to determine a final solution;
Determining a parking enforcement schedule based on a visit sequence corresponding to the final solution;
Parking Enforcement Scheduling Device.
제9항에 있어서,
상기 프로세서는
과거 주차 단속 기록을 저장하는 단속 기록 데이터베이스에 기초하여 각 방문 시퀀스의 방문 후보들 및 방문 시간들에 따른 예상 단속 수를 결정하고,
상기 대상 단속 지역들의 위치 정보에 기초하여 각 방문 시퀀스의 방문 후보들 간의 이동 시간을 결정하는,
주차 단속 스케줄링 장치.
According to claim 9,
The processor
Determining the expected number of enforcement according to the visit candidates and visit times of each visit sequence based on the enforcement record database for storing past parking enforcement records;
Determining a movement time between visit candidates of each visit sequence based on the location information of the target enforcement areas,
Parking Enforcement Scheduling Device.
제9항에 있어서,
상기 프로세서는
상기 예상 단속 수가 많을수록 상기 적합도가 높아지고, 상기 이동 시간이 길수록 상기 적합도가 낮아지도록, 상기 적합도를 평가하는,
주차 단속 스케줄링 장치.
According to claim 9,
The processor
Evaluating the fitness so that the fitness is increased as the number of expected enforcement increases and the fitness is decreased as the moving time is longer.
Parking Enforcement Scheduling Device.
제9항에 있어서,
상기 프로세서는
상기 예상 단속 수에서 상기 이동 시간과 단위 단속 시간 간의 비에 따른 감소 요인을 차감하여 상기 적합도를 평가하는,
주차 단속 스케줄링 장치.
According to claim 9,
The processor
Evaluating the fitness by subtracting a reduction factor according to the ratio between the movement time and the unit enforcement time from the expected number of enforcements,
Parking Enforcement Scheduling Device.
KR1020210099823A 2021-07-29 2021-07-29 Method and apparatus for parking enforcement scheduling based on genetic algorithm KR102571957B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210099823A KR102571957B1 (en) 2021-07-29 2021-07-29 Method and apparatus for parking enforcement scheduling based on genetic algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210099823A KR102571957B1 (en) 2021-07-29 2021-07-29 Method and apparatus for parking enforcement scheduling based on genetic algorithm

Publications (2)

Publication Number Publication Date
KR20230018082A true KR20230018082A (en) 2023-02-07
KR102571957B1 KR102571957B1 (en) 2023-08-29

Family

ID=85221294

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210099823A KR102571957B1 (en) 2021-07-29 2021-07-29 Method and apparatus for parking enforcement scheduling based on genetic algorithm

Country Status (1)

Country Link
KR (1) KR102571957B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172664A (en) * 1998-10-02 2000-06-23 Yoshinori Haseyama Optimum route and optimum circulation route searching method
JP2007187584A (en) * 2006-01-13 2007-07-26 Navitime Japan Co Ltd Navigation system having patrol route retrieving function, route retrieval server, and patrol route retrieving method
KR20180018140A (en) * 2016-08-12 2018-02-21 렉스젠(주) Apparatus for collecting vehicles information and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172664A (en) * 1998-10-02 2000-06-23 Yoshinori Haseyama Optimum route and optimum circulation route searching method
JP2007187584A (en) * 2006-01-13 2007-07-26 Navitime Japan Co Ltd Navigation system having patrol route retrieving function, route retrieval server, and patrol route retrieving method
KR20180018140A (en) * 2016-08-12 2018-02-21 렉스젠(주) Apparatus for collecting vehicles information and method thereof

Also Published As

Publication number Publication date
KR102571957B1 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
Jiang et al. Deepurbanevent: A system for predicting citywide crowd dynamics at big events
Tekouabou et al. Improving parking availability prediction in smart cities with IoT and ensemble-based model
Xiao et al. Demand prediction for a public bike sharing program based on spatio-temporal graph convolutional networks
Wu et al. Learning effective road network representation with hierarchical graph neural networks
Hoang et al. FCCF: Forecasting citywide crowd flows based on big data
Chen et al. Dynamic planning of bicycle stations in dockless public bicycle-sharing system using gated graph neural network
Huang et al. Large scale real-time ridesharing with service guarantee on road networks
Etienne et al. Model-based count series clustering for bike sharing system usage mining: a case study with the Vélib’system of Paris
Liu et al. Inferring dockless shared bike distribution in new cities
Jiang et al. Deep ROI-based modeling for urban human mobility prediction
WO2021232585A1 (en) Artificial intelligence-based positioning data processing method and related device
CN115440032B (en) Long-short-period public traffic flow prediction method
CN105488597B (en) Passenger destination prediction method and system
CN111462489B (en) Traffic congestion area prediction method and device
Jiang et al. Transfer urban human mobility via poi embedding over multiple cities
CN113763700A (en) Information processing method, information processing device, computer equipment and storage medium
Ruan et al. Dynamic public resource allocation based on human mobility prediction
Martin et al. Graph convolutional neural networks for human activity purpose imputation
Ishiguro et al. Taxi demand forecast using real-time population generated from cellular networks
Niu et al. On a clustering-based mining approach for spatially and temporally integrated traffic sub-area division
Fan et al. Online trajectory prediction for metropolitan scale mobility digital twin
Dai et al. Cluster-based destination prediction in bike sharing system
Jiang et al. VLUC: An empirical benchmark for video-like urban computing on citywide crowd and traffic prediction
KR102571957B1 (en) Method and apparatus for parking enforcement scheduling based on genetic algorithm
JP2017107385A (en) Task assignment device, method, and program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant