KR102320718B1 - 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법 - Google Patents

부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법 Download PDF

Info

Publication number
KR102320718B1
KR102320718B1 KR1020190100505A KR20190100505A KR102320718B1 KR 102320718 B1 KR102320718 B1 KR 102320718B1 KR 1020190100505 A KR1020190100505 A KR 1020190100505A KR 20190100505 A KR20190100505 A KR 20190100505A KR 102320718 B1 KR102320718 B1 KR 102320718B1
Authority
KR
South Korea
Prior art keywords
state
network
node
states
basin
Prior art date
Application number
KR1020190100505A
Other languages
English (en)
Other versions
KR20210020674A (ko
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 KR1020190100505A priority Critical patent/KR102320718B1/ko
Publication of KR20210020674A publication Critical patent/KR20210020674A/ko
Application granted granted Critical
Publication of KR102320718B1 publication Critical patent/KR102320718B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B5/00ICT specially adapted for modelling or simulations in systems biology, e.g. gene-regulatory networks, protein interaction networks or metabolic networks
    • G16B5/10Boolean models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Biology (AREA)
  • Molecular Biology (AREA)
  • Biotechnology (AREA)
  • Physiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

제1네트워크의 제1끌개에 관한 정보를 획득하는 단계, ① 제1네트워크의 상태의 갱신규칙인 제1갱신규칙 및 ② 상기 제1끌개를 기초로 상기 제1네트워크의 직전상태들을 계산하는 상태 역추적 단계로서, 상기 제1끌개는 기준시점에서의 상기 제1네트워크의 상태로서의 자격이 부여된 것이며, 상기 제1네트워크의 직전상태들은 상기 기준시점의 바로 이전의 시점인 직전시점에서의 상기 제1네트워크의 상태로 정의되는, 상기 상태 역추적 단계, 및 상기 계산된 직전상태들 각각에 대하여 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하고, 상기 상태 역추적 단계를 반복함으로써, 상기 제1끌개가 포함된 제1끌개유역의 모든 상태를 결정하는 단계를 포함하는, 부울리언 네트워크의 끌개유역 결정방법을 공개한다.

Description

부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법{A method for identifying all basin states of an attractor in a Boolean network}
본 발명은, 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 빠르게 결정하는 기술에 관한 것으로서, 컴퓨팅 장치에 의해 실행될 수 있는 기술에 관한 것이다.
원하지 않는 초기상태(ex: cancer state)에 있는 세포의 상태를 원하는 상태(ex: cell death state)로 변화시키기 위해서 한 종류의 약물 또는 여러 종류의 약물의 조합을 세포에 투여할 수 있다. 이때 더 적은 종류의 약물을 투약함으로써 동일한 효과를 얻을 수 있다면 비용적 측면 및 약물 부작용 최소화의 측면에서 더 바람직할 수 있다.
세포의 표현형의 변화는 생체분자 신호처리 네트워크에 의해 모델링 되어 분석될 수 있다. 그리고 생체분자 신호처리 네트워크는 부울리언 네트워크로 모델링될 수도 있다. 부울리언 네트워크의 각 노드는 생체분자 신호처리 네트워크가 나타내는 각 분자에 대응할 수 있다. 대한민국 특허공개번호 10-2014-0032070 에는 부울리언 네트워크 및 상태천이 다이어그램(state transition diagram)에 대한 내용이 공개되어 있다.
상태천이 다이어그램 및 이와 함께 이용되는 끌개 지형(attractor landscape)이라는 기법과 함께 시스템의 동역학을 한 눈에 파악할 수 있는 분석법이다. 상태천이 다이어그램을 이용하면 시스템의 모든 상태천이경로를 파악할 수 있으며, 끌개 지형을 통해 끌개(attractor) 및 그 끌개유역(basin)을 파악할 수 있다.
'부울리언 네트워크' 의 특정 끌개의 끌개유역을 찾기 위한 종래기술에서는, 시스템이 가질 수 있는 모든 상태에서, 주어진 갱신규칙을 적용하여 상기 특정 끌개까지의 상태천이경로를 계산하여 상기 특정 끌개로 수렴하는 상태천이경로를 찾는 과정을 이용하여 전체 특정 끌개유역의 상태천이 다이어그램을 얻는다.
부울리언 네트워크의 노드가 많아질수록 부울리언 네트워크의 전체 상태의 수는 지수적으로 증가한다. 따라서 대규모 부울리언 네트워크의 경우 전체 상태천이경로를 계산할 때에 소요되는 컴퓨팅 파워가 급격히 증가한다는 문제가 있다.
이런 문제를 해결하기 위해, 모든 상태를 고려하지 않고 무작위로 추출한 다수의 상태만을 초기상태로 하여 상태천이경로를 계산해서 특정 끌개유역의 상태천이 다이어그램을 추정하는 방법을 이용할 수 있다. 하지만 정확한 끌개유역을 알지 못하기 때문에 끌개유역에 대한 정보의 활용에 한계가 있다. 특히 어떤 끌개유역의 크기가 작은 경우, 부울리언 네트워크가 가질 수 있는 상태들 중 무작위 추출에 의해 선택된 상태가 상기 어떤 끌개유역에 포함될 확률이 낮기 때문에, 이러한 상기 어떤 끌개유역의 정보를 얻기는 힘들다는 문제가 있다.
상술한 내용은 본 발명의 이해를 돕기 위하여 본 발명의 발명자가 알고 있거나 연구한 내용을 바탕으로 기술한 것이다. 따라서 상술한 내용이 본 발명의 특허출원 이전에 불특정인에게 공개된 것이 당연한 것으로 간주하여서는 안 된다.
본 발명에서는, 부울리언 네트워크의 특정 끌개의 상태 값을 미리 알 수 있다는 가정 하에, 상기 특정 끌개의 값을 시초로 하여 상기 특정 끌개로 수렴되는 끌개유역 내의 모든 상태를 계산하는 빠른 계산 방법을 제공하고자 한다.
본 발명의 일 관점에서는, 상술한 과제를 해결하기 위하여, 주어진 부울리언 네트워크의 노드 값들의 갱신규칙을 역으로 추적하여, 상기 주어진 부울리언 네트워크의 한 개 이상의 끌개 중 특정한 제1끌개로부터 상태천이경로 상의 과거상태들을 시간을 거슬러 올라가면 차례대로 계산한다. 이렇게 하여 계산된 상기 과거상태들을 이용하여 상기 제1끌개의 끌개유역인 제1끌개유역에 속한 모든 상태를 얻을 수 있다. 즉, 상기 주어진 부울리언 네트워크의 전체 상태천이 다이어그램을 구하지 않더라도, 상기 제1끌개의 제1끌개유역에 속한 모든 상태들을 획득할 수 있다.
한편, 상기 본 발명의 일 관점을 위한 더 구체적인 제1방법에 따르면, 상기 특정 제1끌개의 제1끌개유역에 관한 정보를 한층 더 빠르게 계산할 수 있다. 이하, 이러한 더 빠른 계산방법을 설명한다. 상기 특정 제1끌개의 제1끌개유역에 대한 완전한 정보를 얻기 위하여 시간을 거슬러 역으로 제1끌개유역에 속하는 상태들을 찾을 때, 네트워크의 전체 노드를 대상으로 하면 갱신규칙의 개수가 증가하기 때문에 컴퓨팅 파워가 많이 소비된다는 문제가 있다. 이를 해결하기 위해 계산이 요구되는 노드의 개수를 최대한 감소시킬 수 있는 수학적 이론을 도출하여 계산 복잡도를 낮춘다.
또한, 상기 본 발명의 일 관점을 위한 더 구체적인 제2방법에 따르면, 상기 특정 제1끌개의 제1끌개유역 내의 상태가 많은 경우 그 만큼 계산의 횟수가 증가하므로 컴퓨팅 파워가 많이 소비된다. 이를 해결하기 위해 과거상태가 존재하지 않는 상태인 '터미널 상태'를 판별하는 규칙을 미리 결정된 갱신규칙으로부터 도출하여, 터미널 상태는 계산에서 배제시킴으로써 계산 복잡도를 낮춘다.
이하 설명하는 본 발명이 적용될 수 있는 부울리언 네트워크의 제어노드 결정방법에서는 특정 끌개유역, 예컨대 제1끌개유역에 속한 모든 상태를 알고 있다는 전제가 필요하다. 이러한 전제를 만족시키기 위하여 상술한 본 발명에 따른 특정 끌개유역에 속한 모든 상태를 결정하는 방법이 유용하게 사용될 수 있다.
본 발명의 일 관점에 따른 부울리언 네트워크의 끌개유역 결정방법은, 제1네트워크의 제1끌개에 관한 정보를 획득하는 단계; ① 제1네트워크의 상태의 갱신규칙인 제1갱신규칙 및 ② 상기 제1끌개를 기초로 상기 제1네트워크의 직전상태들을 계산하는 상태 역추적 단계로서, 상기 제1끌개는 기준시점에서의 상기 제1네트워크의 상태로서의 자격이 부여된 것이며, 상기 제1네트워크의 직전상태들은 상기 기준시점의 바로 이전의 시점인 직전시점에서의 상기 제1네트워크의 상태로 정의되는, 상기 상태 역추적 단계; 및 상기 계산된 직전상태들 각각에 대하여 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하고, 상기 상태 역추적 단계를 반복함으로써, 상기 제1끌개가 포함된 제1끌개유역의 모든 상태를 결정하는 단계를 포함할 수 있다.
이때, 상기 계산된 직전상태들 중 터미널 상태인 것으로 결정된 것들에 대해서는, 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하지 않으며, 그리고 상기 상태 역추적 단계를 반복하지 않도록 되어 있으며, 상기 터미널 상태는, 상기 터미널 상태가 포함된 상태천이경로 상에서 그 이전의 상태가 존재하지 않는 상태일 수 있다.
이때, 상기 계산된 직전상태가 상기 터미널 상태인지 여부를 결정하는 것은, 상기 제1갱신규칙에 포함된 등식들 중, 상기 직전시점을 나타내는 제1변에 판별노드가 포함되어 있는 판별용 등식들을 이용하여 결정되는 판별식에 의해 이루어지며, 상기 판별노드는, 상기 제1갱신규칙 또는 상기 제1네트워크의 구조에 관한 정보를 기초로, 상기 제1네트워크에 포함된 결정형 노드들 중 아웃바운드 링크가 복수 개인 노드이며, 상기 결정형 노드는, 각 노드의 상기 직전시점에서의 상태가 상기 제1네트워크의 상기 기준시점에서의 상태에 의해 유일하게 결정되는 노드일 수 있다.
이때, 상기 판별식은, 상기 판별용 등식들 중 제1등식의 상기 제1변 및 제2등식의 상기 제1변에 각각 제1노드가 포함되어 있는 경우, 상기 제1등식의 제2변 및 상기 제2등식의 상기 제2변의 값이 서로 같은지 여부를 판별하도록 되어 있는 식일 수 있다.
이때, 상기 제1네트워크는 제1 부울리언 네트워크로부터 대칭노드가 제거된 것이며, 상기 제1네트워크의 제1끌개는 상기 제1 부울리언 네트워크의 특정 끌개에서 상기 제거된 대칭노드의 값이 제거된 것일 수 있다.
이때, 상기 결정된 상기 제1끌개유역의 모든 상태에 대하여 상기 제거된 대칭노드의 값을 부가함으로써, 상기 제1 부울리언 네트워크의 상기 특정 끌개가 속한 끌개유역의 모든 상태를 결정하는 단계를 더 포함하며, 상기 부가되는 상기 대칭노드의 값은, 상기 대칭노드가 가질 수 있는 임의의 값일 수 있다.
이때, 상기 대칭노드는 상기 제1 부울리언 네트워크의 구조만으로부터 결정되는 노드일 수 있다.
본 발명의 일 관점에 따른 부울리언 네트워크의 제어노드 결정방법은, 부울리언 네트워크인 제1네트워크의 초기상태로부터, 상기 초기상태가 포함되지 않은 원하는 제1끌개유역의 바운더리 상태를 결정하는 단계; 및 상기 제1네트워크의 노드들 중, 상기 바운더리 상태와 상기 초기상태를 서로 비교하였을 때에 서로 다른 상태를 갖는 노드들을 제어노드로서 결정하는 단계를 포함하며, 상기 바운더리 상태는, 상기 제1끌개유역에 속한 모든 상태들 중, 상기 초기상태와 상기 제1끌개유역에 속한 각각의 상태들 간의 해밍거리들 중 최소해밍거리를 갖는 상태이며, 상기 제1끌개유역에 속한 모든 상태는 제1항의 부울리언 네트워크의 끌개유역 결정방법에 의해 결정된 것일 수 있다.
이때, 상기 초기상태에 있는 상기 부울리언 네트워크의 노드들 중 상기 제어노드를 일시적으로 섭동하는 단계를 더 포함할 수 있다.
이때, 상기 제1네트워크는 생체분자 신호전달 네트워크를 모델링 한 것이며, 상기 제1네트워크의 각 노드는 상기 생체분자 신호전달 네트워크의 각 분자에 대응할 수 있다.
본 발명의 다른 관점에 따른 부울리언 네트워크의 제어노드 결정방법은, 제1 부울리언 네트워크의 초기상태로부터, 상기 초기상태가 포함되지 않은 원하는 특정 끌개유역의 바운더리 상태를 결정하는 단계; 및 상기 제1 부울리언 네트워크의 노드들 중, 상기 바운더리 상태와 상기 초기상태를 서로 비교하였을 때에 서로 다른 상태를 갖는 노드들을 제어노드로서 결정하는 단계를 포함하며, 상기 바운더리 상태는, 상기 특정 끌개유역에 속한 모든 상태들 중, 상기 초기상태와 상기 특정 끌개유역에 속한 각각의 상태들 간의 해밍거리들 중 최소해밍거리를 갖는 상태이며, 상기 특정 끌개유역에 속한 모든 상태는 제6항의 부울리언 네트워크의 끌개유역 결정방법에 의해 결정된 것일 수 있다.
본 발명의 일 관점에 따라 유선 또는 무선으로 외부 장치와 통신하는 통신 인터페이스 및 처리부를 포함하는 컴퓨팅 장치를 제공할 수 있다. 이때, 상기 처리부는, 상기 통신 인터페이스를 통해 상기 외부 장치로부터 제1네트워크의 제1끌개에 관한 정보를 획득하도록 되어 있고, ① 제1네트워크의 상태의 갱신규칙인 제1갱신규칙 및 ② 상기 제1끌개를 기초로 상기 제1네트워크의 직전상태들을 계산하는 상태 역추적 단계로서, 상기 제1끌개는 기준시점에서의 상기 제1네트워크의 상태로서의 자격이 부여된 것이며, 상기 제1네트워크의 직전상태들은 상기 기준시점의 바로 이전의 시점인 직전시점에서의 상기 제1네트워크의 상태로 정의되는, 상기 상태 역추적 단계를 실행하도록 되어 있고, 그리고 상기 계산된 직전상태들 각각에 대하여 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하고, 상기 상태 역추적 단계를 반복함으로써, 상기 제1끌개가 포함된 제1끌개유역의 모든 상태를 결정하도록 되어 있을 수 있다.
본 발명에 따르면, 주어진 부울리언 네트워크의 전체 상태천이 다이어그램이 필요하지 않지만 끌개유역 정보가 필요한 경우에 있어서, 본 발명을 이용하면 주어진 제1끌개의 제1끌개유역에 관한 정보를 완전하게 얻을 수 있다. 본 발명에 따르면, 상기 주어진 부울리언 네트워크가 노드 수가 많은 대규모라고 하더라도, 본 발명을 이용하면 특정 제1끌개의 제1끌개유역에 관한 정보를 빠르게 계산하여 얻을 수 있다.
본 발명에 따르면, 부울리언 네트워크의 특정 끌개의 상태 값을 미리 알 수 있다는 가정 하에, 상기 특정 끌개의 값을 시초로 하여 상기 특정 끌개로 수렴되는 끌개유역 내의 모든 상태를 계산하는 빠른 계산 방법을 제공할 수 있다.
한편, 시스템이 원하는 끌개 상태를 갖도록 제어하기 위해, 상기 시스템을 특정 상태로부터 원하는 제1끌개유역[D]으로 천이시키고자 하는 최적의 제어방법을 찾는 어플리케이션이 필요할 수 있다. 이 어플리케이션은 원하는 제1끌개유역[D]에 해당되는 모든 상태가 확정되어 있는 것을 전제로 하는데, 본 발명은 이러한 확정 작업에 사용될 수 있다.
도 1은 주어진 제1부울리언 네트워크가 갖는 특정 끌개유역에서 제1터미널 상태(1111)로부터 특정 끌개(1131)까지 시간의 흐름에 따라 변화하는 과정에 있는 일련의 상태들을 나타내는 제1상태천이경로(3101)와 상기 제1상태천이경로를 시간을 거슬러 올라가는 경로인 제1역-상태천이경로(R3101)의 개념을 나타낸 것이다.
도 2는 단계(S11)에서 제시한 상기 제1부울리언 네트워크의 네트워크 구조의 일 예를 나타낸 것이다.
도 3은 도 2에 제시한 상기 제1부울리언 네트워크로부터 상기 구조적 대칭노드를 제거하여 얻은 제1서브 네트워크를 나타낸 것이다.
도 4는 도 3에서 결정형 노드로 분류된 노드를 사각형으로 다시 표현한 것이다.
도 5는 제1서브 네트워크의 각 노드의 값 중 직전시점에서의 각 노드의 값을 좌측에 배치하고 상기 직전시점의 직후인 기준시점에서의 각 노드의 값을 우측에 배치하여, 기준시점에서의 각 노드의 값이 직전시점에서의 어떤 노드로부터 영향을 받는지를 도식화한 것이다.
도 6은 본 발명의 일 실시예에 따라, 주어진 제1 부울리언 네트워크의 특정 상태가 터미널 상태인지 여부를 판단하는 방법을 나타낸 순서도이다.
도 7은 본 발명의 일 실시예에 따라, 주어진 제1 부울리언 네트워크의 특정 끌개가 속한 특정 끌개유역의 모든 상태를 결정하는 방법을 나타낸 순서도이다.
도 8은 본 실시예에서 사용되는 몇 가지 용어의 이해를 돕기 위한 다이어그램이다.
도 9는 본 실시예에서 사용되는 터미널 상태, 바운더리 상태, 최소해밍거리, 해밍거리, 원하는 끌개, 끌개, 초기상태, 상태천이경로를 설명하기 위한 또 다른 다이어그램이다.
도 10은 도 9에 제시한 개념을 더 정교화 한 것으로서, 각 상태를 복수 개의 노드들의 값들의 조합으로 구체화하여 나타낸 것이다.
도 11은 본 실시예의 일 실시예에 따라 부울리언 네트워크로 모델링되는 생체분자 신호전달 네트워크를 원하는 상태로 변화시키기 위한 제어노드를 결정하는 방법, 즉 제어목표가 되는 생체분자를 결정하는 방법을 나타낸 순서도이다.
도 12는 본 실시예에 따라 특정 초기상태로부터 제1끌개유역의 바운더리 상태를 결정하는 방법을 나타낸 순서도이다.
도 13에 나타낸 그래프는 21개 노드로 구성된 네트워크에서 특정 끌개의 끌개유역의 상태들을 나타내고, 상술한 대칭노드의 성질을 설명하기 위한 것이다.
도 14는 본 실시예의 개념을 설명하기 위한 또 다른 p53 네트워크의 예를 나타낸 것이다.
도 15a는 본 실시예에 따른 제어목표를 설명하기 위한 다이어그램이고, 도 15b는 초기상태(1214) 및 제1바운더리(1127)에 있어서, 고정노드들(5~13)과 비고정/비대칭 노드들(14~21)의 상태를 나열한 것이며, 도 15c는 초기상태(1214) 및 제2바운더리(1128)에 있어서, 고정노드들(5~13)과 비고정/비대칭 노드들(14~21)의 상태를 나열한 것이다.
도 16은 본 발명의 일 실시예에 따라 제공되는 컴퓨팅 장치 및 이와 통신하는 장치들을 나타낸 다이어그램이다.
이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.
본 발명에서 사용되는 일부 용어들은 아래와 같이 정의될 수 있다.
- 상태(state): 부울리언 네트워크의 경우 각 노드는 0 또는 1의 값을 갖는데, 부울리언 네트워크의 '상태'는 모든 노드(node) 값의 순서쌍으로 표현될 수 있다. 이에 따르면, 부울리언 네트워크의 총 노드 수가 N개일 때 가능한 상태의 수는 2N개이다. 부울리언 네트워크는 특정 순간에 특정 상태를 가질 수 있으며, 시간이 흐름에 따라 상기 부울리언 네트워크의 상태는 변화할 수도 있고 그대로 남아 있을 수도 있다.
- 끌개(attractor): 부울리언 네트워크의 상태들 중 시간이 지나도 반복되는 상태의 집합을 '끌개'라고 지칭할 수 있다. 상기 끌개는 생명 시스템의 경우 암 또는 세포 사멸과 같은 상태를 의미하는 '표현형'에 대응될 수 있다.
- 상태천이경로(state transition trajectory): 외부 간섭 없이 부울리언 네트워크의 상태가 시간이 흐르면 변해가는 경로를 '상태천이경로'라고 지칭할 수 있다. 상태천이경로를 도식화하여 표현하는 경우, 부울리언 네트워크의 특정 과거 시점에서의 상태로부터 특정 미래 시점에서의 상태로 화살표를 그려 표현할 수 있다. 한 개의 상태천이경로는 시간에 따라 변화하는 다수의 상태들과 상기 다수의 상태들 간을 연결하는 화살표들로 표현될 수 있다.
- 끌개유역(basin): 특정 끌개로 향하는 모든 상태천이경로 상에 포함되는 모든 상태들로 이루어지는 집합을 '끌개유역'이라고 지칭할 수 있다. 특정 끌개유역에 포함된 모든 상태는 시간이 흐르면 상기 특정 끌개유역의 끌개 상태로 수렴될 수 있다.
- 터미널 상태(terminal state): 주어진 상태천이경로 상에서 과거상태를 갖지 않는 상태를 '터미널 상태'라고 지칭할 수 있다. 화살표들로 표시된 주어진 상태천이경로에서 어떠한 화살표도 향하지 않는 상태를 상기 터미널 상태로 간주할 수도 있다. 터미널 상태에 연결된 화살표는 터미널 상태로부터 출발하게 된다.
- 해밍거리(Hamming distance): 두 개의 상태 사이에 값이 차이나는 노드의 개수를 상기 두 개의 상태 간의 '해밍거리'라고 지칭할 수 있다. 예컨대, 부울리언 네트워크의 총 노드 수가 N개일 때에, 상기 N개의 노드들이 갖는 값들의 조합에 의해 특정되는 상태들 중 제1상태와 제2상태를 서로 비교해 보았을 때에 그 값이 서로 다른 노드의 개수를 제1상태와 제2상태 간의 해밍거리라고 지칭할 수 있다. 구체적인 예로서, N=3이고, 제1상태가 '101'이고 제2상태가 '100'인 경우 상기 제1상태와 상기 제2상태 간의 해밍거리는 1이다. 또 다른 예로서, N=3이고, 제1상태가 '101'이고 제2상태가 '010'인 경우 상기 제1상태와 상기 제2상태 간의 해밍거리는 3이다. 본 발명의 일 실시예에서 상기 해밍거리는 일시적인 제어 시 필요한 제어노드의 개수인 것으로 간주될 수 있다.
- 바운더리(boundary): 원하는 제1끌개유역[DB]의 상태들 중에서, 원하지 않는 제2끌개유역[UB]에 포함된 원하지 않는 제2상태[US]로부터 최단 해밍거리에 있는 상태를 '바운더리 상태', 또는 '원하지 않는 제2상태[US]로부터의 원하는 제1끌개유역[DB]의 바운더리 상태'라고 지칭할 수 있다. 상기 원하지 않는 제2상태[US]로부터의 원하는 제1끌개유역[DB]의 바운더리 상태는 한 개 또는 복수 개가 존재할 수 있다. 상기 바운더리 상태의 집합을 '바운더리' 또는 '원하지 않는 제2상태[US]로부터의 원하는 제1끌개유역[DB]의 바운더리' 라고 지칭할 수 있다.
본 명세서에 기재된 [] 안에 표시된 'D'는 '원하는(desired)'을 의미하는 것일 수 있고, 'U'는 '원하지 않는(undesired)'를 의미하는 것일 수 있고, 'B'는 '끌개유역(basin)'을 의미하는 것일 수 있고, 'S'는 '상태(state)'를 의미할 수 있다.
- 제어목적: 시스템의 상태를 일시적인 섭동을 통해 원하지 않는 제2상태[US]로부터 원하는 제1끌개로 최적으로 천이시키는 것을 본 발명의 일 실시예에 따른 '제어목적'으로 정의할 수 있다. 여기서 상기 제2상태[US]는, 상기 시스템에 있어서, 원하지 않는 제2끌개의 끌개유역인 제2끌개유역[UB]에 속하는 상태일 수 있다. 그리고 상기 제1끌개는 상기 시스템의 원하는 끌개 상태일 수 있다. 여기서 '최적'으로 천이시킨다는 것은 상기 원하지 않는 제2상태[US]를 상기 원하는 제1끌개유역[DB]의 바운더리로 천이하기 위하여 최소한의 노드의 값을 일시적으로 조절하는 것을 의미할 수 있다. 예컨대 상기 원하는 제1끌개유역[DB]의 바운더리로 천이하기 위하여 최소한 2개의 노드들의 값을 조절해야 하는 경우에 있어서, 상기 2개의 노드들의 값만을 조절한다면 최적으로 천이시키는 것이지만, 3개 이상의 노드들의 값들을 조절한다면 최적으로 천이시키는 것은 아니다.
- 일시적인 섭동(temporary perturbation): 노드의 값을 일시적으로 변경하는 것을 '일시적인 섭동'이라고 지칭할 수 있다. 한 개 이상의 노드의 값을 일시적으로 변경한 이후 섭동을 바로 멈추면, 부울리언 네트워크는 그 고유의 동역학에 따라 상태 변화가 이루어지게 된다. 본 발명의 일 실시예에서는 제어대상이 되는 노드를 일시적으로 섭동하지만, 비교 실시예에서는 제어대상이 되는 노드의 값을 강제적으로 지속적으로 고정하는 방식으로 섭동할 수 있다. 이러한 비교 실시예에 따르면 특정 노드의 값이 강제적으로 지속 고정되므로 부울리언 네트워크가 그 고유의 동역학에 따라 행동하지 않을 수 있다.
- 초기상태(initial state): 본 발명에서 일시적인 섭동의 제공이 필요한 또는 일시적인 섭동을 가해야 하는 상태로서, 예컨대 원하지 않는 제2끌개유역[UB]에 속해 있는 원하지 않는 제2상태[US]를 '초기상태'라고 지칭할 수도 있다. 이에 따르면 상기 바운더리 상태는 '초기상태로부터의 원하는 제1끌개유역[DB]의 바운더리 상태'라고 지칭할 수도 있다.
- 대칭노드: 대칭노드는 두 가지 종류로 분류될 수 있다. 첫째, '구조적 대칭노드'는 네트워크 구조만으로부터 결정되는 대칭노드로서 모든 끌개유역에서 항상 대칭노드이다. 둘째, '동역학적 대칭노드'는 구조적 대칭노드 외에 끌개 별로 동역학적 특성에 따라 나타나게 되는 추가적인 대칭노드이며, 구조적 대칭노드는 끌개유역을 계산하지 않아도 알 수 있지만 동역학적 대칭노드는 특정 끌개유역을 계산한 후에야 알 수 있다.
네트워크 구조에서 나가는 링크가 없는 노드는 '구조적 대칭노드'인 것으로 간주될 수 있다. 또한, 나가는 링크가 하나이고 상기 나가는 링크에 연결된 노드가 구조적 대칭노드인 경우에는 상기 노드 역시 구조적 대칭노드인 것으로 간주될 수 있다.
'대칭'에 대한 구체적 의미의 예로서, N=3이고 노드가 A, B, C가 있고 노드 A가 네트워크 구조로부터 찾은 구조적 대칭노드라고 하자. 특정 끌개유역에 상태 (A, B, C)=(0, b, c)가 있으면 상기 끌개유역에 상태 (A, B, C)=(1, b, c)가 반드시 존재한다. 노드 A가 이런 대칭성을 유발하기 때문에 대칭노드로 지칭할 수 있다.
또는, 구조적 대칭노드는 아니지만 특정 끌개의 끌개유역을 계산하면 상기 예(N=3, 노드 A, B, C)에서 기술한 대칭성을 만족시키는 노드가 존재할 수 있다. 끌개유역을 계산한 후에 알 수 있는 대칭노드이므로 '동역학적 대칭노드'로 지칭할 수 있다.
- 고정노드: 특정 끌개유역의 모든 상태들에 있어서 그 값이 항상 일정한 노드를 고정노드로 정의할 수 있다.
I. 본 발명의 일 실시에에 따라 특정 끌개유역의 모든 상태를 빠르게 결정하는 방법
도 1은 주어진 제1부울리언 네트워크가 갖는 특정 끌개유역에서 제1터미널 상태(1111)로부터 특정 끌개(1131)까지 시간의 흐름에 따라 변화하는 과정에 있는 일련의 상태들을 나타내는 제1상태천이경로(3101)와 상기 제1상태천이경로를 시간을 거슬러 올라가는 경로인 제1역-상태천이경로(R3101)의 개념을 나타낸 것이다.
도 1에서 점선으로 된 폐곡선은 상기 특정 끌개유역의 상태들 중 터미널 상태들을 나타낸 것이다.
본 발명의 일 실시예에서는 특정 끌개(1131)의 값을 알 수 있다는 전제하에, 특정 끌개(1131)로부터 시간의 흐름을 거슬러, 특정 끌개(1131)로부터 시작되는 모든 역-상태천이경로들을 산출함으로써 상기 특정 끌개유역의 모든 상태의 값을 결정할 수 있다.
본 발명의 일 실시예에 따른 단계(S11)에서, 주어진 제1부울리언 네트워크의 네트워크 구조를 획득할 수 있다.
도 2는 단계(S11)에서 제시한 상기 제1부울리언 네트워크의 네트워크 구조의 일 예를 나타낸 것이다. 도 2에 나타낸 예는 본 발명의 이해를 돕기 위하여 간단한 구조의 예를 나타낸 것이다.
본 발명의 일 실시예에 따른 단계(S12)에서 상기 제1부울리언 네트워크 중 구조적 대칭노드를 결정할 수 있다.
상기 구조적 대칭노드를 결정하는 방법은 별도로 후술한다.
도 2에 예시한 제1부울리언 네트워크에 있어서 구조적 대칭노드는 X5이다.
본 발명의 일 실시예에 따른 단계(S13)에서 상기 제1부울리언 네트워크의 구조로부터 상기 결정된 모든 구조적 대칭노드를 제거함으로써 얻을 수 있는 제1서브 네트워크를 결정한다.
도 3은 도 2에 제시한 상기 제1부울리언 네트워크로부터 상기 구조적 대칭노드를 제거하여 얻은 제1서브 네트워크를 나타낸 것이다.
본 발명의 일 실시예에 따른 단계(S14)에서 상기 제1서브 네트워크의 구조에 관한 정보를 기초로 상기 제1서브 네트워크의 상태의 갱신규칙인 제1갱신규칙을 결정할 수 있다.
예컨대 상기 제1갱신규칙은 구조적 대칭노드 X5이 없는 다음의 등식 1 (equation 1) 내지 등식 4와 같이 주어질 수 있다. 등식 1 내지 등식 4 각각은 두 개의 변을 갖는다. 좌측변은 기준시점(=미래시점)에서의 각 노드의 상태를 나타낸 것이고, 우측변은 상기 기준시점에 대한 직전시점(=과거시점)에서의 각 노드의 상태를 나타낸 것이다.
여기서 상기 직전시점에서의 상기 서브 네트워크의 상태는 다른 상태를 거치지 않고 상기 기준시점에서의 상기 서브 네트워크의 상태로 변화한다. 즉, 상기 직전시점은 상기 기준시점에 대한 직전시점이다.
[등식 1] X1 *=X3∨¬X4
[등식 2] X2 *=X1
[등식 3] X3 *=¬X2
[등식 4] X4 *=¬X1
본 발명의 일 실시예에 따른 단계(S21)에서 상기 제1갱신규칙으로부터 또는 상기 제1서브 네트워크의 구조에 관한 정보로부터, 임의의 제1노드의 직전시점(=과거시점)에서의 상태가 상기 제1서브 네트워크의 기준시점(=미래시점)에서의 상태에 의해 유일하게 결정되는지 여부를 결정하여, 유일하게 결정되는 경우에는 상기 제1노드를 결정형 노드로 분류하고, 유일하게 결정되지 않는 경우에는 상기 제1노드를 비결정형 노드로 분류할 수 있다.
등식 1 내지 등식 4에서 노드 X1과 노드 X2는 그 직전시점에서의 상태가 그 직후의 기준시점에서의 상태에 의해 유일하게 결정됨을 알 수 있다. 따라서 노드 X1과 노드 X2는 상기 결정형 노드로 분류된다.
등식 1 내지 등식 4에서 노드 X3과 노드 X4는 그 직전시점에서의 상태가 그 기준시점에서의 상태에 의해 유일하게 결정되지 않는다는 점을 알 수 있다. 따라서 노드 X3과 노드 X4는 상기 비결정형 노드로 분류된다.
도 4는 도 3에서 결정형 노드로 분류된 노드를 사각형으로 다시 표현한 것이다.
본 발명의 일 실시예에 따른 단계(S22)에서 상기 결정형 노드로 분류된 노드들 중 아웃바운드 링크가 복수 개인 노드를 판별노드로 분류할 수 있다.
도 3에 나타낸 제1서브 네트워크의 구조를 참조하면, 상기 결정형 노드들 중 노드 X1으로부터 나가는 아웃바운드 링크는 2개로서 복수 개이며, 상기 결정형 노드들 중 노드 X2로부터 나가는 아웃바운드 링크는 1개로서 복수 개가 아니다. 따라서 도 3에 나타낸 제1서브 네트워크의 경우에 있어서, 판별노드는 노드 X1이다.
도 5는 제1서브 네트워크의 각 노드의 값 중 직전시점에서의 각 노드의 값을 좌측에 배치하고 상기 직전시점의 직후인 기준시점에서의 각 노드의 값을 우측에 배치하여, 기준시점에서의 각 노드의 값이 직전시점에서의 어떤 노드로부터 영향을 받는지를 도식화한 것이다. 도 5의 구조는 도 3 또는 도 4의 링크로부터 쉽게 이해될 수 있다.
다른 예에 따른 서브 네트워크가 주어진 경우 판별노드가 없거나 또는 복수 개일 수도 있다.
상기 제1갱신규칙은 아래의 등식 5 내지 등식 8로 다시 제시될 수 있다. 아래의 등식 5 내지 등식 8 역시 상기 제1갱신규칙인 것으로 간주될 수 있다.
[등식 5] X3∨¬X4=X1 *
[등식 6] X1 =X2 *
[등식 7] ¬X2=X3 *
[등식 8] ¬X1=X4 *
상기 제1갱신규칙은 아래의 등식 9 내지 등식 12로 다시 제시될 수 있다. 아래의 등식 9 내지 등식 12 역시 상기 제1갱신규칙인 것으로 간주될 수 있다.
[등식 9] X3∨¬X4=X1 *
[등식 10] X1 =X2 *
[등식 11] X2=¬X3 *
[등식 12] X1=¬X4 *
본 발명의 일 실시예에 따른 단계(S23)에서 상기 제1갱신규칙에 포함된 각각의 등식(등식 1 내지 등식 4, 또는 등식 5 내지 등식 8, 또는 등식 9 내지 등식 12)의 양 변 중 상기 서브 네트워크의 상태인 과거상태(=직전상태)를 나타내는 제1변에 상기 판별노드가 포함되어 있는지를 확인할 수 있다.
예컨대, 등식 9 내지 등식 12에 있어서 상기 직전시점에서의 과거상태를 나타내는 제1변은 좌변과 우변 중 좌변이다.
본 발명의 일 실시예에 따른 단계(S24)에서 상기 제1갱신규칙에 포함된 등식들 중 상기 제1변에 상기 판별노드가 포함되어 있는 등식들을 선택할 수 있다.
예컨대, 단계(S22)의 예에서 판별노드는 노드 X1인데 등식 9 내지 등식 12에 있어서 좌변에 노드 X1이 포함된 등식은 등식 10 및 등식 12이다. 따라서 상기 선택된 등식은 등식 10 및 등식 12이다.
본 발명의 일 실시예에 따른 단계(S25)에서 상기 선택된 등식들을 이용하여, 상기 직전시점의 바로 다음 시점인 기준시점에서의 상기 서브 네트워크의 상태가 상술한 터미널 상태인지 여부를 판별하는 판별식을 결정할 수 있다.
예컨대 상기 선택된 등식은 등식 10 및 등식 12을 살펴보면, 유효한 과거 상태인 X1 값이 존재하려면, X1 =X2 * =X1=¬X4 *인 관계가 성립해야 한다. 즉, X2 * =¬X4 *인 관계가 성립해야만, 주어진 X1 *의 직전값인 X1가 유효하게 존재할 수 있다.
반대로 만일 상기 X2 * =¬X4 *인 관계가 성립하지 않는다면, 즉, X2 * =X4 *인 관계가 성립한다면, 주어진 X1 *의 직전값인 X1가 유효하게 존재하지 않는다고 볼 수 있다. 즉, 상기 제1서브 네트워크의 가능한 상태들 중 X2 * =X4 *인 관계가 성립하는 상태가 주어졌다면, 상기 주어진 상태보다 이전에 발생한 다른 값의 상태는 존재하지 않는다는 것을 알 수 있다. 그리고 상술한 정의에 의하여 상기 주어진 상태는 터미널 상태인 것으로 간주될 수 있다.
이때, 상기 X2 * =X4 *로 규정되는 식을 상술한 판별식인 것으로 정의할 수 있다. 아래의 등식 13은 상기 제1서브 네트워크에서 얻을 수 있는지 특정한 상태가 터미널 상태인지 여부를 판별하는 판별식이다.
서브 네트워크의 구조에 따라 판별식은 존재하지 않거나 또는 복수 개 존재할 수도 있다.
[등식 13 ] = [판별식] X2 * =X4 *
본 발명의 일 실시예에 따른 단계(S31)에서 상기 제1부울리언 네트워크의 특정 끌개를 획득할 수 있다.
예컨대, 상기 특정 끌개에서 상기 제1부울리언 네트워크의 각 노드(X1 내지 X5)가 갖는 값은 아래의 표 1 및 표 2와 같이 제시될 수 있다. 표 1 또는 표 2의 상태를 갖는 시점을 이하 제1시점 또는 기준시점으로 지칭할 수 있다.
기준시점에서의 제1부울리언 네트워크의 제1상태(예시)
X1 X2 X3 X4 X5
0 1 1 0 1
기준시점에서의 제1부울리언 네트워크의 제2상태(예시)
X1 X2 X3 X4 X5
1 0 0 1 1
본 발명의 일 실시예에 따른 단계(S32)에서 상기 제1부울리언 네트워크의 서브 네트워크인 제1서브 네트워크의 제1끌개를 획득할 수 있다.
예컨대, 상기 제1끌개에서 상기 제1서브 네트워크의 각 노드가 갖는 값은 아래의 표 3 및 표4와 같이 제시될 수 있다. 표 3 및 표 4의 상태를 갖는 시점을 이하 제1시점으로 지칭할 수 있다.
본 명세서에서 상기 제1시점에서의 상기 제1서브 네트워크의 상태를 '기준시점의 상태', 또는 '제1시점의 상태' 또는 '제1레이어의 상태'로 지칭할 수도 있다. 상기 제1끌개가 포인트 끌개(point attractor)인 경우, 상기 제1끌개의 끌개유역인 제1끌개유역에서의 상기 '기준시점의 상태'는 1개가 존재할 수 있다. 이와 비교하여, 상기 제1끌개가 사이클릭 끌개(cyclic attractor)인 경우, 상기 제1끌개의 끌개유역인 제1끌개유역에서의 상기 '기준시점의 상태'는 복수 개가 존재할 수 있다. 표 3 및 표 4는 상기 제1끌개가 사이클릭 끌개인 경우를 나타낸 것이다.
기준시점에서의 제1상태(예시)
X1 X2 X3 X4
0 1 1 0
기준시점에서의 제2상태(예시)
X1 X2 X3 X4
1 0 0 1
본 발명의 일 실시예에 따른 단계(S41)에서, ① 상기 제1서브 네트워크의 제1끌개의 값 및 ② 상기 제1갱신규칙을 이용하여, 상기 기준시점의 직전시점(=제2시점)에서의 상기 제1서브 네트워크의 상태들 중 어느 하나를 계산할 수 있다.
본 명세서에서 상기 기준시점의 직전시점인 제2시점에서의 상기 제1서브 네트워크의 상태를 '직전시점의 상태', '제2시점의 상태' 또는 '제2레이어의 상태'으로 지칭할 수 있다. 상기 직전시점의 상태는 없거나, 1개 이거나, 또는 복수 개 존재할 수 있다.
예컨대 표 3에 나타낸 ① 기준시점에서의 제1상태 {X1 , X2 , X3 , X4} = {0, 1, 1, 0}에 ② 상기 갱신규칙을 적용하여, 상기 기준시점의 직전시점에서의 상태 중 어느 하나인 '직전시점의 제1상태'를 계산하면, 표 5와 같이 제시될 수 있다.
직전시점에서의 제1상태(예시)
X1 X2 X3 X4
1 0 0 1
표 5에 제시한 직전시점에서의 제1상태는 상기 기준시점에서의 제2상태(=사이클릭 끌개)와 동일하다는 점을 알 수 있다. 따라서 사이클릭 끌개의 성질에 따라, 상기 직전시점보다 미리 발생한 시점인 제3시점에서의 상태는 다시 상기 기준시점에서의 제1상태와 동일하게 된다는 점을 이해할 수 있다.
표 4에 나타낸 기준시점에서의 제2상태 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}에 상기 갱신규칙을 적용하여, 상기 기준시점의 직전시점에서의 상태 중 또 다른 어느 하나인 '직전시점의 제2상태'를 계산하면, 표 6과 같이 제시될 수 있다.
직전시점에서의 제2상태(예시)
X1 X2 X3 X4
0 1 1 0
표 6에 제시한 직전시점에서의 제2상태는 상기 기준시점에서의 제1상태(=사이클릭 끌개)와 동일하다는 점을 알 수 있다. 따라서 상기 직전시점보다 먼저 발생한 시점인 제3시점에서의 상태는 다시 상기 기준시점에서의 제2상태와 동일하게 된다는 점을 이해할 수 있다.
표 4에 나타낸 기준시점에서의 제2상태 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}에 상기 갱신규칙을 적용하여, 상기 기준시점의 직전시점에서의 상태 중 또 다른 어느 하나인 '직전시점의 제3상태'를 계산하면, 표 7과 같이 제시될 수 있다.
직전시점에서의 제3상태(예시)
X1 X2 X3 X4
0 1 1 1
표 4에 나타낸 기준시점에서의 제2상태 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}에 상기 갱신규칙을 적용하여, 상기 기준시점의 직전시점에서의 상태 중 또 다른 어느 하나인 '직전시점의 제4상태'를 계산하면, 표 8과 같이 제시될 수 있다.
직전시점에서의 제3상태(예시)
X1 X2 X3 X4
0 1 0 0
상술한 표 3 내지 표 8에 제시한 상태들을 정리하면, 기준시점(제1레이어 또는 제1시점)의 상태로는 {X1 , X2 , X3 , X4} = {0,1,1,0} 및 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}의 2개가 존재함을 알 수 있다. 그리고 직전시점(제2레이어 또는 제2시점)의 상태로는 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}, {X1 , X2 , X3 , X4} = {1, 0, 0, 1}, {X1 , X2 , X3 , X4} = {0,1,1,1}, 및 {X1 , X2 , X3 , X4} = {0,1,0,0}의 4개가 존재함을 알 수 있다.
이제 새롭게 산출된 상기 4개의 직전시점 상태들 각각이, 그 보다 앞선 시점에서의 상태들인 이전상태를 갖는지 여부를 반복하여 계산할 수 있다.
이때, 새롭게 산출된 상기 4개의 직전시점 상태들 중 상기 터미널 상태가 존재하는지 여부를 상기 판별식을 이용하여 확인할 수 있다. 이러한 확인 작업을 거치면, 터미널 상태인 것으로 확인된 직전시점 상태들에 대해서는, 상기 직전시점 상태들보다 앞서 발행한 이전상태의 상태들을 구하는 과정을 거칠 필요가 없으므로 컴퓨팅 파워가 감소된다. 즉, 아래의 단계(S51)을 실행할 수 있다.
본 발명의 일 실시예에 따른 단계(S51)에서는, 기준시점의 상태로부터 새롭게 산출된 직전시점의 상태들 중 상기 판별식을 만족하는 직전시점의 상태를 터미널 상태로 결정할 수 있다.
예컨대 상기 제1서브 네트워크에 대하여 도출된 상기 판별식은 상기 등식 13인데, 상기 직전시점의 상태들 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}, {X1 , X2 , X3 , X4} = {1, 0, 0, 1}, {X1 , X2 , X3 , X4} = {0,1,1,1}, 및 {X1 , X2 , X3 , X4} = {0,1,0,0} 중, 상기 직전시점의 제3상태인 {X1 , X2 , X3 , X4} = {0,1,1,1}만이 상기 판별식을 만족한다. 따라서 상기 직전시점의 제3상태만이 터미널 상태인 것으로 결정할 수 있다.
본 발명의 일 실시예에 따른 단계(S61)에서, 상기 직전시점의 상태들 중, ① 터미널 상태가 아니며 ② 끌개(=제1끌개)가 아닌 것으로 결정된 상태에게, 새로운 기준시점의 상태로서의 자격을 부여하고, 상기 새로운 기준시점의 상태들 각각에 대하여 직전시점의 상태를 결정할 수 있다.
예컨대, 상기 4개의 직전시점의 상태들 중, 끌개(=제1끌개)인 것으로 판명된 {X1 , X2 , X3 , X4} = {1, 0, 0, 1}, {X1 , X2 , X3 , X4} = {1, 0, 0, 1}은 상기 새로운 기준시점의 상태로서의 자격을 부여받을 수 없다. 또한, 상기 4개의 직전시점의 상태들 중, 터미널 상태인 것으로 판명된 {X1 , X2 , X3 , X4} = {0,1,1,1}은 상기 새로운 기준시점의 상태로서의 자격을 부여받을 수 없다.
따라서 상기 4개의 직전시점의 상태들 중 오직 {X1 , X2 , X3 , X4} = {0,1,0,0}만이 상기 새로운 기준시점의 상태로서의 자격을 부여받을 수 없다.
따라서 {X1 , X2 , X3 , X4} = {0,1,0,0}을 기준시점의 상태로 삼아, 이에 대한 직전시점의 상태를 상기 갱신규칙에 따라 생성할 수 있다.
상술한 단계들을 반복하여, 상기 새로운 기준시점의 상태로서의 자격을 부여받을 수 있는 상태가 더 이상 발견되지 않으면 상기 제1서브 네트워크의 상기 제1끌개가 속한 끌개유역인 제1끌개유역에 포함된 모든 상태가 결정된 것으로 간주할 수 있다.
본 발명의 일 실시예에 따른 단계(S71)에서, 상기 확정된 제1끌개유역의 모든 상태값에, 상기 제거되었던 대칭노드의 값을 부가함으로써, 상기 제1 부울리언 네트워크의 상기 특정 끌개가 속한 특정 끌개유역의 모든 상태를 결정할 수 있다.
이때 상기 대칭노드의 값으로서 상기 대칭노드가 가질 수 있는 모든 값이 부가될 수 있다. 예컨대 제거되었던 대칭노드가 1개인 경우, 상기 제1 부울리언 네트워크의 상기 특정 끌개유역의 모든 상태들의 개수는, 상기 제1서브 네트워크의 상기 제1끌개유역의 모든 상태들의 개수의 2배일 수 있다.
도 6은 본 발명의 일 실시예에 따라, 주어진 제1 부울리언 네트워크의 특정 상태가 터미널 상태인지 여부를 판단하는 방법을 나타낸 순서도이다.
단계(S11)에서 주어진 제1부울리언 네트워크의 네트워크 구조를 획득할 수 있다.
단계(S12)에서 상기 제1부울리언 네트워크 중 구조적 대칭노드를 결정할 수 있다.
단계(S13)에서 상기 제1부울리언 네트워크의 구조로부터 상기 결정된 모든 구조적 대칭노드를 제거함으로써 얻을 수 있는 제1서브 네트워크를 결정한다.
단계(S14)에서 상기 제1서브 네트워크의 구조에 관한 정보를 기초로 상기 제1서브 네트워크의 상태의 갱신규칙인 제1갱신규칙을 결정할 수 있다.
단계(S21)에서 상기 제1갱신규칙으로부터 또는 상기 제1서브 네트워크의 구조에 관한 정보로부터, 임의의 제1노드의 직전시점(=과거시점)에서의 상태가 상기 제1서브 네트워크의 기준시점(=미래시점)에서의 상태에 의해 유일하게 결정되는지 여부를 결정하여, 유일하게 결정되는 경우에는 상기 제1노드를 결정형 노드로 분류하고, 유일하게 결정되지 않는 경우에는 상기 제1노드를 비결정형 노드로 분류할 수 있다.
단계(S22)에서 상기 결정형 노드로 분류된 노드들 중 아웃바운드 링크가 복수 개인 노드를 판별노드로 분류할 수 있다.
단계(S23)에서 상기 제1갱신규칙에 포함된 각각의 등식(등식 1 내지 등식 4, 또는 등식 5 내지 등식 8, 또는 등식 9 내지 등식 12)의 양 변 중 상기 서브 네트워크의 상태인 과거상태(=직전상태)를 나타내는 제1변에 상기 판별노드가 포함되어 있는지를 확인할 수 있다.
단계(S24)에서 상기 제1갱신규칙에 포함된 등식들 중 상기 제1변에 상기 판별노드가 포함되어 있는 등식들을 선택할 수 있다.
단계(S25)에서 상기 선택된 등식들을 이용하여, 상기 직전시점의 바로 다음 시점인 기준시점에서의 상기 서브 네트워크의 상태가 상술한 터미널 상태인지 여부를 판별하는 판별식을 결정할 수 있다.
도 7은 본 발명의 일 실시예에 따라, 주어진 제1 부울리언 네트워크의 특정 끌개가 속한 특정 끌개유역의 모든 상태를 결정하는 방법을 나타낸 순서도이다.
단계(S31)에서 상기 제1부울리언 네트워크의 특정 끌개를 획득할 수 있다.
단계(S32)에서 상기 제1부울리언 네트워크의 서브 네트워크인 제1서브 네트워크의 제1끌개를 획득할 수 있다.
단계(S41)에서, ① 상기 제1서브 네트워크의 제1끌개의 값 및 ② 상기 제1갱신규칙을 이용하여, 상기 기준시점의 직전시점(=제2시점)에서의 상기 제1서브 네트워크의 상태들 중 어느 하나를 계산할 수 있다.
단계(S51)에서는, 기준시점의 상태로부터 새롭게 산출된 직전시점의 상태들 중 상기 판별식을 만족하는 직전시점의 상태를 터미널 상태로 결정할 수 있다.
단계(S61)에서, 상기 직전시점의 상태들 중, ① 터미널 상태가 아니며 ② 끌개(=제1끌개)가 아닌 것으로 결정된 상태에게, 새로운 기준시점의 상태로서의 자격을 부여하고, 상기 새로운 기준시점의 상태들 각각에 대하여 직전시점의 상태를 결정할 수 있다.
단계(S71)에서, 상기 확정된 제1끌개유역의 모든 상태값에, 상기 제거되었던 대칭노드의 값을 부가함으로써, 상기 제1 부울리언 네트워크의 상기 특정 끌개가 속한 특정 끌개유역의 모든 상태를 결정할 수 있다.
II. 본 발명의 일 실시예에 따라 결정된 특정 끌개유역의 모든 상태에 관한 정보를 이용하여 구현할 수 있는 응용사례 - 원하지 않는 초기상태를 원하는 끌개로 변환시키는 방법
상술한 바와 같이, 본 발명의 일 실시예에 따르면, 부울리언 네트워크의 끌개 지형은 완전히 알지 못하더라도, 상기 부울리언 네트워크의 원하는 특정 끌개가 속한 특정 끌개유역의 모든 상태를 빠르게 결정할 수 있다. 이하, 이렇게 결정한 특정 끌개유역의 모든 상태를 이용하여 수행할 수 있는 응용사례를 제시한다.
본 발명의 일 실시예에 따르면, 원하지 않는 초기상태로부터의 원하는 바운더리로 일시적인 섭동에 의해 상태를 천이시키는 방법을 제공할 수 있다.
도 8은 본 실시예에서 사용되는 몇 가지 용어의 이해를 돕기 위한 다이어그램이다.
도 8에 나타낸 원(circle)들(1111, 1121, 1131, 1211)은 각각 부울리언 네트워크의 노드들의 값의 조합에 의해 구분되는 서로 다른 상태를 나타낸다. 상기 부울리언 네트워크는 상술한 도 1 내지 도 7에 설명한 제1 부울리언 네트워크일 수 있다.
상태(1111, 1121, 1131)은 원하는 제1끌개유역[DB]에 속하는 상태들이다.
상태(1211)는 원하지 않는 제2끌개유역[UB]에 속하는 원하지 않는 제2상태[US](1211)이다. 즉, 상태(1211)는 일시적인 섭동의 제공이 필요한 또는 일시적인 섭동을 가해야 하는 초기상태인 제1초기상태(1211)이다.
상태(1111, 1121, 1131)는 원하는 제1끌개유역[DB]에 존재하는 한 개 이상의 상태천이경로들 중 제1상태천이경로(3101) 상에 존재하는 상태들이다. 제1상태천이경로(3101)에는 도 8에 표시하지 않은 다른 상태들이 더 존재할 수 있다. 제1상태천이경로(3101)에 표시된 화살표는 시간의 흐름에 따른 상태 변화의 방향을 나타낸 것이다. 제1상태천이경로(3101) 상에서 상태는 상태(1111) --> 상태(1121) --> 상태(1131)의 순서로 변화한다.
특히, 상태(1111)는 시간 영역에서 그 이전의 상태가 존재하지 않는 터미널 상태(1111)를 나타내고, 상태(1121)는 원하지 않는 상태 (1211)로부터의 바운더리 상태를 나타내며, 상태(1131)는 원하는 제1끌개유역[DB]의 끌개인 원하는 제1끌개(1131)을 나타낸다.
참조번호 2101은 제1초기상태(1211)로부터 터미널 상태(1111)와 동일한 해밍거리 HD1를 갖는 상태들의 집합을 나타내며, 참조번호 2102는 제1초기상태(1211)로부터 제1끌개(1131)과 동일한 해밍거리 HD2를 갖는 상태들의 집합을 나타내며, 그리고 참조번호 2103은 제1초기상태(1211)로부터 바운더리 상태(1211)와 같이 최소해밍거리 mHD를 갖는 상태들의 집합을 나타낸다. 이때, mHD < HD1 < HD2인 관계가 성립한다.
도 8에서 상태천이경로(3101) 상에는 제1초기상태(1211)로부터의 제1끌개유역[DB]의 바운더리 상태(1121)가 존재하는 것으로 되어 있지만, 제1끌개유역[DB]의 도시되지 않은 또 다른 상태천이경로에는 제1초기상태(1211)로부터의 제1끌개유역[DB]의 바운더리 상태가 존재하지 않을 수도 있다.
도 9는 본 실시예에서 사용되는 터미널 상태, 바운더리 상태, 최소해밍거리, 해밍거리, 원하는 끌개, 끌개, 초기상태, 상태천이경로를 설명하기 위한 또 다른 다이어그램이다.
참조번호 3102, 3103, 3104, 및 3105는 각각 원하는 제1끌개유역[DB]에 포함된 서로 다른 상태천이경로를 나타낸다.
참조번호 1212는, 원하지 않는 제2끌개유역[UB]에 포함된 상태로서, 일시적인 섭동의 제공이 필요한 또는 일시적인 섭동을 가해야 하는 초기상태인 제2초기상태(1212)를 나타낸다.
참조번호 2201은 제2초기상태(1212)로부터 해밍거리 2를 갖는 상태들의 제1집합을 나타내며, 참조번호 2202는 제2초기상태(1212)로부터 해밍거리 3를 갖는 상태들의 제2집합을 나타내며, 참조번호 2203은 제2초기상태(1212)로부터 해밍거리 4를 갖는 상태들의 제3집합을 나타내며, 참조번호 2204는 제2초기상태(1212)로부터 해밍거리 5를 갖는 상태들의 제4집합을 나타내며, 그리고 참조번호 2206은 제2초기상태(1212)로부터 최소해밍거리 1을 갖는 제6집합[m]을 나타낸다. 도 9에 나타낸 예에서 터미널 상태(1112, 1113, 1114, 1115)는 각각 상기 제1집합, 상기 제2집합, 상기 제1집합, 및 상기 제1집합에 속한다. 도 9에 나타낸 예에서 원하는 제2끌개(1132)는 상기 제4집합에 속한다. 그리고 바운더리 상태(1123, 1125)는 모두 상기 제6집합[m]에 속한다.
도 9에 나타낸 모든 원들 중 제2초기상태(1212)를 제외한 다른 모든 원들은 원하는 제1끌개유역[DB]에 포함된 것이다.
도 10은 도 9에 제시한 개념을 더 정교화 한 것으로서, 각 상태를 복수 개의 노드들의 값들의 조합으로 구체화하여 나타낸 것이다.
도 10의 (a)는 주어진 부울리언 네트워크(100)의 예이다. 도 10의 (a)에서 영어 대문자 A, B, C, D, E, F, G를 둘러싼 각 원들은 상기 부울리언 네트워크(100)에 포함된 서로 다른 노드들을 의미한다. 즉, 도 10의 (a)에 제시된 부울리언 네트워크(100)는 총 7개의 노드들과 이 노드들을 연결하는 링크들에 의해 정의된다.
도 10의 (b)는 도 10의 (a)에 나타낸 부울리언 네트워크가 갖는 일 상태의 값을 도식화한 것이다. 도 10의 (b), 도 10의 (c), 및 도 10의 (d)에서 서로 붙어 있는 7개의 노드들의 집합은 한 개의 상태를 나타낸다.
도 10의 (b)에서, 가는 외곽선(101)의 노드는 부울리언 네트워크의 각 노드가 가질 수 있는 바이너리 값 0과 1중 제1바이너리값 '1'을 나타내고, 두꺼운 외곽선(102)의 노드는 제2바이너리값 '0'을 나타낸다. 도 10의 (b)의 예에서, 노드(B) 및 노드(G)는 상기 제2바이너리값을 갖고, 나머지 노드들은 상기 제1바이너리값을 갖는다.
도 10의 (c)에서, 상태(1133)는 원하는 제1끌개(1133)를 나타낸다. 원하는 제1끌개(1133)로 향하는 상태천이경로는 복수 개 존재하며 이들을 각각 참조번호 3106, 3107, 및 3108로 표시하였다. 도 10의 (c)에서, 원하는 제1끌개(1133)의 끌개유역인 원하는 제1끌개유역[DB]에 포함된 모든 상태를 알 수 있는 것으로 가정할 수 있으나, 도 10의 (c)에서는 이 중 원하는 제1끌개(1133) 및 일부 터미널 상태인 터미널 상태(1116)만을 나타내었다.
도 10의 (d)에서, 원하지 않는 끌개유역[UB]에 속한 원하지 않는 상태인 제2초기상태(1213)가 주어져 있다고 가정할 때에, 상기 제2초기상태(1213)으로부터의 상기 제1끌개유역[DB]의 바운더리 상태(1126)를 찾아낼 수 있다.
도 10의 (d)에 나타낸 예에서, 제2초기상태(1213)와 원하는 제1끌개(1133) 간의 해밍거리(HD)는 4인 것으로 되어 있으며, 제2초기상태(1213)와 바운더리 상태(1126) 간의 최소해밍거리(mHD)는 1인 것으로 되어 있다. 도 10의 (d)에 나타낸 예에서, 제2초기상태(1213)와 바운더리 상태(1126)는 노드(C)의 값만이 서로 다를 뿐이다. 따라서 제2초기상태(1213)의 노드(C)의 값만을 일시적으로 섭동시키면, 즉 일시적으로 변화시키면 주어진 부울리언 네트워크(100)의 상태가 원하는 끌개유역[DB]에 속한 상태인 상기 바운더리 상태(1126)로 변화하게 된다. 그 결과 주어진 부울리언 네트워크(100)의 상태는 상기 바운더리 상태(1126)가 속한 상태천이경로를 따라 결국 원하는 끌개(1133)의 상태에 도달하게 된다.
도 10에 나타낸 개념에 따라 본 실시예에 따른 제어노드의 결정방법을 도 11에 나타낸 순서도와 같이 설명할 수 있다.
도 11은 본 실시예의 일 실시예에 따라 부울리언 네트워크로 모델링되는 생체분자 신호전달 네트워크를 원하는 상태로 변화시키기 위한 제어노드를 결정하는 방법, 즉 제어목표가 되는 생체분자를 결정하는 방법을 나타낸 순서도이다.
단계(S10)에서, 상기 부울리언 네트워크에 속한 끌개들 중 원하는 끌개인 제1끌개(ex: 1133)의 끌개유역인 제1끌개유역[DB]을 획득할 수 있다.
단계(S20)에서, 원하지 않는 끌개유역인 제2끌개유역[UB]에 속한 상태로서, 원하지 않는 상태인 제2 초기상태(ex: 1213)를 획득할 수 있다.
단계(S30)에서, 상기 초기상태로부터 상기 제1끌개유역[DB]의 바운더리 상태를 결정할 수 있다. 상기 바운더리는 상술한 정의에 따른 상태를 의미할 수 있다.
단계(S40)에서, 상기 초기상태와 상기 바운더리 상태 중 서로 다른 값을 갖는 노드들만을 일시적인 섭동을 가해야 하는 제어노드로서 선택할 수 있다.
단계(S50)에서, 상기 제어노드들에 대해서만 일시적인 섭동을 가함으로써, 상기 초기상태를 상기 제1끌개의 상태로 천이시킬 수 있다.
상기 단계(S10~S50)는 컴퓨팅 장치에 의해 수행될 수 있다. 상기 컴퓨팅 장치는 상기 단계(S10~S50)의 실행을 위해 필요한 자료들을 외부의 장치로부터 유무선 통신수단을 이용하여 획득할 수 있다.
이하, 상기 단계(S30)에서, 상기 초기상태로부터 상기 제1끌개유역[DB]의 바운더리 상태를 결정하는 구체적인 실시예를 도 12를 참조하여 설명한다.
도 12는 본 실시예에 따라 특정 초기상태로부터 제1끌개유역의 바운더리 상태를 결정하는 방법을 나타낸 순서도이다. 여기서 상기 특정 초기상태는 상기 제1끌개유역에 포함되지 않은 상태이다.
단계(S310)에서, 상기 부울리언 네트워크의 노드들 중 '대칭노드'(symmetric node)를 결정한다.
일 실시예에서, 상기 구조적 대칭노드는 부울리언 네트워크의 구조 정보로부터 결정할 수 있으므로, 그 결정을 위해 로직 계산을 하지 않아도 된다. 부울리언 네트워크의 각 노드에는 나가는 링크(outbound link) 및/또는 들어오는 링크(inbound link)가 연결되어 있을 수 있다. 이때, 나가는 링크가 없는 노드는 대칭노드인 것으로 간주될 수 있다. 또한, 나가는 링크가 하나인 또 다른 노드로서 상기 하나의 나가는 링크에 연결된 노드가 대칭노드인 경우에는 상기 또 다른 노드 역시 대칭노드인 것으로 간주될 수 있다.
예컨대 도 10의 (a)에 나타낸 부울리언 네트워크(100)의 노드 G에는 나가는 링크가 연결되어 있지 않다. 따라서 노드 G는 대칭노드이다. 또한 노드 F로부터 나가는 링크의 개수는 한 개이고, 이 링크에 연결된 다음 노드는 대칭노드인 노드 G이다. 따라서 노드 F 역시 대칭노드이다. 특정 끌개의 끌개유역을 계산한 후, 대칭성을 가지는 동역학적 대칭노드도 존재할 수 있다.
참고로, 어떤 끌개유역에 속한 상태들 중 대칭노드의 값이 0인 상태들의 개수와 대칭노드의 값이 1인 상태들의 개수는 서로 동일하다. 즉, 특정 끌개유역에서의 대칭노드가 갖는 상태들의 평균값이 0.5이다. 그리고 상기 대칭노드를 제외한 나머지 노드의 상태 분포가 대칭적으로 일치한다.
상기 대칭노드로 결정된 노드들은 일시적인 섭동을 사용하는 제어에 항상 참여하지 않는 노드이다. 즉 일시적인 섭동을 위한 제어대상이 아니다. 따라서 상술한 해밍거리의 산출 과정에서도 상기 대칭노드는 고려되지 않는다. 또는 상술한 해밍거리의 비교 과정에서도 상기 대칭노드는 제외될 수 있다.
임의의 부울리언 네트워크에는 상기 대칭노드가 한 개 이상 존재할 수도 있고 또는 전혀 존재하지 않을 수도 있다.
단계(S320)에서, 단계(S10)에서 정의된 원하는 제1끌개유역[DB]의 모든 상태들에 있어서 그 값이 항상 일정한 노드를 검색하여 상기 검색된 노드를 '고정노드'로 결정한다.
예컨대 도 10의 (a)에 나타낸 부울리언 네트워크(100)에서 노드 C가 상기 원하는 제1끌개유역[DB]에서의 고정노드일 수 있다.
임의의 끌개유역에는 고정노드가 한 개 이상 존재할 수도 있고 또는 전혀 존재하지 않을 수도 있다.
상기 제1끌개유역[DB]에서의 상기 고정노드의 값이, 상기 단계(S20)에 정의된 원하지 않는 상태인 초기상태(ex: 1213)에서의 상기 고정노드의 값과 동일한 경우에는, 상기 초기상태로부터 상기 원하는 제1끌개의 상태로 변화시키기 위해서는, 상기 고정노드에 대한 일시적인 섭동을 해서는 안 된다.
반대로 상기 제1끌개유역[DB]에서의 상기 고정노드의 값이, 상기 초기상태(ex: 1213)에서의 상기 고정노드의 값과 다른 경우에는, 상기 초기상태로부터 상기 원하는 제1끌개의 상태로 변화시키기 위해서는, 상기 고정노드에 대한 일시적인 섭동을 해야만 한다.
이제, 상기 부울리언 네트워크에 속한 노드들 중 상기 대칭노드 및 상기 고정노드를 제외한 나머지 노드들을 비고정/비대칭 노드(unfixed/asymmetric node)라고 정의할 수 있다.
단계(S330)에서. 상기 비고정/비대칭 노드들만을 대상으로, 상기 초기상태와 상기 원하는 제1끌개유역[DB]의 각각의 상태들 간의 해밍거리를 계산할 수 있다.
단계(S340)에서, 상기 계산된 해밍거리 중 최단 거리를 결정하고, 상기 제1끌개유역[DB]의 상태들 중 상기 최단거리를 갖는 상태들의 집합을 바운더리로 결정할 수 있다.
예컨대 도 10의 (a)에 나타낸 부울리언 네트워크(100)에서 비고정/비대칭 노드들은 노드 A, 노드 B, 노드 D, 및 노드 E일 수 있다.
상술한 단계(S310, S320, S330, S340)들에 따른 바운더리 상태 결정방법은, 본 실시예에 따른 것이다. 이와 달리, 상술한 고정노드, 대칭노드, 비고정/비대칭 노드들을 서로 구분하지 않고, 부울리언 네트워크에 포함된 모든 노드들을 대상으로 상기 초기상태와 상기 원하는 제1끌개유역[DB]의 각각의 상태들 간의 해밍거리를 계산하더라도 도 11에 나타낸 본 실시예에 따른 제어노드를 결정할 수 있다는 점을 이해할 수 있다. 다만, 상술한 단계(S310, S320, S330, S340)들에 따른 바람직한 실시예를 사용하지 않는 경우에는 바운더리 상태를 결정하기 위한 컴퓨팅 파워가 증가될 것이다.
도 13에 나타낸 그래프는 21개 노드로 구성된 네트워크에서 특정 끌개의 끌개유역의 상태들을 나타내고, 상술한 대칭노드의 성질을 설명하기 위한 것이다.
도 13에 나타낸 그래프의 가로축의 숫자 1부터 21은 21개의 노드들을 숫자로 나타낸 것이며, 21개의 값으로 구성된 각 행은 상기의 끌개 유역의 서로 다른 상태들을 나타낸 것이며, 그래프 중 어두운 부분은 각 상태에 있어서 각 노드가 갖는 값이 '1'인 경우를 나타낸 것이고, 그래프 중 밝은 부분은 각 상태에 있어서 각 노드가 갖는 값이 '0'인 경우를 나타낸 것이다.
도 13에서 노드 아이디가 20인 노드가 대칭노드이며, 상기 대칭노드가 각 상태에서 갖는 값을 그래프의 왼쪽에 별도로 표시하였다. 상기 대칭노드에 있어서 그 값이 '1'인 상태 수와 '0'인 상태 수가 서로 같다. 즉, 상기 부울리언 네트워크에서 상기 대칭노드의 상태 평균값은 0.5이다. 그리고 상기 대칭노드를 제외한 나머지 노드들 값 분포는 상기 대칭노드의 값을 기준으로 대칭을 이룬다는 점을 알 수 있다.상기의 두 가지 성질을 만족시키면 대칭노드가 된다.
상기의 두 가지 성질 때문에 원하지 않는 초기상태에서 상기 대칭노드 20을 무시하고 20개 노드만으로 구성된 상태에서 원하는 끌개유역까지의 해밍거리를 구하면 된다. 따라서 상기 대칭노드에 대한 섭동은 거리 감소에 영향을 주지 않는다. 즉, 상기 대칭노드는 상술한 일시적인 섭동을 위한 제어에 참여하지 않을 수 있다.
도 14는 본 실시예의 개념을 설명하기 위한 또 다른 p53 네트워크의 예를 나타낸 것이다.
도 14에서 p53 네트워크(110)의 네트워크 구조 중 제1영역(111)에 포함된 노드들은 모두 고정노드들이고, 제3영역(113)에 포함된 노드들은 모두 대칭노드들이며, 그리고 제2영역(112)에 포함된 노드들은 모두 비고정/비대칭 노드들이다.
p53 네트워크(110)의 원하는 끌개유역[DB]에서, 상기 대칭노드들이 갖는 상태들의 평균값은 0.5이고, 상기 고정노드들 중 PTEN 및 P53가 각각 갖는 상태들의 평균값은 1.0이고, 상기 고정노드들 중 PTEN 및 P53를 제외한 나머지 노드가 각각 갖는 상태들의 평균값은 0.0이며, 그리고 상기 비고정노드가 각각 갖는 상태들의 평균값은 0, 및 1.0이 아닌 값이고 상기 비대칭 노드는 평균값이 0.5가 아니거나 0.5가 되더라도 상기 대칭노드를 제외한 나머지 노드들 값 분포는 상기 대칭노드의 값을 기준으로 대칭을 이루지 않는다.
고정노드를 결정하는 상술한 방법과 같이, 제3영역(113)에서 Proliferation 노드로부터는 나가는 링크가 없다. 또한 P21 노드 및 CyclinD1 노드로부터 나가는 링크가 각각 하나이고, 이 링크에 연결된 노드는 대칭노드인 Proliferation 노드이다. 그리고 Bcatenin 노드로부터 나가는 링크가 하나이고, 이 링크에 연결된 노드는 대칭노드인 CyclinD1 노드이다. 따라서 제3영역(113)에 포함된 노드들은 상술한 정의에 따라 대칭노드인 것으로 결정될 수 있다.
상술한 해밍거리의 계산 및 비교는 제2영역(112)에 포함된 비고정/비대칭 노드들에 대해서만 수행될 수 있으며, 이로써 계산량을 감소시킬 수 있다.
도 15a는 본 실시예에 따른 제어목표를 설명하기 위한 다이어그램이다.
도 15a 내지 도 15c에 나타낸 원(circle)은 각 노드들을 나타내며, 어두운 바탕의 원은 '1'의 값을 갖는 상태를 나타내며, 밝은 바탕의 원은 '0'의 값을 갖는 상태를 나타낼 수 있다. 각 노드들은 각각 1 부터 21사이의 아이디를 가질 수 있다. 각 노드에 대한 아이디는 각 원의 내부에 표시되어 있다.
도 15a에서 참조번호 120은 부울리언 네트워크(120)의 구조를 나타낸다. 부울리언 네트워크(120)는 21개의 노드들 및 이들을 연결하는 링크들로 구성된다.
도 15a에서 참조번호 1214는 원하지 않는 끌개유역[UB]에 속한 원하지 않는 초기상태(1214)를 나타내며, 참조번호 1134는 원하는 끌개유역인 제1끌개유역[DB]에 속하는 원하는 제1끌개(1134)를 나타낸다.
도 15a에 나타낸 부울리언 네트워크(120)와 관련하여 다음의 전제를 먼저 이해할 필요가 있다.
첫째, 부울리언 네트워크(120)의 대칭노드들은 참조번호가 1 내지 4인 노드들이다. 이러한 대칭노드는 상술한 부울리언 네트워크의 구조 정보만으로 결정된 것이다. 상기 대칭노드들은 임의의 두 상태 간의 해밍거리의 계산 과정 및 제어노드의 선택 과정에서 고려되지 않을 수 있으며, 이로써 컴퓨팅 복잡도를 감소시킬 수 있다.
둘째, 원하는 제1끌개 (1134)가 포함되는 상기 원하는 제1끌개유역[DB]의 모든 상태들을 분석한 결과, 상기 제1끌개유역[DB]에 대한 고정노드들은 참조번호 5 내지 13인 노드들이다.
셋째, 원하는 제1끌개유역[DB]에 대한 비고정/비대칭 노드들은 참조번호 14 내지 21인 노드들이다.
이때, 초기상태(1214)와 상기 제1끌개유역[DB]에 속한 각각의 상태 간의 해밍거리는 상기 비고정/비대칭노드들, 즉, 노드(14~21)만을 대상으로 계산될 수 있다.
넷째, 도 15a에 나타낸 부울리언 네트워크(120)에서, 초기상태(1214)로부터의 상기 제1끌개유역[DB]의 바운더리 상태는 2개가 존재하며, 각각 도 15b 및 도 15c에 나타낸 제1바운더리(1127) 및 제2바운더리(1128)이다.
이제 도 15b 및 도 15c를 함께 참조하여 본 실시예에 따른 제어노드의 결정방법을 설명한다.
도 15b는 초기상태(1214) 및 제1바운더리(1127)에 있어서, 고정노드들(5~13)과 비고정/비대칭 노드들(14~21)의 상태를 나열한 것이다.
초기상태(1214)에서 고정노드(5, 7, 9, 12, 13) 및 비고정/비대칭 노드(15, 17, 21)의 값은 '0'이며, 고정노드(6, 8, 10, 11) 및 비고정/비대칭 노드(14, 16, 18, 19, 20)의 값은 '1'이다.
제1바운더리(1127)에서 고정노드(5, 6, 7, 9, 10, 12, 13) 및 비고정/비대칭 노드(15, 17, 18)의 값은 '0'이며, 고정노드(8, 11) 및 비고정/비대칭 노드(14, 16, 19, 20, 21)의 값은 '1'이다.
즉, 초기상태(1214)와 제1바운더리(1127)의 상태를 서로 비교하면 고정노드(6, 10) 및 비고정/비대칭 노드(18, 21)의 값만이 서로 다르다. 따라서 부울리언 네트워크(120)가 초기상태(1214)에 있을 때에, 고정노드(6, 10) 및 비고정/비대칭 노드(18, 21)의 값만을 일시적으로 섭동하면, 부울리언 네트워크(120)가 제1바운더리 상태(1127)로 상태변화하며, 결국 제1바운더리 상태(1127)가 속한 제1끌개유역[DB]의 끌개인 제1끌개(1134)로 그 상태가 변할 수 있다.
도 15c는 초기상태(1214) 및 제2바운더리(1128)에 있어서, 고정노드들(5~13)과 비고정/비대칭 노드들(14~21)의 상태를 나열한 것이다.
도 15b와 관련하여 설명한 바와 같이, 도 15c에서 초기상태(1214)와 제2바운더리(1128)의 상태를 서로 비교하면 고정노드(6, 10) 및 비고정/비대칭 노드(14, 21)의 값만이 서로 다르다. 따라서 부울리언 네트워크(120)가 초기상태(1214)에 있을 때에, 고정노드(6, 10) 및 비고정/비대칭 노드(14, 21)의 값만을 일시적으로 섭동하면, 부울리언 네트워크(120)가 제2바운더리상태(1128)로 상태변화하며, 결국 제2바운더리상태(1128)가 속한 제1끌개유역[DB]의 끌개인 제1끌개(1134)로 그 상태가 변할 수 있다.
도 15a 내지 도 15c를 통해 설명한 예는 바운더리 상태가 총 2개인 경우를 나타낸다. 이 예에서 도 15b와 같이 4개의 노드(6, 10, 18, 21)로 구성되는 제1세트의 노드들만을 섭동하거나, 또는 도 15c와 같이 4개의 노드(6, 10, 14, 21)로 구성되는 제2세트의 노드들만을 섭동함으로써 부울리언 네트워크(120)를 원하는 제1끌개(1134)의 상태로 변화시킬 수 있다.
이와 달리, 5개 이상의 노드들을 섭동시키더라도 초기상태(1214)를 제1끌개유역[DB]에 속한 임의의 상태로 변화시킬 수 있을 것이다. 그러나 상술한 본 실시예에 따르면, 가장 적은 수의 노드들만을 섭동함으로써 원하는 제1끌개(1134)의 상태로 변화시킬 수 있다. 각각의 노드는 서로 다른 단백질을 의미할 수 있으며, 서로 다른 단백질의 상태를 함께 섭동하기 위해서는 서도 다른 약물들을 함께 투여해야 할 수 있으므로 섭동해야 하는 노드들의 개수를 최소화함으로써 기술적인 좋은 효과를 얻을 수 있다.
III. 컴퓨팅 장치 및 장치들
도 16은 본 발명의 일 실시예에 따라 제공되는 컴퓨팅 장치 및 이와 통신하는 장치들을 나타낸 다이어그램이다.
컴퓨팅 장치(910)는, 유선으로 외부장치(940)으로 통신하거나 또는 유선 또는 무선으로 외부 장치(960, 970)와 통신하는 통신 인터페이스(930), 처리부(910), 및 저장부(920)를 포함할 수 있다.
외부장치(940)는 예컨대, USB, 외장형 하드디스크 등의 포터블 기록장치일 수 있다. 외부장치(960)는 자료를 담고 있는 데이터베이스 장치일 수 있다. 외부장치(970)는 내려 받기 가능한 명령코드를 기록해둔 장치일 수 있다.
네트워크(950)는 LAN, MAN, LTE, 무선통신, 근거리 무선 통신을 위한 네트워크 등 다양한 네트워크 중 하나일 수 있다.
처리부(910)는 CPU, MCU, FPGA, CUDA 프로세서 등 다양한 프로세싱 디바이스일 수 있다.
저장부(920)는 예컨대 컴퓨팅 장치(910)에 포함되어 있는 휘발성 메모리(ex: RAM) 및/또는 비휘발성의 저장소(ex: SDD, HDD)일 수 있다.
이때 상기 처리부(910)는, 상기 통신 인터페이스(930)를 통해 상기 외부 장치(940 또는 960)로부터 제1 부울리언 네트워크의 구조에 관한 정보, 상기 제1 부울리언 네트워크의 초기상태에 관한 정보, 상기 제1 부울리언 네트워크의 끌개들 중 상기 초기상태가 포함되지 않은 원하는 제1끌개유역에 속한 제1끌개에 관한 정보를 획득하도록 되어 있고, 상기 초기상태로부터 상기 제1끌개유역의 바운더리 상태를 결정하도록 되어 있고, 그리고 상기 부울리언 네트워크의 노드들 중 상기 바운더리 상태와 상기 초기상태 중 서로 다른 상태를 갖는 노드들을 제어노드로서 결정하도록 되어 있을 수 있다. 이때, 상기 바운더리 상태는, 상기 제1끌개유역에 속한 상태들 중, 상기 초기상태와 상기 제1끌개유역에 속한 각각의 상태들 간의 해밍거리들 중 최소해밍거리를 갖는 상태일 수 있다.
또한 상기 처리부(910)는 상기 제1 부울리언 네트워크의 특정 끌개에 관한 정보를 획득하고, 상기 제1 부울리언 네트워크로부터 대칭노드를 제외하여 얻은 제1서브 네트워크의 구조를 획득하고, 상기 제1서브 네트워크의 제1끌개가 속한 제1끌개유역의 모든 상태를 빠르게 결정하는 방법을 수행하고, 상기 제1끌개유역의 모든 상태의 정보를 이용하여 상기 제1 부울리언 네트워크의 특정 끌개가 속한 특정 끌개유역의 모든 상태를 결정하도록 되어 있을 수 있다.
저장부(920) 또는 네트워크(950)를 통해 컴퓨팅 장치(900)에 연결되는 외부장치(970)는 프로그램이 기록되어 있는 컴퓨터 판독 가능한 논트랜지토리 저장장치일 수 있다. 이때, 상기 프로그램은 상기 컴퓨팅 장치(900)의 상기 처리부(910)로 하여금 상술한 기능들 및 단계들을 실행하도록 하는 명령어의 집합들로 구성된 것일 수 있다.
상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.

Claims (12)

  1. 생체분자 신호전달 네트워크를 모델링 한 제1네트워크의 제1끌개에 관한 정보를 획득하는 단계;
    ① 상기 제1네트워크의 상태의 갱신규칙인 제1갱신규칙 및 ② 상기 제1끌개를 기초로 상기 제1네트워크의 직전상태들을 계산하는 상태 역추적 단계로서, 상기 제1끌개는 기준시점에서의 상기 제1네트워크의 상태로서의 자격이 부여된 것이며, 상기 제1네트워크의 직전상태들은 상기 기준시점의 바로 이전의 시점인 직전시점에서의 상기 제1네트워크의 상태로 정의되는, 상기 상태 역추적 단계; 및
    상기 계산된 직전상태들 각각에 대하여 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하고, 상기 상태 역추적 단계를 반복함으로써, 상기 제1끌개가 포함된 제1끌개유역의 모든 상태를 결정하는 단계
    를 포함하며,
    상기 제1네트워크의 각 노드는 상기 생체분자 신호전달 네트워크의 각 분자에 대응하고,
    상기 계산된 직전상태들 중 터미널 상태인 것으로 결정된 것들에 대해서는, 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하지 않으며, 그리고 상기 상태 역추적 단계를 반복하지 않도록 되어 있으며,
    상기 터미널 상태는, 상기 터미널 상태가 포함된 상태천이경로 상에서 그 이전의 상태가 존재하지 않는 상태이고,
    상기 계산된 직전상태가 상기 터미널 상태인지 여부를 결정하는 것은, 상기 제1갱신규칙에 포함된 등식들 중, 상기 직전시점을 나타내는 제1변에 판별노드가 포함되어 있는 판별용 등식들을 이용하여 결정되는 판별식에 의해 이루어지며,
    상기 판별노드는, 상기 제1갱신규칙 또는 상기 제1네트워크의 구조에 관한 정보를 기초로, 상기 제1네트워크에 포함된 결정형 노드들 중 아웃바운드 링크가 복수 개인 노드이며,
    상기 결정형 노드는, 각 노드의 상기 직전시점에서의 상태가 상기 기준시점에서의 상기 제1네트워크의 모든 노드 값의 순서쌍으로 표현되는 상기 제1네트워크 상태에 의해 유일하게 결정되는 노드인,
    부울리언 네트워크의 끌개유역 결정방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 판별식은,
    상기 판별용 등식들 중 제1등식의 상기 제1변 및 제2등식의 상기 제1변에 각각 제1노드가 포함되어 있는 경우, 상기 제1등식의 제2변 및 상기 제2등식의 상기 제2변의 값이 서로 같은지 여부를 판별하도록 되어 있는 식인,
    부울리언 네트워크의 끌개유역 결정방법.
  5. 제1항에 있어서,
    상기 제1네트워크는 제1 부울리언 네트워크로부터 대칭노드가 제거된 것이며,
    상기 제1네트워크의 제1끌개는 상기 제1 부울리언 네트워크의 특정 끌개에서 상기 제거된 대칭노드의 값이 제거된 것인,
    부울리언 네트워크의 끌개유역 결정방법.
  6. 제5항에 있어서,
    상기 결정된 상기 제1끌개유역의 모든 상태에 대하여 상기 제거된 대칭노드의 값을 부가함으로써, 상기 제1 부울리언 네트워크의 상기 특정 끌개가 속한 끌개유역의 모든 상태를 결정하는 단계를 더 포함하며,
    상기 부가되는 상기 대칭노드의 값은, 상기 대칭노드가 가질 수 있는 임의의 값인,
    부울리언 네트워크의 끌개유역 결정방법.
  7. 제5항에 있어서, 상기 대칭노드는 상기 제1 부울리언 네트워크의 구조만으로부터 결정되는 노드인, 부울리언 네트워크의 끌개유역 결정방법.
  8. 부울리언 네트워크인 제1네트워크의 초기상태로부터, 상기 초기상태가 포함되지 않은 원하는 제1끌개유역의 바운더리 상태를 결정하는 단계; 및
    상기 제1네트워크의 노드들 중, 상기 바운더리 상태와 상기 초기상태를 서로 비교하였을 때에 서로 다른 상태를 갖는 노드들을 제어노드로서 결정하는 단계;
    를 포함하며,
    상기 바운더리 상태는, 상기 제1끌개유역에 속한 모든 상태들 중, 상기 초기상태와 상기 제1끌개유역에 속한 각각의 상태들 간의 해밍거리들 중 최소해밍거리를 갖는 상태이며,
    상기 제1끌개유역에 속한 모든 상태는 제1항의 부울리언 네트워크의 끌개유역 결정방법에 의해 결정된 것인,
    부울리언 네트워크의 제어노드 결정방법.
  9. 제8항에 있어서, 상기 초기상태에 있는 상기 부울리언 네트워크의 노드들 중 상기 제어노드를 일시적으로 섭동하는 단계를 더 포함하는, 부울리언 네트워크의 제어노드 결정방법.
  10. 삭제
  11. 제1 부울리언 네트워크의 초기상태로부터, 상기 초기상태가 포함되지 않은 원하는 특정 끌개유역의 바운더리 상태를 결정하는 단계; 및
    상기 제1 부울리언 네트워크의 노드들 중, 상기 바운더리 상태와 상기 초기상태를 서로 비교하였을 때에 서로 다른 상태를 갖는 노드들을 제어노드로서 결정하는 단계;
    를 포함하며,
    상기 바운더리 상태는, 상기 특정 끌개유역에 속한 모든 상태들 중, 상기 초기상태와 상기 특정 끌개유역에 속한 각각의 상태들 간의 해밍거리들 중 최소해밍거리를 갖는 상태이며,
    상기 특정 끌개유역에 속한 모든 상태는 제6항의 부울리언 네트워크의 끌개유역 결정방법에 의해 결정된 것인,
    부울리언 네트워크의 제어노드 결정방법.
  12. 유선 또는 무선으로 외부 장치와 통신하는 통신 인터페이스 및 처리부를 포함하는 컴퓨팅 장치로서,
    상기 처리부는,
    상기 통신 인터페이스를 통해 상기 외부 장치로부터 제1네트워크의 제1끌개에 관한 정보를 획득하도록 되어 있고,
    ① 상기 제1네트워크의 상태의 갱신규칙인 제1갱신규칙 및 ② 상기 제1끌개를 기초로 상기 제1네트워크의 직전상태들을 계산하는 상태 역추적 단계로서, 상기 제1끌개는 기준시점에서의 상기 제1네트워크의 상태로서의 자격이 부여된 것이며, 상기 제1네트워크의 직전상태들은 상기 기준시점의 바로 이전의 시점인 직전시점에서의 상기 제1네트워크의 상태로 정의되는, 상기 상태 역추적 단계를 실행하도록 되어 있고, 그리고
    상기 계산된 직전상태들 각각에 대하여 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하고, 상기 상태 역추적 단계를 반복함으로써, 상기 제1끌개가 포함된 제1끌개유역의 모든 상태를 결정하도록 되어 있으며,
    상기 제1네트워크는 생체분자 신호전달 네트워크를 모델링 한 것이며, 상기 제1네트워크의 각 노드는 상기 생체분자 신호전달 네트워크의 각 분자에 대응하고,
    상기 계산된 직전상태들 중 터미널 상태인 것으로 결정된 것들에 대해서는, 상기 기준시점에서의 상기 제1네트워크의 상태로서의 자격을 부여하지 않으며, 그리고 상기 상태 역추적 단계를 반복하지 않도록 되어 있으며,
    상기 터미널 상태는, 상기 터미널 상태가 포함된 상태천이경로 상에서 그 이전의 상태가 존재하지 않는 상태이고,
    상기 계산된 직전상태가 상기 터미널 상태인지 여부를 결정하는 것은, 상기 제1갱신규칙에 포함된 등식들 중, 상기 직전시점을 나타내는 제1변에 판별노드가 포함되어 있는 판별용 등식들을 이용하여 결정되는 판별식에 의해 이루어지며,
    상기 판별노드는, 상기 제1갱신규칙 또는 상기 제1네트워크의 구조에 관한 정보를 기초로, 상기 제1네트워크에 포함된 결정형 노드들 중 아웃바운드 링크가 복수 개인 노드이며,
    상기 결정형 노드는, 각 노드의 상기 직전시점에서의 상태가 상기 기준시점에서의 상기 제1네트워크의 모든 노드 값의 순서쌍으로 표현되는 상기 제1네트워크 상태에 의해 유일하게 결정되는 노드인,
    컴퓨팅 장치.
KR1020190100505A 2019-08-16 2019-08-16 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법 KR102320718B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190100505A KR102320718B1 (ko) 2019-08-16 2019-08-16 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190100505A KR102320718B1 (ko) 2019-08-16 2019-08-16 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법

Publications (2)

Publication Number Publication Date
KR20210020674A KR20210020674A (ko) 2021-02-24
KR102320718B1 true KR102320718B1 (ko) 2021-11-02

Family

ID=74688937

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190100505A KR102320718B1 (ko) 2019-08-16 2019-08-16 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법

Country Status (1)

Country Link
KR (1) KR102320718B1 (ko)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
F. Greil, "Boolean Networks as Modeling Framework", Fron Plan Sci., 3:178, 2012.08.15.*
S. Paul 외, "A Decomposition-based Approach towards the Control of Boolean Networks(Technical Report)", arXiv, 1804.07221v3, 2018.05.17.*

Also Published As

Publication number Publication date
KR20210020674A (ko) 2021-02-24

Similar Documents

Publication Publication Date Title
CN110674869B (zh) 分类处理、图卷积神经网络模型的训练方法和装置
Oda et al. Evaluation of WMN-GA for different mutation operators
CN108228728B (zh) 一种参数化的论文网络节点表示学习方法
CN108696453B (zh) 轻量级的电力通信网sdn业务流感知方法及***
CN113379176B (zh) 电信网络异常数据检测方法、装置、设备和可读存储介质
WO2023030094A1 (zh) 基于矩阵运算的移动社会网络图修改方法
US11165648B1 (en) Facilitating network configuration testing
JP6325762B1 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
Hirose et al. NAS-HPO-Bench-II: A benchmark dataset on joint optimization of convolutional neural network architecture and training hyperparameters
CA2743466A1 (en) Path calculation order deciding method, program and calculating apparatus
Khan Assessing different crossover operators for travelling salesman problem
KR102320718B1 (ko) 부울리언 네트워크의 특정 끌개유역에 포함되는 모든 상태들을 결정하는 방법
US11669727B2 (en) Information processing device, neural network design method, and recording medium
Ninagawa et al. Classifying elementary cellular automata using compressibility, diversity and sensitivity measures
KR101878213B1 (ko) 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램
KR101509888B1 (ko) 소셜 네트워크에서의 메시지 전파 방법 및 그 장치
KR102452630B1 (ko) 네트워크의 구조와 끌개유역 정보로부터 거리 비교의 복잡도를 최소화하면서 경계 상태를 찾는 최적의 방법
Dai et al. Efficient online learning for opportunistic spectrum access
KR102452629B1 (ko) 최소한의 일시적 섭동을 사용해 부울리언 네트워크의 임의의 상태를 원하는 끌개의 끌개유역 경계 상태로 천이시키는 제어방법
CN115665082A (zh) 基于信息熵改进的社交网络关键节点识别方法及***
Sagawa et al. Evolutionary multiobjective optimization including practically desirable solutions
Zhuang et al. A memetic algorithm using partial solutions for graph coloring problem
CN111866078B (zh) 一种动态异构p2p网络的组网方法及***
CN117811992B (zh) 一种网络不良信息传播抑制方法、装置、设备及存储介质
Cervantes et al. Toward self-adaptive ecosystems of services in dynamic environments

Legal Events

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