차례:
정의-BWT (Burows-Wheeler Transform) 란 무엇입니까?
BWT (Burrows-Wheeler Transform)는 문자열과 같은 데이터 블록을 가져 와서 유사한 문자로 실행하는 알고리즘입니다. 변환 후 출력 블록에는 시작하기 전에 동일한 정확한 데이터 요소가 포함되지만 순서는 다릅니다. 알고리즘의 특성상 유사한 문자가 나란히 배치되어 결과 데이터 순서를보다 쉽게 압축 할 수 있습니다. 따라서 많은 압축 알고리즘에서 사용됩니다.
Techopedia는 Burrows-Wheeler Transform (BWT)을 설명합니다
Burrows-Wheeler 변환 알고리즘은 Michael Burrows와 David Wheeler가 1994 년에 발명 한 비교적 새로운 알고리즘으로, 1983 년 Wheeler가 발간 한 미공개 변환을 기반으로하는 논문 인“블록 정렬 무손실 데이터 압축 알고리즘”에 게시되었습니다.
가장 기본적으로 BWT는 문자열과 같은 데이터 블록을 사용하여 EOF 문자를 추가 한 다음 해당 문자열의 모든 회전을 사전 순서대로 정렬합니다. 다음 의사 코드 또는 단계는 알고리즘을 보여줍니다.
- 문자열의 가능한 모든 1 증분 회전을 나타내는 행이 포함 된 테이블을 만듭니다.
- 알파벳순으로 모든 행을 정렬하십시오.
- 테이블의 마지막 열을 출력하십시오.
예를 들면 : "banana"라는 단어; EOF 문자를 추가하면 "banana $"로 바뀌고 알고리즘을 적용합니다.
1. 가능한 모든 회전을 나타내는 행이있는 테이블을 만듭니다.
바나나 $
아나 나
nana $ ba
아나 $ 금지
나 $ 바나
$ banan
바나나
2. 첫 번째 열을 기준으로 사전 순 또는 사전 순으로 행을 정렬하십시오.
바나나
$ banan
아나 $ 금지
아나 나
바나나 $
nana $ ba
나 $ 바나
3. 마지막 열을 BWT 출력으로 반환하십시오 : annb $ aa
반복되는 문자가 나란히 모여 있기 때문에 결과 문자열은 압축하기가 더 쉽습니다. 그러나 역변환을 수행하려면 변환 된 데이터와 함께 추가 데이터가 저장되어 있어야합니다. 변환 된 결과 데이터는 원래 형식보다 크지 만 압축 특성이 여러 배로 증가하기 때문에 압축 방법의 효율성을 향상시키는 "자유로운"방법이됩니다.
