동적 그래프 관련 문제에 접근하는 방법


15

나는 일반적인 stackoverflow 에서이 질문을 했고 여기에 지시되었다.

일반적으로 부분 또는 완전 동적 그래프 문제에 접근하는 방법을 설명 할 수 있다면 좋을 것입니다.

예를 들면 다음과 같습니다.

  • 각 인스턴스에서 에지가 제거 될 때 인스턴스 에 대한 무 방향 가중치 그래프에서 두 정점 사이의 최단 경로를 찾습니다 .(,V)
  • 각 인스턴스에서 에지를 제거 할 때 n 개의 인스턴스에 대해 무 방향 그래프에서 연결된 구성 요소 수를 찾습니다.

나는 최근에 프로그래밍 콘테스트에서이 장르의 문제에 직면했다. 웹을 통해 검색 한 결과 동적 그래프와 관련된 많은 연구 논문이 발견되었습니다 [1,2]. 나는 그중 몇 가지를 읽었고 곧 (클러스터링, 희소 화 등) 아무것도 찾을 수 없었습니다. 막연해서 죄송합니다.

일부 사람들이 이러한 개념을 더 잘 이해하기위한 포인터를 제공 할 수 있다면 정말 감사합니다.


  1. D. Eppstein, Z. Galil, GF Italiano의 동적 그래프 알고리즘 (1999)
  2. G. Nannicini, L. Liberti의 동적 그래프의 최단 경로 (2008)

답변:


12

"동적"은 다양한 것을 의미 할 수 있고 알고리즘 / 결과는 모델에 따라 다르므로 구체적인 기술을 제공하기는 어렵습니다. 아래는 우려의 개요입니다. 다음 은 몇 가지 다른 관심사와 모델에 대한 개요를 제공하는 논문입니다 (Peter가 다른 답변에서 인용 한 내용과 관련됨).


일반적으로 동적 문제의 경우 주요 문제는 다음과 같습니다.

  • 모든 경우에 정확한 해를 원하십니까? 아니면 근사치가 허용됩니까?
  • 어떤 변화가 발생할지 (예 : 확률 분포)에 대해 아는 것이 있습니까?
  • 알고리즘은 변경 사항에 대해 어떻게 학습합니까?

일반적인 동적 모델은 다음과 같습니다.

  1. 그래프가 주어지면 일부 속성을 계산하려고합니다. 초기 그래프에 대한 솔루션을 계산할 수 있습니다.

  2. (이자형,에프)

그리고 여기 3 가지 가능한 수정이 있습니다 :

  • 정보 / 시간 / 공간 제한으로 인해 처음에는 완전한 솔루션을 계산할 수 없습니다 (예 : 온라인 알고리즘 )

  • 단계 2에서, 알고리즘은 수정을 " 발견 "하지 않지만 , 데이터 구조 또는 무언가를 질의함으로써 그래프에서 수정 을 찾아야 한다.

  • 정보가 로컬에서 발견되고 계산 / 변경이 로컬로 이루어지는 분산 모델 (Peter가 다른 답변에서 논의한 것처럼).

동적 모델은 일반적으로 자원 (예 : 시간 / 공간) 제한 때문에 흥미 롭습니다. 2 단계에서 (1 단계에서했던 것처럼) 완전한 답변을 계산할 수 있다면 정적 그래프 문제 가 반복되기 때문에 문제가 쉽습니다 . 변경 사항을 계산하는 데 필요한 가장 적은 양의 리소스에 더 관심이 있습니다.


답장을 보내 주셔서 감사합니다. 간단한 부분 동적 그래프 문제를 해결하는 복잡성과 방법을 이해하려고했습니다.
Prakash

답장을 보내 주셔서 감사합니다. 나는 서류를 살펴볼 것이다. 간단한 부분 동적 그래프 문제를 해결하는 복잡성과 방법을 이해하려고했습니다. 예를 들어, 도로로 연결되고 방향이 지정되지 않고 거리에 따라 가중치가 부여 된 도시 세트가 제공됩니다. 여러 가지 이유로 각 인스턴스에서 도로가 차단 된 경우 n 개의 인스턴스에서 두 도시 사이의 가장 짧은 경로를 찾으십시오. 인스턴스에 Dijkstra를 실행하는 것은 실용적이지 않으며, A *와 같은 기존 알고리즘을 적용하여 더 나은 시간 제한으로 이러한 문제를 해결하거나 논문에서 논의 된 접근 방식이 유일한 방법입니다.
Prakash

A *는 Dijkstra + 휴리스틱의 일반화입니다. 최악의 경우 성능이 비슷합니다. 나에게 중요한 문제는 " 다음 인스턴스를 더 빠르게 만드는 인스턴스 간에 어떤 종류의 정보를 저장할 수 있습니까?"입니다. 예를 들어 이전 최단 경로를 저장하면 "실패"여부를 신속하게 확인할 수 있지만 다음 최단 경로를 계산하는 확실한 방법은 없습니다. (이전 인스턴스에서 k 개의 최단 경로를 저장하더라도, 나는 이것이 k에 해당한다고 생각합니다.)
Lucas Cook

(나의 이전 의견은 주로 최악의 솔루션에 대해 이야기하고 있습니다. 평균 사례에 관심이 있으십니까? 그렇다면 A * 유형의 솔루션을 만드는 휴리스틱이있을 수 있습니다.)
Lucas Cook

10

동적 그래프 모델은 분산 컴퓨팅에서 집중적으로 연구되었습니다. 분산 알고리즘의 경우 계산은 라운드로 구성되며 그래프의 토폴로지 (= 네트워크)는 라운드에서 라운드로 변경 될 수 있으며 이는 적의 통제를받습니다. 또한 그래프의 모든 노드는 (현재!) 이웃에게 메시지를 보낼 수있는 알고리즘을 실행합니다. (이 메시지는 다음 라운드에서 이웃 알고리즘의 입력입니다.) 흥미로운 점은 노드가 전체 그래프를 "보지"않고 로컬 이웃 만 볼 수 있다는 것입니다.

이러한 설정에서 고려되는 문제는 예를 들어 그래프의 모든 노드가 처음에 토큰을 보유하고 결국 모든 노드가 모든 토큰을 보길 원하는 정보 확산 입니다. 목표는 최소 개수의 메시지를 사용하여 최소 라운드 수에서이를 달성하는 알고리즘을 설계하는 것입니다. 최근 설문 조사는 [2]를 참조하십시오.

비 분산 설정의 경우 언급 한 용지의 확장 인 [1]을보고 싶을 수 있습니다.


[1] Aris Anagnostopoulos, Ravi Kumar, Mohammad Mahdian, Eli Upfal, Fabio Vandin : 진화하는 그래프의 알고리즘 . ITCS 2012 : 149-160

[2] Fabian Kuhn, Rotem Oshman : 동적 네트워크 : 모델 및 알고리즘 . SIGACT 뉴스 42 (1) : 82-96 (2011)


이러한 메시지 전달 알고리즘에 수렴에 문제가 있습니까?
Raphael

"수렴"의 의미를 이해하지 못했습니다. 그래프가 매 라운드마다 연결되어있는 한 특정 토큰 t를 본 노드 수는 최소한 1 증가합니다. 따라서 n 라운드 후에는 적의 토폴로지가 어떻게 바뀌 든 관계없이 모든 사람이 t를 보게됩니다.
피터

토폴로지 변경으로 인한 무한대 카운트 문제를 생각하고있었습니다 .
Raphael

@Raphael 분산 역학에서 연구원들은 일반적으로 특정 시간 내에 최악의 경우에 어떤 속성을 보장 할 수 있는지 조사하고 있습니다. 따라서 다이내믹 한 환경에서의 기술에 근본적인 문제가 있기 때문에 거리-벡터 / 벨만-포드는 "수렴"을 보장 할 수 없습니다. 카운트-투-피 니티 문제가없는 다른 수렴 라우팅 프로토콜이 있습니다.
Lucas Cook

3

@ 피터 (Peter) 답변을 기반으로 작성합니다 (매우 길기 때문에 누군가가 도움을 줄 수있는 답변으로 포함 시켰습니다).

다음 참조를 제안합니다.

Arnaud Casteigts, Paola Flocchini, Walter Quattrociocchi, Nicola Santoro : 시변 그래프 및 동적 네트워크. IJPEDS 27 (5) : 387-408 (2012)

Δ

이 분류에서 실제로 중요한 것은 다른 클래스 사이에 포함 관계가 있다는 것입니다. 따라서 특정 클래스에서 문제를 해결하면 포함 된 다른 모든 클래스에서 문제를 해결하게됩니다.

동일한 저자가 언급 된 그래프 중 일부에 브로드 캐스트 알고리즘을 제시했습니다. 그들은 시간과 관련된 다른 성능 메트릭을 제공했습니다 (즉, 가장 짧은 시간의 다른 정의). 방송에서 아이디어는 각 노드가 시간 도메인에서 네트워크의 뷰를 구축한다는 것입니다. 이웃을 반복해서 듣고 정보를 보내면됩니다. 주기성을 가정하면, 노드는 다른 노드에 대한 가장 짧은 시간 경로를 알려줄 수 있습니다. 라우팅에이 정보를 사용합니다. 자세한 내용은 다음을 참조하십시오.

Arnaud Casteigts, Paola Flocchini, Bernard Mans, Nicola Santoro : 시변 그래프의 결정적 계산 : 비정형 이동성에서 브로드 캐스팅. IFIP TCS 2010 : 111-124

V{(,엑스1),(엑스1,엑스2),....,(엑스케이,V)}VV

나는 이전 작가들의 강의에 참석했다. 내가 이해 한 바에 따르면, 우리는 동적 그래프 알고리즘을 다룰 수 없다고 주장합니다 (그들이 따르는 정의에 따름). 우리는 여전히 간단한 클래스의 경우입니다. 실제로, 그들은 대부분의 모바일 컴퓨팅 알고리즘이 네트워크가 전환되는 동안 그들의 알고리즘이 너무 빠르다고 가정한다고 주장한다. (내가 많이 들었다고 생각한다)-또는 단순히 가장자리 모양의 주기성을 가정하십시오 (지연 허용 네트워크 등 참조)

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