상세 컨텐츠

본문 제목

SparseMatrix(희소행렬) - 정의

자료구조

by ChrisMare 2017. 9. 30. 23:36

본문

희소행렬(SparseMatrix)



희소행렬(sparse matrix)은 행렬의 값이 대부분 0인 경우를 가리키는 표현이다. 그와 반대되는 표현으로는 밀집행렬(dense matrix), 조밀행렬이 사용된다. 개념적으로 희소성은 시스템들이 약하게 연결된 것에 해당한다. 한 줄로 나열된 공과 공이 스프링으로 양 옆으로 하나씩 연결되었을 때 이것은 희소 시스템이다. 그와 반대로 한 줄의 공들이 여러 방향의 공들과 스프링으로 연결되었을 때 이 시스템은 밀집 행렬이 될 수 있다. 희소의 개념은 조합론과 네트워크 이론 등과 같은 응용분야에서 유용하다.


희소행렬이 나온 이유


행렬은 공백 또는 0 값을 가진 대부분의 요소와 비영 요소의 잔존이 비선형적 형식의 행렬을 통해 이루어질 때, '희소하다(성기다, 듬성듬성하다, 드문드문하다)' 라고 말한다. 그 자연적 형식에서 많은 양의 희소한 행렬을 저장하고 분석하기란 컴퓨터 리소스의 상당한 비효율적 사용이다. 이러한 비효율성을 피하기 위해서 수학자들은 오직 비영 요소만을 남겨둔 채, 0 요소를 제거함으로써 희소 행렬을 조밀한 배열로 압축하는 수적 방법을 개발했다.


음.... 일단 쉽게 표로 설명하자면




이 테이블은 3 × 3 인데 여기서 0을 제외한 값이 있는 데이터만 뽑아서 다시 행렬을 구성한다.





지금은 테이블이 작아서 그렇치만 큰것(10 × 10 처럼)은 0이 너무 많고 값이 있는것이 적을떄는 데이터가 비효율적이라 데이터를 소모를 줄이려고 값이 있는 데이터만 뽑아서 쓴다고 한다. 맞는 지는 모르겠지만 피드백을 주시면 감사하겠습니다. 공부하는 중이라서요 헷...

관련글 더보기

댓글 영역