• 제목/요약/키워드: divide and conquer

검색결과 88건 처리시간 0.023초

DNF 논리식에 대한 효율적인 반증 알고리즘 (An Efficient Falsification Algorithm for Logical Expressions in DNF)

  • 문교식
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제28권9호
    • /
    • pp.662-668
    • /
    • 2001
  • 항진을 반증하는 문제는 항진을 검증하는 문제와 같은 난이도를 갖기 때문에 반증(또는 부당성 검증)을 위한 다항식 시간 알고리즘은 가능하지 않다. 이제까지의 그러한 알고리즘들은 가능하지 않다. 이제까지의 그러한 알고리즘들은 분할 및 정복이나 그래프 표현에 기반 한 것이 대부분이다. 대부분의 알고리즘들은 어떤 제약조건 하에서 다양한 입력에 대한 만족할 만한 결과를 보여 주었다. 그러나, 규모가 큰 입력에 대하여 이들 알고리즘들은 어려움을 경험하고 있다. 이 논문에서는 DNF(선언표준형)로 표현된 입력식을 만족하지 못하는 최소항을 구성함으로써 반례를 산출하는 병합 규칙 기반의 새로운 반증 알고리즘을 제안한다. 또한, 제안된 알고리즘의 일관성과 건전성을 증명한다. 제안된 알고리즘은 반증 과정의 각 단계에서 이루어진 할당을 통하여 반증된 항의수를 최대화하도록 greedy 방법을 기반으로 하고 있다. 실험 결과는 큰 입력의 무작위 비항진 문제 사례들을 반증하는 실용적 성능을 보여 주며 O(n$m^2$) 시간을 소비한다. 여기수 n은 변수이고 m은 항의 개수이다.

  • PDF

POSIX스레드에 의한 재귀적 알고리즘의 병렬화에서 병렬성 제어 방안 (A Device of Parallelism Control in POSIX Based Parallelization of Recursive Algorithms)

  • 이형봉;백청호
    • 정보처리학회논문지A
    • /
    • 제9A권2호
    • /
    • pp.249-258
    • /
    • 2002
  • 처리기를 여러 개 장착한 다중처리기 시스템의 근본 목적은 적은 비용으로 많은 성능 향상을 얻자는 데에 있다. 그러나 다중처리기 시스템을 충분히 활용하기 위해서는 병렬처리를 지원하는 특별한 언어를 사용하거나 병렬성을 탐색하는 도구의 도움을 얻어야 하는 경우가 대부분이다. 일반적으로 알고리즘에서 병렬화에 적합한 대표적인 영역으로 루프와 재귀호출 등이 알려져 있다. 이 중 재귀호출은 특별한 도구나 언어의 지원 없이 개념적인 측면에서 비교적 쉽게 병렬화 시킬 수 있다. 그러나 재귀호출이 깊어지면 통제되지 않은 병렬성이 과도하게 높아져 오히려 수행불능 상태가 되고 만다. 본 논문은 POSIX스레드를 이용하여 재귀호출로 구성된 알고리즘을 병렬화시키는 과정에서 병렬성을 제어하는 방안을 제시한다. 이를 위하여 유닉스 시스템에서 프로세스와 스레드의 개념을 정립하고, 제안된 병렬성 제어 방안을 퀵 정렬에 적용한 결과를 실증적으로 분석하여 그 효용성을 검증한다.

Multi-Layer Perceptron 기법을 이용한 전력 분석 공격 구현 및 분석 (Implementation and Analysis of Power Analysis Attack Using Multi-Layer Perceptron Method)

  • 권홍필;배대현;하재철
    • 정보보호학회논문지
    • /
    • 제29권5호
    • /
    • pp.997-1006
    • /
    • 2019
  • 본 논문에서는 기존 전력 분석 공격의 어려움과 비효율성을 극복하기 위해 딥 러닝 기반의 MLP(Multi-Layer Perceptron) 알고리즘을 기반으로 한 공격 모델을 사용하여 암호 디바이스의 비밀 키를 찾는 공격을 시도하였다. 제안하는 전력 분석 공격 대상은 XMEGA128 8비트 프로세서 상에서 구현된 AES-128 암호 모듈이며, 16바이트의 비밀 키 중 한 바이트씩 복구하는 방식으로 구현하였다. 실험 결과, MLP 기반의 전력 분석 공격은 89.51%의 정확도로 비밀 키를 추출하였으며 전처리 기법을 수행한 경우에는 94.51%의 정확도를 나타내었다. 제안하는 MLP 기반의 전력 분석 공격은 학습을 통한 feature를 추출할 수 있는 성질이 있어 SVM(Support Vector Machine)과 같은 머신 러닝 기반 모델보다 우수한 공격 특성을 보임을 확인하였다.

구조적 또는 정보공학 소프트웨어 개발 방법론 개선 절차 (The Procedure for Improving Structural Methodology or Information engineering Methodology)

  • 정병권;윤석민
    • 정보처리학회논문지D
    • /
    • 제9D권6호
    • /
    • pp.1083-1090
    • /
    • 2002
  • 소프트웨어개발방법론은 급변하는 정보기술변화에 따라가지 못한다. 대부분의 소프트웨어 개발 프로젝트는 구조적 또는 정보공학 방법론을 사용한다. 기존 소프트웨어 개발 방법론이 프로젝트에 적용할 기술이 반영이 안되어 있다면, 프로젝트는 비효율적으로 수행되어진다. 본 논문은 새로운 정보기술을 기존의 구조적 또는 정보공학 방법론에 용이하게 반영하여 개선하는 모델을 제안한다. 본 모델은 소프트웨어 생명주기를 단계들로 나누고 각 단계는 관점 영역으로 나누어 분할된 작은 영역에 새로 적용할 정보기술을 반영하는 분할과 정복 기법을 활용한다. 적용사례는 설계단계를 중심으로 KCC 정보통신(주)에서 사용한 클라이언트 서버 방법론 CS@RoadMap에 웹 기반 소프트웨어 개발절차를 반영하였다. CS@RoadMap방법론에 웹 기술을 반영한 Web@RoadMap방법론을 공공 프로젝트에 적용하였다.

그래프 채색에 의한 타임 슬롯 할당 알고리즘 (Time Slot Assignment Algorithm with Graph Coloring)

  • 권보섭
    • 한국콘텐츠학회논문지
    • /
    • 제8권5호
    • /
    • pp.52-60
    • /
    • 2008
  • 위성 통신 분야에서 널리 사용되는 시분할 다중 스위칭 시스템은 많은 저대역폭 가입자들로부터 발생되는 트랙픽을 반복되는 프레임에 타임 슬롯을 할당해야 한다. 본 논문에서는 타임 슬롯 할당을 위한 새로운 방법을 제안한다. 기존의 방법인 네트워크 흐름 모델을 사용하지 않고 새로운 방법인 그래프 채색방법을 사용하여 효율적인 타임 슬롯 할당 알고리즘을 제안하였다. 제안된 알고리즘은 주어진 트래픽의 프레임 길이가 2의 멱승일 경우 트래픽을 정확히 반으로 나누어 할당한다. 분할된 트래픽의 프레임 길이가 1이 될 때까지 이 과정을 계속적으로 반복해 분할한다. 제안된 알고리즘의 시간 복잡도는 프레임의 길이가 L이고 스위치 크기가 N인 경우에는 기존의 네트워크 흐름 모델을 사용한 최적의 타임 슬롯 할당 알고리즘의 시간 복잡도는 $O(N^{4.5})$ 인데 반해 $O(NLlog_2L)$이다.

실시간 제약조건을 갖는 다중태스크 다중코어 SoC의 하드웨어-소프트웨어 통합합성 (Hardware-Software Cosynthesis of Multitask Multicore SoC with Real-Time Constraints)

  • 이춘승;하순회
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제33권9호
    • /
    • pp.592-607
    • /
    • 2006
  • 이 논문은 실시간 제약 조건을 갖는 다중태스크 응용을 여러 개의 코어를 갖는 SoC 위에서 동작시키고자 할 때, 시스템의 비용은 최소로 하면서 성능을 높일 수 있도록 프로세서 및 하드웨어 IP를 선정하고, 태스크를 매핑 하는 기법을 제안한다. 이와 같은 기법은 하드웨어-소프트웨어 통합합성 기법이라고 한다. 이전 연구에서 우리는 복잡한 통합합성 문제를 세 가지 하부 문제(프로세서 컴포넌트 선택문제, 태스크 매핑문제, 그리고 스케줄-가능성 검사문제)로 세분화 하고, 각 문제를 독립적으로 해결하는 기법을 제안하였다[1]. 하지만 많은 장점에도 불구하고 이전 연구에서는 한 태스크가 스케줄 될 때, 자신의 스케줄-길이를 최소로 줄이기 위해 시스템 전체 자원을 모두 점유하는 것을 가정하는 제약점이 있었다. 그러나 일반적으로 보다 향상된 성능을 얻기 위해서는, 서로 관련이 없는 태스크들은 서로 다른 프로세서에서 동시에 실행될 수 있어야 한다. 이 논문에서는 다중프로세서 환경에서 다양한 운영정책을 가지는 일반적인 시스템을 위하여 태스크 매핑회피 기법과 태스크 매핑전용 기법이라는 두 가지 매핑기법을 제시한다. 멀티미디어 실시간 응용 프로그램인 다채널 디지털 비디오 레코더(Digital Video Recorder)와 관련 논문에서 제공된 임의 생성 다중태스크 예제에 대해서 큰 성능 향상을 얻을 수 있었다.

범위 피벗 퀵정렬 (Quicksort Using Range Pivot)

  • 이상운
    • 한국컴퓨터정보학회논문지
    • /
    • 제17권4호
    • /
    • pp.139-145
    • /
    • 2012
  • 퀵정렬은 피벗값을 최좌측, 최우측, 중간 값 또는 랜덤하게 결정하는 방법을 적용하고 있다. 본 논문은 범위 중간값을 $P_0$피벗값으로 결정하고 계속적으로 양분하는 퀵정렬 방법을 제안하였다. 제안된 방법은 길이가 $n$인 리스트 $A$$i$=1, $j$=$n$에서 최소값 $L$과 최대값 $H$를 탐색하여 초기 피벗 키 값으로 $P_0=(H+L)/2$로 설정하고 $i$=$j$ 또는 $i$>$j$가 될 때까지 $a[i]{\geq}P_0$, $a[j]<P_0$를 교환하는 방식을 적용하였다. 피벗값에 따라 값의 교환이 완료되면 리스트 $A_0$는2개의 부분리스트 $a[1]{\leq}A_1{\leq}a[j]$$a[i]{\leq}A_2{\leq}a[n]$으로 분할되며 이 경우 피벗 키는 $P_1=P_0/2$, $P_2=P_0+P_1$으로 설정된다. 이러한 과정을 분할된 리스트의 길이가2일 때까지 수행되며, 리스트 길이가 2이고, $a$[1]>$a$[2]이면 $a[1]{\leftrightarrow}a[2]$로 교환한다. 제안된 방법은 퀵정렬에 비해 빠르며, 최악의 경우 수행 복잡도 $O(n^2)$$O(n{\log}n)$으로 향상시켰다.

거스름돈 만들기 문제의 정확한 나눗셈 알고리즘 (An Exact Division Algorithm for Change-Making Problem)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제22권3호
    • /
    • pp.185-191
    • /
    • 2022
  • 본 논문은 NP-난제로 다항시간 알고리즘이 알려져 있지 않은 거스름돈 만들기 문제(CMP)에 대해 $O{\frac{n(n+1)}{2}}$ 수행 복잡도의 나눗셈 알고리즘을 제안하였다. CMP는 주어진 돈 C를 cj,j=1,2,⋯,n의 동전으로 교환할 경우 교환되는 동전 개수 xj의 합을 최소화 시키는 문제이다. CMP에 대해 알려진 다항시간 알고리즘으로는 욕심쟁이 알고리즘(GA), 분할정복(DC)과 동적 계획법(DP)이 있으나 최적 해는 O(nC)의 DP로 구할 수 있으며, 일반적으로 C>2n으로 주어진 경우 수행 복잡도는 지수적으로 증가하는 경향이 있어 다항시간 알고리즘이라고 할 수 없다. 본 논문에서는 cj ≤ C에 한해, j 열에 n개의 cj 내림차순으로 배치하고, i행에는 cj의 약수를 모두 제외시킨 k개의 동전을 배치한 k×n 행렬에 대해 상삼각행렬과 주대각선 셀에 대해 나눗셈을 하여 몫(quotient)을 구하는 단순한 알고리즘을 제안한다. 제안된 알고리즘을 다양한 유형의 39개 벤치마킹 실험 데이터에 적용한 결과 최적 해를 단순히 계산기만을 사용하여도 빠르고 정확하게 구할 수 있음을 보였다.