평신도의 용어는 무엇입니까


18

컴퓨터 과학에서 그래프 란 무엇이며 어떤 용도로 사용됩니까? 평신도의 관점에서 바람직합니다.

Wikipedia에 대한 정의를 읽었습니다 .

컴퓨터 과학에서 그래프는 수학의 그래프와 하이퍼 그래프 개념을 구현하기위한 추상 데이터 유형입니다.

그래프 데이터 구조는 노드 또는 정점이라고하는 특정 엔티티의 가장자리 또는 호라고하는 유한 한 쌍의 쌍으로 구성됩니다. 수학에서와 같이 모서리 (x, y)는 x를 y로 가리 키거나 이동한다고합니다. 노드는 그래프 구조의 일부이거나 정수 색인 또는 참조로 표시되는 외부 엔티티 일 수 있습니다.

그러나 나는 덜 공식적이고 이해하기 쉬운 정의를 찾고 있습니다.


데이터 구조를 그래프로 나타내십니까?
시스템 다운

1
네 죄송합니다. 여기에 설명 된 en.wikipedia.org/wiki/Graph_(abstract_data_type) 그래프 는 덜 공식적이고 이해하기 쉬운 정의를 찾고 있습니다.
ConditionRacer

@ Justin984 괄호가있는 Wikipedia 링크는 작동하지 않으며 괄호는 링크의 Markdown 형식과 잘 작동하지 않습니다. 이제 나중에 참조 할 수 있도록 주석이 아닌 질문 자체에 질문에 대한 설명을 추가하십시오. 눈에 띄지 않으며 쉽게 놓칠 수 있습니다. 질문에서 귀하의 위의 의견을 편집하겠습니다 ...
yannis

@ Justin984 또한 Computer Science Stack Exchange 프로그래머보다 이와 같은 질문에 더 적합 할 수 있습니다. 잘못 이해하지 마십시오. 질문은 여기에서 주제에 대해 완벽하게 다루어졌으며 큰 대답을 얻었지만 우리보다 핵심 컴퓨터 과학 개념에 중점을 둔 커뮤니티를 체크 아웃해도 아프지 않습니다. 여러 사이트에 동일한 질문을 게시하지만 잘못된 사이트에 게시하면 자동으로 올바른 사이트로 이동할 수 있습니다.
yannis

답변:


26

완벽한 평신도의 예는 Facebook 일 수 있습니다 . 귀하, 귀하의 친구 및 그들의 친구 등의 네트워크는 전체적으로 소셜 그래프라고 합니다.

이 "그래프"에서 사람들 은 그래프의 노드 로 간주 되고 가장자리우정 링크 입니다.

Facebook에서 friend 는 양방향 관계이므로 (A는 B의 친구 => B는 A의 친구입니다) 그래프는 무 방향 그래프 입니다. 관계의 방향이 여기에서 의미가 있기 때문에 Google+ 또는 Twitter와 같은 네트워크는 직접 그래프 로 간주 됩니다.

노드 간의 관계가주기를 형성 할 수 있으므로 이러한 모든 그래프를 순환 그래프라고합니다. 가족 나무는 , 다른 한편으로는, 무엇보다도이며, 그래프의 특별한 종류의 비주기가 패밀리 트리 relatioship의주기가 없을 수 있기 때문이다. ( 직접 및 비순환이기 때문에 기술적으로 DAG (Directed Acyclic Graph) 라고합니다 )

여기에는 그래프와 관련된 모든 기본 전문 용어가 포함되므로 이제 현장의 나머지 자료를 따라갈 수 있습니다.


1
그것이 페이스 북 그래프 API라고 불렀다는 것을 믿을 수 없습니다. 좋은 예입니다!
ConditionRacer

4
패밀리 트리가 주기적이지 않습니까? 해서는
안되지만

1
@MarjanVenema, 가계도는 주기적 입니까? (이것은 방향 그래프이므로주기를 결정하는 데 방향이 중요하며 아마도 단계 관계는 실제로 계산되지 않습니다.)
huon

@ dbaupp : 여기에 자세한 내용을 가고 싶지 않으므로 근친상간 한 단어 만 언급하겠습니다.
Marjan Venema

5
@MarjanVenema, 당신은 내 요점을 놓치고 있습니다. 유향 그래프에서 사이클과 같은 패턴 A -> B -> C -> A(즉, 화살표의 원), 상간 단지 제공 A -> B -> C하고 A -> D -> C(즉, 다이아몬드). 가계도의주기는 시간 여행이 필요합니다.
huon

16

그래프는 컴퓨터 과학에 사용되는 가장 중요한 수학적 개념 중 하나입니다.

여러 번 그래프를 보았습니다. 한 도시에서 다른 도시로 비행기를 타고 있다고 상상해보십시오. 당신은 필연적으로 앞 좌석 포켓에 항공사에서 멋진 광택 잡지를 찾을 수 있습니다. 해당 잡지의 뒷면 근처에서 거의 항상 해당 항공사가 서비스하는 도시를 원으로 표시하고 해당 도시를 연결하는 항공편은 곡선으로 표시되는지도를 찾을 수 있습니다. 그래프입니다! 원으로 표시된 도시는이 그래프의 노드이며 곡선으로 표시된 비행은 가장자리입니다. 그래프는 노드를 연결하는 노드와 모서리가있는 것입니다.

간단한 그래프를 다양한 방법으로 꾸밀 수 있습니다. 해당지도를 볼 때 원과 선을보고 싶지 않습니다. 그 도시에는 이름이 있습니다. 해당 도시에 레이블을 지정하면 레이블이 지정된 그래프가 표시됩니다. (예 : 비행 1234와 같이 모서리에 레이블을 지정할 수도 있습니다.) 컴퓨터 과학은 종종 데이터를 노드와 연결하고 때로는 모서리와 연결하지만 레이블의 확장 일뿐입니다. 여전히 레이블이 지정된 그래프입니다. 도시 B에서 도시 A로가 아니라 도시 A에서 도시 B로 직접 날아갈 수 있다면 또 다른 꾸밈음이 생깁니다. 이것을 묘사하는 분명한 방법은 도시를 연결하는 선에 화살표를 두어이 단방향 관계를 묘사하는 것입니다. 이제 직접 그래프가 생겼습니다.

연결된 목록, 트리, 상태 전이 다이어그램 및 기타 여러 컴퓨터 과학 데이터 구조는 모두 그래프의 예입니다. 매우 강력한 개념입니다.


필자는 예제에 설명 된 모든 엔티티가 그래프 (도시, 평면, 잡지,지도 등)에 꼭짓점으로 표시 될 수 있으며지도 자체가 단일 꼭짓점임을 나타낼 수 있도록 이 예제를 확장했습니다 .
Demian Brecht

14

더 좋은 질문은 "그래프에 사용되지 않는 것은 무엇입니까?"입니다. 컴퓨터 과학은 여러 측면에서 그래프 연구입니다.

평신도의 관점에서 그래프는 연결 지점을 나타내는 "노드"또는 "정점"이라는 임의의 추상 객체의 모음입니다. 그런 다음 "경로"또는 "가장자리"를 통해 연결됩니다. 추상 데이터 유형 "Graph"는 수학 "Graph"의 구현입니다. 따라서 기본적으로 필드와 노드로 수행 할 수있는 다양한 작업과 노드가 있습니다. 예를 들어 그래프 모음에 새 노드를 추가 할 수 있습니다 (언어에 따라 목록 또는 배열 또는 다른 구조 일 수 있음). 그런 다음 해당 노드를 기존 노드에 연결할 수 있습니다. 또한 그래프 탐색, 두 노드가 에지를 공유하는지 (연결되어 있는지), 노드 또는 에지에서 값을 검색하고, 그래프에서 노드 또는 에지를 삭제하는 작업이 포함됩니다.

활용률은 그래프가 모든 곳에서 사용됩니다. 네트워킹은 특히 많이 사용하지만 인공 지능, 데이터 마이닝, 게임 개발, 지리 정보학 및 기타 여러 분야에서 찾을 수 있습니다. 공식적인 컴퓨터 과학에서, 그들은 국가를 대표하는 방법으로 더 많은 사용을 본다.

효과적으로 연결 집합으로 나타낼 수있는 모든 것을 그래프로 표현하고 해당 ADT를 통해 어떤 형태로 구현할 수 있습니다.

다음은 내가 만든 그래픽 예입니다.

그래프 예


3

그래프는 꼭짓점이라고하는 선으로 연결된 객체 모음입니다.

"그래프"라는 용어는 소프트웨어 개발에 사용되는 많은 데이터 구조의 추상화 및 일반화입니다. 연결된 목록, 이진 트리 및 AST 는 모두 그래프입니다.

기본적으로 객체를 서로 연결하는 포인터가있는 객체 모음은 그래프입니다. 그래프를 얻은 후에는 그래프 이론 의 원리를 적용하여 특정 문제해결할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.