KR102309714B1 - Traffic simulation method based on parallel processing and appratus therefor - Google Patents

Traffic simulation method based on parallel processing and appratus therefor Download PDF

Info

Publication number
KR102309714B1
KR102309714B1 KR1020190178347A KR20190178347A KR102309714B1 KR 102309714 B1 KR102309714 B1 KR 102309714B1 KR 1020190178347 A KR1020190178347 A KR 1020190178347A KR 20190178347 A KR20190178347 A KR 20190178347A KR 102309714 B1 KR102309714 B1 KR 102309714B1
Authority
KR
South Korea
Prior art keywords
link
vehicles
cell
vehicle
traffic simulation
Prior art date
Application number
KR1020190178347A
Other languages
Korean (ko)
Other versions
KR20210085375A (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 KR1020190178347A priority Critical patent/KR102309714B1/en
Publication of KR20210085375A publication Critical patent/KR20210085375A/en
Application granted granted Critical
Publication of KR102309714B1 publication Critical patent/KR102309714B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Traffic Control Systems (AREA)

Abstract

본 발명의 실시예에 따른 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치가 제공된다. 본 발명의 실시예에 따른 교통 시뮬레이션 방법은, 도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 단계; 상기 커넥션 셀을 통해 상기 제2 링크에서 수용 가능한 제2 차량 수를 획득하는 제2 단계; 및 상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제3 단계를 포함하고, 상기 제1 단계, 상기 제2 단계 및 상기 제3 단계는, 상기 복수의 링크 각각에 대응하여 상기 교통 시뮬레이션 장치의 GPU(Graphic Processing Unit)에 포함된 복수의 코어 각각에 스레드(thread)로서 할당되고, 상기 할당된 스레드는, 상기 복수의 코어 각각에서 병렬적으로 적어도 동시에 실행된다.A parallel processing-based traffic simulation method and an apparatus therefor according to an embodiment of the present invention are provided. In the traffic simulation method according to an embodiment of the present invention, the number of first vehicles capable of moving from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics is determined, and the a first step of transmitting the determined first number of vehicles to the second link through a connection cell located between the links; a second step of acquiring a second number of vehicles that can be accommodated in the second link through the connection cell; and a third step of simulating moving a vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the second link through the connection cell, wherein the first step, the first Step 2 and the third step are allocated as threads to each of a plurality of cores included in a GPU (Graphic Processing Unit) of the traffic simulation apparatus in correspondence with each of the plurality of links, and the allocated threads include: Each of the plurality of cores is executed in parallel at least simultaneously.

Description

병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치{TRAFFIC SIMULATION METHOD BASED ON PARALLEL PROCESSING AND APPRATUS THEREFOR}TRAFFIC SIMULATION METHOD BASED ON PARALLEL PROCESSING AND APPRATUS THEREFOR

본 발명은 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a parallel processing-based traffic simulation method and an apparatus therefor.

최근 지속적인 차량의 증가로 인한 주행차량의 폭증으로 교통 체증, 교통사고, 교통 환경, 및 교통 서비스 등의 다양한 교통 문제가 발생하고 있다. 이러한 교통 문제를 해결하기 위해 현실의 도로별 교통 흐름 또는 차량 이동과 같은 교통 상황을 모델링하여 가상으로 수행시키는 교통 시뮬레이션 장치(traffic simulation device)가 주목받고 있다.Recently, various traffic problems such as traffic jams, traffic accidents, traffic environments, and traffic services are occurring due to the explosion of driving vehicles due to the continuous increase in vehicles. In order to solve such a traffic problem, a traffic simulation device that models a real traffic flow by road or a traffic situation such as vehicle movement and performs it virtually is attracting attention.

일반적으로, 교통 시뮬레이션 장치는 하이패스, 스마트 교통 카드 시스템 등을 통해 수집된 도로 교통 빅데이터를 이용하여 적어도 하나의 시나리오에 따라 도로별 차량 흐름 또는 차량 이동 등을 시뮬레이션한다. In general, a traffic simulation device simulates a vehicle flow or a vehicle movement by road according to at least one scenario using road traffic big data collected through a high pass, a smart traffic card system, and the like.

그러나, 교통 시뮬레이션 장치는 교통 시뮬레이션을 위해 많은 양의 데이터를 순차적으로 처리해야 하므로, 데이터 처리를 위해 소요되는 시간 및 리소스가 증가하는 문제점이 있다.However, since the traffic simulation apparatus has to sequentially process a large amount of data for traffic simulation, there is a problem in that time and resources required for data processing increase.

따라서, 교통 시뮬레이션을 위해 소요되는 시간 및 리소스 등을 최소화하면서 효율적이고, 빠른 교통 시뮬레이션을 수행하는 방법 및 이를 위한 장치가 요구된다.Accordingly, there is a need for a method and apparatus for efficiently and quickly performing traffic simulation while minimizing time and resources required for traffic simulation.

본 발명이 해결하고자 하는 과제는 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치를 제공하는 것이다. An object of the present invention is to provide a parallel processing-based traffic simulation method and an apparatus therefor.

구체적으로, 본 발명이 해결하고자 하는 과제는 교통 시뮬레이션을 위해 소요되는 시간 및 리소스 등을 최소화하면서 효율적이고, 빠른 교통 시뮬레이션을 수행하기 위해 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치를 제공하는 것이다.Specifically, the problem to be solved by the present invention is to provide a parallel processing-based traffic simulation method and an apparatus therefor in order to efficiently and quickly perform traffic simulation while minimizing time and resources required for traffic simulation.

본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 바와 같은 과제를 해결하기 위하여 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치가 제공된다. 본 발명의 실시예에 따른 교통 시뮬레이션 방법은, 도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 단계; 상기 커넥션 셀을 통해 상기 제2 링크에서 수용 가능한 제2 차량 수를 획득하는 제2 단계; 및 상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제3 단계를 포함하고, 상기 제1 단계, 상기 제2 단계 및 상기 제3 단계는, 상기 복수의 링크 각각에 대응하여 상기 교통 시뮬레이션 장치의 GPU(Graphic Processing Unit)에 포함된 복수의 코어 각각에 스레드(thread)로서 할당되고, 상기 할당된 스레드는, 상기 복수의 코어 각각에서 병렬적으로 적어도 동시에 실행된다.In order to solve the above-described problems, a parallel processing-based traffic simulation method and an apparatus therefor are provided. In the traffic simulation method according to an embodiment of the present invention, the number of first vehicles capable of moving from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics is determined, and the a first step of transmitting the determined first number of vehicles to the second link through a connection cell located between the links; a second step of acquiring a second number of vehicles that can be accommodated in the second link through the connection cell; and a third step of simulating moving a vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the second link through the connection cell, wherein the first step, the first Step 2 and the third step are allocated as threads to each of a plurality of cores included in a GPU (Graphic Processing Unit) of the traffic simulation apparatus in correspondence with each of the plurality of links, and the allocated threads include: Each of the plurality of cores is executed in parallel at least simultaneously.

본 발명의 실시예에 따른 교통 시뮬레이션 방법은, 도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 단계; 상기 커넥션 셀을 통해 상기 제2 링크의 차량 속도, 차량 밀도 및 상기 제2 링크를 구성하는 복수의 셀(cell) 각각에서 수용 가능한 제2 차량 수를 포함하는 차량 데이터를 획득하는 제2 단계; 및 상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제3 단계를 포함하고, 상기 제1 단계, 상기 제2 단계 및 상기 제3 단계가 수행된 이후 다음 시뮬레이션 동작에서 상기 차량 데이터를 이용하여 상기 제2 링크에서 수용 가능한 제2 차량 수를 예측하는 제4 단계; 및 상기 예측된 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제5 단계를 포함하고, 상기 제4 단계 및 상기 제5 단계는 기 설정된 횟수동안 수행된다.In the traffic simulation method according to an embodiment of the present invention, the number of first vehicles capable of moving from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics is determined, and the a first step of transmitting the determined first number of vehicles to the second link through a connection cell located between the links; a second step of acquiring vehicle data including a vehicle speed of the second link, a vehicle density, and a second number of vehicles that can be accommodated in each of a plurality of cells constituting the second link through the connection cell; and a third step of simulating moving a vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the second link through the connection cell, wherein the first step, the first a fourth step of predicting a second number of vehicles that can be accommodated in the second link using the vehicle data in a next simulation operation after steps 2 and 3 are performed; and a fifth step of simulating moving a vehicle corresponding to the predicted second number of vehicles to the second link through the connection cell, wherein the fourth and fifth steps are performed for a preset number of times. do.

본 발명의 실시예에 따른 교통 시뮬레이션 장치는, 데이터를 저장하는 저장부; 및 상기 저장부와 연결되고, 교통 시뮬레이션을 위해 사용되는 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 이용하여 상기 교통 시뮬레이션을 수행하도록 구성된 제어부를 포함하고, 상기 제어부는, GPU(Graphic Processing Unit)를 포함하도록 구성되고, 상기 GPU는, 복수의 코어를 포함하도록 구성되고, 상기 복수의 코어 중 제1 코어는, 도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 동작, 상기 커넥션 셀을 통해 상기 제2 링크에서 수용 가능한 제2 차량 수를 획득하는 제2 동작, 상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키는 제3 동작을 수행하도록 구성되고, 상기 제1 동작, 상기 제2 동작 및 상기 제3 동작은, 상기 복수의 링크 각각에 대응하여 상기 복수의 코어 각각에 스레드(thread)로서 할당되고, 상기 할당된 스레드는, 상기 복수의 코어 각각에서 병렬적으로 적어도 동시에 실행된다.Traffic simulation apparatus according to an embodiment of the present invention, a storage unit for storing data; and a control unit connected to the storage unit and configured to perform the traffic simulation using simulation element data, road network data, and traffic demand data used for traffic simulation, wherein the control unit comprises a GPU (Graphic Processing Unit) is configured to include, and the GPU is configured to include a plurality of cores, and a first core among the plurality of cores is configured to include a road in a first link among a plurality of links divided to have the same characteristics. A first operation of determining the number of first vehicles capable of moving to a second link, which is the next link, and transferring the determined number of first vehicles to the second link through a connection cell located between the links, the connection cell a second operation of obtaining the second number of vehicles acceptable in the second link through and the first operation, the second operation, and the third operation are allocated as a thread to each of the plurality of cores in correspondence with each of the plurality of links, and the allocation The threads are executed in parallel at least simultaneously on each of the plurality of cores.

본 발명의 실시예에 따른 교통 시뮬레이션 장치는, 데이터를 저장하는 저장부; 및 상기 저장부와 연결되고, 교통 시뮬레이션을 위해 사용되는 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 이용하여 상기 교통 시뮬레이션을 수행하도록 구성된 제어부를 포함하고, 상기 제어부는, GPU(Graphic Processing Unit)를 포함하도록 구성되고, 상기 GPU는, 복수의 코어를 포함하도록 구성되고, 상기 복수의 코어 중 제1 코어는, 도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 동작, 상기 커넥션 셀을 통해 상기 제2 링크의 차량 속도, 차량 밀도 및 상기 다음 링크를 구성하는 복수의 셀(cell) 각각에서 수용 가능한 제2 차량 수를 포함하는 차량 데이터를 획득하는 제2 동작, 상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 다음 링크로 이동시키는 제3 동작을 수행하도록 구성되고, 상기 제1 동작, 상기 제2 동작 및 상기 제3 동작이 수행된 이후 상기 제어부는, 다음 시뮬레이션 동작에서 상기 차량 데이터를 이용하여 상기 제2 링크에서 수용 가능한 제2 차량 수를 예측하는 제4 동작, 및 상기 예측된 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제4 동작을 수행하도록 구성되며, 상기 제4 동작 및 상기 제5 동작은 기 설정된 횟수동안 수행된다.Traffic simulation apparatus according to an embodiment of the present invention, a storage unit for storing data; and a control unit connected to the storage unit and configured to perform the traffic simulation using simulation element data, road network data, and traffic demand data used for traffic simulation, wherein the control unit comprises a GPU (Graphic Processing Unit) is configured to include, and the GPU is configured to include a plurality of cores, and a first core among the plurality of cores is configured to include a road in a first link among a plurality of links divided to have the same characteristics. A first operation of determining the number of first vehicles capable of moving to a second link, which is the next link, and transferring the determined number of first vehicles to the second link through a connection cell located between the links, the connection cell a second operation of acquiring vehicle data including the vehicle speed of the second link, the vehicle density, and the second number of vehicles that can be accommodated in each of a plurality of cells constituting the next link; and perform a third operation of moving a vehicle corresponding to the second number of vehicles among corresponding vehicles to the next link through the connection cell, and the first operation, the second operation, and the third operation are performed After this, the controller performs a fourth operation of predicting the second number of vehicles that can be accommodated in the second link using the vehicle data in the next simulation operation, and assigning a vehicle corresponding to the predicted second number of vehicles to the connection cell and to perform a fourth operation simulating to move to the second link through

기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.

본 발명은 교통 시뮬레이션을 위해 소요되는 시간 및 리소스 등을 최소화하면서 효율적이고, 빠른 교통 시뮬레이션을 수행하는 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치를 제공할 수 있다.The present invention can provide a parallel processing-based traffic simulation method and apparatus therefor that efficiently and quickly perform traffic simulation while minimizing time and resources required for traffic simulation.

본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.The effect according to the present invention is not limited by the contents exemplified above, and more various effects are included in the present invention.

도 1은 본 발명의 실시예에 따른 교통 시뮬레이션 장치의 블록도이다.
도 2는 본 발명의 실시예에 따른 제어부에 대한 개략도이다.
도 3a, 도 3b, 도 3c 및 도 3d는 본 발명의 실시예에 따른 병렬 처리 기반의 교통 시뮬레이션 방법을 설명하기 위한 예시도들이다.
도 4는 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 버퍼를 이용하여 교통 시뮬레이션을 수행하는 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 교차로를 구성하는 링크 간의 차량 이동을 수행하는 방법을 설명하기 위한 예시도이다.
도 6은 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 병렬 처리 기반의 교통 시뮬레이션을 수행하는 방법을 나타내는 흐름도이다.
도 7은 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 링크 간의 차량 이동을 수행하는 방법을 나타내는 흐름도이다.
도 8은 본 발명의 또 다른 실시예에 따른 교통 시뮬레이션 장치에서 링크 간의 차량 이동을 수행하는 방법을 나타내는 흐름도이다.
1 is a block diagram of a traffic simulation apparatus according to an embodiment of the present invention.
2 is a schematic diagram of a control unit according to an embodiment of the present invention.
3A, 3B, 3C and 3D are exemplary views for explaining a parallel processing-based traffic simulation method according to an embodiment of the present invention.
4 is an exemplary view for explaining a method of performing a traffic simulation using a buffer in the traffic simulation apparatus according to an embodiment of the present invention.
5 is an exemplary diagram for explaining a method of performing vehicle movement between links constituting an intersection in the traffic simulation apparatus according to an embodiment of the present invention.
6 is a flowchart illustrating a method of performing parallel processing-based traffic simulation in a traffic simulation apparatus according to an embodiment of the present invention.
7 is a flowchart illustrating a method of performing vehicle movement between links in a traffic simulation apparatus according to an embodiment of the present invention.
8 is a flowchart illustrating a method of performing vehicle movement between links in a traffic simulation apparatus according to another embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조부호가 사용될 수 있다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. In connection with the description of the drawings, like reference numerals may be used for like components.

본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this document, expressions such as "has," "may have," "includes," or "may include" refer to the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.

본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는(3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this document, expressions such as "A or B," "at least one of A and/and B," or "one or more of A or/and B" may include all possible combinations of the items listed together. . For example, "A or B," "at least one of A and B," or "at least one of A or B" means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.

본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.As used herein, expressions such as "first," "second," "first," or "second," may modify various elements, regardless of order and/or importance, and refer to one element. It is used only to distinguish it from other components, and does not limit the components. For example, the first user equipment and the second user equipment may represent different user equipment regardless of order or importance. For example, without departing from the scope of rights described in this document, the first component may be named as the second component, and similarly, the second component may also be renamed as the first component.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.A component (eg, a first component) is "coupled with/to (operatively or communicatively)" to another component (eg, a second component) When referring to "connected to", it will be understood that the certain element may be directly connected to the other element or may be connected through another element (eg, a third element). On the other hand, when it is said that a component (eg, a first component) is "directly connected" or "directly connected" to another component (eg, a second component), the component and the It may be understood that other components (eg, a third component) do not exist between other components.

본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~ 를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된)프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.As used herein, the expression "configured to (or configured to)" depends on the context, for example, "suitable for," "having the capacity to ," "designed to," "adapted to," "made to," or "capable of." The term “configured (or configured to)” may not necessarily mean only “specifically designed to” in hardware. Instead, in some circumstances, the expression “a device configured to” may mean that the device is “capable of” with other devices or parts. For example, the phrase “a processor configured (or configured to perform) A, B, and C” refers to a dedicated processor (eg, an embedded processor) for performing the operations, or by executing one or more software programs stored in a memory device. , may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.

본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe specific embodiments, and may not be intended to limit the scope of other embodiments. The singular expression may include the plural expression unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meanings as commonly understood by one of ordinary skill in the art described in this document. Among the terms used in this document, terms defined in a general dictionary may be interpreted with the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in this document, ideal or excessively formal meanings is not interpreted as In some cases, even terms defined in this document cannot be construed to exclude embodiments of this document.

본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.Each feature of the various embodiments of the present invention may be partially or wholly combined or combined with each other, and technically various interlocking and driving are possible, as will be fully understood by those skilled in the art, and each embodiment may be independently implemented with respect to each other, It may be possible to implement together in a related relationship.

본 명세서에서, 도로는 동일 특성을 갖는 복수의 링크(link)로 구분되며, 링크는 차선(lane) 및 도로 방향으로 링크의 길이를 나타내는 섹션(section)으로 나뉜다.In this specification, a road is divided into a plurality of links having the same characteristics, and the links are divided into lanes and sections indicating the length of the links in the road direction.

본 명세서에서, 셀(cell)은 링크, 섹션 및 차선으로 이루어진 세부 단위로서, 차량 이동, 도로에서의 차량 속도 및 밀도 등을 평가하기 위한 기준이 된다. In the present specification, a cell is a sub-unit consisting of a link, a section, and a lane, and is a criterion for evaluating vehicle movement, vehicle speed and density on a road, and the like.

본 명세서에서, 커넥션 셀(connection cell)은 링크와 링크를 잇는 단위로, 링크의 도로별 연결 데이터 및 교통 신호 데이터에 기반하여 링크 간의 차량을 분배하는 역할을 수행한다. 여기서, 도로별 연결 데이터는 링크에서 연결되는 다음 링크에 대한 정보를 포함하고, 교통 신호 데이터는 링크 사이의 교통 신호에 대한 정보를 포함할 수 있다.In the present specification, a connection cell is a unit connecting a link and a link, and serves to distribute vehicles between links based on road-specific connection data and traffic signal data of the link. Here, the connection data for each road may include information on a next link connected in a link, and the traffic signal data may include information on a traffic signal between links.

본 명세서에서, 소스(source)는 차량이 링크로 들어가기 전에 저장되는 공간으로, 주차장, 건물 등과 같은 공간에 대응할 수 있다. 시뮬레이션 주기마다 소스에 차량이 생성되며, 링크의 수용 여부에 따라 소스에 존재하는 차량이 링크에 진입할 수 있다. 소스에 생성된 차량은 주행 시작 시간, 주행 경로, 타겟 차로 범위를 가질 수 있다.In the present specification, a source is a space stored before a vehicle enters a link, and may correspond to a space such as a parking lot, a building, and the like. A vehicle is created in the source every simulation cycle, and a vehicle existing in the source may enter the link depending on whether the link is accepted or not. The vehicle created in the source may have a driving start time, a driving route, and a target lane range.

본 명세서에서, 싱크(sink)는 주행을 끝낸 차량이 진출하는 공간으로, 주행이 끝난 차량에 대한 정보를 저장할 수 있다.In the present specification, a sink is a space to which a vehicle that has finished driving advances, and information about the vehicle that has been driven may be stored.

이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 교통 시뮬레이션 장치의 블록도이다.1 is a block diagram of a traffic simulation apparatus according to an embodiment of the present invention.

도 1을 참조하면, 교통 시뮬레이션 장치(100)는 도로를 복수개로 분할한 링크 간의 차량 흐름을 시뮬레이션(simulation)하기 위한 장치로서, 통신부(110), 표시부(120), 저장부(130) 및 제어부(140)를 포함한다. 예를 들어, 교통 시뮬레이션 장치(100)는 PC(Personal Computer), 노트북, 태블릿 PC 등과 같은 컴퓨팅 장치일 수 있으나, 이에 한정되지 않으며, 교통 시뮬레이션이 가능한 다양한 장치가 이용될 수 있다.Referring to FIG. 1 , a traffic simulation device 100 is a device for simulating a vehicle flow between links divided into a plurality of roads, and includes a communication unit 110 , a display unit 120 , a storage unit 130 , and a control unit. (140). For example, the traffic simulation apparatus 100 may be a computing device such as a personal computer (PC), a notebook computer, or a tablet PC, but is not limited thereto, and various devices capable of performing traffic simulation may be used.

이러한 교통 시뮬레이션 장치(100)는 도로에 대한 차량 데이터(예: 차량의 속도, 밀도, 주행 방향 등), 링크 데이터(예: 링크의 수, 링크의 크기 등) 및 커넥션 셀 데이터(예: 링크 간의 도로별 연결 데이터 및 교통 신호 데이터 등)를 포함하는 시뮬레이션 요소 데이터에 기반하여 링크 간의 차량 흐름을 시뮬레이션할 수 있다.The traffic simulation device 100 includes vehicle data for a road (eg, vehicle speed, density, driving direction, etc.), link data (eg, number of links, size of links, etc.) and connection cell data (eg, between links). Vehicle flow between links can be simulated based on simulation element data including road-specific connection data and traffic signal data).

먼저, 통신부(110)는 교통 시뮬레이션 장치(100)가 외부 장치와 통신이 가능하도록 연결한다. 예를 들어, 통신부(110)는 유/무선 통신을 이용하여 외부 장치와 연결되어 다양한 데이터를 송수신할 수 있다.First, the communication unit 110 connects the traffic simulation device 100 to enable communication with an external device. For example, the communication unit 110 may be connected to an external device using wired/wireless communication to transmit/receive various data.

표시부(120)는 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 배너 또는 심볼 등)를 표시할 수 있다. 구체적으로, 표시부(120)는 교통 시뮬레이션 결과를 나타내는 인터페이스 화면을 표시할 수 있다. The display unit 120 may display various contents (eg, text, image, video, icon, banner or symbol, etc.) to the user. Specifically, the display unit 120 may display an interface screen indicating a traffic simulation result.

다양한 실시예에서 표시부(120)는 터치스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치(touch), 제스처(gesture), 근접, 드래그(drag), 스와이프(swipe) 또는 호버링(hovering) 입력 등을 수신할 수 있다. In various embodiments, the display unit 120 may include a touch screen, for example, a touch, a gesture, a proximity, a drag, and a swipe using an electronic pen or a part of the user's body. A swipe or hovering input may be received.

저장부(130)는 링크 간의 차량 흐름을 시뮬레이션하기 위해 사용되는 다양한 데이터를 저장할 수 있다. 특히, 저장부(130)는 교통 시뮬레이션을 위해 사용되는 도로별 차량 데이터, 링크 데이터 및 커넥션 셀 데이터를 포함하는 시뮬레이션 요소 데이터를 저장할 수 있다. The storage unit 130 may store various data used to simulate a vehicle flow between links. In particular, the storage unit 130 may store simulation element data including vehicle data for each road, link data, and connection cell data used for traffic simulation.

다양한 실시예에서 저장부(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 교통 시뮬레이션 장치(100)는 인터넷(internet)상에서 상기 저장부(130)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다.In various embodiments, the storage unit 130 may include a flash memory type, a hard disk type, a multimedia card micro type, and a card type memory (eg, SD or XD). memory, etc.), Random Access Memory (RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM) , a magnetic memory, a magnetic disk, and an optical disk may include at least one type of storage medium. The traffic simulation apparatus 100 may operate in relation to a web storage that performs a storage function of the storage unit 130 on the Internet.

제어부(140)는 통신부(110), 표시부(120) 및 저장부(130)와 동작 가능하게 연결되며, 링크 간의 차량 흐름을 시뮬레이션하기 위한 다양한 명령들을 수행할 수 있다.The controller 140 is operatively connected to the communication unit 110 , the display unit 120 , and the storage unit 130 , and may perform various commands for simulating a vehicle flow between links.

제어부(140)는 교통 시뮬레이션을 위해 사용되는 시뮬레이션 요소 데이터를 이용하여 도로를 동일 특성을 가지도록 분할한 복수의 링크 간의 차량 이동 시뮬레이션 동작을 수행할 수 있다. The controller 140 may perform a vehicle movement simulation operation between a plurality of links in which roads are divided to have the same characteristics by using simulation element data used for traffic simulation.

이를 위해 제어부(140)는 제1 처리부(150) 및 제2 처리부(160)를 포함할 수 있다.To this end, the control unit 140 may include a first processing unit 150 and a second processing unit 160 .

제1 처리부(150)는 도로 교통 빅데이터에 기반하여 적어도 하나의 교통 시나리오에 따라 교통 시뮬레이션을 위한 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 생성할 수 있다. 예를 들어, 제1 처리부(150)는 CPU(Central Processing Unit)일 수 있으나, 이에 한정되지 않는다. 여기서, 도로 교통 빅데이터는 실제 도로에 대한 구성, 주행 방향, 교통 신호, 차량 수요 및 교통 상황 등을 나타내는 데이터로서, 주기적으로 수집될 수 있다. 또한, 시뮬레이션 요소 데이터는 교통 시뮬레이션을 위한 차량의 속도, 밀도 및 주행 방향 등을 포함하는 차량 데이터, 링크의 수 및 크기 등을 포함하는 링크 데이터, 및 링크 간의 도로별 연결 데이터 및 교통 신호 데이터 등을 포함하는 커넥션 셀 데이터를 포함할 수 있다. 도로 네트워크 데이터는 교통 시뮬레이션을 위한 도로를 구성하는 링크, 커넥션 셀, 소스 및 싱크를 나타내고, 교통 수요 데이터는 도로 네트워크를 기준으로 시뮬레이션용 차량의 경로를 나타낼 수 있다. 적어도 하나의 교통 시나리오는 기 저장되거나, 교통 시뮬레이션을 위해 다양하게 설정될 수 있으며, 이에 한정되지 않는다.The first processing unit 150 may generate simulation element data, road network data, and traffic demand data for traffic simulation according to at least one traffic scenario based on the road traffic big data. For example, the first processing unit 150 may be a central processing unit (CPU), but is not limited thereto. Here, the road traffic big data is data representing the actual road configuration, driving direction, traffic signal, vehicle demand, traffic condition, and the like, and may be periodically collected. In addition, the simulation element data includes vehicle data including vehicle speed, density, and driving direction for traffic simulation, link data including the number and size of links, and road-specific connection data and traffic signal data between links. It may include the included connection cell data. The road network data may represent links, connection cells, sources, and sinks constituting a road for traffic simulation, and the traffic demand data may represent a route of a vehicle for simulation based on the road network. At least one traffic scenario may be pre-stored or may be variously set for traffic simulation, but is not limited thereto.

제2 처리부(160)는 복수의 링크 각각에 대응하여 링크 간의 차량 이동 시뮬레이션 동작을 병렬적으로 적어도 동시에 수행할 수 있다. 예를 들어, 제2 처리부(160)는 GPU(Graphic Processing Unit)일 수 있으나, 이에 한정되지 않는다. The second processing unit 160 may simultaneously perform at least a parallel vehicle movement simulation operation between links in correspondence to each of the plurality of links. For example, the second processing unit 160 may be a graphic processing unit (GPU), but is not limited thereto.

이러한 제2 처리부(160)는 복수의 코어(core)를 포함하고, 링크 간의 차량 이동 시뮬레이션 동작은 복수의 코어 각각에 스레드(thread)로서 할당될 수 있다. 이와 같이 복수의 코어 각각에 할당된 스레드는 병렬적으로 적어도 동시에 실행될 수 있다. 예를 들어, i번째 링크에 대한 차량 이동 시뮬레이션 동작은 i번째 코어(162)에서 수행되고, i+1번째 링크에 대한 차량 이동 시뮬레이션 동작은 i+1번째 코어(164)에서 수행될 수 있다(i>0, i는 자연수).The second processing unit 160 includes a plurality of cores, and a vehicle movement simulation operation between links may be assigned to each of the plurality of cores as threads. In this way, the threads allocated to each of the plurality of cores may be executed in parallel at least simultaneously. For example, a vehicle movement simulation operation for the i-th link may be performed by the i-th core 162 , and a vehicle movement simulation operation for the i+1-th link may be performed by the i+1-th core 164 ( i>0, i is a natural number).

하기에서는 i번째 링크에 대응하는 i번째 코어(162) 및 i+1번째 링크에 대응하는 i+1번째 코어(164) 각각에서 수행되는 링크 간의 차량 이동 시뮬레이션 동작을 설명하도록 한다. Hereinafter, a simulation operation of vehicle movement between links performed in each of the i-th core 162 corresponding to the i-th link and the i+1-th core 164 corresponding to the i+1-th link will be described.

i번째 코어(162)는 i번째 링크에서 다음 링크인 i+1번째 링크로 이동 가능한 제1 차량 수를 결정하고, i+1번째 링크에 대한 차량 이동 시뮬레이션을 수행하는 i+1번째 코어(164)로 결정된 제1 차량 수를 전달할 수 있다. 여기서, 제1 차량 수는 i번째 링크의 마지막 셀에 위치한 차량의 수일 수 있다.The i-th core 162 determines the first number of vehicles that can move from the i-th link to the next link, i+1-th link, and the i+1-th core 164 performs vehicle movement simulation on the i+1-th link. ) may transmit the determined first vehicle number. Here, the first number of vehicles may be the number of vehicles located in the last cell of the i-th link.

일반적으로, 링크와 링크 사이에는 링크 간의 차량 흐름을 조절하는 커넥션 셀이 존재할 수 있다. 이러한 커넥션 셀은 특정 링크에서 연결되는 다음 링크에 대한 정보를 나타내는 도로별 연결 데이터 및 링크 간의 차량 이동 시 차량의 이동 여부를 나타내는 교통 신호 데이터를 포함하며, 이러한 데이터를 이용하여 링크 간의 차량 흐름을 조절할 수 있다. 다시 말해서, 링크와 링크 사이의 차량 이동은 커넥션 셀을 통해 이루어지므로, i번째 링크의 마지막 셀에 존재하는 차량은 i+1번째 링크의 첫번째 셀로 바로 이동하지 않는다. 즉, i번째 코어(162)는 커넥션 셀을 통해 도로별 연결 데이터를 이용하여 i번째 링크의 마지막 셀에 존재하는 차량이 이동해야 하는 다음 링크를 확인하고, 교통 신호 데이터를 이용하여 차량 이동 여부를 확인하여 링크 간의 차량 이동을 수행할 수 있다.In general, there may be a link cell between the link and a connection cell that regulates the flow of vehicles between the links. Such a connection cell includes road-specific connection data indicating information on the next link connected from a specific link and traffic signal data indicating whether a vehicle moves when a vehicle moves between links. can In other words, since the movement of a vehicle between a link and a link is made through a connection cell, a vehicle existing in the last cell of the i-th link does not move directly to the first cell of the i+1-th link. That is, the i-th core 162 checks the next link to which a vehicle existing in the last cell of the i-th link should move using the connection data for each road through the connection cell, and determines whether the vehicle moves using the traffic signal data. By checking, you can perform vehicle movement between links.

이러한 경우 i번째 코어(162)는 제1 차량 수를 나타내는 제1 데이터를 커넥션 셀을 통해 i+1번째 코어(164)로 전달할 수 있다. 예를 들어, i번째 코어(162)는 제1 데이터를 커넥션 셀에 복사하고, 커넥션 셀에 복사된 제1 데이터는 i+1번째 코어(164)에 의해서 i+1번째 링크의 가상 셀(virtual cell)에 추가될 수 있다. 여기서, 가상 셀은 데이터를 임시로 저장하기 위한 셀로서, 링크의 첫번째 셀 앞쪽 및 마지막 셀 뒤쪽에 위치할 수 있다.In this case, the i-th core 162 may transmit the first data representing the first number of vehicles to the i+1-th core 164 through the connection cell. For example, the i-th core 162 copies the first data to the connection cell, and the first data copied to the connection cell is a virtual cell of the i+1-th link by the i+1-th core 164 . cell) can be added. Here, the virtual cell is a cell for temporarily storing data, and may be located in front of the first cell and behind the last cell of the link.

이어서, i번째 코어(162)는 i+1번째 코어(164)로부터 i+1번째 링크에서 수용 가능한 제2 차량 수를 획득할 수 있다. 여기서, 제2 차량 수는 i+1번째 코어(164)에 의해 결정되며, i+1번째 링크의 첫번째 셀에서 수용 가능한 차량 수일 수 있다. 다시 말해서, 수용 가능한 차량은 i+1번째 링크의 가상 셀에서 i+1번째 링크의 첫번째 셀로 이동 가능한 차량 수일 수 있다. 이러한 경우 i+1번째 코어(164)는 제2 차량 수를 나타내는 제2 데이터를 커넥션 셀에 복사하고, i번째 코어(162)는 커넥션 셀에 복사된 제2 데이터를 가져올 수 있다.Subsequently, the i-th core 162 may obtain the second number of vehicles acceptable in the i+1-th link from the i+1-th core 164 . Here, the second number of vehicles is determined by the i+1th core 164 and may be the number of vehicles that can be accommodated in the first cell of the i+1th link. In other words, the acceptable vehicle may be the number of vehicles capable of moving from the virtual cell of the i+1-th link to the first cell of the i+1-th link. In this case, the i+1th core 164 may copy the second data indicating the second number of vehicles to the connection cell, and the i-th core 162 may bring the copied second data to the connection cell.

i번째 코어(162)는 제1 차량 수에 해당하는 차량 중 획득된 제2 차량 수에 해당하는 차량을 i+1번째 링크로 이동시키도록 시뮬레이션할 수 있다. 구체적으로, i번째 코어(162)는 i번째 링크의 마지막 셀에 위치한 차량 중 제2 차량 수에 해당하는 차량을 i번째 링크의 마지막 셀 뒤쪽에 위치한 가상 셀로 이동시킬 수 있다. 다시 말해서, i번째 코어(162)는 제2 차량 수에 해당하는 차량의 식별 데이터(예: ID)를 가상 셀에 복사할 수 있다. 예를 들어, 제2 차량 수가 1대인 경우 마지막 셀에 18대의 차량이 존재하면 i번째 코어(162)는 그 중 1대의 차량 식별 데이터를 가상 셀에 복사할 수 있다.The i-th core 162 may simulate moving a vehicle corresponding to the acquired second vehicle number among vehicles corresponding to the first vehicle number to the i+1-th link. Specifically, the i-th core 162 may move a vehicle corresponding to the second number of vehicles among the vehicles located in the last cell of the i-th link to a virtual cell located behind the last cell of the i-th link. In other words, the i-th core 162 may copy identification data (eg, ID) of a vehicle corresponding to the second number of vehicles to the virtual cell. For example, when the second number of vehicles is one, if 18 vehicles exist in the last cell, the i-th core 162 may copy vehicle identification data of one of them to the virtual cell.

i번째 코어(162)는 가상 셀로 이동한 차량을 커넥션 셀로 이동시키고, 커넥션 셀을 통해 차량이 i+1번째 링크로 이동할 수 있다. 다시 말해서, 차량 식별 데이터가 커넥션 셀에 복사되고, 커넥션 셀에 복사된 차량 식별 데이터가 i+1번째 링크의 첫번째 셀에 추가될 수 있다.The i-th core 162 may move the vehicle moving to the virtual cell to the connection cell, and the vehicle may move to the i+1-th link through the connection cell. In other words, the vehicle identification data may be copied to the connection cell, and the vehicle identification data copied to the connection cell may be added to the first cell of the i+1-th link.

이를 통해 본 발명은 GPU 코어 각각이 각 링크에 대응하는 상술한 동작들을 병렬적으로 동시에 수행함으로써, 교통 시뮬레이션을 수행하기 위해 소요되는 시간 및 리소스 등을 줄일 수 있어 교통 시뮬레이션 성능을 향상시킬 수 있다.Through this, according to the present invention, since each of the GPU cores simultaneously performs the above-described operations corresponding to each link in parallel, it is possible to reduce the time and resources required to perform the traffic simulation, thereby improving the traffic simulation performance.

다양한 실시예에서 i번째 코어(162)는 상술한 동작 중 일부를 생략하여 링크 간의 차량 이동 시뮬레이션 동작을 수행함으로써, 각 코어에서 수행하는 복수의 동작들을 일부 생략하여 교통 시뮬레이션 수행 시 소요되는 리소스 및 시간 등을 최소화할 수 있다. In various embodiments, the i-th core 162 performs a vehicle movement simulation operation between links by omitting some of the above-described operations, thereby partially omitting a plurality of operations performed by each core, thereby omitting some of the resources and time required to perform a traffic simulation. can be minimized.

이를 위해 i번째 코어(162)는 상술한 i+1번째 코어(164)로부터 i+1번째 링크의 첫번째 셀에서 수용 가능한 제2 차량 수를 획득하는 대신 i+1번째 링크의 차량 속도, 차량 밀도 및 i+1번째 링크가 포함하는 복수의 셀들 각각에서 수용 가능한 차량 수를 포함하는 차량 데이터를 획득할 수 있다.To this end, the i-th core 162 obtains the second number of vehicles acceptable in the first cell of the i+1-th link from the above-described i+1-th core 164, but instead of acquiring the vehicle speed and vehicle density of the i+1-th link. and vehicle data including the number of vehicles that can be accommodated in each of a plurality of cells included in the i+1th link.

구체적으로, i번째 코어(162)는 i번째 링크에서 다음 링크인 i+1번째 링크로 이동 가능한 제1 차량 수를 결정하여 i+1번째 코어(164)로 결정된 제1 차량 수를 전달하고, i+1번째 코어(164)로부터 i+1번째 링크의 차량 데이터를 획득할 수 있다. 예를 들어, i+1번째 링크가 포함하는 복수의 셀이 4개인 경우 차량 데이터는 i+1번째 링크에서의 평균 차량 속도, 평균 차량 밀도 및 첫번째 셀인 제1 셀 앞쪽에 위치한 가상 셀, 제1 셀, 제2 셀 및 제3 셀 각각에서 다음 셀로 이동 가능한 차량 수를 포함할 수 있다.Specifically, the i-th core 162 determines the first number of vehicles that can move from the i-th link to the next link, i+1-th link, and transmits the determined first vehicle number to the i+1-th core 164, Vehicle data of the i+1th link may be obtained from the i+1th core 164 . For example, when the number of cells included in the i+1th link is 4, vehicle data includes the average vehicle speed in the i+1th link, the average vehicle density, and a virtual cell located in front of the first cell, which is the first cell. The number of vehicles capable of moving from each of the cell, the second cell, and the third cell to the next cell may be included.

i번째 코어(162)는 제1 차량 수에 해당하는 차량 중 i+1번째 링크의 가상 셀에서 첫번째 셀로 이동 가능한 차량 수(즉, 제2 차량 수)에 해당하는 차량을 커넥션 셀을 통해 i+1번째 코어(164)로 전달하고, i+1번째 코어(164)는 전달된 차량을 i+1번째 링크의 첫번째 셀로 이동시킬 수 있다. 다시 말해서, i번째 코어(162)는 제2 차량 수에 해당하는 차량의 식별 데이터를 커넥션 셀에 복사하고, i+1번째 코어(164)는 커넥션 셀에 복사된 차량 식별 데이터를 i+1번째 링크의 첫번째 셀에 추가할 수 있다. The i-th core 162 transfers a vehicle corresponding to the number of vehicles that can move from the virtual cell of the i+1-th link to the first cell (ie, the second number of vehicles) among the vehicles corresponding to the first number of vehicles through i+ through the connection cell. The transfer is performed to the first core 164 , and the i+1-th core 164 may move the transferred vehicle to the first cell of the i+1-th link. In other words, the i-th core 162 copies vehicle identification data corresponding to the second number of vehicles to the connection cell, and the i+1-th core 164 copies the vehicle identification data copied to the connection cell to the i+1-th vehicle identification data. You can add it to the first cell of the link.

이후 i번째 코어(162)는 다음 차량 이동 시뮬레이션을 위해 상술한 제1 차량 수를 다음 링크로 전달하고, 다음 링크로부터 제2 차량 수를 획득하는 동작을 수행할 필요 없이 미리 획득된 차량 데이터를 이용하여 다음 링크의 첫번째 셀에서 수용 가능한 제2 차량 수를 예측할 수 있다.Thereafter, the i-th core 162 transfers the above-described first vehicle number to the next link for the next vehicle movement simulation, and uses the vehicle data obtained in advance without the need to perform the operation of obtaining the second vehicle number from the next link Thus, it is possible to predict the number of second vehicles that can be accommodated in the first cell of the next link.

구체적으로, i번째 코어(162)는 이전 과정에서 획득한 i+1번째 링크의 차량 데이터를 이용하여 i+1번째 링크의 첫번째 셀에서 수용 가능한 제2 차량 수를 예측하고, 제1 차량 수에 해당하는 차량 중 예측된 제2 차량 수에 해당하는 차량을 커넥션 셀로 이동시킬 수 있다. 다시 말해서, i번째 코어(162)는 i+1번째 링크의 평균 차량 속도, 평균 차량 밀도 및 i+1번째 링크의 첫번째 셀에서 두번째 셀로 이동 가능한 차량 수를 이용하여 i번째 링크의 마지막 셀에서 i+1번째 링크의 첫번째 셀로 이동 가능한 차량 수(즉, 제2 차량 수)를 예측할 수 있다.Specifically, the i-th core 162 predicts the second number of vehicles acceptable in the first cell of the i+1-th link by using the vehicle data of the i+1-th link obtained in the previous process, and A vehicle corresponding to the predicted second number of vehicles among the corresponding vehicles may be moved to the connection cell. In other words, the i-th core 162 uses the average vehicle speed, the average vehicle density, and the number of vehicles that can move from the first cell to the second cell of the i+1-th link in the last cell of the i-th link. The number of vehicles capable of moving to the first cell of the +1-th link (ie, the number of second vehicles) may be predicted.

커넥션 셀로 이동한 차량은 i+1번째 코어(164)에 의해서 i+1번째 링크의 첫번째 셀로 이동할 수 있는데, 이동되는 차량은 예측된 제2 차량 수에 대응하므로, i+1번째 링크의 첫번째 셀에서 실제 수용 가능한 제2 차량 수와 차이가 있을 수 있다. 이러한 경우 이동된 차량은 다시 i번째 링크로 이동할 수 없으므로, i+1번째 코어(164)는 실제 제2 차량 수를 제외한 나머지 차량을 i+1번째 링크의 첫번째 셀 앞에 위치한 가상 셀에 이동시킴으로써, 해당 가상 셀을 버퍼(buffer)로서 이용할 수 있다.The vehicle moving to the connection cell can move to the first cell of the i+1-th link by the i+1-th core 164 , and since the moving vehicle corresponds to the predicted number of second vehicles, the first cell of the i+1-th link There may be a difference from the number of second vehicles that can actually be accommodated in . In this case, since the moved vehicle cannot move to the i-th link again, the i+1-th core 164 moves the remaining vehicles except for the actual number of second vehicles to the virtual cell located in front of the first cell of the i+1-th link, The corresponding virtual cell may be used as a buffer.

제2 차량 수를 예측하는 동작은 획득된 차량 데이터의 수보다 하나 작은 수만큼 수행될 수 있다. 다시 말해서, i번째 코어(162)는 i+1번째 링크가 포함하는 복수의 셀의 개수보다 하나 작은 수만큼 차량 데이터를 이용하여 제2 차량 수를 예측할 수 있다. 예를 들어, i+1번째 링크가 4개의 셀을 포함하면 i번째 코어(162)는 평균 차량 속도, 평균 차량 밀도 및 첫번째 셀에서 두번째 셀로 이동 가능한 차량 수를 이용하여 제2 차량 수를 예측하고, 다음 차량 이동을 위해 평균 차량 속도, 평균 차량 밀도 및 두번째 셀에서 세번째 셀로 이동 가능한 차량 수를 이용하여 제2 차량 수를 예측하며, 그 다음 차량 이동을 위해 평균 차량 속도, 평균 차량 밀도 및 세번째 셀에서 네번째 셀로 이동 가능한 차량 수를 이용하여 제2 차량 수를 예측하는 동작과 같이 총 3번의 예측 동작을 수행할 수 있다. The operation of predicting the second number of vehicles may be performed by a number that is one less than the number of acquired vehicle data. In other words, the i-th core 162 may predict the second number of vehicles using vehicle data by a number that is one less than the number of cells included in the i+1-th link. For example, if the i+1th link includes 4 cells, the i-th core 162 predicts the second number of vehicles using the average vehicle speed, average vehicle density, and the number of vehicles that can move from the first cell to the second cell, , predict a second number of vehicles using the average vehicle speed, average vehicle density, and the number of vehicles that can move from the second cell to the third cell for the next vehicle movement, and then the average vehicle speed, average vehicle density and third cell for the next vehicle movement. A total of three prediction operations may be performed, such as the operation of predicting the second number of vehicles by using the number of vehicles that can move from to the fourth cell.

이와 같이 i+1번째 링크가 포함하는 복수의 셀의 개수보다 하나 작은 수만큼 제2 차량 수를 예측하는 동작이 완료되면 i번째 코어(162)는 다음 차량 이동 시뮬레이션을 위해 제1 차량 수를 결정하고, 결정된 제1 차량 수를 커넥션 셀을 통해 i+1번째 코어(164)로 전달하고, i+1번째 코어(164)로부터 각 셀에 대한 차량 데이터를 획득하는 등과 같은 동작을 다시 수행할 수 있다.As such, when the operation of predicting the number of second vehicles by one less than the number of cells included in the i+1-th link is completed, the i-th core 162 determines the first number of vehicles for the next vehicle movement simulation. and transfer the determined first number of vehicles to the i+1th core 164 through the connection cell, and obtain vehicle data for each cell from the i+1th core 164 again. have.

상술한 바와 같이 제2 차량 수를 예측하는 동작은 평균 차량 속도, 평균 차량 밀도 및 각 셀에 대하여 과거에 획득한 수용 가능한 차량 수를 이용하여 수행될 수 있으나, 이에 한정되지 않으며, 제2 차량 수를 예측하기 위해 머신 러닝(machine learning), 딥 러닝(deep learning) 등과 같은 다양한 방식이 이용될 수 있다.As described above, the operation of predicting the second number of vehicles may be performed using the average vehicle speed, the average vehicle density, and the number of acceptable vehicles obtained in the past for each cell, but is not limited thereto, and the second number of vehicles is not limited thereto. Various methods such as machine learning, deep learning, and the like may be used to predict .

다양한 실시예에서 버퍼에 저장된 차량은 i+1번째 링크의 첫번째 셀에서 수용 가능한 차량 수가 ‘0’을 초과할 때마다 i+1번째 링크의 첫번째 셀로 이동할 수 있다.In various embodiments, the vehicle stored in the buffer may move to the first cell of the i+1-th link whenever the number of vehicles that can be accommodated in the first cell of the i+1-th link exceeds '0'.

다양한 실시예에서 버퍼에 저장된 차량 수가 기 설정된 임계값을 넘는 경우 버퍼에 저장된 차량 식별 데이터는 가장 오래된 데이터부터 삭제될 수 있다.In various embodiments, when the number of vehicles stored in the buffer exceeds a preset threshold, vehicle identification data stored in the buffer may be deleted starting with the oldest data.

이와 같이 본 발명은 다음 링크로부터 획득된 차량 데이터에 기반하여 다음 링크에서 수용 가능한 제2 차량 수를 예측함으로써, 제1 차량 수를 다음 링크로 전달하고, 다음 링크로부터 제2 차량 수를 획득하는 동작이 생략되어 이를 위해 소요되는 리소스 및 시간 등을 줄일 수 있다.As described above, the present invention predicts the second number of vehicles acceptable in the next link based on vehicle data obtained from the next link, thereby transferring the first number of vehicles to the next link and obtaining the second number of vehicles from the next link. This is omitted so that resources and time required for this can be reduced.

다양한 실시예에서 제어부(140)는 교통 시뮬레이션 결과를 나타내는 인터페이스 화면을 표시부(120)를 통해서 표시할 수 있다. 표시부(120)를 통해서 표시되는 인터페이스 화면은 링크 간의 교통 흐름을 나타내는 적어도 하나의 그래픽 객체를 포함할 수 있다.In various embodiments, the controller 140 may display an interface screen indicating a traffic simulation result through the display unit 120 . The interface screen displayed through the display unit 120 may include at least one graphic object representing a traffic flow between links.

하기에서는 제1 처리부(142) 및 제2 처리부(144)를 포함하는 제어부(140)에 대해서 도 2를 참조하여 상세하게 설명하도록 한다.Hereinafter, the control unit 140 including the first processing unit 142 and the second processing unit 144 will be described in detail with reference to FIG. 2 .

도 2는 본 발명의 실시예에 따른 제어부에 대한 개략도이다.2 is a schematic diagram of a control unit according to an embodiment of the present invention.

도 2를 참조하면, 제어부(200)는 CPU(210) 및 GPU(220)를 포함한다. 제시된 실시예에서 제어부(200), CPU(210) 및 GPU(220)는 도 1의 제어부(140), 제1 처리부(142) 및 제2 처리부(144)를 의미할 수 있다.Referring to FIG. 2 , the control unit 200 includes a CPU 210 and a GPU 220 . In the presented embodiment, the control unit 200 , the CPU 210 , and the GPU 220 may refer to the control unit 140 , the first processing unit 142 , and the second processing unit 144 of FIG. 1 .

CPU(210)는 시뮬레이션 요소 생성부(212)를 포함하고, GPU(220)는 리소스 갱신부(222), 차로 변경부(224) 및 차량 추정부(226)를 포함한다.The CPU 210 includes a simulation element generator 212 , and the GPU 220 includes a resource updater 222 , a lane change unit 224 , and a vehicle estimator 226 .

시뮬레이션 요소 생성부(212)는 도로 교통 빅데이터에 기반하여 교통 시뮬레이션을 위해 사용되는 시뮬레이션 요소 데이터를 생성한다. The simulation element generator 212 generates simulation element data used for traffic simulation based on road traffic big data.

구체적으로, 시뮬레이션 요소 생성부(212)는 도로 교통 빅데이터를 이용하여 차량 데이터, 링크 데이터 및 커넥션 셀 데이터를 포함하는 시뮬레이션 요소 데이터를 생성하고, 도로 네트워크 데이터 및 교통 수요 데이터를 생성할 수 있다. 이와 같이 생성된 데이터는 교통 시뮬레이션을 위한 입력 데이터로서 이용될 수 있다.Specifically, the simulation element generator 212 may generate simulation element data including vehicle data, link data, and connection cell data using road traffic big data, and may generate road network data and traffic demand data. The data generated in this way may be used as input data for traffic simulation.

리소스 갱신부(222)는 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터에 기반하여 시뮬레이션용 도로(예: 링크, 커넥션 셀, 소스 및 싱크)를 리셋하고, 리셋된 시뮬레이션 도로에 시뮬레이션용 차량을 유입시킬 수 있다. 이러한 과정은 시뮬레이션의 일정 주기마다 수행될 수 있다.The resource updater 222 resets the simulation road (eg, link, connection cell, source, and sink) based on the simulation element data, road network data, and traffic demand data, and introduces a simulation vehicle into the reset simulation road. can do it This process may be performed at regular intervals of the simulation.

차로 변경부(224)는 셀 내부의 차량이 다른 셀로 이동하는 경우 경로 변경을 위해 필수적인 차선 변경 및 빠른 주행으로 위해 속도가 높은 차선으로의 선택적인 차선 변경을 수행할 수 있다. When the vehicle inside the cell moves to another cell, the lane change unit 224 may perform a lane change essential for a route change and a selective lane change to a high speed lane for fast driving.

차량 추종부(226)는 셀 간의 차량 이동량을 계산하고, 교통 신호 및 교차로 등을 고려하여 차량의 실제 이동 가능량을 계산하며, 계산된 실제 이동 가능량에 따라 셀에 위치한 차량의 이동 가능 여부를 확인할 수 있다. 또한, 차량 추종부(226)는 각 셀에 따른 차량 데이터(예: 차량 식별 데이터, 다음 링크의 식별 데이터 및 타겟 차로 데이터 등)를 업데이트할 수 있다. The vehicle follower 226 calculates the amount of vehicle movement between cells, calculates the actual movement amount of the vehicle in consideration of traffic signals and intersections, and checks whether the vehicle located in the cell can move according to the calculated actual movement amount. have. Also, the vehicle follower 226 may update vehicle data (eg, vehicle identification data, next link identification data, target lane data, etc.) for each cell.

구체적으로, 차량 추종부(226)는 임의의 셀(예: 송신 셀(sending cell))에서 주행 방향의 다음 셀(예: 수신 셀(receiving cell))로 이동하고자 하는 차량 수, 수신 셀에서 수용할 수 있는 차량 수 및 도로 특성에 따라 시뮬레이션 시간 단위 동안 이동 가능한 차량 수의 최소값으로 셀 간 차량 이동량을 산출할 수 있다. 차량 추종부(226)는 교차로 내 도로 연결 행태와 교통 신호를 고려하여 셀에 위치한 차량의 실제 이동 가능한 차량 수(예: 유효 차량 이동량)를 계산할 수 있다. Specifically, the vehicle follower 226 receives the number of vehicles desired to move from an arbitrary cell (eg, a sending cell) to a next cell (eg, a receiving cell) in the driving direction, and the reception cell. According to the number of vehicles and road characteristics, the amount of vehicle movement between cells can be calculated as the minimum value of the number of vehicles that can be moved during the simulation time unit. The vehicle follower 226 may calculate the actual number of movable vehicles (eg, effective vehicle movement amount) of the vehicle located in the cell in consideration of road connection behavior and traffic signals within the intersection.

차량 추종부(226)는 유효 차량 이동량에 따라 셀 내의 차량 대기 행렬의 선두 차량에 대한 이동 가능한 여부를 확인하고, 셀 별 유효 차량 이동량을 기반으로 셀 별 차량 대수를 업데이트하고, 이동 가능 여부에 따라 셀간 차량 데이터를 업데이트할 수 있다.The vehicle follower 226 checks whether the leading vehicle in the vehicle queue in the cell can move according to the effective vehicle movement amount, updates the number of vehicles per cell based on the effective vehicle movement amount per cell, and according to whether movement is possible Inter-cell vehicle data can be updated.

이러한 차량 추종부(226)는 도 1에서 상술한 링크 간의 차량 이동 시뮬레이션을 수행할 수 있다. 예를 들어, 차량 추종부(226)는 링크 간의 차량 이동 시 특정 링크의 마지막 셀에서 이동 가능한 제1 차량 수를 결정하고, 커넥션 셀을 통해 결정된 제1 차량 수를 다음 링크로 전달하며, 다음 링크에서 수용 가능한 제2 차량 수를 획득하고, 제1 차량 수에 해당하는 차량 중 제2 차량 수에 해당하는 차량을 커넥션 셀을 통해 다음 링크로 전달하는 동작을 수행할 수 있다.The vehicle follower 226 may perform the vehicle movement simulation between the links described above in FIG. 1 . For example, when the vehicle moves between links, the vehicle follower 226 determines the first number of vehicles that can move in the last cell of a specific link, and transmits the determined number of first vehicles to the next link through the connection cell, and the next link. may obtain an acceptable second number of vehicles, and transfer the vehicle corresponding to the second number of vehicles corresponding to the first number to the next link through the connection cell.

또한, 차량 추종부(266)는 상술한 바와 같이 다음 링크의 차량 속도, 차량 밀도 및 다음 링크를 구성하는 복수의 셀 각각에서 수용 가능한 제2 차량 수를 포함하는 차량 데이터를 획득하고, 다음 시뮬레이션 동작에서 제1 차량 수를 결정하고, 다음 링크로부터 제2 차량 수를 획득하는 동작을 수행할 필요 없이 획득된 차량 데이터를 이용하여 제2 차량 수를 예측한 후 예측된 제2 차량 수에 해당하는 차량을 다음 링크로 전달함으로써, 링크 간의 차량 이동을 수행할 수도 있다.In addition, as described above, the vehicle follower 266 acquires vehicle data including the vehicle speed of the next link, the vehicle density, and the second number of vehicles that can be accommodated in each of a plurality of cells constituting the next link, and performs the following simulation operation The vehicle corresponding to the predicted second number of vehicles after predicting the second number of vehicles by using the obtained vehicle data without the need to determine the first number of vehicles and obtain the second number of vehicles from the next link. By transferring ? to the next link, it is also possible to perform vehicle movement between links.

이와 같이 본 발명은 각 링크에 대응하는 동작을 동시에 병렬적으로 처리함으로써, 교통 시뮬레이션을 위해 소요되는 시간 및 리소스 등을 줄이면서 처리 속도를 높이고, 효율적인 교통 시뮬레이션을 수행할 수 있다.As described above, the present invention simultaneously processes the operations corresponding to each link in parallel, thereby reducing the time and resources required for the traffic simulation, increasing the processing speed, and performing efficient traffic simulation.

하기에서는 도로의 종류가 직선 도로인 경우 교통 시뮬레이션 장치(100)의 교통 시뮬레이션 동작에 대해서 도 3a, 도 3b, 도 3c 및 도 3d를 참조하여 구체적으로 설명하도록 한다.Hereinafter, when the type of road is a straight road, a traffic simulation operation of the traffic simulation apparatus 100 will be described in detail with reference to FIGS. 3A, 3B, 3C, and 3D.

도 3a, 도 3b, 도 3c 및 도 3d는 본 발명의 실시예에 따른 병렬 처리 기반의 교통 시뮬레이션 방법을 설명하기 위한 예시도들이다. 제시된 실시예에서는 도 1의 i번째 코어(162)가 i번째 링크(400)에 대응하는 동작을 수행하고, i+1번째 코어(164)가 i+1번째 링크(330)에 대응하는 동작을 수행할 수 있다.3A, 3B, 3C and 3D are exemplary views for explaining a parallel processing-based traffic simulation method according to an embodiment of the present invention. In the presented embodiment, the i-th core 162 of FIG. 1 performs an operation corresponding to the i-th link 400 , and the i+1-th core 164 performs an operation corresponding to the i+1-th link 330 . can be done

도 3a를 참조하면, i번째 링크(300)는 제1 내지 제4 셀을 포함하고, 첫번째 셀인 제1 셀의 앞쪽에 가상 셀(302)이 위치하고, 마지막 셀인 제4 셀의 뒤쪽에 가상 셀(304)이 존재한다. Referring to FIG. 3A , the i-th link 300 includes the first to fourth cells, and the virtual cell 302 is located in front of the first cell, which is the first cell, and the virtual cell ( 304) exist.

이어서, i+1번째 링크(330)는 제1 내지 제4 셀을 포함하고, 첫번째 셀인 제1 셀의 앞쪽에 가상 셀(332)이 위치하고, 마지막 셀인 제4 셀의 뒤쪽에 가상 셀(334)이 존재한다.Subsequently, the i+1-th link 330 includes the first to fourth cells, the virtual cell 332 is located in front of the first cell, which is the first cell, and the virtual cell 334 is located behind the fourth cell, which is the last cell. this exists

또한, i번째 링크(300)와 i+1번째 링크(330) 사이에는 커넥션 셀(cc)(350)이 존재하며, i번째 링크(300)와 i+1번째 링크(330) 사이의 데이터가 커넥션 셀을 통해서 이동할 수 있다.In addition, a connection cell (cc) 350 exists between the i-th link 300 and the i+1-th link 330 , and data between the i-th link 300 and the i+1-th link 330 is It can move through a connection cell.

구체적으로, 차량 시뮬레이션을 수행할 시 i번째 코어(162)는 차량 이동을 위해 i번째 링크(300)의 제4 셀(306)에 위치한 차량의 수를 나타내는 데이터(numVeh[4])를 커넥션 셀(350)로 복사할 수 있다. i+1번째 코어(164)는 커넥션 셀(350)로 복사된 데이터를 i+1번째 링크(330)의 가상 셀(332)에 추가할 수 있다.Specifically, when performing the vehicle simulation, the i-th core 162 transmits data (numVeh[4]) indicating the number of vehicles located in the fourth cell 306 of the i-th link 300 to the connection cell for vehicle movement. (350) can be copied. The i+1th core 164 may add the data copied to the connection cell 350 to the virtual cell 332 of the i+1th link 330 .

도 3b를 참조하면, i번째 코어(162)는 i번째 링크(300)에 대한 차량 추종을 수행하고, i+1번째 코어(164)는 i+1번째 링크(330)에 대한 차량 추종이 수행하여 각 링크에서 다음 링크로 이동 가능한 차량 수를 결정할 수 있다. 이러한 차량 추종을 수행할 시 i번째 링크(300)는 가상 셀(302), 및 제1 내지 제4 셀을 포함하고, i+1번째 링크(330)는 가상 셀(332), 및 제1 내지 제4 셀을 포함할 수 있다.Referring to FIG. 3B , the i-th core 162 performs vehicle tracking on the i-th link 300 , and the i+1-th core 164 performs vehicle tracking on the i+1-th link 330 . Thus, it is possible to determine the number of vehicles that can move from each link to the next. When performing such vehicle tracking, the i-th link 300 includes a virtual cell 302 and first to fourth cells, and the i+1-th link 330 includes a virtual cell 332 and first to fourth cells. It may include a fourth cell.

구체적으로, i번째 코어(162)는 i번째 링크(300)의 각 셀에서 다음 셀로 이동 가능한 차량 수를 결정하고, i+1번째 코어(164)는 각 셀에서 다음 셀로 이동 가능한 차량 수를 결정할 수 있다. 다시 말해서, i번째 코어(162)는 i번째 링크(300)의 가상 셀(302)에서 제1 셀로 이동 가능한 차량 수(numCF[0]), 제1 셀에서 제2 셀로 이동 가능한 차량 수(numCF[1]), 제2 셀에서 제3 셀로 이동 가능한 차량 수(numCF[2]), 및 제3 셀에서 제4 셀(306)로 이동 가능한 차량 수(numCF[3])를 결정할 수 있다. i+1번째 코어(164)는 i+1번째 링크(330)의 가상 셀(332)에서 제1 셀(336)로 이동 가능한 차량 수(numCF[0]), 제1 셀(336)에서 제2 셀로 이동 가능한 차량 수(numCF[1]), 제2 셀에서 제3 셀로 이동 가능한 차량 수(numCF[2]), 및 제3 셀에서 제4 셀로 이동 가능한 차량 수(numCF[3])를 결정할 수 있다.Specifically, the i-th core 162 determines the number of vehicles that can move from each cell of the i-th link 300 to the next cell, and the i+1-th core 164 determines the number of vehicles that can move from each cell to the next cell. can In other words, the i-th core 162 is the number of vehicles that can move from the virtual cell 302 to the first cell of the i-th link 300 (numCF[0]), and the number of vehicles that can move from the first cell to the second cell (numCF). [1]), the number of vehicles that can move from the second cell to the third cell (numCF[2]), and the number of vehicles that can move from the third cell to the fourth cell 306 (numCF[3]) may be determined. The i+1th core 164 is the number of vehicles (numCF[0]) that can move from the virtual cell 332 of the i+1th link 330 to the first cell 336, and the first in the first cell 336. The number of vehicles that can move to cell 2 (numCF[1]), the number of vehicles that can move from the second cell to the third cell (numCF[2]), and the number of vehicles that can move from the third cell to the fourth cell (numCF[3]) can decide

i+1번째 코어(164)는 i+1번째 링크(330)의 가상 셀(332)에서 제1 셀(336)로 이동 가능한 차량 수(numCF[0])(340)를 나타내는 데이터를 커넥션 셀(350)로 복사할 수 있다. The i+1th core 164 transmits data representing the number of vehicles (numCF[0]) 340 that can move from the virtual cell 332 of the i+1th link 330 to the first cell 336 to the connection cell. (350) can be copied.

i번째 코어(162)는 커넥션 셀(350)에 복사된 데이터를 이용하여 i번째 링크(300)의 마지막 셀인 제4 셀(306)에서 i+1번째 링크(330)의 첫번째 셀(336)로 이동 가능한 차량 수(numCF[4])(310)를 업데이트할 수 있다. The i-th core 162 uses the data copied to the connection cell 350 from the fourth cell 306, which is the last cell of the i-th link 300 , to the first cell 336 of the i+1-th link 330 . The number of vehicles that can move (numCF[4]) 310 may be updated.

i번째 코어(162)는 도 3c와 같이 각 셀에 위치한 차량 중 다음 셀로 이동 가능한 차량 수에 해당하는 차량의 식별 데이터(vehCF[1], vehCF[2], vehCF[3], vehCF[4])를 업데이트할 수 있다. 이후 i번째 코어(162)는 제4 셀(306)에 위치한 차량 중 제4 셀(306)에서 i+1번째 링크(330)의 첫번째 셀(336)로 이동 가능한 차량 수에 해당하는 차량의 식별 데이터(vehCF[4])(308)를 가상 셀(304)에 복사하고, 도 3d와 같이 가상 셀(304)에 복사된 차량 식별 데이터를 커넥션 셀(350)에 복사할 수 있다.The i-th core 162 includes vehicle identification data (vehCF[1], vehCF[2], vehCF[3], vehCF[4]) corresponding to the number of vehicles that can move to the next cell among vehicles located in each cell as shown in FIG. 3C . ) can be updated. Thereafter, the i-th core 162 identifies a vehicle corresponding to the number of vehicles capable of moving from the fourth cell 306 to the first cell 336 of the i+1-th link 330 among vehicles located in the fourth cell 306 . The data (vehCF[4]) 308 may be copied to the virtual cell 304 , and the vehicle identification data copied to the virtual cell 304 may be copied to the connection cell 350 as shown in FIG. 3D .

도 3d를 참조하면, i+1번째 코어(164)는 커넥션 셀(350)에 복사된 차량 식별 데이터를 i+1번째 링크(330)의 첫번째 셀인 제1 셀(336)에 추가할 수 있다.Referring to FIG. 3D , the i+1th core 164 may add the vehicle identification data copied to the connection cell 350 to the first cell 336 that is the first cell of the i+1th link 330 .

이와 같이 본 발명은 복수의 코어 각각이 각 링크에 대응하는 동작을 동시에 병렬적으로 처리함으로써, 교통 시뮬레이션을 위해 소요되는 시간 및 리소스 등을 줄이면서 처리 속도를 높이고, 효율적인 교통 시뮬레이션을 수행할 수 있다.As described above, in the present invention, each of a plurality of cores simultaneously and parallelly processes operations corresponding to each link, thereby reducing time and resources required for traffic simulation, increasing processing speed, and performing efficient traffic simulation. .

하기에서는 교통 시뮬레이션 장치(100)에서 버퍼를 이용하여 교통 시뮬레이션을 수행하는 방법을 도 4를 참조하여 상세하게 설명하도록 한다.Hereinafter, a method of performing a traffic simulation using a buffer in the traffic simulation apparatus 100 will be described in detail with reference to FIG. 4 .

도 4는 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 버퍼를 이용하여 교통 시뮬레이션을 수행하는 방법을 설명하기 위한 예시도이다. 제시된 실시예에서는 도 1의 i번째 코어(162)가 i번째 링크(400)에 대응하는 동작을 수행하고, i+1번째 코어(164)가 i+1번째 링크(430)에 대응하는 동작을 수행할 수 있다.4 is an exemplary view for explaining a method of performing a traffic simulation using a buffer in the traffic simulation apparatus according to an embodiment of the present invention. In the presented embodiment, the i-th core 162 of FIG. 1 performs an operation corresponding to the i-th link 400 , and the i+1-th core 164 performs an operation corresponding to the i+1-th link 430 . can be done

도 4를 참조하면, i번째 링크(400)는 4개의 셀(s1, s2, s3, s4)을 포함하고, 첫번째 셀인 제1 셀(s1)의 앞쪽에 버퍼(402)가 위치할 수 있다. 이어서, i+1번째 링크(430)는 4개의 셀(s1, s2, s3, s4)을 포함하고, 첫번째 셀인 제1 셀(s1)(432)의 앞쪽에 버퍼(434)가 위치할 수 있다. 또한, i번째 링크(400)와 i+1번째 링크(430) 사이에는 커넥션 셀(cc)(450)이 존재할 수 있다.Referring to FIG. 4 , the i-th link 400 includes four cells s1, s2, s3, and s4, and the buffer 402 may be located in front of the first cell s1, which is the first cell. Subsequently, the i+1-th link 430 includes four cells s1, s2, s3, and s4, and the buffer 434 may be located in front of the first cell s1, 432, which is the first cell. . Also, a connection cell (cc) 450 may exist between the i-th link 400 and the i+1-th link 430 .

도 4의 (a)를 참조하면, i번째 코어(162)는 i번째 링크(400)의 마지막 셀(s4)(404)에 위치한 차량의 수를 나타내는 데이터를 커넥션 셀(cc)(450)로 복사하고, i+1번째 코어(164)는 커넥션 셀(cc)(450)에 복사된 차량 수를 나타내는 데이터를 i+1번째 링크(430)의 첫번째 셀(s1)에 추가할 수 있다. Referring to FIG. 4A , the i-th core 162 transmits data indicating the number of vehicles located in the last cell (s4) 404 of the i-th link 400 to the connection cell (cc) 450 . After copying, the i+1th core 164 may add data representing the number of vehicles copied to the connection cell (cc) 450 to the first cell s1 of the i+1th link 430 .

i번째 코어(162)는 i번째 링크(400)의 4개의 셀 각각에 대한 차량 추종을 수행하여 i번째 링크(400)의 차량 속도, 차량 밀도 및 각 셀에서 다음 셀로 이동 가능한 차량 수를 포함하는 차량 데이터를 획득할 수 있다. i+1번째 코어(164)는 i+1번째 링크(430)의 4개의 셀 각각에 대한 차량 추종을 수행하여 i+1번째 링크(430)의 차량 속도, 차량 밀도 및 각 셀에서 다음 셀로 이동 가능한 차량 수를 포함하는 차량 데이터를 획득할 수 있다.The i-th core 162 performs vehicle tracking for each of the four cells of the i-th link 400 to include the vehicle speed, vehicle density, and the number of vehicles capable of moving from each cell to the next cell of the i-th link 400 . Vehicle data can be obtained. The i+1-th core 164 performs vehicle tracking for each of the four cells of the i+1-th link 430 to obtain the vehicle speed, vehicle density, and movement from each cell to the next cell of the i+1-th link 430 . Vehicle data including the number of possible vehicles may be obtained.

도 4의 (b)를 참조하면, i+1번째 링크(430)는 i+1번째 링크(430)의 차량 데이터를 커넥션 셀(cc)(450)로 복사하고, i번째 코어(162)는 커넥션 셀(cc)(450)에 복사된 차량 데이터를 가져올 수 있다. Referring to (b) of FIG. 4 , the i+1th link 430 copies the vehicle data of the i+1th link 430 to the connection cell (cc) 450, and the i-th core 162 is The vehicle data copied to the connection cell (cc) 450 may be imported.

도 4의 (c)를 참조하면, i번째 코어(162)는 i+1번째 링크(430)의 차량 데이터를 이용하여 i+1번째 링크(430)의 첫번째 셀(s1)(432)에서 수용 가능한 차량 수를 확인할 수 있다. i번째 코어(162)는 i번째 링크의 마지막 셀(s4)(404)에 위치한 차량 중 확인된 차량 수에 해당하는 차량의 식별 데이터를 커넥션 셀(cc)(450)로 복사하고, i+1번째 코어(164)는 커넥션 셀(cc)(450)에 복사된 차량 식별 데이터를 i+1번째 링크(430)의 첫번째 셀(s1)(432)에 추가할 수 있다.Referring to (c) of FIG. 4 , the i-th core 162 is accommodated in the first cell (s1) 432 of the i+1-th link 430 using the vehicle data of the i+1-th link 430 . You can check the number of possible vehicles. The i-th core 162 copies identification data of a vehicle corresponding to the number of vehicles located in the last cell (s4) 404 of the i-th link to the connection cell (cc) 450, i+1 The 1st core 164 may add the vehicle identification data copied to the connection cell (cc) 450 to the 1st cell (s1) 432 of the i+1th link 430 .

다음 차량 이동 시뮬레이션을 위해 i번째 코어(162)는 도 4의 (b)에서 획득된 차량 데이터를 이용하여 i+1번째 링크(430)의 첫번째 셀(s1)(432)에서 수용 가능한 차량 수를 예측할 수 있다. For the next vehicle movement simulation, the i-th core 162 determines the number of vehicles that can be accommodated in the first cell (s1) 432 of the i+1-th link 430 using the vehicle data obtained in (b) of FIG. 4 . predictable.

도 4의 (d)를 참조하면, i번째 코어(162)는 i번째 링크의 마지막 셀(s4)(404)에 위치한 차량 중 예측된 차량 수에 해당하는 차량의 식별 데이터를 커넥션 셀(cc)(450)로 복사할 수 있다. 차량 수에 대한 예측은 평균 차량 속도, 평균 차량 밀도 및 수용 가능한 차량 수에 기반하여 수행될 수 있으나, 이에 한정되지 않는다. i+1번째 코어(164)는 커넥션 셀(cc)(450)에 복사된 차량 식별 데이터를 i+1번째 링크(430)의 첫번째 셀(s1)(432) 앞쪽에 위치한 버퍼(434)에 추가할 수 있다. Referring to (d) of FIG. 4 , the i-th core 162 transmits vehicle identification data corresponding to the predicted number of vehicles among the vehicles located in the last cell (s4) 404 of the i-th link to the connection cell (cc). (450) can be copied. Prediction of the number of vehicles may be performed based on an average vehicle speed, an average vehicle density, and an acceptable number of vehicles, but is not limited thereto. The i+1th core 164 adds the vehicle identification data copied to the connection cell (cc) 450 to the buffer 434 located in front of the first cell (s1) 432 of the i+1th link 430 can do.

도 4의 (e)를 참조하면, i+1번째 코어(164)는 첫번째 셀(s1)(432)에서 실제 수용 가능한 차량 수를 확인하고, 확인된 차량 수가 버퍼(434)에 저장된 차량 식별 데이터에 대응하는 차량 수보다 크거나 일치하면 버퍼(434)에 저장된 차량 식별 데이터를 i+1번째 링크(430)의 첫번째 셀(s1)(432)에 추가할 수 있다. 확인된 차량 수가 버퍼(434)에 저장된 차량 식별 데이터에 대응하는 차량 수보다 작으면 i+1번째 코어(164)는 버퍼(434)에 저장된 차량 식별 데이터 중 확인된 차량 수에 해당하는 차량 식별 데이터를 i+1번째 링크(430)의 첫번째 셀(s1)(432)에 추가하고, 나머지 차량 식별 데이터를 버퍼(434)에 대기시킬 수 있다.Referring to (e) of FIG. 4 , the i+1th core 164 checks the number of vehicles that can actually be accommodated in the first cell s1 432 , and vehicle identification data stored in the buffer 434 with the checked number of vehicles If it is greater than or equal to the number of vehicles corresponding to , the vehicle identification data stored in the buffer 434 may be added to the first cell (s1) 432 of the i+1th link 430 . If the number of confirmed vehicles is smaller than the number of vehicles corresponding to the vehicle identification data stored in the buffer 434 , the i+1th core 164 performs vehicle identification data corresponding to the number of vehicle identification data stored in the buffer 434 . is added to the first cell (s1) 432 of the i+1th link 430 , and the remaining vehicle identification data may be queued in the buffer 434 .

다음 차량 이동 시뮬레이션을 위해 i+1번째 링크(430)의 셀 개수보다 하나 작은 수만큼 도 4의 (d) 및 도 4의 (e)에서의 동작이 수행될 수 있으며, 이러한 동작이 완료되면 다시 도 4의 (a), (b), (c), (d), (e)의 동작이 수행될 수 있다.For the next vehicle movement simulation, the operations in FIGS. 4(d) and 4(e) may be performed by one less than the number of cells of the i+1th link 430, and when these operations are completed, The operations of (a), (b), (c), (d), and (e) of FIG. 4 may be performed.

이와 같이 본 발명은 각 코어에서 처리하는 데이터 양을 줄임으로써, 각 코어의 처리 속도를 높이고, 효율적인 교통 시뮬레이션을 수행할 수 있다.As described above, in the present invention, by reducing the amount of data processed by each core, the processing speed of each core can be increased, and efficient traffic simulation can be performed.

하기에서는 도로의 종류가 교차로인 경우 교통 시뮬레이션 장치(100)의 교통 시뮬레이션 동작에 대해서 도 5를 참조하여 구체적으로 설명하도록 한다.Hereinafter, when the type of road is an intersection, a traffic simulation operation of the traffic simulation apparatus 100 will be described in detail with reference to FIG. 5 .

도 5는 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 교차로를 구성하는 링크 간의 차량 이동을 수행하는 방법을 설명하기 위한 예시도이다. 제시된 실시예에서는 교차로를 구성하는 링크들 중 4개의 링크(예: 제1 링크, 제2 링크, 제4 링크 및 제6 링크) 간의 차량 이동을 설명하도록 한다. 또한, 제시된 실시예에서는 제1 링크에 대응하여 제1 코어가 동작하고, 제2 링크에 대응하여 제2 코어가 동작하며, 제4 링크에 대응하여 제4 코어가 동작하며, 제6 링크에 대응하는 제6 코어가 동작하는 것으로 설명한다.5 is an exemplary diagram for explaining a method of performing vehicle movement between links constituting an intersection in the traffic simulation apparatus according to an embodiment of the present invention. In the presented embodiment, vehicle movement between four links (eg, the first link, the second link, the fourth link, and the sixth link) among the links constituting the intersection will be described. In addition, in the presented embodiment, the first core operates in correspondence to the first link, the second core operates in correspondence to the second link, the fourth core operates in correspondence to the fourth link, and the sixth link corresponds to the sixth link. It will be described that the sixth core is operating.

도 5를 참조하면, 각 링크는 4개의 차선(제1 차선, 제2 차선, 제3 차선, 제4 차선) 및 4개의 셀로 이루어지고, 첫번째 셀 앞쪽 및 마지막 셀 뒤쪽에 가상 셀이 존재한다. 예를 들어, 제1 링크(500)는 제1 차선(502), 제2 차선(504), 제3 차선(506) 및 제4 차선(508)과 같은 4개의 차선과 4개의 셀로 이루어지고, 첫번째 셀(510) 앞쪽에 가상 셀(512)이 존재하며, 마지막 셀(514) 뒤쪽에 가상 셀(516)이 존재한다. 또한, 링크와 링크 사이에는 커넥션 셀(cc)(570)이 위치하여 링크 간의 차량 흐름을 조절할 수 있다.Referring to FIG. 5 , each link consists of four lanes (first lane, second lane, third lane, and fourth lane) and four cells, and virtual cells exist in front of the first cell and behind the last cell. For example, the first link 500 consists of four lanes and four cells, such as a first lane 502, a second lane 504, a third lane 506, and a fourth lane 508; A virtual cell 512 exists in front of the first cell 510 , and a virtual cell 516 exists behind the last cell 514 . In addition, a connection cell (cc) 570 is positioned between the link and the link to control the flow of vehicles between the links.

제1 링크(500)의 제1 차선(502)에 대응하여 마지막 셀에 포함된 차량은 교차로의 주행 방향에 따라 다음 링크인 제6 링크(560)로 이동하고, 제2 차선(504)에 대응하여 마지막 셀에 포함된 차량은 제4 링크(540)로 이동하며, 제3 차선(506)에 대응하여 마지막 셀에 포함된 차량은 제4 링크(540)로 이동하며, 제4 차선(508)에 대응하여 마지막 셀에 포함된 차량은 제2 링크(520) 및 제4 링크(540) 중 적어도 하나로 이동할 수 있다. 이와 같이 다음 링크에 대한 데이터는 커넥션 셀(570)에 3(예: 주행 방향에 따라 이동 가능한 다음 링크 수)x4(예: 차선 수) 행렬(572)로서 저장될 수 있다.A vehicle included in the last cell corresponding to the first lane 502 of the first link 500 moves to the sixth link 560, which is the next link according to the driving direction of the intersection, and corresponds to the second lane 504 Thus, the vehicle included in the last cell moves to the fourth link 540 , and the vehicle included in the last cell moves to the fourth link 540 in response to the third lane 506 , and the fourth lane 508 . In response, the vehicle included in the last cell may move to at least one of the second link 520 and the fourth link 540 . As such, the data for the next link may be stored in the connection cell 570 as a 3 (eg, the number of next links movable according to the driving direction)×4 (eg, the number of lanes) matrix 572 .

제1 링크(500)에 대한 동작을 수행하는 제1 코어는 제1 차선(502)에 대응하는 마지막 셀에서 이동 가능한 제1 차량 수(numVeh[4][0])(예: 3대), 제2 차선(504)에 대응하는 마지막 셀에서 이동 가능한 제1 차량 수(numVeh[4][1])(예: 2대), 제3 차선(506)에 대응하는 마지막 셀에서 이동 가능한 제1 차량 수(numVeh[4][2])(예: 3대) 및 제4 차선(508)에 대응하는 마지막 셀에서 제1 이동 가능한 차량 수(numVeh[4][3])(예: 2대 및 1대 중 적어도 하나)를 결정할 수 있다. 이러한 동작은 각 링크에 따라 수행될 수 있다.The first core performing an operation on the first link 500 includes a first number of vehicles (numVeh[4][0]) that can move in the last cell corresponding to the first lane 502 (eg, three); The first number of vehicles movable in the last cell corresponding to the second lane 504 (numVeh[4][1]) (eg, two), the first movable vehicle in the last cell corresponding to the third lane 506 . The number of vehicles (numVeh[4][2]) (eg, 3) and the first number of movable vehicles (numVeh[4][3]) in the last cell corresponding to the fourth lane 508 (eg, 2) and at least one of 1) can be determined. Such an operation may be performed according to each link.

제1 코어는 이와 같이 결정된 차선별 이동 가능한 제1 차량 수를 커넥션 셀(570)에 복사하고, 복사된 차선별 차량 수는 다음 링크 각각에 대응하는 가상 셀에 추가될 수 있다. 여기서, 복사된 차선별 제1 차량 수는 3x4 행렬(574)로서 커넥션 셀(570)에 복사될 수 있다.The first core may copy the determined first number of movable vehicles per lane to the connection cell 570, and the copied number of vehicles per lane may be added to a virtual cell corresponding to each of the following links. Here, the copied number of first vehicles per lane may be copied to the connection cell 570 as a 3x4 matrix 574 .

예를 들어, 제1 링크(500)의 제1 차선(502)에 대응하여 결정된 제1 차량 수(예: 3대)는 제6 링크(560)의 제1 차선에 대응하는 가상 셀에 추가되고, 제2 차선(504)에 대응하여 결정된 제1 차량 수(예: 2대)는 제4 링크(540)의 제2 차선에 대응하는 가상 셀에 추가되며, 제3 차선(506)에 대응하여 결정된 제1 차량 수(예: 3대)는 제4 링크(540)의 제3 차선에 대응하는 가상 셀에 추가되며, 제4 차선(508)에 대응하여 결정된 제1 차량 수 중 제2 링크(520)로 이동 가능한 제1 차량 수(예: 2대)는 제2 링크(520)의 제4 차선에 대응하는 가상 셀에 추가되고, 제4 링크(540)로 이동 가능한 제1 차량 수(예: 1대)는 제4 링크(540)의 제4 차선에 대응하는 가상 셀에 추가될 수 있다.For example, the first number of vehicles (eg, three) determined to correspond to the first lane 502 of the first link 500 is added to the virtual cell corresponding to the first lane of the sixth link 560 and , the first number of vehicles (eg, two) determined in response to the second lane 504 is added to the virtual cell corresponding to the second lane of the fourth link 540 , and is added to the virtual cell corresponding to the third lane 506 . The determined first number of vehicles (eg, three) is added to the virtual cell corresponding to the third lane of the fourth link 540 , and the second link ( The first number of vehicles (eg, two) that can move to 520 is added to a virtual cell corresponding to the fourth lane of the second link 520 , and the first number of vehicles that can move to the fourth link 540 (eg, two) is : 1 unit) may be added to the virtual cell corresponding to the fourth lane of the fourth link 540 .

제1 코어, 제2 코어, 제4 코어 및 제6 코어 각각은 각 링크의 가상 셀, 제1 셀, 제2 셀 및 제3 셀에 대한 차량 추종을 수행하고, 각 링크에서 수용 가능한 제2 차량 수를 결정할 수 있다. 다시 말해서, 제1 코어는 각 차선에 대응하여 가상 셀(512)에서 제1 셀(510)로 이동 가능한 차량 수(numCF[0][0], numCF[0][1], numCF[0][2], numCF[0][3]), 제1 셀(510)에서 제2 셀로 이동 가능한 차량 수(numCF[1][0], numCF[1][1], numCF[1][2], numCF[1][3]), 제2 셀에서 제3 셀로 이동 가능한 차량 수(numCF[2][0], numCF[2][1], numCF[2][2], numCF[2][3]), 제3 셀에서 제4 셀(514)로 이동 가능한 차량 수(numCF[3][0], numCF[3][1], numCF[3][2], numCF[3][3])를 결정할 수 있다. 제2 코어, 제4 코어 및 제6 코어 또한 제1 코어에서 수행되는 동작과 동일한 동작을 수행할 수 있다.Each of the first core, the second core, the fourth core and the sixth core performs vehicle tracking for the virtual cell, the first cell, the second cell and the third cell of each link, and the second vehicle acceptable in each link number can be determined. In other words, the first core determines the number of vehicles (numCF[0][0], numCF[0][1], numCF[0]) that can move from the virtual cell 512 to the first cell 510 in correspondence with each lane. [2], numCF[0][3]), the number of vehicles that can move from the first cell 510 to the second cell (numCF[1][0], numCF[1][1], numCF[1][2] ], numCF[1][3]), the number of vehicles that can move from cell 2 to cell 3 (numCF[2][0], numCF[2][1], numCF[2][2], numCF[2] ][3]), the number of vehicles that can move from the third cell to the fourth cell 514 (numCF[3][0], numCF[3][1], numCF[3][2], numCF[3] [3]) can be determined. The second core, the fourth core, and the sixth core may also perform the same operation as the operation performed by the first core.

예를 들어, 제6 링크(560)의 제1 차선에 대응하는 가상 셀에서 제1 셀(즉, 첫번째 셀)로 이동 가능한 차량 수(제6 링크(560)의 numCF[0][0])가 3대이고, 제4 링크(540)의 제2 차선에 대응하는 가상 셀에서 제1 셀로 이동 가능한 차량 수(제4 링크(540)의 numCF[0][1])가 2대이며, 제4 링크(540)의 제3 차선에 대응하는 가상 셀에서 제1 셀로 이동 가능한 차량 수(제4 링크(540)의 numCF[0][2])가 2대이며, 제2 링크(520)의 제4 차선에 대응하는 가상 셀에서 제1 셀로 이동 가능한 차량 수(제2 링크(520)의 numCF[0][3])가 1대이며, 제4 링크(540)의 제4 차선에 대응하는 가상 셀에서 제1 셀로 이동 가능한 차량 수(제4 링크(540)의 numCF[0][3])가 1대라고 가정한다.For example, the number of vehicles capable of moving from the virtual cell corresponding to the first lane of the sixth link 560 to the first cell (ie, the first cell) (numCF[0][0] of the sixth link 560) is 3, the number of vehicles that can move from the virtual cell corresponding to the second lane of the fourth link 540 to the first cell (numCF[0][1] of the fourth link 540) is 2, The number of vehicles that can move from the virtual cell corresponding to the third lane of the 4 link 540 to the first cell (numCF[0][2] of the fourth link 540) is two, and the The number of vehicles that can move from the virtual cell corresponding to the fourth lane to the first cell (numCF[0][3] of the second link 520) is one, and the number of vehicles corresponding to the fourth lane of the fourth link 540 is one. It is assumed that the number of vehicles that can move from the virtual cell to the first cell (numCF[0][3] of the fourth link 540) is one.

이러한 경우 제2 링크(520), 제4 링크(540) 및 제6 링크(560) 각각의 차선별 수용 가능한 제2 차량 수가 커넥션 셀(570)에 복사되고, 커넥션 셀(570)에 복사된 제2 차량 수는 제1 링크(500)의 제4 셀(514)에서 각 차선별 이동 가능한 다음 링크로 이동 가능한 차량 수(numCF[4][0], numCF[4][1], numCF[4][2], numCF[4][3])로서 업데이트될 수 있다. 여기서, 복사된 각 링크의 각 차선에 대응하여 수용 가능한 제2 차량 수는 3x4 행렬(576)로서 커넥션 셀(570)에 복사될 수 있다.In this case, the second number of vehicles that can be accommodated for each lane of the second link 520 , the fourth link 540 , and the sixth link 560 are copied to the connection cell 570 , and the second number copied to the connection cell 570 . 2 The number of vehicles is the number of vehicles (numCF[4][0], numCF[4][1], numCF[4) that can move from the fourth cell 514 of the first link 500 to the next movable link for each lane. ][2], numCF[4][3]). Here, the second number of vehicles that can be accommodated corresponding to each lane of each copied link may be copied to the connection cell 570 as a 3x4 matrix 576 .

제1 코어는 제1 링크(500)의 제1 차선(502)에 대응하는 마지막 셀에 위치한 차량(즉, 제1 차량 수에 대응하는 차량) 중 제6 링크(560)의 제1 차선에 대응하는 첫번째 셀로 이동 가능한 차량 수(제1 링크(500)의 numCF[4][0])에 해당하는 차량을 제1 링크(500)의 제1 차선(502)에 대응하는 가상 셀로 이동시키고, 해당 가상 셀에 위치한 차량을 커넥션 셀(570)로 이동시킬 수 있다. 이어서, 제1 코어는 제1 링크(500)의 제2 차선(504)에 대응하는 마지막 셀에 위치한 차량 중 제4 링크(540)의 제2 차선에 대응하는 첫번째 셀로 이동 가능한 차량 수(제1 링크(500)의 numCF[4][1])에 해당하는 차량을 제1 링크(500)의 제2 차선(504)에 대응하는 가상 셀로 이동시키고, 해당 가상 셀에 위치한 차량을 커넥션 셀(570)로 이동시킬 수 있다. 이어서, 제1 코어는 제1 링크(500)의 제3 차선(506)에 대응하는 마지막 셀에 위치한 차량 중 제4 링크(540)의 제3 차선에 대응하는 첫번째 셀로 이동 가능한 차량 수(제1 링크(500)의 numCF[4][2])에 해당하는 차량을 제1 링크(500)의 제3 차선(506)에 대응하는 가상 셀로 이동시키고, 해당 차량을 커넥션 셀(570)로 이동시킬 수 있다. 또한, 제1 코어는 제1 링크(500)의 제4 차선(508)에 대응하는 마지막 셀에 위치한 차량 중 제2 링크(520)의 제4 차선에 대응하는 첫번째 셀로 이동 가능한 차량 수(제1 링크(500)의 numCF[4][3])에 해당하는 차량 및 제4 링크(540)의 제4 차선에 대응하는 첫번째 셀로 이동 가능한 차량 수(제1 링크(500)의 numCF[4][3])에 해당하는 차량을 제1 링크(500)의 제4 차선(508)에 대응하는 가상 셀로 이동시키고, 해당 차량을 커넥션 셀(570)로 이동시킬 수 있다. 다시 말해서, 차량의 식별 데이터가 복사될 수 있다.The first core corresponds to the first lane of the sixth link 560 among vehicles (ie, vehicles corresponding to the first number of vehicles) located in the last cell corresponding to the first lane 502 of the first link 500 . A vehicle corresponding to the number of vehicles capable of moving to the first cell (numCF[4][0] of the first link 500) is moved to a virtual cell corresponding to the first lane 502 of the first link 500, and the corresponding A vehicle located in the virtual cell may be moved to the connection cell 570 . Subsequently, the first core determines the number of vehicles capable of moving to the first cell corresponding to the second lane of the fourth link 540 among vehicles located in the last cell corresponding to the second lane 504 of the first link 500 (first The vehicle corresponding to numCF[4][1]) of the link 500 is moved to the virtual cell corresponding to the second lane 504 of the first link 500, and the vehicle located in the virtual cell is moved to the connection cell 570 ) can be moved to Subsequently, the first core determines the number of vehicles capable of moving to the first cell corresponding to the third lane of the fourth link 540 among vehicles located in the last cell corresponding to the third lane 506 of the first link 500 (the first The vehicle corresponding to numCF[4][2]) of the link 500 is moved to the virtual cell corresponding to the third lane 506 of the first link 500 , and the vehicle is moved to the connection cell 570 . can In addition, the first core is the number of vehicles capable of moving to the first cell corresponding to the fourth lane of the second link 520 among vehicles located in the last cell corresponding to the fourth lane 508 of the first link 500 (first The number of vehicles corresponding to the numCF[4][3] of the link 500 and the number of vehicles capable of moving to the first cell corresponding to the fourth lane of the fourth link 540 (numCF[4][ of the first link 500 ) 3]) may be moved to a virtual cell corresponding to the fourth lane 508 of the first link 500 , and the corresponding vehicle may be moved to the connection cell 570 . In other words, identification data of the vehicle may be copied.

커넥션 셀(570)로 이동된 차량은 교통 신호 데이터에 기반하여 각 링크의 첫번째 셀로 이동할 수 있다. 예를 들어, 제1 링크(500)의 제1 차선(502)에 대응하는 마지막 셀에 위치한 3대의 차량은 제6 링크(560)의 제1 차선에 대응하는 첫번째 셀로 이동하고, 제1 링크(500)의 제2 차선(504)에 대응하는 마지막 셀에 위치한 2대의 차량은 제4 링크(540)의 제2 차선에 대응하는 첫번째 셀로 이동할 수 있다. 제1 링크(500)의 제3 차선(506)에 대응하는 마지막 셀에 위치한 2대의 차량은 제4 링크(540)의 제3 차선에 대응하는 첫번째 셀로 이동할 수 있다. 제1 링크(500)의 제4 차선(508)에 대응하는 마지막 셀에 위치한 1대의 차량은 제2 링크(520)의 제4 차선에 대응하는 첫번째 셀로 이동하고, 제1 링크(500)의 제4 차선(508)에 대응하는 마지막 셀에 위치한 다른 1대의 차량은 제4 링크(540)의 제4 차선에 대응하는 첫번째 셀로 이동할 수 있다.The vehicle moved to the connection cell 570 may move to the first cell of each link based on the traffic signal data. For example, three vehicles located in the last cell corresponding to the first lane 502 of the first link 500 move to the first cell corresponding to the first lane of the sixth link 560, and the first link ( Two vehicles located in the last cell corresponding to the second lane 504 of 500 may move to the first cell corresponding to the second lane of the fourth link 540 . Two vehicles located in the last cell corresponding to the third lane 506 of the first link 500 may move to the first cell corresponding to the third lane of the fourth link 540 . One vehicle located in the last cell corresponding to the fourth lane 508 of the first link 500 moves to the first cell corresponding to the fourth lane of the second link 520 and Another vehicle located in the last cell corresponding to the fourth lane 508 may move to the first cell corresponding to the fourth lane of the fourth link 540 .

이와 같이 본 발명은 시간적 및 비용적 측면에서 보다 효율적인 교통 시뮬레이션을 수행할 수 있다.As such, the present invention can perform more efficient traffic simulation in terms of time and cost.

도 6은 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 병렬 처리 기반의 교통 시뮬레이션을 수행하는 방법을 나타내는 흐름도이다. 제시된 실시예에서 하기의 동작은 도 1의 제어부(140)에 의해서 수행될 수 있다.6 is a flowchart illustrating a method of performing parallel processing-based traffic simulation in a traffic simulation apparatus according to an embodiment of the present invention. In the presented embodiment, the following operations may be performed by the controller 140 of FIG. 1 .

도 6을 참조하면, 교통 시뮬레이션 장치(100)는 도로 교통 빅데이터에 기반하여 적어도 하나의 교통 시나리오에 따라 교통 시뮬레이션을 위한 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 생성한다(S600).Referring to FIG. 6 , the traffic simulation apparatus 100 generates simulation element data, road network data, and traffic demand data for traffic simulation according to at least one traffic scenario based on road traffic big data ( S600 ).

교통 시뮬레이션 장치(100)는 생성된 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 이용하여 제1 링크에 대한 교통 시뮬레이션을 수행하는 동작(S610), … 및 생성된 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 이용하여 제n 링크에 대한 교통 시뮬레이션을 수행하는 동작(S620)을 동시에 병렬적으로 수행할 수 있다(n>0, n은 자연수).The traffic simulation apparatus 100 performs an operation (S610) of performing a traffic simulation on the first link using the generated simulation element data, road network data, and traffic demand data (S610), ... and performing an operation ( S620 ) of performing a traffic simulation on the n-th link using the generated simulation element data, road network data, and traffic demand data simultaneously and in parallel (n>0, n is a natural number).

교통 시뮬레이션 장치(100)는 이와 같이 수행된 시뮬레이션의 횟수가 기 설정된 최대값보다 작은지를 결정하여(S630) 수행된 시뮬레이션의 횟수가 최대값보다 작으면 교통 시뮬레이션 동작(S610, S620)을 계속적으로 수행한다. The traffic simulation apparatus 100 determines whether the number of simulations performed in this way is less than a preset maximum value (S630), and if the number of simulations performed is less than the maximum value, the traffic simulation operations S610 and S620 are continuously performed. do.

수행된 시뮬레이션의 횟수가 최대값보다 작지 않으면(예를 들어, 같거나 크면) 교통 시뮬레이션 장치(100)는 교통 시뮬레이션 결과를 출력한다(S640). 다시 말해서, 제어부(140)는 교통 시뮬레이션 결과를 나타내는 인터페이스 화면을 표시부(120)를 통해 표시할 수 있다.If the number of simulations performed is not less than (eg, equal to or greater than) the maximum value, the traffic simulation apparatus 100 outputs a traffic simulation result (S640). In other words, the controller 140 may display an interface screen representing the traffic simulation result through the display unit 120 .

도 7은 본 발명의 실시예에 따른 교통 시뮬레이션 장치에서 링크 간의 차량 이동을 수행하는 방법을 나타내는 흐름도이다. 제시된 실시예에서 하기의 동작은 도 1의 i번째 코어(162)에 의해서 수행될 수 있다. 하기에서는 편의상 i번째 코어(162)를 제1 코어로 서술하고, i번째 링크를 제1 링크로 서술하며, i+1번째 코어(164)를 제2 코어로 서술하며, i+1번째 링크를 제2 링크로 서술하도록 한다.7 is a flowchart illustrating a method of performing vehicle movement between links in a traffic simulation apparatus according to an embodiment of the present invention. In the presented embodiment, the following operation may be performed by the i-th core 162 of FIG. 1 . Hereinafter, for convenience, the i-th core 162 is described as the first core, the i-th link is described as the first link, the i+1-th core 164 is described as the second core, and the i+1-th link is described as the second core. Let it be described as the second link.

도 7을 참조하면, 제1 코어는, 도로를, 동일 특성을 가지도록 분할한 복수의 링크 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀을 통해 제2 링크로 전달한다(S700). 구체적으로, 제1 코어는, 제1 링크에 포함된 복수의 셀 중 마지막 셀에 위치한 차량 수를 나타내는 제1 데이터를 커넥션 셀에 복사할 수 있다. 커넥션 셀에 복사된 제1 데이터는 제2 링크의 첫번째 셀 앞쪽에 위치한 가상 셀에 추가될 수 있다. 이러한 동작은 제2 코어에 의해서 수행될 수 있다.Referring to FIG. 7 , the first core determines the number of first vehicles that can move from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics. is transmitted to the second link through a connection cell located between the links (S700). Specifically, the first core may copy the first data indicating the number of vehicles located in the last cell among the plurality of cells included in the first link to the connection cell. The first data copied to the connection cell may be added to a virtual cell located in front of the first cell of the second link. This operation may be performed by the second core.

제1 코어는 커넥션 셀을 통해 제2 링크에서 수용 가능한 제2 차량 수를 획득한다(S710). 구체적으로, GPU에 포함된 복수의 코어 각각은 복수의 링크 각각에 대응하여 차량 추종을 수행하고, 제1 코어는 제2 링크로부터 커넥션 셀을 통해 제2 링크를 구성하는 복수의 셀 중 가상 셀에서 첫번째 셀로 이동 가능한 차량 수를 나타내는 제2 데이터를 획득할 수 있다.The first core acquires the second number of vehicles that can be accommodated in the second link through the connection cell (S710). Specifically, each of the plurality of cores included in the GPU performs vehicle tracking in response to each of the plurality of links, and the first core is a virtual cell among a plurality of cells constituting the second link from the second link through the connection cell. Second data indicating the number of vehicles capable of moving to the first cell may be obtained.

제1 코어는 제1 차량 수에 해당하는 차량 중 제2 차량 수에 해당하는 차량을, 커넥션 셀을 통해 제2 링크로 이동시키도록 시뮬레이션을 수행한다(S720). 구체적으로, 제1 코어는 마지막 셀에 위치한 차량 수에 해당하는 차량 중 제2 링크의 가상 셀에서 첫번째 셀로 이동 가능한 차량 수에 해당하는 차량을, 제1 링크의 마지막 셀에서 상기 제2 링크의 첫번째 셀로 이동 가능한 차량 수로 업데이트할 수 있다. 이어서, 제1 코어는 업데이트된 차량 수에 해당하는 차량을 커넥션 셀을 통해 제2 링크로 이동시킬 수 있다. 다시 말해서, 제1 코어는 업데이트된 차량 수에 해당하는 차량의 식별 데이터를 커넥션 셀로 복사하고, 커넥션 셀에 복사된 차량 식별 데이터가 제2 링크의 첫번째 셀에 추가될 수 있다.The first core performs a simulation to move the vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the second link through the connection cell ( S720 ). Specifically, the first core selects a vehicle corresponding to the number of vehicles capable of moving from the virtual cell of the second link to the first cell among the vehicles corresponding to the number of vehicles located in the last cell, and the first of the second link in the last cell of the first link. It can be updated with the number of vehicles that can move into the cell. Subsequently, the first core may move the vehicle corresponding to the updated number of vehicles to the second link through the connection cell. In other words, the first core may copy vehicle identification data corresponding to the updated number of vehicles to the connection cell, and the vehicle identification data copied to the connection cell may be added to the first cell of the second link.

이러한 동작들은 복수의 링크 각각에 대응하여 GPU에 포함된 복수의 코어 각각에 스레드로서 할당되고, 할당된 스레드는, 상기 복수의 코어 각각에서 병렬적으로 적어도 동시에 실행될 수 있다.These operations may be allocated as threads to each of a plurality of cores included in the GPU corresponding to each of the plurality of links, and the allocated threads may be executed in parallel at least simultaneously in each of the plurality of cores.

도 8은 본 발명의 또 다른 실시예에 따른 교통 시뮬레이션 장치에서 링크 간의 차량 이동을 수행하는 방법을 나타내는 흐름도이다. 제시된 실시예에서 하기의 동작은 도 1의 i번째 코어(162)에 의해서 수행될 수 있다. 하기에서는 편의상 i번째 코어(162)를 제1 코어로 서술하고, i번째 링크를 제1 링크로 서술하며, i+1번째 코어(164)를 제2 코어로 서술하며, i+1번째 링크를 제2 링크로 서술하도록 한다.8 is a flowchart illustrating a method of performing vehicle movement between links in a traffic simulation apparatus according to another embodiment of the present invention. In the presented embodiment, the following operation may be performed by the i-th core 162 of FIG. 1 . Hereinafter, for convenience, the i-th core 162 is described as the first core, the i-th link is described as the first link, the i+1-th core 164 is described as the second core, and the i+1-th link is described as the second core. Let it be described as the second link.

도 8을 참조하면, 제1 코어는, 도로를, 동일 특성을 가지도록 분할한 복수의 링크 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀을 통해 제2 링크로 전달한다(S800).Referring to FIG. 8 , the first core determines the number of first vehicles that can move from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics. is transmitted to the second link through the connection cell located between the links (S800).

제1 코어는 커넥션 셀을 통해 제2 링크의 차량 속도, 차량 밀도 및 제2 링크를 구성하는 복수의 셀 각각에서 수용 가능한 제2 차량 수를 포함하는 차량 데이터를 획득한다(S810). 예를 들어, 제2 링크가 가상 셀, 제1 셀, 제2 셀, 제3 셀, 및 가상 셀로 이루어진 경우 제1 코어는 제2 링크의 평균 차량 속도, 평균 차량 밀도, 및 제2 링크의 가상 셀에서 제1 셀로 이동 가능한 차량 수, 제1 셀에서 제2 셀로 이동 가능한 차량 수, 및 제2 셀에서 제3 셀로 이동 가능한 차량 수를 포함하는 차량 데이터를 획득할 수 있다.The first core acquires vehicle data including the vehicle speed of the second link, the vehicle density, and the number of second vehicles that can be accommodated in each of the plurality of cells constituting the second link through the connection cell ( S810 ). For example, if the second link consists of a virtual cell, a first cell, a second cell, a third cell, and a virtual cell, the first core may determine the average vehicle speed of the second link, the average vehicle density, and the virtual cell of the second link. Vehicle data including the number of vehicles that can move from the cell to the first cell, the number of vehicles that can move from the first cell to the second cell, and the number of vehicles that can move from the second cell to the third cell may be acquired.

제1 코어는 제1 차량 수에 해당하는 차량 중 제2 차량 수에 해당하는 차량을, 커넥션 셀을 통해 제2 링크로 이동시키도록 시뮬레이션을 수행한다(S820). 구체적으로, 제1 코어는 제2 링크의 가상 셀에서 제1 셀로 이동 가능한 차량 수를, 제1 링크의 마지막 셀에서 제2 링크의 첫번째 셀로 이동 가능한 차량 수로 업데이트하고, 업데이트된 차량 수에 해당하는 차량을 커넥션 셀을 통해 제2 링크로 이동시킬 수 있다.The first core performs a simulation to move the vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the second link through the connection cell (S820). Specifically, the first core updates the number of vehicles that can move from the virtual cell of the second link to the first cell to the number of vehicles that can move from the last cell of the first link to the first cell of the second link, and corresponds to the updated number of vehicles. The vehicle may be moved to the second link through the connection cell.

S800, S810, 및 S820 동작 이후에 다음 시뮬레이션 동작에서 제1 코어는 S800, 및 S810 동작을 수행할 필요 없이 S810 동작에서 획득된 차량 데이터를 이용하여 제2 링크에서 수용 가능한 제2 차량 수를 예측한다(S830). 이러한 경우 이전 시뮬레이션 단계에서 제2 링크의 가상 셀에서 제1 셀로 이동 가능한 차량 수가 이용되었으므로, 제1 코어는 제2 링크의 평균 차량 속도, 평균 차량 밀도 및 제1 셀에서 제2 셀로 이동 가능한 차량 수, 및 제2 셀에서 제3 셀로 이동 가능한 차량 수 중 어느 하나를 이용하여 제2 링크의 첫번째 셀에서 수용 가능한 제2 차량 수를 예측할 수 있다.In the next simulation operation after operations S800, S810, and S820, the first core predicts the second number of vehicles that can be accommodated in the second link by using the vehicle data obtained in operation S810 without the need to perform operations S800 and S810. (S830). In this case, since the number of vehicles moving from the virtual cell of the second link to the first cell was used in the previous simulation step, the first core determines the average vehicle speed of the second link, the average vehicle density, and the number of vehicles that can move from the first cell to the second cell. , and the number of vehicles capable of moving from the second cell to the third cell may be used to predict the second number of vehicles that can be accommodated in the first cell of the second link.

제1 코어는 예측된 제2 차량 수에 해당하는 차량을 커넥션 셀을 통해 제2 링크로 이동시키도록 시뮬레이션을 수행한다(S840). 구체적으로, 복수의 링크 각각의 첫번째 셀 앞쪽에는, 차량을 저장할 수 있는 버퍼가 존재할 수 있다. 이러한 경우 예측된 제2 차량 수에 해당하는 차량은 버퍼에 저장되고, 예측된 제2 차량 수가 제2 링크의 첫번째 셀에서 실제 수용 가능한 차량 수보다 같거나 작으면 버퍼에 저장된 차량은, 제2 링크의 첫번째 셀로 이동할 수 있다. The first core performs a simulation to move the vehicle corresponding to the predicted second number of vehicles to the second link through the connection cell ( S840 ). Specifically, a buffer capable of storing a vehicle may exist in front of the first cell of each of the plurality of links. In this case, the vehicle corresponding to the predicted second vehicle number is stored in the buffer, and if the predicted second vehicle number is equal to or smaller than the number of vehicles that can actually be accommodated in the first cell of the second link, the vehicle stored in the buffer is stored in the second link You can move to the first cell of

예측된 제2 차량 수가 제2 링크의 첫번째 셀에서 실제 수용 가능한 차량 수보다 크면 버퍼에 저장된 차량 중 실제 수용 가능한 차량 수에 해당하는 차량은, 제2 링크의 첫번째 셀로 이동하고, 나머지 차량은 버퍼에서 대기할 수 있다. 버퍼에서 대기중인 차량은 제2 링크의 첫번째 링크에서 수용 가능한 차량이 존재할 때마다 제2 링크의 첫번째 셀로 이동할 수 있다.If the predicted number of second vehicles is greater than the number of vehicles that can actually be accommodated in the first cell of the second link, the vehicles corresponding to the actual number of vehicles stored in the buffer move to the first cell of the second link, and the remaining vehicles are stored in the buffer. can wait A vehicle waiting in the buffer may move to the first cell of the second link whenever there is an acceptable vehicle on the first link of the second link.

또한, 제2 차량 수를 예측하고, 예측된 제2 차량 수만큼 차량을 이동하는 상술한 동작은 제2 링크를 구성하는 셀 수보다 하나 작은 수만큼 수행될 수 있다. 예를 들어, 제2 링크를 구성하는 셀의 수가 4개인 경우 상술한 동작은 3회 수행될 수 있으나, 이에 한정되지 않는다.In addition, the above-described operation of predicting the second number of vehicles and moving the vehicle by the predicted second number of vehicles may be performed by one smaller number than the number of cells constituting the second link. For example, when the number of cells constituting the second link is four, the above-described operation may be performed three times, but is not limited thereto.

이를 통해 본 발명은 교통 시뮬레이션을 위해 소요되는 시간 및 리소스 등을 최소화하면서 효율적이고, 빠른 교통 시뮬레이션을 수행하는 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치를 제공할 수 있다.Through this, the present invention can provide a parallel processing-based traffic simulation method and apparatus therefor that efficiently and quickly perform traffic simulation while minimizing time and resources required for traffic simulation.

본 발명의 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.The apparatus and method according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination.

컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The program instructions recorded on the computer readable medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the computer software field. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - Includes magneto-optical media and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the embodiments of the present invention have been described in more detail with reference to the accompanying drawings, the present invention is not necessarily limited to these embodiments, and various modifications may be made within the scope without departing from the technical spirit of the present invention. . Therefore, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

100: 교통 시뮬레이션 장치
110: 통신부
120: 표시부
130: 저장부
140: 제어부
150: 제1 처리부
160: 제2 처리부
100: traffic simulation device
110: communication department
120: display unit
130: storage
140: control unit
150: first processing unit
160: second processing unit

Claims (18)

삭제delete 삭제delete 삭제delete 삭제delete 교통 시뮬레이션 장치의 제어부를 통해 수행되는 교통 시뮬레이션 방법으로서,
도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 단계;
상기 커넥션 셀을 통해 상기 제2 링크의 차량 속도, 차량 밀도 및 상기 제2 링크를 구성하는 복수의 셀(cell) 각각에서 수용 가능한 제2 차량 수를 포함하는 차량 데이터를 획득하는 제2 단계; 및
상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제3 단계를 포함하고,
상기 제1 단계, 상기 제2 단계 및 상기 제3 단계가 수행된 이후 다음 시뮬레이션 동작에서 상기 차량 데이터를 이용하여 상기 제2 링크에서 수용 가능한 제2 차량 수를 예측하는 제4 단계; 및
상기 예측된 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제5 단계를 포함하고,
상기 제4 단계 및 상기 제5 단계는 기 설정된 횟수동안 수행되는, 병렬 처리 기반의 교통 시뮬레이션 방법.
As a traffic simulation method performed through a control unit of a traffic simulation device,
The first number of vehicles capable of moving from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics is determined, and the determined first number of vehicles is used in connection cells located between the links. a first step of transmitting to the second link through a connection cell;
a second step of acquiring vehicle data including a vehicle speed of the second link, a vehicle density, and a second number of vehicles that can be accommodated in each of a plurality of cells constituting the second link through the connection cell; and
a third step of simulating to move a vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the second link through the connection cell;
a fourth step of predicting a second number of vehicles that can be accommodated in the second link using the vehicle data in a next simulation operation after the first step, the second step, and the third step are performed; and
a fifth step of simulating to move a vehicle corresponding to the predicted second number of vehicles to the second link through the connection cell,
The fourth step and the fifth step are performed for a preset number of times, a parallel processing-based traffic simulation method.
제5항에 있어서, 상기 제1 단계 내지 상기 제5 단계는,
상기 복수의 링크 각각에 대응하여 상기 교통 시뮬레이션 장치의 GPU(Graphic Processing Unit)에 포함된 복수의 코어 각각에 스레드(thread)로서 할당되고,
상기 할당된 스레드는, 상기 복수의 코어 각각에서 병렬적으로 적어도 동시에 실행되는, 병렬 처리 기반의 교통 시뮬레이션 방법.
According to claim 5, wherein the first to the fifth step,
Allocated as a thread to each of a plurality of cores included in a GPU (Graphic Processing Unit) of the traffic simulation device in correspondence to each of the plurality of links,
The allocated thread is executed at least simultaneously in parallel in each of the plurality of cores, a parallel processing-based traffic simulation method.
제5항에 있어서, 상기 기 설정된 횟수는,
상기 제2 링크를 구성하는 복수의 셀의 개수보다 하나 작은 수에 대응하는, 병렬 처리 기반의 교통 시뮬레이션 방법.
According to claim 5, wherein the preset number of times,
A parallel processing-based traffic simulation method corresponding to a number that is one less than the number of a plurality of cells constituting the second link.
제5항에 있어서, 상기 복수의 링크 각각의 첫번째 셀 앞쪽에는, 차량을 저장할 수 있는 버퍼(buffer)가 위치하고,
상기 예측된 제2 차량 수에 해당하는 차량이 상기 버퍼에 저장되고,
상기 예측된 제2 차량 수가 상기 제2 링크의 첫번째 셀에서 실제 수용 가능한 차량 수보다 같거나 작으면 상기 버퍼에 저장된 차량은, 상기 제2 링크의 첫번째 셀로 이동하고,
상기 예측된 제2 차량 수가 상기 제2 링크의 첫번째 셀에서 실제 수용 가능한 차량 수보다 크면 상기 버퍼에 저장된 차량 중 상기 실제 수용 가능한 차량 수에 해당하는 차량은, 상기 제2 링크의 첫번째 셀로 이동하고, 나머지 차량은 상기 버퍼에서 대기하는, 병렬 처리 기반의 교통 시뮬레이션 방법.
The method of claim 5, wherein a buffer capable of storing a vehicle is located in front of the first cell of each of the plurality of links,
The vehicle corresponding to the predicted second number of vehicles is stored in the buffer,
If the predicted number of second vehicles is equal to or smaller than the number of vehicles that can actually be accommodated in the first cell of the second link, the vehicle stored in the buffer moves to the first cell of the second link,
If the predicted number of second vehicles is greater than the number of vehicles that can actually be accommodated in the first cell of the second link, the vehicle corresponding to the number of vehicles stored in the buffer that corresponds to the number of vehicles stored in the buffer moves to the first cell of the second link, A traffic simulation method based on parallel processing, in which the remaining vehicles wait in the buffer.
제8항에 있어서, 상기 버퍼에서 대기중인 차량은,
상기 제2 링크의 첫번째 링크에서 수용 가능한 차량이 존재할 때마다 상기 제2 링크의 첫번째 셀로 이동하는, 병렬 처리 기반의 교통 시뮬레이션 방법.
The method of claim 8, wherein the vehicle waiting in the buffer,
A traffic simulation method based on parallel processing, which moves to the first cell of the second link whenever there is an acceptable vehicle in the first link of the second link.
삭제delete 삭제delete 삭제delete 삭제delete 데이터를 저장하는 저장부; 및
상기 저장부와 연결되고, 교통 시뮬레이션을 위해 사용되는 시뮬레이션 요소 데이터, 도로 네트워크 데이터 및 교통 수요 데이터를 이용하여 상기 교통 시뮬레이션을 수행하도록 구성된 제어부를 포함하고,
상기 제어부는, GPU(Graphic Processing Unit)를 포함하도록 구성되고,
상기 GPU는, 복수의 코어를 포함하도록 구성되고,
상기 복수의 코어 중 제1 코어는,
도로를, 동일 특성을 가지도록 분할한 복수의 링크(link) 중 제1 링크에서 다음 링크인 제2 링크로 이동 가능한 제1 차량 수를 결정하여 상기 결정된 제1 차량 수를 링크 사이에 위치한 커넥션 셀(connection cell)을 통해 상기 제2 링크로 전달하는 제1 동작,
상기 커넥션 셀을 통해 상기 제2 링크의 차량 속도, 차량 밀도 및 상기 다음 링크를 구성하는 복수의 셀(cell) 각각에서 수용 가능한 제2 차량 수를 포함하는 차량 데이터를 획득하는 제2 동작,
상기 제1 차량 수에 해당하는 차량 중 상기 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 다음 링크로 이동시키는 제3 동작을 수행하도록 구성되고,
상기 제1 동작, 상기 제2 동작 및 상기 제3 동작이 수행된 이후 상기 제어부는, 다음 시뮬레이션 동작에서 상기 차량 데이터를 이용하여 상기 제2 링크에서 수용 가능한 제2 차량 수를 예측하는 제4 동작, 및
상기 예측된 제2 차량 수에 해당하는 차량을 상기 커넥션 셀을 통해 상기 제2 링크로 이동시키도록 시뮬레이션하는 제5 동작을 수행하도록 구성되며,
상기 제4 동작 및 상기 제5 동작은 기 설정된 횟수동안 수행되는, 병렬 처리 기반의 교통 시뮬레이션 장치.
a storage unit for storing data; and
A control unit connected to the storage unit and configured to perform the traffic simulation using simulation element data, road network data, and traffic demand data used for traffic simulation,
The control unit is configured to include a GPU (Graphic Processing Unit),
The GPU is configured to include a plurality of cores,
A first core among the plurality of cores,
The first number of vehicles capable of moving from a first link to a second link that is a next link among a plurality of links divided to have the same characteristics is determined, and the determined first number of vehicles is used in connection cells located between the links. A first operation of transferring to the second link through a (connection cell),
a second operation of acquiring vehicle data including a vehicle speed, a vehicle density of the second link, and a second number of vehicles that can be accommodated in each of a plurality of cells constituting the next link through the connection cell;
and perform a third operation of moving a vehicle corresponding to the second number of vehicles among the vehicles corresponding to the first number of vehicles to the next link through the connection cell,
After the first operation, the second operation, and the third operation are performed, the controller may perform a fourth operation of predicting the number of second vehicles that can be accommodated in the second link by using the vehicle data in a next simulation operation; and
and perform a fifth operation of simulating moving a vehicle corresponding to the predicted second number of vehicles to the second link through the connection cell,
The fourth operation and the fifth operation are performed for a preset number of times, a parallel processing-based traffic simulation apparatus.
제14항에 있어서, 상기 제1 동작 내지 상기 제5 동작은,
상기 복수의 링크 각각에 대응하여 상기 복수의 코어 각각에 스레드(thread)로서 할당되고,
상기 할당된 스레드는, 상기 복수의 코어 각각에서 병렬적으로 적어도 동시에 실행되는, 병렬 처리 기반의 교통 시뮬레이션 장치.
15. The method of claim 14, wherein the first to the fifth operation,
is assigned as a thread to each of the plurality of cores corresponding to each of the plurality of links;
The allocated thread is executed at least simultaneously in parallel in each of the plurality of cores, a parallel processing-based traffic simulation device.
제14항에 있어서, 상기 기 설정된 횟수는,
상기 제2 링크를 구성하는 복수의 셀의 개수보다 하나 작은 수에 대응하는, 병렬 처리 기반의 교통 시뮬레이션 장치.
15. The method of claim 14, wherein the preset number of times,
A parallel processing-based traffic simulation device corresponding to a number that is one less than the number of cells constituting the second link.
제14항에 있어서, 상기 복수의 링크 각각의 첫번째 셀 앞쪽에는, 차량을 저장할 수 있는 버퍼(buffer)가 위치하고,
상기 예측된 제2 차량 수에 해당하는 차량이 상기 버퍼에 저장되고,
상기 예측된 제2 차량 수가 상기 제2 링크의 첫번째 셀에서 실제 수용 가능한 차량 수보다 같거나 작으면 상기 버퍼에 저장된 차량은, 상기 제2 링크의 첫번째 셀로 이동하고,
상기 예측된 제2 차량 수가 상기 제2 링크의 첫번째 셀에서 실제 수용 가능한 차량 수보다 크면 상기 버퍼에 저장된 차량 중 상기 실제 수용 가능한 차량 수에 해당하는 차량은, 상기 제2 링크의 첫번째 셀로 이동하고, 나머지 차량은 상기 버퍼에서 대기하는, 병렬 처리 기반의 교통 시뮬레이션 장치.
The method according to claim 14, wherein a buffer capable of storing a vehicle is located in front of the first cell of each of the plurality of links,
The vehicle corresponding to the predicted second number of vehicles is stored in the buffer,
If the predicted number of second vehicles is equal to or smaller than the number of vehicles that can actually be accommodated in the first cell of the second link, the vehicle stored in the buffer moves to the first cell of the second link,
If the predicted number of second vehicles is greater than the number of vehicles that can actually be accommodated in the first cell of the second link, the vehicle corresponding to the number of vehicles stored in the buffer that corresponds to the number of vehicles stored in the buffer moves to the first cell of the second link, The rest of the vehicles wait in the buffer, a parallel processing-based traffic simulation device.
제17항에 있어서, 상기 버퍼에서 대기중인 차량은,
상기 제2 링크의 첫번째 링크에서 수용 가능한 차량이 존재할 때마다 상기 제2 링크의 첫번째 셀로 이동하는, 병렬 처리 기반의 교통 시뮬레이션 장치.
The method of claim 17, wherein the vehicle waiting in the buffer,
A traffic simulation apparatus based on parallel processing, which moves to the first cell of the second link whenever there is an acceptable vehicle in the first link of the second link.
KR1020190178347A 2019-12-30 2019-12-30 Traffic simulation method based on parallel processing and appratus therefor KR102309714B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190178347A KR102309714B1 (en) 2019-12-30 2019-12-30 Traffic simulation method based on parallel processing and appratus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190178347A KR102309714B1 (en) 2019-12-30 2019-12-30 Traffic simulation method based on parallel processing and appratus therefor

Publications (2)

Publication Number Publication Date
KR20210085375A KR20210085375A (en) 2021-07-08
KR102309714B1 true KR102309714B1 (en) 2021-10-06

Family

ID=76893685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190178347A KR102309714B1 (en) 2019-12-30 2019-12-30 Traffic simulation method based on parallel processing and appratus therefor

Country Status (1)

Country Link
KR (1) KR102309714B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242688A (en) 2004-02-26 2005-09-08 Honda Motor Co Ltd Free track traffic simulator
JP2011243029A (en) 2010-05-19 2011-12-01 International Business Maschines Corporation Simulation system, method and program
CN103593535A (en) 2013-11-22 2014-02-19 南京洛普股份有限公司 Urban traffic complex self-adaptive network parallel simulation system and method based on multi-scale integration

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969481B1 (en) * 2008-06-03 2010-07-14 주식회사 포스코아이씨티 Apparatus for Simulating Traffic Flow and System for Simulating Traffic Flow Comprising That Apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242688A (en) 2004-02-26 2005-09-08 Honda Motor Co Ltd Free track traffic simulator
JP2011243029A (en) 2010-05-19 2011-12-01 International Business Maschines Corporation Simulation system, method and program
CN103593535A (en) 2013-11-22 2014-02-19 南京洛普股份有限公司 Urban traffic complex self-adaptive network parallel simulation system and method based on multi-scale integration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
경민기. ‘GPU 기반의 병렬 LCTM 교통 시뮬레이션 시간 예측’. 건국대학교 대학원 박사학위 청구논문, 2019.02., pp.1-76.*

Also Published As

Publication number Publication date
KR20210085375A (en) 2021-07-08

Similar Documents

Publication Publication Date Title
JP2019511033A (en) Generation of dependency analysis of text segment using neural network
KR20160054629A (en) Methods to adapt user interfaces and input controls
CN103246755A (en) Element refinement methods and systems in arbitrary Lagrangian-Eulerian (ALE) based finite element analysis
EP2466565B1 (en) Simulator
US8139074B2 (en) Memory optimized cache generation for image tiling in GIS/CAD browser applications
KR20210149530A (en) Method for training image classification model and apparatus for executing the same
EP4266282A1 (en) Method and apparatus for controlling formation driving, medium, and electronic device
US20240202381A1 (en) Customizable reinforcement learning of column placement in structural design
JP2009087282A (en) Parallel computation system and parallel computation method
CN114091589B (en) Model training method and device, electronic equipment and medium
JP7087682B2 (en) Space-time event data estimator, method, and program
KR102309714B1 (en) Traffic simulation method based on parallel processing and appratus therefor
JP3462064B2 (en) Distributed simulation system
WO2023198016A1 (en) Method and apparatus for adding vehicle to virtual scene, and computer device, storage medium and program product
JP5293165B2 (en) Simulation support program, simulation apparatus, and simulation support method
JP6072028B2 (en) Simulation apparatus and simulation method thereof
CN106951278B (en) Data processing method and device
CN116342773A (en) Automatic driving information visualization method and device based on rendering engine and vehicle
CN112947466B (en) Parallel planning method and equipment for automatic driving and storage medium
CN111158898B (en) BIM data processing method and device aiming at power transmission and transformation project site arrangement standardization
US10706201B1 (en) Circuit design routing using multi-panel track assignment
US20160283147A1 (en) System, control device, and method
KR101721333B1 (en) Method and system for proviiding informational data using communication session for transmitting and receiving message
KR20240096015A (en) Vr cloud device
KR101567313B1 (en) Apparatus for processing image data for embedded simulation system and the method thereof

Legal Events

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