KR20150017070A - 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 - Google Patents
페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 Download PDFInfo
- Publication number
- KR20150017070A KR20150017070A KR1020130092865A KR20130092865A KR20150017070A KR 20150017070 A KR20150017070 A KR 20150017070A KR 1020130092865 A KR1020130092865 A KR 1020130092865A KR 20130092865 A KR20130092865 A KR 20130092865A KR 20150017070 A KR20150017070 A KR 20150017070A
- Authority
- KR
- South Korea
- Prior art keywords
- launch
- recommender
- marking
- unit
- database
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Game Theory and Decision Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 최적화 시스템 및 구현 방법에 관한 것으로서, 구체적으로는 페트리넷과 기계 학습에 의하여 학습된 패턴 또는 유사 패턴을 활용한 발사 추천기를 이용하여 해를 구하는 최적화 시스템 및 그 구현 방법에 관한 것이다.
본 발명은 문제 상황 및 문제 상태가 주어졌을 때, 상기 주어진 문제 상황에 대한 유사 문제 상황을 발사 추천기 데이터베이스에서 검색하여, 그에 대응하는 단위 발사 추천기 집합을 검출하는 유사 문제 상황 검출기; 상기 단위 발사 추천기 집합을 사용하여 페트리넷의 특정 마킹에서의 발사 여부, 또는 발사 트랜지션 정보를 추천하는 발사 추천기; 및 상기 발사 추천기를 이용하여 페트리넷을 구동함으로써, 상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 페트리넷 풀이기(solver)를 포함하며, 상기 발사 추천기 데이터베이스는 상기 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있는 것을 특징으로 하는 최적화 시스템을 개시하며, 본 발명에 따르면, 종래의 최적화기가 문제 상황 및 이에 대한 문제 상태에 대하여 문제를 푸는 방식에 따른 문제점을 개선하기 위하여, 페트리넷의 동작을 학습하여 발사 추천기를 구성하고, 이를 이용하여 주어진 최적화 문제에 대한 해를 구함으로써, 실시간 또는 짧은 시간 내에 좋은 성능의 해를 도출할 수 있는 최적화 시스템 및 그 구현 방법을 제공하는 효과를 갖는다.
본 발명은 문제 상황 및 문제 상태가 주어졌을 때, 상기 주어진 문제 상황에 대한 유사 문제 상황을 발사 추천기 데이터베이스에서 검색하여, 그에 대응하는 단위 발사 추천기 집합을 검출하는 유사 문제 상황 검출기; 상기 단위 발사 추천기 집합을 사용하여 페트리넷의 특정 마킹에서의 발사 여부, 또는 발사 트랜지션 정보를 추천하는 발사 추천기; 및 상기 발사 추천기를 이용하여 페트리넷을 구동함으로써, 상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 페트리넷 풀이기(solver)를 포함하며, 상기 발사 추천기 데이터베이스는 상기 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있는 것을 특징으로 하는 최적화 시스템을 개시하며, 본 발명에 따르면, 종래의 최적화기가 문제 상황 및 이에 대한 문제 상태에 대하여 문제를 푸는 방식에 따른 문제점을 개선하기 위하여, 페트리넷의 동작을 학습하여 발사 추천기를 구성하고, 이를 이용하여 주어진 최적화 문제에 대한 해를 구함으로써, 실시간 또는 짧은 시간 내에 좋은 성능의 해를 도출할 수 있는 최적화 시스템 및 그 구현 방법을 제공하는 효과를 갖는다.
Description
본 발명은 최적화 시스템 및 구현 방법에 관한 것으로서, 구체적으로는 페트리넷과 기계 학습에 의하여 학습된 패턴 또는 유사 패턴을 활용한 발사 추천기를 이용하여 해를 구하는 최적화 시스템 및 그 구현 방법에 관한 것이다.
최적화(optimization) 문제란 주어진 문제에 대한 가능해(feasible solution) 중에서 해의 성능이 가장 좋은 최고해(best solution)를 찾는 문제로서, 통상적으로 목적 함수(objective function), 제약식(constraint)으로 구성되며, 목적 함수와 제약식은 의사 결정 변수(decision variable)에 기반하여 수학적으로 정의되고, 해의 성능(performance)은 목적 함수 값에 따라 평가된다.
잘 알려진 최적화 문제 중의 하나인 외판원 문제(TSP: Traveling Salesman Problem:)를 예로 들어 최적화 문제를 설명하면 다음과 같다. TSP 문제는 N개의 도시가 주어졌을 때, 외판원이 물건을 팔기 위해서 어떤 순서로 모든 도시들을 한번씩 방문하고 돌아와야 최소한의 거리로 여행을 완료할 수 있을지를 결정하는 문제로서, 모든 도시를 방문하는 순서가 해(solution)에 해당되고, 도시 i 와 도시 j 사이의 경로가 해에 포함되었는지의 여부를 나타내는 변수 xij (i = 1, ..., N, j = 1, ..., N) 들의 집합이 의사 결정 변수들에 해당되며, 목적 함수는 총 여행거리의 최소화이고, 제약식들은 한 도시를 한번씩만 방문한 후, 출발 도시로 돌아온다는 조건으로 구성된다.
또 다른 최적화 문제의 예로서, 잡샵 스케줄링(job shop scheduling) 문제를 설명하면, N개의 과업(job) 유형들 Ji (i = 1, ..., N) 와 L 개의 기계(machine) 유형들 Mk (k = 1, ..., L) 로 구성된 잡샵 스케줄링 문제는, 각 과업 유형 Ji 를 완료하기 위해 순차적으로 수행해야 할 작업(operation)들 oij (i = 1, ..., N, j = 1, ..., |Ji|, 여기서, |Ji|는 Ji에 속한 작업의 갯수) 와 각 작업 oij를 수행하는 데에 필요한 기계 유형 r(oij)과 작업 수행시간(processing time) p(oij)로 정의되는 문제로서, 모든 작업들에 대해 작업들 간에 정해진 순서를 지키면서 언제 어떤 작업을 해당 기계에서 시작해야 하는지를 결정하는 문제이다.
잡샵 스케줄링 문제에서의 해는 스케줄(schedule)이라 불리우며 이는 의사 결정 변수에 해당되는 각 작업의 시작 시간들, sij (i = 1, ..., N, j = 1, ..., |Ji|) 로 구성되고, 목적 함수는 통상적으로 기계의 가동률 최대화 또는 총 과업 완료 시간의 최소화 등이 사용되며, 제약식들로는 각 과업에 속한 작업들이 순서를 지키며 실행되어야 하는 조건, 하나의 기계에서는 한 시점에서 하나의 작업만 수행할 수 있다는 조건 등이 포함될 수 있다.
예를 들어, A 공장에 대한 스케줄을 생성하는 문제를 고려해 보면, A 공장에서 사용되는 장비는 M1, M2 각 1대가 있으며, 상기 공장에서 생산되는 제품은 J1, J2가 있는데, J1의 생산을 위해서는 2개의 작업 o11과 o12가 o11 → o12의 순서로 수행되어야 하고, J2의 경우에는 o21 만 수행된다고 하자.
아울러, r(o11) = r(o21) = M1이고, r(o12) = M2 이며, p(o11) = 1, p(o12) = 2, p(o21) = 3의 단위 시간이 소요된다고 하고, 목적 함수가 총 과업 완료 시간의 최소화라고 하면, A 공장의 스케줄링 문제는 총 과업 완료 시간을 최소화할 수 있는 각 기계에서의 작업 시작 시간들, s11, s12, s21을 결정하는 문제가 된다.
이러한 최적화 문제를 모델링하는 방법은 다양하지만, 그중 다양하고 복잡한 시스템을 유연하게 표현해 줄 수 있는 모델링 방법으로서 페트리넷을 들 수 있다. 페트리넷(Petri net)이란 이산 사건 시스템(discrete event system)의 설계, 운용, 분석 등에 많이 사용되는 형식 모형(formal model)으로서, 가장 기본적인 형태의 페트리넷인 기본 페트리넷(OPN: Ordinary Petri Net)은 N = (P, T, W, m0)로 정의된다. 여기서 P는 상태(state)를 표현하는 데에 사용되는 플레이스(place)의 집합, T는 사건(event)을 표현하는 트랜지션(transition)의 집합, W는 (P × T) ∪ (T × P) → {0,1}로 정의되는 매핑(mapping), m0는 P → Z+로 정의되는 초기 마킹(marking)을 나타낸다 (단, 여기서 Z+는 음이 아닌 정수의 집합). 매핑에 대하여 좀더 설명을 한다면, P × T → {0,1}은 플레이스에서 트랜지션으로 나가는 연결 정보를 나타내는 매핑으로, (p, t) ∈ P × T 에 대해, 매핑 값이 1인 경우 p 로부터 t가 연결되어 있다는 뜻이고, T × P → {0,1}는 트랜지션에서 플레이스로 들어오는 연결 정보를 나타내는 매핑으로, (t, p) ∈ T × P에 대해 매핑 값이 0인 경우 t로부터 p가 연결이 되지 않았다는 뜻이다. 또한, 마킹이란 페트리넷의 상태를 나타내는 바, 각 플레이스에 존재하는 토큰(token)의 갯수로 표현될 수 있으며, 따라서 초기 마킹이란 페트리넷의 초기 상태를 의미한다.
구체적인 페트리넷의 개념과 작동 방식을 예시하기 위하여 상기의 A 공장에 대한 경우를 페트리넷을 이용하여 나타내면, 다양한 방식의 표현이 가능하나, 그 중 한 예로서 도 1과 같이 도시할 수 있다. 도 1에서, 플레이스 p1과 p4는 각각 제품 J1, J2가 생산을 위한 대기 상태에 있음을 나타내기 위한 것들이고, 트랜지션 t1과 t4는 각 제품의 첫번째 작업이 시작되는 사건을 나타낸다. 또한, 플레이스 p2와 p5는 각 제품의 첫번째 작업이 진행 중임을 나타내기 위한 것들이고, t2는 J1의 첫번째 작업이 끝나고, 두번째 작업이 시작되는 사건을, t5는 J2의 첫번째 작업이 끝나는 사건을 나타낸다. 마찬가지로, p3은 J1의 두번째 작업이 진행 중임을, 그리고 t3은 J1의 두번째 작업이 끝나는 사건을 나타낸다. 아울러, p6와 p7은 각각 기계 M1과 M2의 가용 여부를 나타내기 위한 플레이스들이다.
이와 같이 A공장에 대한 페트리넷이 정의되면, A공장의 행위(behavior)가 모사(simulation)될 수 있음은 물론, A공장에 대한 스케줄을 생성하거나 A공장에 대해 기생성된 스케줄을 이용하여 페트리넷을 작동시킬 수도 있게 된다.
또한, 위의 그림에서 초기 마킹은 (1, 0, 0, 1, 0, 1, 1)의 벡터 형태로 표현될 수 있는 바, 이는 p1부터 p7까지 각 플레이스에서의 토큰 갯수를 나타낸다. 도 1에서 플레이스 내에 있는 검은 점들은 토큰을 나타내며, p1과 p4의 토큰은 현재 제품J1, J2가 1개씩 생산을 위해 대기 중임을 표시하고 있다. 또한, p6는 기계 M1이 현재 유휴(idle) 상태임을, p7은 기계 M2가 현재 유휴 상태임을 나타낸다.
기본 페트리넷(OPN)에서는 트랜지션 t에 입력으로 사용되는 모든 플레이스들이 각각 1개 이상의 토큰을 가지고 있을 때, t는 발사가능(enabled) 하다고 불리우며, 발사가능한 t가 발사(firing)될 경우, 페트리넷은 새로운 마킹으로 전이하게 되는 바, 새로운 마킹은 t의 입력에 사용되는 각각의 플레이스에서 1개씩의 토큰을 제거하고, 출력에 사용되는 각 플레이스에 토큰 1개씩을 추가함으로써 형성된다.
또한, 임의의 마킹에서 발사가능한 트랜지션은 1개 이상 존재할 수 있는데, 이들 중 동시에 발사가능한 트랜지션들은 동시 발사가능 트랜지션 집합(concurrently firable transition set)이라 부르고, 하나의 트랜지션을 발사하면 발사가 불가능해지는 다른 트랜지션들이 존재할 수 있는 바, 이러한 관계를 가진 트랜지션들을 충돌 트랜지션 집합(conflicting transition set)이라고 부른다. 하나의 마킹에서는 한 개 이상의 충돌 트랜지션 집합이 존재할 수 있다.
예를 들어, 도 1에서 발사가능한 트랜지션은 t1과 t4뿐인데, 이때 상기 두개의 트랜지션에 대한 입력 플레이스인 p6에 토큰이 1개뿐이므로, 동시에 발사될 수 없는 충돌 트랜지션 집합을 형성하게 된다. 만일 t1을 발사할 경우, 새로운 마킹은 (0, 1, 0, 1, 0, 0, 1)이 되고, t4를 발사할 경우, 새로운 마킹은 (1, 0, 0, 0, 1, 0, 1)로 바뀌게 된다. 즉, t1이 발사되면, 기계 M1이 바쁜(busy) 상태가 되고, J1의 첫번째 작업이 진행 중인 상태가 됨을 의미하며, t4가 발사되면, 기계 M1이 바쁜(busy) 상태가 되고, J2의 첫번째 작업이 진행 중인 상태가 됨을 의미한다.
통상적으로, 최적화 문제에서 좋은 성능의 해를 구하기 위해서는 많은 시간이 소요되고, 짧은 시간에 최적화 문제를 풀기 위해서는 해의 성능 저하를 감수해야 한다. 따라서, 짧은 시간 안에 좋은 성능의 해를 구하는 데에는 상당한 어려움이 따르는 것이 사실이다. 그러나, 현실적으로는 좋은 성능의 해를 짧은 시간 안에 도출해야 하는 경우가 많이 발생하게 된다. 예를 들어, 반도체 패키징 라인과 같은 대규모 장비 산업 등의 경우, 불시에 특정 장비가 고장이 나는 등의 원인으로 신속한 재스케줄링(re-scheduling) 작업이 필요함에도 스케줄링에 오랜 시간이 필요할 경우, 그에 따른 손실이 매우 커질 수 있다. 또한, 짧은 시간 안에 스케줄링이 완료되더라도, 도출된 스케줄의 성능이 떨어진다면 그에 의한 비효율에 따르는 비용도 마찬가지로 크게 늘어날 수 있다.
이렇듯, 특정한 문제 상황에 대한 최적화 작업을 실시간 또는 짧은 시간 내에 수행하면서도 좋은 성능의 해를 도출할 수 있는 방법 및 시스템이 요구되고 있으나, 기존의 방법들은 성능이 좋은 해를 생성하기 위해서는 많은 시간이 걸리게 되고, 빠른 시간 내에 해를 생성하기 위해서는 해의 성능이 만족스럽지 못한 문제가 있는 바, 아직 이에 대한 적절한 해법이 제시되지 못하고 있다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 창안된 것으로, 특정한 문제에 대한 최적화에 있어서 실시간 또는 짧은 시간 내에 좋은 성능의 해를 도출할 수 있는 최적화 시스템 및 그 구현 방법을 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위한 본 발명의 한 측면에 따른 최적화 시스템은 문제 상황(problem context) 및 문제 상태(problem state)가 주어졌을 때, 상기 주어진 문제 상황에 대한 유사 문제 상황을 발사 추천기(firing recommender) 데이터베이스에서 검색하여, 그에 대응하는 단위 발사 추천기 집합을 검출하는 유사 문제 상황 검출기; 상기 단위 발사 추천기 집합을 사용하여 페트리넷의 특정 마킹에서의 발사 여부, 또는 발사 트랜지션 정보를 추천하는 발사 추천기; 및 상기 발사 추천기를 이용하여 상기 주어진 문제 상황 및 문제 상태에 대하여 생성된 페트리넷을 구동함으로써, 상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 페트리넷 풀이기(solver)를 포함하며, 상기 발사 추천기 데이터베이스는 상기 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있는 것을 특징으로 한다. 이때, 상기 문제 상황에 대한 유사 문제 상황이란 상기 문제 상황과 같은 경우도 포함한다.
여기서, 상기 페트리넷이 컬러 페트리넷(CPN: Colored Petri Net)인 경우, 상기 단위 발사 추천기가 상기 페트리넷의 특정 마킹에서 발사할 트랜지션에 더하여 어떤 색깔의 토큰들을 발사에 사용할 것인지도 추천할 수 있는 바, 이를 발사 방식에 대한 추천이라고 부르며, 상기와 같은 컬러 페트리넷(CPN)의 특정 마킹에서 어느 트랜지션을 발사할 것인지에 대한 정보에 더하여, 필요한 어떤 색깔의 토큰들을 발사할 것인지 등 발사(firing)를 특정하기 위한 일련의 정보를 발사 트랜지션 정보라고 한다.
또한, 상기 단위 발사 추천기는, 기계 학습(machine learning)에 기반한 단위 발사 추천기이거나, 유사 마킹(similar marking)에 기반한 단위 발사 추천기이거나, 상기 양 추천기를 선택적으로 이용하는 하이브리드(hybrid) 방식의 단위 발사 추천기일 수 있다.
또한, 상기 단위 발사 추천기가 유사 마킹에 기반한 단위 발사 추천기이거나, 하이브리드 방식의 단위 발사 추천기인 경우,
유사 문제 상황에 대한 문제 상태의 특정 마킹에서의 발사가능 트랜지션들에 대한 발사 여부 및 발사 트랜지션 정보를 가지고 있는 마킹 데이터베이스(marking database)를 더 포함할 수 있다.
또한, 상기 단위 발사 추천기가 기계 학습에 기반한 단위 발사 추천기인 경우, 상기 페트리넷에 존재하는 각 트랜지션 마다 기계 학습에 기반한 단위 발사 추천기가 하나씩 존재하거나, 상기 페트리넷에 존재하는 각 충돌 트랜지션 집합 마다 다중 클래스(multi-class) 분류를 위한 기계 학습에 기반한 단위 발사 추천기가 하나씩 존재할 수 있다.
또한, 상기 단위 발사 추천기는 상기 마킹에 대한 정보를 고려하거나, 이와 함께 해당 마킹에 도달하기까지 발사된 트랜지션들의 순서(sequence) 및 문제 상황, 문제 상태의 정보를 함께 고려하여, 상기 페트리넷에서 특정 마킹에서의 특정 트랜지션의 발사 여부, 또는 발사 트랜지션 정보를 추천할 수 있다.
또한, 상기 단위 발사 추천기가 유사 마킹에 기반한 단위 발사 추천기인 경우, 상기 단위 발사 추천기는 특정 문제 상황에 대하여 생성된 마킹 데이터베이스를 검색하여, 특정 문제 상태와 같은 마킹이 있을 경우 이에 해당하는 발사 여부, 또는 발사 트랜지션 정보를 추천하거나, 특정 문제 상태와 같은 마킹이 없을 경우, 1개 이상의 유사 마킹들에 대해 협업 필터링(CF: Collaborative Filtering) 방식 또는 k-NN(Nearest Neighbor) 방식을 이용하여 발사 여부, 또는 발사 트랜지션 정보를 추천할 수 있다.
또한, 상기 단위 발사 추천기가 하이브리드 방식의 단위 발사 추천기인 경우, 상기 단위 발사 추천기는 상기 마킹 데이터베이스를 검색하여, 특정 문제 상황 및 문제 상태에 대한 유사 마킹이 존재하는 경우에는 상기 유사 마킹에 기반한 단위 발사 추천기를 이용하고, 유사 마킹이 없을 경우에는 상기 기계 학습에 기반한 단위 발사 추천기를 이용할 수 있다.
또한, 상기 페트리넷 풀이기(solver)는 특정 마킹에서 상기 발사 추천기가 추천한 발사 트랜지션 정보가 복수개인 경우, 각 발사 트랜지션 정보에 대한 추천 결과에 따르는 오류 수치를 비교하여 발사 트랜지션 정보를 선택할 수 있다.
또한, 상기 페트리넷으로서, 기본 페트리넷(Ordinary Petri Net)을 사용하거나, 또는 시간 페트리넷(Timed Petri Net), 컬러 페트리넷(Colored Petri Net), 시간 컬러 페트리넷(Timed Colored Petri Net), 계층 시간 컬러 페트리넷(Hierarchical Timed Colored Petri Net), 일반 추계 페트리넷(Generalized Stochastic Petri Net), 고수준 페트리넷(High Level Petri Net) 중 하나를 사용할 수 있다.
또한, 상기 주어진 문제 상황 및 문제 상태가 페트리넷으로 변환 가능한 형식 모형(formal model)으로 표현되어 있는 경우, 상기 형식 모형(formal model)을 페트리넷으로 변환하는 페트리넷 변환기를 더 포함할 수 있다.
본 발명의 다른 측면에 따른 페트리넷을 이용한 시스템 제어기는 앞서 기재된 최적화 시스템을 포함하여 구성되는 시스템 최적화부; 상기 시스템 최적화부로 시스템의 상태를 전달하여 실시간으로 마킹을 업데이트하는 상태 입력부; 및 상기 시스템 최적화부로부터 현 상태에서의 발사 여부, 또는 발사 트랜지션 정보를 전달받아 시스템을 제어하는 시스템 제어부를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따른 최적화 시스템 구현 방법은 (a) 주어진 문제 상황에 대하여 하나 이상의 유사 문제 상황을 생성하는 단계; (b) 상기 각 유사 문제 상황에 대하여 각 하나 이상의 문제 상태를 생성하는 단계; (c) 소정의 최적화기를 사용하여 상기 유사 문제 상황에 대한 각 문제 상태에 대하여 해를 구하는 단계; (d) 상기 최적화기의 해를 구하는 의사 결정 방식과 패턴을 모사(simulation)할 수 있는 발사 추천기 및 발사 추천기 데이터베이스를 구성하는 단계; 및 (e) 상기 발사 추천기를 이용하여 주어진 문제 상황 및 문제 상태에 대한 페트리넷을 구동함으로써 그 해를 구할 수 있는 페트리넷 풀이기(solver)를 생성하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 (d) 단계는, (d1) 상기 유사 문제 상황에 대한 각 문제 상태에 대하여 페트리넷을 구성하는 단계; (d2) 상기 유사 문제 상황에 대한 각 문제 상태에 대하여 상기 최적화기를 사용하여 생성된 해를 이용하여, 상기 페트리넷을 구동시키면서 상기 페트리넷의 각 마킹에서 각 트랜지션에 대한 발사 여부, 또는 발사 트랜지션 정보를 파악하여 마킹 데이터베이스를 생성하는 단계; (d3) 상기 마킹 데이터베이스를 이용하여 복수개의 단위 발사 추천기를 포함하는 상기 발사 추천기 데이터베이스를 구성하는 단계; 및 (d4) 상기 발사 추천기 데이터베이스를 이용하여 상기 발사 추천기를 구성하는 단계를 포함할 수 있다.
또한, 상기 (d3) 단계에서, 상기 발사 추천기 데이터베이스를 구성함에 있어, 기계 학습에 기반한 단위 발사 추천기, 유사 마킹에 기반한 단위 발사 추천기 또는 하이브리드 방식 단위 발사 추천기를 포함하여 구성할 수 있다.
또한, 상기 기계 학습에 기반한 단위 발사 추천기를 생성함에 있어서, 상기 마킹 데이터베이스의 데이터를 학습 데이터로 사용하여, 써포트 벡터 기계(SVM: Support Vector Machine), 또는 규칙 학습(Rule Learning)을 이용하여 분류기(classifer)를 학습함으로써 상기 단위 발사 추천기를 구성할 수 있다.
또한, 상기 유사 마킹에 기반한 단위 발사 추천기를 구성함에 있어서, 상기 마킹 데이터베이스를 이용하여, 특정 문제 상황에 속하는 마킹 중에서 유사 마킹을 검색하여, 발사 여부, 또는 발사 트랜지션 정보를 추천하도록 상기 단위 발사 추천기를 구성할 수 있다.
또한, 상기 하이브리드 방식 단위 발사 추천기를 생성함에 있어서, 상기 마킹 데이터베이스를 검색하여, 특정 문제 상황에 속하는 유사 마킹이 존재하는 경우에는 상기 유사 마킹에 기반한 단위 발사 추천기를 이용하고, 특정 문제 상황에 속하는 마킹 중에서 유사 마킹이 없는 경우에는 상기 기계 학습에 기반한 단위 발사 추천기를 이용하도록 상기 단위 발사 추천기를 구성할 수 있다.
또한, 상기 (c) 단계에 이어서, (c1) 상기 최적화기에 의한 해를 데이터베이스화하여 해 데이터베이스를 생성하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따른 최적화 방법은 (A) 주어진 문제 상황 및 문제 상태에 대하여 페트리넷을 생성하는 단계; (B) 발사 추천기 데이터베이스를 검색하여, 상기 주어진 문제 상황에 대한 유사 문제 상황 및 이에 대한 단위 발사 추천기 집합을 검출하는 단계; 및 (C) 상기 단위 발사 추천기 집합을 포함하여 구성된 발사 추천기를 이용하여, 상기 페트리넷을 구동하면서 상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 단계를 포함하며, 상기 발사 추천기 데이터베이스는 상기 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있는 것을 특징으로 한다.
본 발명에 따르면, 종래의 최적화기가 문제 상황 및 이에 대한 문제 상태에 대하여 문제를 푸는 방식에 따른 문제점을 개선하기 위하여, 페트리넷의 동작을 학습하여 발사 추천기를 구성하고, 이를 이용하여 주어진 최적화 문제에 대한 해를 구함으로써, 실시간 또는 짧은 시간 내에 좋은 성능의 해를 도출할 수 있는 최적화 시스템 및 그 구현 방법을 제공하는 효과를 갖는다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 페트리넷의 구성 예제.
도 2는 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템의 블록도.
도 3은 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템 구현 방법의 순서도.
도 4는 본 발명의 일 실시예에 따른 해 데이터베이스의 생성 과정.
도 5는 본 발명의 일 실시예에 따른 발사 추천기의 생성 과정.
도 6는 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기를 이용한 최적화 예제.
도 1은 페트리넷의 구성 예제.
도 2는 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템의 블록도.
도 3은 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템 구현 방법의 순서도.
도 4는 본 발명의 일 실시예에 따른 해 데이터베이스의 생성 과정.
도 5는 본 발명의 일 실시예에 따른 발사 추천기의 생성 과정.
도 6는 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기를 이용한 최적화 예제.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 이하에서는 특정 실시예들을 첨부된 도면을 기초로 상세히 설명하고자 한다.
본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되는 것은 아니며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 발명은 반도체 생산 공정 스케줄링 문제와 같이, 복잡한 문제에 대하여 종래 기술에 따라 최적화 작업을 수행할 경우, 많은 시간이 소요되거나 좋은 성능의 해를 구할 수 없고, 이에 따라 상당한 손실을 초래할 수 있다는 문제점에 대하여, 주어진 문제 상황 및 문제 상태에 대한 최적화 작업을 수행함에 있어, 상기 문제 상황 및 문제 상태에 대하여 페트리넷을 생성한 후, 유사 문제 상황에 대한 학습을 통해 미리 구성된 발사 추천기(230)를 이용하여 상기 페트리넷을 구동함으로써 상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 바, 주어진 문제 상황 및 문제 상태에 대한 최적화 작업을 실시간 또는 짧은 시간 내에 수행하면서도 좋은 성능의 해를 도출할 수 있는 최적화 시스템 및 그 구현 방법을 제공하는 것을 특징으로 한다.
여기서 문제 상황(Problem Context)이라 함은 풀고자 하는 최적화 문제의 목적 함수와 제약식으로 구성된 문제의 구조를 의미한다. 즉, 기본 페트리넷(OPN: Ordinary Petri Net)의 경우, 문제 상황은 플레이스(P), 트랜지션(T), 매핑(W)과 목적 함수로 정의될 수 있고, 시간 페트리넷(TPN: Timed Petri Net)의 경우 문제 상황은 플레이스(P), 트랜지션(T), 매핑(W), 목적 함수와 더불어 트랜지션 또는 플레이스에 부여된 시간 정보로 정의될 수 있다. 상기의 잡샵 스케줄링 문제를 예로 들면, 목적 함수와 과업의 유형들과 각 과업 유형에 속한 작업들, 각 작업에 소요되는 시간 및 작업들 간의 선후 관계, 그리고 각 작업이 필요로 하는 기계의 유형이 문제 상황이 된다.
이에 대하여 유사 문제 상황이라 함은, 풀고자 하는 최적화 문제에 의한 문제 상황이 주어졌을 때, 상기 문제 상황이 일부 변경된다고 가정하여, 상기 주어진 문제 상황을 소정의 규칙에 의하여 변형한 문제 상황을 말한다. 이때, 상기 유사 문제 상황에는 변형된 문제 상황이 주어진 문제 상황과 동일한 경우도 포함된다.
반면, 문제 상태(Problem State)라 함은 문제 상황이 주어졌을 때, 문제를 구체적으로 명시하기 위한 가변적인 데이터들을 의미하는 것으로 문제 상황 정보를 포함하는 것으로 가정한다. 즉, 페트리넷의 경우, 문제 상태는 마킹에 해당된다. 상기의 잡샵 스케줄링 문제를 예로 들면, 각 과업 유형별 과업의 갯수, 각 기계 유형별 가용 기계의 댓수가 문제 상태가 된다.
또한, 유사 문제 상태라 함은, 주어진 문제 상태와 같은 문제 상황에 속한 문제 상태들 중에서 주어진 문제 상태와 같거나 유사한 문제 상태를 의미한다. 여기서, 주어진 문제 상태와 같거나 유사한 문제 상태라 함은, 주어진 문제 상태와 동일하거나, 그 구성 요소 값의 차이를 소정의 규칙에 의하여 수치화한 값이 미리 설정한 기준치에 미치지 못하는 경우를 말한다.
덧붙여 유사 마킹이라 함은, 특정 마킹이 주어졌을 때, 상기 주어진 특정 마킹이 일부 변경된다고 가정할 경우, 상기 주어진 특정 마킹과 변형된 마킹의 각 플레이스에 존재하는 토큰의 차이를 소정의 규칙에 의하여 수치화한 값이 미리 설정한 기준치에 미치지 못하는 경우의 변형된 마킹을 말한다. 마찬가지로, 상기 유사 마킹에는 변형된 마킹이 주어진 특정 마킹과 동일한 경우도 포함된다.
도 2는 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템(200)의 블록도를 도시하고 있다. 도 2에서 볼 수 있듯이, 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템(200)은 페트리넷 생성기(210), 유사 문제 상황 검출기(220), 발사 추천기(230), 발사 추천기 데이터베이스(240), 마킹 데이터베이스(250), 페트리넷 풀이기(260)를 포함하여 구성될 수 있다.
먼저 상기 페트리넷 생성기(210)에 대하여 살핀다. 페트리넷 생성기(210)는 주어진 문제 상황 및 문제 상태를 페트리넷으로 표현하여 생성한다. 이렇게 생성된 페트리넷에 발사 추천기(230)와 페트리넷 풀이기(260)를 적용하여 최적화 문제의 해를 구하게 된다. 주어진 문제 상황 및 문제 상태를 적절하게 페트리넷으로 변환할 수 있다면 종래의 페트리넷 생성기를 사용하는 것도 특별한 제한이 없이 가능하다.
이어서, 유사 문제 상황 검출기(220)에 대하여 살핀다. 유사 문제 상황 검출기(220)는 풀고자 하는 문제 상황이 주어졌을 때, 발사 추천기 데이터베이스(240)를 검색하여 주어진 문제 상황에 대한 유사 문제 상황을 찾고 이에 대한 단위 발사 추천기 집합을 검출해내게 된다. 이때, 상기 단위 발사 추천기 집합은 미리 생성되어 상기 발사 추천기 데이터베이스(240)에 저장되어 있는 단위 발사 추천기로 구성되는 바, 짧은 시간 안에 효율적으로 단위 발사 추천기 집합을 준비할 수 있게 된다. 또한 단위 발사 추천기 집합은, 특정 문제 상황에 대한 단위 발사 추천기가 하나 이상 존재하여 집합을 이루는 것을 말한다. 즉, 하나의 유사 문제 상황에 대한 단위 발사 추천기는 그 종류에 따라 복수개 존재할 수 있고, 이에 따라 단위 발사 추천기는 집합을 이루어 발사 추천기(230)를 구성할 수 있다. 예를 들어 단위 발사 추천기가 하나의 트랜지션에서의 발사 여부를 추천하는 경우, 하나의 문제 상황에 해당하는 문제를 풀기 위해서는 복수개의 트랜지션을 담당하는 복수개의 단위 발사 추천기로 이루어진 단위 발사 추천기 집합이 필요하게 된다.
다음으로, 발사 추천기(230)에 대하여 살핀다. 상기 발사 추천기(230)는 페트리넷의 특정 마킹에서 발사가능한 트랜지션 중 어느 트랜지션을 어떻게 발사할 것인가를 산정하게 된다. 또한, 컬러 페트리넷(CPN)의 경우는 트랜지션의 발사 여부 이외에도, 발사에 사용될 토큰들의 색깔도 추천할 수 있는 바, 이를 발사 방식에 대한 추천이라고 부른다. 여기에는, 순수 컬러 페트리넷(CPN) 이외에 시간 컬러 페트리넷(Timed Colored Petri Net), 계층 시간 컬러 페트리넷(Hierarchical Timed Colored Petri Net) 등 컬러 정보를 포함하는 경우도 포함될 수 있다. 상기와 같은 페트리넷의 특정 마킹에서 발사가능한 트랜지션 중 어느 트랜지션을 발사할 것인지에 대한 정보에 더하여, 컬러 페트리넷(CPN) 유형의 경우 필요한 어떤 색깔의 토큰들을 발사할 것인지 등 발사(firing)를 특정하기 위한 일련의 정보를 발사 트랜지션 정보라고 한다.
발사 추천기(230)는 앞서 살핀 바와 같이 하나 이상의 단위 발사 추천기로 이루어지는 단위 발사 추천기 집합을 포함하여 구성될 수 있다. 이때, 상기 단위 발사 추천기는 다음과 같은 3 종류의 유형을 가질 수 있다.
첫번째는 기계 학습에 기반한 단위 발사 추천기로서, 마킹 데이터베이스(250)에 기록된 데이터들을 학습 데이터(training data)로 사용하여 분류기(classifier)를 학습함으로써 학습된 분류기를 생성하고, 이를 추천기로 사용할 수 있는 바, 써포트 벡터 기계(Support Vector Machine) 또는 규칙 학습(Rule Learning)과 같은 기존에 알려진 기계 학습 기법을 사용하여 단위 발사 추천기를 구성하는 경우를 말한다.
보다 구체적으로 기계 학습에 기반한 단위 발사 추천기는 다시 두가지 방식으로 구성될 수 있는데, 하나는 페트리넷에 존재하는 각 트랜지션에 대하여 한 개의 분류기를 생성하는 방식으로 단위 발사 추천기를 구성하는 경우이고, 다른 하나는 충돌 트랜지션 집합 하나마다 한 개의 다중 클래스 분류기(Multi-class classifier)를 생성하여 단위 발사 추천기를 구성하는 방식이다. 여기서 다중 클래스 분류기라 함은, 복수 종류의 클래스(class)에 대하여 분류를 행할 수 있는 분류기(classfier)를 말하며, 이에 대해서는 종래의 기법을 활용하는 것도 가능하다.
이어서, 두번째는 유사 마킹에 기반한 단위 발사 추천기로서, 주어진 문제 상태에 대해서 최적화 문제의 해를 구하는 과정에서, 발사가능한 트랜지션의 발사 여부 및 발사 트랜지션 정보를 유사 마킹의 경우를 검색하여 결정하게 된다. 보다 구체적으로는 주어진 문제 상황에 해당하는 마킹 데이터베이스(250)에서, 현재 결정하고자 하는 마킹에 대한 유사 마킹의 경우를 검색하고, 상기 유사 마킹의 경우에서 발사된 트랜지션 정보들을 사용하여 종래 일반적으로 많이 사용되는 기술인 협업 필터링(CF: Collaborative Filtering) 방식 또는 k-NN(Nearest Neighbor) 등의 기법을 적용함으로써 발사할 트랜지션 및 발사 방식을 포함하는 발사 트랜지션 정보를 추천하게 된다.
즉, 해 생성 과정 중에 특정 마킹(m)에서의 발사가능한 트랜지션에 대한 발사 여부 및 발사 방식을 포함하는 발사 트랜지션 정보의 결정은, 주어진 문제 상황에 속한 마킹 데이터베이스(250)의 마킹들 중에서 특정 마킹(m)과 같은 마킹이 있을 때에는 그 경우 발사된 트랜지션과 수행된 발사 방식을 추천하고, 같은 마킹이 없을 경우에는, 특정 마킹(m)에서의 발사가능 트랜지션 집합과 같은 발사가능 트랜지션 집합을 가진 마킹들 중에서 유사 마킹들을 마킹 데이터베이스(250)로부터 검출한 후, 협업 필터링(CF) 또는 k-NN 방식을 이용하여 발사할 트랜지션 및 발사 방식을 포함하는 발사 트랜지션 정보를 산정하여 추천하거나, 특정 마킹(m)에서 발사가능한 각각의 트랜지션(t)에 대해서, 마킹 데이터베이스(250) 내에서 각 트랜지션(t)을 발사한 마킹들을 검출한 다음, 이들 중 가장 유사한 마킹을 선택한 후, 모든 발사가능 트랜지션들에 대해서 각각의 트랜지션에 대해 선택된 마킹들 중 가장 유사한 마킹에 해당하는 마킹에서의 발사된 트랜지션 및 발사 방식을 포함하는 발사 트랜지션 정보를 추천할 수 있다.
또 다른 방식으로, 발사 추천을 위해서 해 생성 과정 중에 특정 마킹(m)에 포함된 충돌 트랜지션 집합들을 구한 후에, 마킹 데이터베이스(250)에서 특정 마킹(m)과 가장 유사한 충돌 트랜지션 집합을 가지고 있는 유사 마킹을 검출한 후, 검출된 마킹에서 발사된 트랜지션 및 수행된 발사 방식 등 발사 트랜지션 정보를 추천할 수도 있다.
세번째로는 하이브리드 방식의 단위 발사 추천기를 들 수 있다. 하이브리드 방식의 단위 발사 추천기는 상기 기계학습에 기반한 단위 발사 추천기와 유사 마킹에 기반한 단위 발사 추천기를 혼합하여 사용하는 발사 추천기(230)이다. 상기 단위 발사 추천기는 페트리넷 풀이기(260)를 통하여 해를 생성하는 과정 중에, 특정 마킹(m)에서의 발사가능한 트랜지션의 발사 여부 및 발사 방식을 포함하는 발사 트랜지션 정보를, 특정 마킹(m)과 같거나 매우 유사한 마킹들이 해당 문제 상황에 속한 마킹 데이터베이스(250)에서 검출될 경우에는 상기 유사 마킹에 기반한 단위 발사 추천기를 사용하여 발사할 트랜지션 및 발사 방식 등 발사 트랜지션 정보를 추천하고, 그렇지 않을 경우에는 상기 기계 학습에 기반한 단위 발사 추천기의 결과를 따르는 형태를 취하거나, 기계 학습에 기반한 단위 발사 추천기의 추천 결과와 유사 마킹에 기반한 단위 발사 추천기의 결과를 종합(ensemble)하여 사용하는 형태를 취할 수 있다. 복수 개의 추천기의 추천 결과를 종합하는 기법에 대해서는 기존 데이터마이닝 분야에서 다양한 기법이 제안되어 있다.
다음으로 발사 추천기 데이터베이스(240)에 대하여 살핀다. 발사 추천기 데이터베이스(240)는 앞서 살핀 바와 같이 다양한 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있다. 상기 발사 추천기 데이터베이스(240)는 주어진 문제 상황 및 문제 상태에 대하여 페트리넷 생성기(210)를 통하여 페트리넷을 구성하고, 이를 구동하여 해를 구함에 있어서, 상기 주어진 문제 상황에 대한 유사 문제 상황에 해당하는 단위 발사 추천기 집합을 검출하여 상기 발사 추천기(230)를 구성함으로써, 이를 이용해서 상기 페트리넷 풀이기(260)를 통하여 해를 신속하고 정확하게 풀 수 있도록 해준다. 이때, 상기 단위 발사 추천기 집합은 단위 발사 추천기의 종류에 따라 복수개의 단위 발사 추천기가 포함되어 상기 발사 추천기(230)가 구성될 수 있다는 것을 의미한다. 예를 들어, 기계 학습에 기반한 단위 발사 추천기의 경우 각 트랜지션 마다 하나의 써포트 벡터 기계(SVM)를 이용한 단위 발사 추천기가 생성될 수 있어, 주어진 문제 상황에 따른 페트리넷의 트랜지션 수만큼 단위 발사 추천기가 사용될 수 있다.
다음으로, 마킹 데이터베이스(250)에 대하여 살핀다. 마킹 데이터베이스(250)는 유사 문제 상황 및 그에 대한 다양한 문제 상태에 대하여 페트리넷을 구성하고, 상기 유사 문제 상황에 속한 문제 상태에 대해 종래의 최적화기(optimizer)를 사용하여 기생성한 해(solution)에 명시된 의사 결정을 따라서 페트리넷을 구동시키면서 각 마킹에서 각각의 발사가능한 트랜지션들에 대해서 발사 여부 및 수행된 발사 방식을 포함하는 발사 트랜지션 정보를 기록하여 구성하게 된다. 기본 페트리넷의 경우 각 문제 상황별 마킹 데이터베이스(250)의 구조는 다음과 같이 구성될 수 있다. 이때, ID는 고유한 식별자를 의미한다.
(문제 상태 ID, 마킹, 발사가능 트랜지션 ID, 발사 여부)
여기서, 컬러 페트리넷(CPN)의 경우, 상기 마킹 데이터베이스(250)의 구조에 발사 방식에 대한 정보가 추가될 수 있다.
주어진 해에 대해서 페트리넷을 이용한 구체적인 마킹 생성 방식 및 마킹 데이터베이스(250)의 형태는 사용되는 페트리넷의 종류와 문제 상황에 따라 달라질 수 있다.상기 마킹 데이터베이스(250)는 유사 마킹에 기반한 단위 발사 추천기 또는 하이브리드 방식의 단위 발사 추천기에서 특정 마킹에 대한 유사 마킹을 검색할 때에 사용될 수 있다.
마지막으로 페트리넷 풀이기(260)에 대하여 살핀다. 상기 페트리넷 풀이기(260)는 생성된 페트리넷을 구동하면서 해를 생성하는 바, 구체적으로 초기 마킹으로부터 시작하여 발사가능한 트랜지션을 발사하고, 새로운 마킹으로 전이하는 과정을 반복하면서 해를 생성하게 되는데, 임의의 마킹에서 한 개 이상의 트랜지션이 발사가능할 경우, 해당 문제 상황에 대해서 선택된 발사 추천기(230)를 이용하여, 해당 마킹에서 발사할 트랜지션과 발사 방식 등 발사 트랜지션 정보를 선택하는 방법을 따른다.
이와 같은 방식으로 페트리넷을 구동하면서 그 결과로 얻어진 데이터로부터 주어진 최적화 문제의 해를 구성하는 방법은 다양한데, 문제의 특징 및 사용된 페트리넷의 종류에 따라, 페트리넷 구동 과정에서 얻어진 트랜지션의 발사 시퀀스가 해가 될 수도 있고, 각 트랜지션의 발사 싯점이 해가 될 수도 있으며, 생성된 마킹의 시퀀스가 해가 될 수도 있다. 덧붙여, 해의 생성 과정에서 발사 추천기(230)로부터 추천 결과를 구하는 방식은 쉽게 병렬화가 가능함은 자명하다.
또한, 위의 해 생성 과정 중에서, 하나의 마킹에 대해서, 검출된 단위 발사 추천기 집합에 속한 단위 발사 추천기들로부터 추천된 트랜지션이 하나가 아니고 여러 개일 경우에는 통상적인 방법으로 가장 추천 오류가 작다고 여겨지는 단위 발사 추천기의 추천을 선택할 수도 있다.
예를 들어, 상기의 A 공장 스케줄링 문제에서 도 6과 같은 페트리넷이 페트리넷 생성기(210)를 통해서 생성되었다고 가정하자. 각 트랜지션마다 써포트 벡터 기계(SVM) 기반의 단위 발사 추천기가 존재하는 경우를 고려하면, 도 6의 마킹에서 t1을 담당하는 단위 발사 추천기는 t1을 발사할 것을 추천하고, t4를 담당하는 단위 발사 추천기는 t4를 발사할 것을 추천할 수 있는데, 이때, 가장 큰 마진(margin)으로 추천 여부를 분류한 단위 발사 추천기의 추천 결과를 따르는 방식을 취할 수 있다.
나아가, 본 발명은 최적화 시스템이 최적화 문제의 모든 제약식을 고려하지 않는 경우에도 적용 가능한 바, 이 경우, 최적화 시스템은 문제의 주요 제약식 만을 고려해서 해를 구하고, 상기의 주요 제약식과 나머지 모든 제약식들은 페트리넷에 반영하여 해를 구하는 방식을 택할 수도 있다.
또한, 본 발명은 페트리넷 뿐만 아니라, 페트리넷으로 변환이 가능한 다양한 형식 모형(formal model)에도 적용이 가능하다. 이러한 상기 페트리넷으로 변환이 가능한 형식 모형의 예로서, Automata, Process Algebra, Labelled Transition System, Vector Addition System with States, Trace Theory, Temporal Logic, State Chart, Linear Logic, Context Free Grammar, Grafcet 등을 들 수 있다. 이때, 상기와 같은 형식 모형을 페트리넷으로 변환해주는 페트리넷 변환기를 더 포함하여 본 발명에 따르는 페트리넷과 발사 추천기를 이용한 최적화 시스템(200)을 구성할 수 있다.
또한, 본 발명은 최적화 문제에 대한 해를 구할 때에 사용될 수 있을 뿐 만 아니라, 의사결정을 실시간으로 내려야 하는 온라인 최적화 문제나 이산 사건 시스템(Discrete Event System)의 제어 문제에도 적용 가능하다.
예를 들어, 자동화된 공장의 물류 운반 시스템의 경우, 그 작동 방식은 미리 계획을 생성하여 계획을 따라 그대로 운용되기 보다는, 실시간으로 그때 그때의 상황에 따라 보다 적합한 의사 결정을 내리는 것이 바람직하다. 이러한 실시간 제어 문제에 대해서는 본 발명에서 제안한 페트리넷과 발사 추천기를 이용한 최적화 시스템(200)을 단편적으로 최적화 문제의 해 생성을 위해서 사용하기 보다는, 실제 상황에 기반하여 마킹을 실시간으로 업데이트 하면서, 발사 추천기(230)에 의거하여 트랜지션을 발사함으로써 시스템을 효과적으로 실시간 제어하는 문제에 적용하는 것이 보다 적절하다.
도 3은 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템(200) 구현 방법의 순서도를 도시하고 있다. 도 3에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기에 기반한 최적화 시스템(200) 구현 방법은 문제 상황에 대한 유사 문제 상황들을 생성하는 단계(S310), 각 유사 문제 상황에 대한 문제 상태들 및 이들을 표현하는 페트리넷들을 생성하는 단계(S320), 유사 문제 상황 및 그에 대한 각 문제 상태들에 대하여 종래 최적화기를 사용하여 해를 구하고, 이를 이용하여 해 데이터베이스(420)를 생성하는 단계(S330), 생성된 해 데이터베이스(420)의 해 정보를 앞서 생성된 페트리넷의 입력으로 사용하여, 해에 명시된 의사결정 대로 페트리넷을 구동시키면서, 각 마킹에서 각각의 발사가능한 트랜지션들에 대하여 발사 여부 및 발사 방식 등 발사 트랜지션 정보를 기록하여 마킹 데이터베이스(250)를 생성하는 단계(S340), 상기 마킹 데이터베이스(250)를 이용하여 페트리넷의 임의의 마킹에서 발사가능한 트랜지션들 중에서 어느 트랜지션을 어떻게 발사할 것인가를 산정하는 발사 추천기(230) 및 발사 추천기 데이터베이스(240)를 생성하는 단계(S350), 및 상기한 단계를 거쳐 생성된 모듈들을 포함하여 페트리넷과 발사 추천기를 이용한 최적화 시스템(200)을 구성하는 단계(S360)를 포함하여 구성될 수 있다.
먼저, 문제 상황에 대한 유사 문제 상황들을 생성하는 단계(S310)에 대하여 살핀다. 기존에 존재하는 문제 상황에 더하여 유사 문제 상황을 생성함으로써 보다 다양한 경우에 적용할 수 있는 효율적이고 실용성 있는 최적화 시스템을 구현할 수 있게 된다. 이를 위해서는 우선 적절한 유사 문제 상황을 생성하는 것이 중요한데, 실제 상황에서 발생할 개연성이 큰 문제 상황을 중심으로 하여 다양한 유사 문제 상황을 포함시키는 것이 바람직하다.
유사 문제 상황을 적절하게 선정하기 위한 한 방편으로, 기존에 당해 문제에 대해 존재하였던 다양한 문제 상황에 대한 데이터를 수집하여 사용하는 방법을 들 수 있다. 이러한 문제 상황이 너무 많을 경우, 상기 문제 상황의 데이터를 소정의 규칙을 적용하여, 문제 상황의 대표치를 사용하거나 문제 상황의 데이터를 클러스터링(clustering)하여 사용하거나, 복수의 문제 상황 데이터에 대한 중간값(median)을 사용하는 방법, 문제 상황의 발생 빈도를 기준으로 문제 상황을 추리는 방법 등을 사용할 수 있다.
또한, 상기 유사 문제 상황을 선정함에 있어, 기존에 당해 문제에서 존재하였던 상황에 대한 문제 상황과 별도로, 향후 중대하게 변경될 것으로 예상되는 경우에 대한 문제 상황을 포함하는 것도 바람직하다.
유사 문제 상황의 생성에 대하여, 앞서 살핀 A 공장의 스케줄링 문제를 예로 설명하면, 주어진 문제 상황은 PC0 = <M1, M2, J1<o11<M1, 1>, o12<M2, 2>>, J2<o21<M1, 3>>>와 같이 나타내어질 수 있고, 유사 문제 상황으로는o11의 공정시간이 변경된 PC1 = <M1, M2, J1<o11<M1, 2>, o12<M2, 2>>, J2<o21<M1, 3>>> 또는 과업 유형 J3 1개가 추가된 PC2 = <M1, M2, J1<o11<M1, 1>, o12<M2, 2>>, J2<o21<M1, 3>>, J3<o31<M1, 2>>> 또는 과업 유형J2 1개가 삭제된 PC3 = <M1, M2, J1<o11<M1, 1>, o12<M2, 2>>> 등이 정의될 수 있다.
이어서, 각 유사 문제 상황에 대한 문제 상태들을 생성하는 단계(S320)에 대하여 살핀다. 앞서 살핀 바와 같이, 유사 문제 상황들이 주어지면, 각각에 대하여 변동 가능성이 있는 문제 상태를 산정하고, 그 값들을 조금씩 변경해 가면서 복수의 문제 상태들을 생성하게 된다.
상기 문제 상태에는 문제 상황의 항목 중 변동이 가능한 항목들을 포함하여 구성될 수 있으며, 또한 이는 앞서 살핀 경우와 유사하게 기존의 문제에서 존재하였던 다양한 상황을 바탕으로 그 변동 가능성 및 변동치를 산정하는 것이 바람직하다.
유사 문제 상황의 문제 상태에 대한 예로서, 마찬가지로 앞서 살핀 A공장의 경우를 계속하여 살핀다. 주어진 문제 상태가 PS0 = <1*M1, 1*M2, 1*J1<o11<M1, 1>, o12<M2, 2>>, 1*J2<o21<M1, 3>>>과 같이 각 기계 유형별 댓수가 1대씩이고, 각 과업 유형별 갯수가 1개씩 있는 상태이므로, 유사 문제 상태로는 생산해야할 제품 J1 한개가 더 추가된 PS1 = <1*M1, 1*M2, 2*J1<o11<M1, 1>, o12<M2, 2>>, 1*J2<o21<M1, 3>>> 또는 기계 유형 M2의 가용 기계 댓수 한대가 더 증가한 PS2 = <1*M1, 2*M2, 1*J1<o11<M1, 1>, o12<M2, 2>>, 1*J2<o21<M1, 3>>> 등이 그 예가 될 수 있다. PS2를 페트리넷으로 표현해보면 도 6과 같이 기계 유형 M2에 해당하는 플레이스 p7에 토큰이 한 개 더 추가된 형태로 표현되는 바, 마킹이 (1, 0, 0, 1, 0, 1, 2)인 상태에 해당된다.
다음으로, 유사 문제 상황 및 그에 대한 각 문제 상태들에 대하여 소정의 최적화기(410)를 사용하여 해를 구하고, 이를 이용하여 해 데이터베이스(420)를 생성하는 단계(S330)를 거친다. 도 4는 본 발명의 일 실시예에 따른 해 데이터베이스(420)의 생성 과정을 보여주고 있다. 유사 문제 상황에 대한 각 문제 상태의 생성이 완료되면, 소정의 최적화기(410)를 이용하여 유사 문제 상황에 대한 각 문제 상태에 해당되는 문제들을 풀고, 그 해를 아래와 같은 구조의 해 데이터베이스(420)에 기록한다. 상기 최적화기(410)로서는 종래 기술에 의한 최적화기(410)를 사용하는 것도 가능하다. 각각의 유사 문제 상황에 대한 문제 상태들에 대한 해는 독립적으로 구해질 수 있으므로, 해 데이터베이스(420) 구축 과정은 쉽게 병렬화가 가능하다.
(유사 문제 상황 ID, 문제 상태 ID, 해 ID)
이때, 본 발명에서 제안하는 페트리넷과 발사 추천기에 기반한 최적화 시스템(200)은 유사 문제 상황에 속한 각 문제 상태에 대하여 소정의 최적화기(410)를 이용하여 생성하는 해들의 데이터베이스를 기반으로 하는 바, 여기서 최적화기(410)란 반드시 최적해를 계산해주는 혼합정수계획법(Mixed Integer Programming)과 같은 수리적 최적화 기법일 필요는 없으며, 유전 알고리즘과 같은 메타휴리스틱 기반의 기법에 기반할 수도 있고, 경우에 따라서는 일반 휴리스틱(Heuristic) 기법 기반의 알고리즘도 컴퓨터 프로그램화되어 문제에 대한 좋은 성능의 해를 생성하는 데에 사용될 수 있다.
상기 A공장의 스케줄링 문제의 예로 설명하면, 유사 문제 상황PC0에 속하는 문제 상태PS0에 대해 총 작업 완료 시간 최소화를 목표로 한 스케줄은 o11을 M1에서 0시에 시작해서 1시에 끝내고, o12를 M2에서 1시에 시작해서 3시에 끝내고, o21을 M1에서 1시에 시작해서 4시에 끝내는 스케줄 일 수 있고, 이때, 스케줄 S0 = <<o11, M1, 0>, <o12, M2, 1>, <o21, M1, 1>>와 같이 시작 시간 만을 표시해서 표현할 수 있다. 즉, 이 경우 해 데이터베이스(420)에는 <PC0, PS0, S0>와 같이 기록되게 된다.
다음으로, 생성된 해 데이터베이스(420)의 해 정보를, 전술한 단계(S320)에서 생성된 페트리넷의 입력으로 사용하여, 해에 명시된 대로 페트리넷을 구동시키면서, 각 마킹에서 각각의 발사가능한 트랜지션들에 대하여 발사 여부 및 발사 방식을 포함하는 발사 트랜지션 정보를 기록하여 마킹 데이터베이스(250)를 생성하는 단계(S340)를 검토한다.
먼저, 앞선 단계(S320)에서 유사 문제 상황 정보와 이에 대한 문제 상태 정보에 맞게 페트리넷 생성기(210)를 통해서 페트리넷을 구성하였는 바, 예를 들어, 상기의 PC0와 PS0에 해당되는 페트리넷을 구성하면, 도 1과 같게 될 것이다.
페트리넷이 구성되면, 해 데이터베이스(420)에 있는 각각의 해에 대해서, 해의 정보를 사용하여 해에 명시된 대로 페트리넷을 구동시키는 바 (이하, 이를 해의 디코딩(decoding)이라고 부른다.), 각 마킹에서 각각의 발사가능한 트랜지션들에 대해서 해에 명시된 바에 따라 발사 여부 및 발사 방식 등 발사 트랜지션 정보를 기록하며, 이를 반복하는 방식으로 마킹 데이터베이스(250)를 구축한다. 기본 페트리넷(OPN)의 경우, 하나의 유사 문제 상황에 대한 마킹 데이터베이스(250)의 구조는 다음과 같이 구성될 수 있다.
(문제 상태 ID, 마킹, 발사가능 트랜지션 ID, 발사 여부)
또한, 구체적인 페트리넷의 구동 방식 및 마킹 데이터베이스(250)의 형태는 사용되는 페트리넷의 종류에 따라 조금씩 다른데, 예를 들어, 컬러 페트리넷(CPN)을 사용할 경우, 상기 마킹 데이터베이스(250)에는 발사된 트랜지션 정보 이외에도 발사 방식, 즉, 발사에 사용된 토큰들의 색깔도 함께 기록되어야 한다.
또한, 페트리넷의 디코딩에 있어서 시간 페트리넷(TPN)의 경우에는 시간 정보를 페트리넷에서 활용 가능하므로, 해에 시간 정보가 포함되어 있을 경우에, 시간 정보도 활용하여 페트리넷을 구동하는 것이 가능하나, 기본 페트리넷(OPN)의 경우에는 시간을 고려할 수 없으므로, 상기 A공장의 스케줄링 문제의 경우, 해에서 시간 정보를 제외한 순서 정보만을 사용하여 페트리넷을 디코딩하게 된다.
구체적으로, 기본 페트리넷(OPN)을 사용한 마킹 데이터베이스(250) 생성 과정을 앞서 살핀 A 공장의 스케줄링 문제로 설명하면 다음과 같다. 먼저, 스케줄 S0의 경우, o11과 o21이 모두 M1을 필요로 하는 상황에서, M1은 o11에 먼저 할당되므로, 주어진 초기 마킹 m0 = (1, 0, 0, 1, 0, 1, 1)에 대해서 S0에 명시된 순서를 따라서, 발사가능한 t1과 t4 중에서, t1을 발사하게 되고, 이를 마킹 데이터베이스(250)에 (PS0, m0, t1, Yes), (PS0, m0, t4, No)과 같이 기록하고, 새로운 마킹 m1 = (0, 1, 0, 1, 0, 0, 1)으로 전이하게 된다. m1에서는 t2만이 발사가능하므로, t2를 발사하면, 이를 마킹 데이터베이스(250)에 (PS0, m1, t2, Yes)와 같이 기록하고, 새로운 마킹 m2 = (0, 0, 1, 1, 0, 1, 0)로 전이하게 된다. m2에서는 t3과 t4가 동시 발사가능한 바, 두 개의 사건에 대해서는 S0에서 t4가 t3에 우선하므로, t4를 발사하게 되면, 마킹 데이터베이스(250)에는 (PS0, m2, t3, No)와 (PS0, m2, t4, Yes)가 기록되고, 새로운 마킹 m3 = (0, 0, 1, 0, 1, 0, 0)으로 전이하게 된다.
이같은 방식으로, 주어진 해를 처음부터 끝까지 모두 디코딩하여, 마킹 데이터베이스(250)를 구축하며, 본 구축 과정을 해 데이터베이스(420)에 기록된 각 유사 문제 상황에 속한 모든 문제 상태에 대해서 적용한다. 본 마킹 데이터베이스(250) 구축 과정도 각 문제 상태 별로 독립적으로 진행될 수 있으므로, 쉽게 병렬화가 가능하다.
이어서, 상기 마킹 데이터베이스(250)를 이용하여, 페트리넷의 임의의 마킹에서 발사가능한 트랜지션들 중에서 어느 트랜지션을 어떻게 발사할 것인가를 산정하는 발사 추천기(230) 및 발사 추천기 데이터베이스(240)를 생성하는 단계(S350)에 대하여 살핀다.
도 5는 본 발명의 일 실시예에 따른 발사 추천기(230)의 생성 과정을 보여 주고 있다. 발사 추천기(230)란, 해 데이터베이스(420)의 구축에 사용된 최적화기의 의사결정 방식과 패턴을 페트리넷에서 최대한 비슷하게 모사(simulation)하기 위해서, 페트리넷의 임의의 마킹에서 발사가능한 트랜지션들 중에서 어느 트랜지션을 어떻게 발사할 것인가를 산정하는 기능을 하는 바, 구체적인 산정 내용은 페트리넷의 종류에 따라 다를 수 있다. 예를 들어, 기본 페트리넷(OPN)의 경우에는 특정 마킹에서 발사해야 할 트랜지션을 산정하고, 컬러 페트리넷(CPN)에서는 특정 마킹에서 발사해야 할 트랜지션과 함께 발사에 사용될 입력 토큰들의 색깔을 산정하는 역할을 수행한다.
상기 발사 추천기(230)는 단위 발사 추천기의 집합을 포함하여 구성될 수 있다. 단위 발사 추천기의 종류에 따라서 하나의 유사 문제 상황에 대하여 복수개의 단위 발사 추천기 필요한 경우가 있으므로, 이러한 경우 상기 발사 추천기(230)는 복수의 단위 발사 추천기 집합을 포함하여 구성되게 된다.
구체적으로 상기 마킹 데이터베이스(250)가 구축되면, 단위 발사 추천기를 구성할 수 있는 바, 다음과 같이 3 가지 유형의 단위 발사 추천기를 구성할 수 있다.
(1) 기계학습에 기반한 단위 발사 추천기
마킹 데이터베이스(250)에 기록된 데이터들을 학습 데이터로 사용하여, 써포트 벡터 기계(Support Vector Machine), 또는 규칙 학습(Rule Learning) 등과 같은 기법으로 분류기(classifier)를 학습함으로써 단위 발사 추천기를 구성할 수 있다.
단위 발사 추천기들의 생성은 각 유사 문제 상황마다 별도의 마킹 데이터베이스(250)를 이용하여 이루어질 수도 있고, 새롭지만 기존과 비슷한 문제 상황이 있을 경우 트랜스퍼 학습(transfer learning) 기법을 이용하여, 기존의 추천기들을 수정하여 사용할 수도 있다.
각 유사 문제 상황에 속하는 모든 문제 상태에 대한 마킹 데이터베이스(250)를 이용하여 단위 발사 추천기들을 생성할 경우, 이를 발사 추천기 데이터베이스(240)로 구성하여 관리하는 것이 적절하며, 그 단위 구조는 다음과 같이 구성될 수 있다.
(유사 문제 상황 ID, 학습된 추천기 집합)
써포트 벡터 기계(SVM) 기반의 단위 발사 추천기와 기본 페트리넷(OPN)을 예로 들어 설명하면, 가장 간단한 방법으로 마킹 데이터베이스(250)의 마킹 벡터를 써포트 벡터 기계(SVM)의 피쳐 벡터로 사용하는 경우를 들 수 있다.
이 때, 두 가지 방식의 단위 발사 추천기가 가능한데, 첫번째 방식은 페트리넷에 존재하는 트랜지션 한 개에 대해서 한 개의 써포트 벡터 기계(SVM)을 생성하는 방식으로서, 임의의 마킹에서 각 트랜지션의 발사 여부를 하나-대-나머지(one-vs-all) 방식으로 학습하는 것이다. 이 경우, 각 마킹에서의 트랜지션 발사 여부를 클래스(class)의 레이블로 사용한다.
두번째 방식으로는 충돌 트랜지션 집합 한 개마다 한 개의 다중 클래스 써포트 벡터 기계(Multi-Class SVM)를 생성하는 방식을 들 수 있는데, 이 경우, 임의의 충돌 트랜지션 집합에 대한 써포트 벡터 기계(SVM)의 클래스 레이블은 충돌 트랜지션 집합에 속한 각각의 트랜지션에 해당된다.
첫번째 방식은 학습시켜야 할 써포트 벡터 기계(SVM)의 갯수가 많다는 단점이 있는 반면, 문제의 상태 정보를 보다 많이 활용할 수 있는 장점이 있으며, 두번째 방식은 학습시켜야 할 써포트 벡터 기계(SVM)의 갯수는 첫번째 방식 보다 적으나, 문제의 상태 정보를 덜 활용한다는 단점이 있다.
추가로, 기본 페트리넷(OPN)이 아닌 컬러 페트리넷(CPN)의 경우, 발사할 트랜지션을 추천하는 기능 이외에도 추천된 트랜지션 중에서 어떤 색깔의 토큰들을 사용하여 발사할지를 추천하는 분류기의 학습이 필요하다.
또한, 분류기의 피쳐 벡터로써, 마킹 정보뿐만 아니라, 해당 마킹에 도달하기까지 발사된 트랜지션들의 시퀀스 및 다양한 문제 상황 정보 및 문제 상태 정보들 (예를 들면, 스케줄링 문제에서 작업 시간들을 추가 피쳐로 활용)을 추가적인 피쳐로 사용하는 것도 가능하다. 이 경우 써포트 벡터 기계(SVM)의 커널(kernel)은 하이브리드(hybrid) 커널의 형태를 가질 수 있다. 앞서 언급한 바와 같이, 단위 발사 추천기들의 학습 과정은 쉽게 병렬화가 가능하다.
(2) 유사 마킹에 기반한 단위 발사 추천기
유사 마킹에 기반한 단위 발사 추천기에서는, 문제 상황이 주어지고, 이에 속한 문제 상태에 대해서 페트리넷과 발사 추천기 기반의 최적화 시스템(200)을 통하여 해를 생성하는 과정에서, 발사가능한 트랜지션의 발사 여부 및 발사 방식 등 발사 트랜지션 정보를 결정함에 있어, 주어진 문제 상황과 유사한 문제 상황에 대하여 생성된 마킹 데이터베이스(250)를 이용하여 결정한다.
즉, 해 생성 과정 중에 특정 마킹(m)에서의 발사가능한 트랜지션에 대한 발사 여부 및 발사 방식 등 발사 트랜지션 정보의 결정은, 주어진 문제 상황에 속한 마킹 데이터베이스(250)의 마킹들 중에서 특정 마킹(m)과 같은 마킹이 있을 때에는 그 경우 발사된 트랜지션과 수행된 발사 방식 등 발사 트랜지션 정보를 산정하여 추천하고, 같은 마킹이 없을 경우에는, 특정 마킹(m)에서의 발사가능 트랜지션 집합과 같은 발사가능 트랜지션 집합을 가진 마킹들 중에서 유사 마킹들을 마킹 데이터베이스(250)로부터 검출한 후, 협업 필터링(CF) 또는 k-NN 방식을 이용하여 발사할 트랜지션 및 발사 방식 등 발사 트랜지션 정보를 산정하여 추천하거나, 특정 마킹(m)에서 발사가능한 각각의 트랜지션(t)에 대해서, 마킹 데이터베이스(250) 내에서 각 트랜지션(t)을 발사한 마킹들을 검출한 다음, 이들 중 가장 유사한 마킹을 선택한 후, 모든 발사가능 트랜지션들에 대해서 각각의 트랜지션에 대해 선택된 마킹들 중 가장 유사한 마킹에 해당하는 마킹에서의 발사된 트랜지션 및 발사 방식 등 발사 트랜지션 정보를 산정하여 추천할 수 있다.
또 다른 방식으로, 발사 추천을 위해서 해 생성 과정 중에 특정 마킹(m)에 포함된 충돌 트랜지션 집합들을 구한 후에, 주어진 문제 상황에 속한 마킹 데이터베이스(250)에서 특정 마킹(m)과 가장 유사한 충돌 트랜지션 집합을 가지고 있는 마킹을 검출한 후, 검출된 마킹에서 발사된 트랜지션 및 수행된 발사 방식 등 발사 트랜지션 정보를 산정하여 추천할 수도 있다.
(3) 하이브리드 방식의 단위 발사 추천기
하이브리드 방식의 단위 발사 추천기는 상기의 기계 학습에 기반한 단위 발사 추천기와 유사 마킹에 기반한 단위 발사 추천기를 혼합하여 사용하는 추천기로써, 페트리넷 풀이기(260)를 통하여 해를 생성하는 과정 중에, 특정 마킹(m)에서의 발사가능한 트랜지션의 발사 여부 및 발사 방식 등 발사 트랜지션 정보를, 특정 마킹(m)과 같거나 매우 유사한 유사 마킹이, 해당 문제 상황에 속한 마킹 데이터베이스(250)에서 검출될 경우에는 유사 마킹에 기반한 단위 발사 추천기를 사용하여 발사할 트랜지션 및 발사 방식 등 발사 트랜지션 정보를 추천하고, 그렇지 않을 경우에는 기계학습에 기반한 단위 발사 추천기의 결과를 따르는 형태를 취하거나, 기계학습에 기반한 단위 발사 추천기의 추천 결과와 유사 마킹에 기반한 단위 발사 추천기의 결과를 종합(ensemble)하여 사용하는 형태를 취할 수 있다.
마지막으로, 상기한 단계를 거쳐 생성된 모듈들을 포함하여 페트리넷과 발사 추천기를 이용한 최적화 시스템(200)을 구성하는 단계(S360)를 거친다. 앞서 살핀 일련의 단계를 거치면서 생성된 해 데이터베이스(420), 마킹 데이터베이스(250), 발사 추천기(230) 및 발사 추천기 데이터베이스(240)에 더하여, 페트리넷 생성기(210), 유사 문제 상황 검출기(220), 페트리넷 풀이기(260)를 포함하여 본 발명의 일 실시예에 따른 페트리넷과 발사 추천기를 이용한 최적화 시스템(200)을 구성할 수 있게 된다.
본 발명의 또 다른 실시예로서 페트리넷과 발사 추천기(230)를 이용한 최적화 방법은 (A) 주어진 문제 상황 및 문제 상태에 대하여 페트리넷을 생성하는 단계; (B) 발사 추천기 데이터베이스(240)를 검색하여, 상기 주어진 문제 상황 및 문제 상태에 대한 유사 문제 상황 및 이에 대한 단위 발사 추천기 집합을 검출하는 단계; 및 (C) 상기 페트리넷을 구동하면서 상기 단위 발사 추천기 집합을 이용하여 그 해를 구하는 단계를 포함하여 구성될 수 있다.
상기 (A) 단계에서는 주어진 문제 상황 및 문제 상태를 고려하여 그에 대응하는 페트리넷을 생성하게 되고, 이어서 (B) 단계에서는 상기 주어진 문제 상황 및 문제 상태에 대하여 발사 추천기 데이터베이스(240)를 검색하여 유사 문제 상황을 검출하고 그에 대한 단위 발사 추천기 집합을 도출해 내게 된다. 이어서 (C) 단계에서는 상기 페트리넷을 구동하면서 상기 단위 발사 추천기 집합을 이용하여 그 해를 산출해 내게 된다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
200 : 페트리넷과 발사 추천기를 이용한 최적화 시스템
210 : 페트리넷 생성기
220 : 유사 문제 상황 검출기
230 : 발사 추천기
240 : 발사 추천기 데이터베이스
250 : 마킹 데이터베이스
260 : 페트리넷 풀이기
410 : 종래 기술에 의한 최적화기
420 : 해 데이터베이스
210 : 페트리넷 생성기
220 : 유사 문제 상황 검출기
230 : 발사 추천기
240 : 발사 추천기 데이터베이스
250 : 마킹 데이터베이스
260 : 페트리넷 풀이기
410 : 종래 기술에 의한 최적화기
420 : 해 데이터베이스
Claims (20)
- 문제 상황 및 문제 상태가 주어졌을 때,
상기 주어진 문제 상황에 대한 유사 문제 상황을 발사 추천기 데이터베이스에서 검색하여,
그에 대응하는 단위 발사 추천기 집합을 검출하는 유사 문제 상황 검출기;
상기 단위 발사 추천기 집합을 사용하여 페트리넷의 특정 마킹에서의 발사 여부, 또는 발사 트랜지션 정보를 추천하는 발사 추천기; 및
상기 발사 추천기를 이용하여 상기 주어진 문제 상황 및 문제 상태에 대하여 생성된 페트리넷을 구동함으로써,
상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 페트리넷 풀이기(solver)를 포함하며,
상기 발사 추천기 데이터베이스는 상기 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있는 것을 특징으로 하는 최적화 시스템. - 제1항에 있어서,
상기 페트리넷이 컬러 페트리넷인 경우,
상기 단위 발사 추천기가 상기 페트리넷에서 특정 마킹에서의 발사 트랜지션 정보를 추천함에 있어,
발사할 트랜지션에 더하여 어떤 색깔의 토큰을 발사할 것인지도 추천하는 것을 특징으로 하는 최적화 시스템. - 제1항에 있어서,
상기 단위 발사 추천기는,
기계 학습에 기반한 단위 발사 추천기이거나,
유사 마킹에 기반한 단위 발사 추천기이거나,
상기 양 추천기를 선택적으로 이용하는 하이브리드 방식의 단위 발사 추천기인 것을 특징으로 하는 최적화 시스템. - 제3항에 있어서,
상기 단위 발사 추천기가 유사 마킹에 기반한 단위 발사 추천기이거나, 하이브리드 방식의 단위 발사 추천기인 경우,
유사 문제 상황에 대한 문제 상태의 특정 마킹에서의 발사가능 트랜지션들에 대한 발사 여부 및 발사 트랜지션 정보를 가지고 있는 마킹 데이터베이스를 더 포함하는 것을 특징으로 하는 최적화 시스템. - 제3항에 있어서,
상기 단위 발사 추천기가 기계 학습에 기반한 단위 발사 추천기인 경우,
상기 페트리넷에 존재하는 각 트랜지션 마다 기계 학습에 기반한 단위 발사 추천기가 하나씩 존재하거나,
상기 페트리넷에 존재하는 각 충돌 트랜지션 집합 마다 다중 클래스(multi-class) 분류를 위한 기계 학습에 기반한 단위 발사 추천기가 하나씩 존재하는 것을 특징으로 하는 최적화 시스템. - 제1항에 있어서,
상기 단위 발사 추천기는 상기 마킹에 대한 정보를 고려하거나,
이와 함께 해당 마킹에 도달하기까지 발사된 트랜지션들의 순서(sequence) 및 문제 상황, 문제 상태의 정보를 함께 고려하여,
상기 페트리넷에서 특정 마킹에서의 특정 트랜지션의 발사 여부, 또는 발사 트랜지션 정보를 추천하는 것을 특징으로 하는 최적화 시스템. - 제4항에 있어서,
상기 단위 발사 추천기가 유사 마킹에 기반한 단위 발사 추천기인 경우,
상기 단위 발사 추천기는 특정 문제 상황에 대하여 생성된 마킹 데이터베이스를 검색하여,
특정 문제 상태와 같은 마킹이 있을 경우 이에 해당하는 발사 여부, 또는 발사 트랜지션 정보를 추천하거나,
특정 문제 상태와 같은 마킹이 없을 경우, 1개 이상의 유사 마킹들에 대해 협업 필터링(Collaborative Filtering) 방식 또는 k-NN(Nearest Neighbor) 방식을 이용하여 발사 여부, 또는 발사 트랜지션 정보를 추천하는 것을 특징으로 하는 최적화 시스템. - 제4항에 있어서,
상기 단위 발사 추천기가 하이브리드 방식의 단위 발사 추천기인 경우,
상기 단위 발사 추천기는 상기 마킹 데이터베이스를 검색하여,
특정 문제 상황 및 문제 상태에 대한 유사 마킹이 존재하는 경우에는 상기 유사 마킹에 기반한 단위 발사 추천기를 이용하고,
유사 마킹이 없을 경우에는 상기 기계 학습에 기반한 단위 발사 추천기를 이용하는 것을 특징으로 하는 최적화 시스템. - 제1항에 있어서,
상기 페트리넷 풀이기(solver)는 특정 마킹에서 상기 발사 추천기가 추천한 발사 트랜지션 정보가 복수개인 경우,
각 발사 트랜지션 정보에 대한 추천 결과에 따르는 오류 수치를 비교하여 발사 트랜지션 정보를 선택하는 것을 특징으로 하는 최적화 시스템. - 제 1항에 있어서,
상기 페트리넷으로서,
기본 페트리넷(Ordinary Petri Net)을 사용하거나,
또는 시간 페트리넷(Timed Petri Net), 컬러 페트리넷(Colored Petri Net), 시간 컬러 페트리넷(Timed Colored Petri Net), 계층 시간 컬러 페트리넷(Hierarchical Timed Colored Petri Net), 일반 추계 페트리넷(Generalized Stochastic Petri Net), 고수준 페트리넷(High Level Petri Net) 중 하나를 사용하는 것을 특징으로 하는 최적화 시스템. - 제1항에 있어서,
상기 주어진 문제 상황 및 문제 상태가 페트리넷으로 변환 가능한 형식 모형(formal model)으로 표현되어 있는 경우,
상기 형식 모형(formal model)을 페트리넷으로 변환하는 페트리넷 변환기를 더 포함하는 것을 특징으로 하는 최적화 시스템. - 제1항에 기재된 최적화 시스템을 포함하여 구성되는 시스템 최적화부;
상기 시스템 최적화부로 시스템의 상태를 전달하여 실시간으로 마킹을 업데이트하는 상태 입력부; 및
상기 시스템 최적화부로부터 현 상태에서의 발사 여부, 또는 발사 트랜지션 정보를 전달받아 시스템을 제어하는 시스템 제어부를 포함하는 것을 특징으로 하는 페트리넷을 이용한 시스템 제어기. - (a) 주어진 문제 상황에 대하여 하나 이상의 유사 문제 상황을 생성하는 단계;
(b) 상기 각 유사 문제 상황에 대하여 각 하나 이상의 문제 상태를 생성하는 단계;
(c) 소정의 최적화기를 사용하여 상기 유사 문제 상황에 대한 각 문제 상태에 대하여 해를 구하는 단계;
(d) 상기 최적화기의 해를 구하는 의사 결정 방식과 패턴을 모사(simulation)할 수 있는 발사 추천기 및 발사 추천기 데이터베이스를 구성하는 단계; 및
(e) 상기 발사 추천기를 이용하여 주어진 문제 상황 및 문제 상태에 대한 페트리넷을 구동함으로써 그 해를 구할 수 있는 페트리넷 풀이기(solver)를 생성하는 단계를 포함하는 것을 특징으로 하는 최적화 시스템 구현 방법. - 제13항에 있어서,
상기 (d) 단계는,
(d1) 상기 유사 문제 상황에 대한 각 문제 상태에 대하여 페트리넷을 구성하는 단계;
(d2) 상기 유사 문제 상황에 대한 각 문제 상태에 대하여 상기 최적화기를 사용하여 생성된 해를 이용하여,
상기 페트리넷을 구동시키면서 상기 페트리넷의 각 마킹에서 각 트랜지션에 대한 발사 여부, 또는 발사 트랜지션 정보를 파악하여 마킹 데이터베이스를 생성하는 단계;
(d3) 상기 마킹 데이터베이스를 이용하여 복수개의 단위 발사 추천기를 포함하는 상기 발사 추천기 데이터베이스를 구성하는 단계; 및
(d4) 상기 발사 추천기 데이터베이스를 이용하여 상기 발사 추천기를 구성하는 단계를 포함하는 것을 특징으로 하는 최적화 시스템 구현 방법. - 제14항에 있어서,
상기 (d3) 단계에서,
상기 발사 추천기 데이터베이스를 구성함에 있어,
기계 학습에 기반한 단위 발사 추천기, 유사 마킹에 기반한 단위 발사 추천기 또는 하이브리드 방식 단위 발사 추천기를 포함하여 구성하는 것을 특징으로 하는 최적화 시스템 구현 방법. - 제15항에 있어서,
상기 기계 학습에 기반한 단위 발사 추천기를 생성함에 있어서,
상기 마킹 데이터베이스의 데이터를 학습 데이터로 사용하여,
써포트 벡터 기계(Support Vector Machine), 또는 규칙 학습(Rule Learning)을 이용하여 분류기를 학습함으로써 상기 단위 발사 추천기를 구성하는 것을 특징으로 하는 최적화 시스템 구현 방법. - 제15항에 있어서,
상기 유사 마킹에 기반한 단위 발사 추천기를 구성함에 있어서,
상기 마킹 데이터베이스를 이용하여,
특정 문제 상황에 속하는 마킹 중에서 유사 마킹을 검색하여,
발사 여부, 또는 발사 트랜지션 정보를 추천하도록 상기 단위 발사 추천기를 구성하는 것을 특징으로 하는 최적화 시스템 구현 방법. - 제15항에 있어서,
상기 하이브리드 방식 단위 발사 추천기를 생성함에 있어서,
상기 마킹 데이터베이스를 검색하여,
특정 문제 상황에 속하는 유사 마킹이 존재하는 경우에는 상기 유사 마킹에 기반한 단위 발사 추천기를 이용하고,
특정 문제 상황에 속하는 마킹 중에서 유사 마킹이 없는 경우에는 상기 기계 학습에 기반한 단위 발사 추천기를 이용하도록 상기 단위 발사 추천기를 구성하는 것을 특징으로 하는 최적화 시스템 구현 방법. - 제13항에 있어서,
상기 (c) 단계에 이어서,
(c1) 상기 최적화기에 의한 해를 데이터베이스화하여 해 데이터베이스를 생성하는 단계를 더 포함하는 것을 특징으로 하는 최적화 시스템 구현 방법. - (A) 주어진 문제 상황 및 문제 상태에 대하여 페트리넷을 생성하는 단계;
(B) 발사 추천기 데이터베이스를 검색하여, 상기 주어진 문제 상황에 대한 유사 문제 상황 및 이에 대한 단위 발사 추천기 집합을 검출하는 단계; 및
(C) 상기 단위 발사 추천기 집합을 포함하여 구성된 발사 추천기를 이용하여, 상기 페트리넷을 구동하면서 상기 주어진 문제 상황 및 문제 상태에 대한 해를 구하는 단계를 포함하며,
상기 발사 추천기 데이터베이스는 상기 유사 문제 상황에 대한 단위 발사 추천기를 데이터베이스화하고 있는 것을 특징으로 하는 최적화 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130092865A KR101617704B1 (ko) | 2013-08-06 | 2013-08-06 | 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 |
PCT/KR2014/007104 WO2015020361A1 (ko) | 2013-08-06 | 2014-08-01 | 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130092865A KR101617704B1 (ko) | 2013-08-06 | 2013-08-06 | 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150017070A true KR20150017070A (ko) | 2015-02-16 |
KR101617704B1 KR101617704B1 (ko) | 2016-05-04 |
Family
ID=52461632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130092865A KR101617704B1 (ko) | 2013-08-06 | 2013-08-06 | 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101617704B1 (ko) |
WO (1) | WO2015020361A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715328A (zh) * | 2015-03-09 | 2015-06-17 | 山东科技大学 | 一种基于核心过程的业务过程扩展方法 |
KR20210067246A (ko) * | 2019-11-29 | 2021-06-08 | 부산대학교 산학협력단 | 컬러드 페트리 넷 모델들을 연결하는 코 컬러드 페트리 넷 및 그 방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105652833B (zh) * | 2015-12-30 | 2018-01-23 | 南京理工大学 | 基于双向智能搜索的制造企业车间调度优化方法 |
CN111737449B (zh) * | 2020-08-03 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 相似问题的确定方法和装置、存储介质及电子装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06149774A (ja) * | 1992-11-10 | 1994-05-31 | Fuji Xerox Co Ltd | ペトリネットに基づくシミュレーション装置 |
KR100426088B1 (ko) * | 2002-01-31 | 2004-04-06 | 삼성전자주식회사 | 자가구축 학습페트리넷 |
-
2013
- 2013-08-06 KR KR1020130092865A patent/KR101617704B1/ko active IP Right Grant
-
2014
- 2014-08-01 WO PCT/KR2014/007104 patent/WO2015020361A1/ko active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715328A (zh) * | 2015-03-09 | 2015-06-17 | 山东科技大学 | 一种基于核心过程的业务过程扩展方法 |
KR20210067246A (ko) * | 2019-11-29 | 2021-06-08 | 부산대학교 산학협력단 | 컬러드 페트리 넷 모델들을 연결하는 코 컬러드 페트리 넷 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2015020361A1 (ko) | 2015-02-12 |
KR101617704B1 (ko) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108122027B (zh) | 一种神经网络模型的训练方法、装置及芯片 | |
Lin et al. | Hybrid evolutionary optimisation with learning for production scheduling: state-of-the-art survey on algorithms and applications | |
Shahzad et al. | Data mining based job dispatching using hybrid simulation-optimization approach for shop scheduling problem | |
Adhikari et al. | Iterative bounding box annotation for object detection | |
CN107016175A (zh) | 适用神经网络处理器的自动化设计方法、装置及优化方法 | |
KR101617704B1 (ko) | 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 | |
Rego et al. | A filter-and-fan approach to the job shop scheduling problem | |
CN111260073A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
Wang et al. | A graph-based ant colony optimization approach for integrated process planning and scheduling | |
Lei et al. | Hybrid heuristic search approach for deadlock-free scheduling of flexible manufacturing systems using Petri nets | |
CN105389690A (zh) | 基于技能需求的团队成员组合生成方法及装置 | |
Karaman et al. | A process algebra genetic algorithm | |
Li et al. | Iterative widen heuristic beam search algorithm for scheduling problem of flexible assembly systems | |
Seok et al. | Digital-twin consistency checking based on observed timed events with unobservable transitions in smart manufacturing | |
Dudek-Dyduch et al. | Almm solver-a tool for optimization problems | |
Amirnia et al. | A context-aware real-time human-robot collaborating reinforcement learning-based disassembly planning model under uncertainty | |
US20210312324A1 (en) | Systems and methods for integration of human feedback into machine learning based network management tool | |
Krüger | Development, implementation and theoretical analysis of the bee colony optimization meta-heuristic method | |
Jain et al. | Experiences with backward simulation based approach for lot release planning | |
AU2022205164A1 (en) | Project visualization system | |
Yitmen et al. | Enabling Technologies for Cognitive Digital Twins Towards Construction 4.0 | |
Cheng et al. | A deep reinforcement learning hyper-heuristic to solve order batching problem with mobile robots | |
US20220343143A1 (en) | Method for generating an adapted task graph | |
Wang et al. | Discrete fruit fly optimization algorithm for disassembly line balancing problems by considering human worker’s learning effect | |
Tang et al. | Resolving large-scale control and optimization through network structure analysis and decomposition: A tutorial review |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |