모든 욕심 많은 알고리즘은 matroid 구조를 가지고 있습니까?


13

모든 matroid 및 가중치 함수 에 대해 최대 가중치 기준 을 반환하는 알고리즘이 종료됩니다 . 따라서 반대 방향도 사실입니까? 즉, 욕심 많은 알고리즘이 있다면, 일부 matroid 구조가 있어야합니다.MwGreedyBasis(M,w)M


Dijkstra의 알고리즘은 종종 탐욕스러운 알고리즘으로 간주됩니다 (예 : Kleinberg 및 Tardos의 "알고리즘 디자인"4.4 절 참조). 나는 단일 소스 최단 경로에 대한 matroid 해석을 모른다.
Neal Young

실제 간격 집합을 최소 개수의 쌍으로 분리 된 하위 집합으로 분할하면 자연스러운 탐욕 알고리즘이 있습니다 (시작 시간별로 간격을 열거하고, 가능하면 기존 하위 집합에 추가 할 때마다 새 하위 집합을 시작합니다. 그렇지 않으면 Kleinberg의 4 장 참조). 타도). 이 문제를 matroid로 이해할 수 있습니까?
닐 영

답변:


12

실제로 욕심 많은 알고리즘으로 해결할 수있는 문제에 대한 완전하고 일반적인 설명은 matroid 삽입 과 matroid 개념과 greedoid 개념을 일반화하는 입니다. 대답은 더-문제 matroid 구조를 가지고 있지 욕심 알고리즘을 필요로 풀 수 없지만, 그것은 입니다 (아아, 훨씬 더 복잡)는 matroid 삽입의 구조를 가지고있다.

이 중 일부에 대한 정신 모델은 최소 스패닝 트리를 찾는 것일 수 있습니다. Kruskal의 알고리즘에서 사용되는 구조는 matroid이지만 Prim의 알고리즘에서 사용되는 구조 (시작 노드 필요)는 아닙니다. (그러나 그것은 탐욕스럽고 matroid 임베딩입니다.)

Helman et al. (1993), 그들의 논문 에서 탐욕 구조의 정확한 특성화 는 세트 시스템의 관점에서 탐욕 알고리즘의 개념을 정의하는데, 이는 마트 로이드와 탐욕에 사용되는 것과 같은 형식이다. 설정 시스템 세트로 구성 및 수집 의 서브셋 소위 가능한 세트 . 세트 시스템 의 기본 은 가능한 최대 세트, 즉 실행 가능하지만 다른 실행 가능한 세트에는 포함되지 않은 세트입니다. 목적 함수 각각의 서브 세트 연관 값으로한다. 안(S,C)SCS f:2SRS이 형식에서 최적화 문제 는 주어진 세트 시스템과 목적 함수에 대한 최대 목표 값의 기초를 찾는 것으로 구성됩니다.

이 형식주의의 관점에서 정의 된 탐욕스러운 알고리즘은 매우 간단합니다. 빈 세트로 시작하여 기초에 도달 할 때까지 단일 요소를 연속적으로 추가하여 (i) 각 단계에서 세트가 실현 가능하도록하고 ( ii) 추가 한 요소는 결과 결과의 목적 함수 wrt를 최대화합니다. 추가 할 수있는 모든 대체 요소. 즉, 개념적으로 가능한 모든 대안을 추가하고 가장 높은 목표 값을 산출하는 대안을 선택하십시오.

당신은 아마, 탐욕 알고리즘의 다른 형태가있을 수 있습니다 주장 할 수 있지만,이 세트 시스템에게 같은 기반 알고리즘 설명 알고리즘과 조합 최적화에 대한 몇 가지 교과서가 욕심 알고리즘. 그것이 맞지 않는 것을 묘사하는 것을 방해하지는 않지만 여전히 욕심이라고 불릴 수 있다고 생각합니다. (그럼에도 불구하고,이 수행 은 비록 잠재적으로, 예를 들어, matroid 구조를 가질 수있다 커버 아무것도 훨씬 더 일반적인합니다.)

Helman et al. 이 알고리즘이 언제 작동하는지 설명합니다. 더 구체적으로:

  1. 선형 목적 함수 (객관 값이 요소 가중치의 합인 경우)에서 탐욕스러운 알고리즘은 마그 로이드 임베딩으로 정의한 구조에서 정확하게 작동합니다.

  2. 그것들은 소위 병목 현상 목표에 대해 비슷한 특성을 제공합니다 (집합의 목표 값이 개별 요소 무게에 대한 최소값과 같습니다). 과

  3. 그들은 마그 로이드 임베딩에 대한 탐욕스러운 알고리즘에 의해 선형 함수 이외의 목적 함수가 최적화되는 정확한 특성을 제공합니다.


3
탐욕스러운 알고리즘의 정의가 무엇인지 설명 할 수 있습니까?
Kaveh

1
그들의 형식주의가 무엇인지 설명하기 위해 내 대답을 확장했습니다.
Magnus Lie Hetland

11

욕심 알고리즘은 공식적으로 정의 된 개념이 아닙니다. 이 직관적 인 개념을 포착하려는 다양한 모델이 있지만 탐욕스러운 알고리즘에 대한 합의는 없습니다. 욕심 많은 알고리즘으로 의미하는 바에 대한 공식적인 정의를 지정하지 않으면 질문에 예 또는 아니오로 대답 할 수 없습니다.

의 일반화가 matroids 라는 greedoid 당신이보고 할 수 있습니다 무엇을 욕심 알고리즘에 의해 영감을받은 것입니다.


욕심 많은 알고리즘 클래스의 일부 속성에 동의하면 공식적인 정의는 필요하지 않습니다. 예를 들어 모든 욕심 많은 알고리즘에 (공식적으로 정의 된) 속성 P가 있다는 데 동의하고 P를 만족시키는 모든 알고리즘을 matroid에서 정의 할 수 있으면 OP의 질문에 긍정적 인 답변을 줄 수 있습니다. 마찬가지로, 특정 알고리즘이 욕심 많은 것에 동의하고 그것이 matroid의 욕심 알고리즘 일 수 없다는 것을 보여 주면, 부정적인 답을 얻을 것입니다.
분리 Laconian

2

COIN-CHAINING EURO : 1,2,5,10 유로의 무한한 금액이 주어지면 가능한 적은 수의 지폐를 사용하여 X 유로를 지불하십시오. 욕심 많은 알고리즘을 사용하여 해결할 수 있습니다. 그러나이 문제에는 matroid 구조가 없습니다.

구멍 범위 : x_1, x_2, ..., x_n 위치에 구멍이 있습니다. 길이 10cm의 패치가 있습니다. 가능한 적은 수의 패치를 사용하여 구멍을 패치하십시오. 다시 말하지만 이것은 탐욕스러운 방식으로 해결 될 수 있지만 (가능한 한 정확하게 패치를 넣으면 됨), matroid 구조는 없습니다.


고마워, 나는 내 의심이 있었지만 확실하지 않았다. 따라서 matroid 구조가 존재하지 않더라도 욕심 많은 알고리즘을 검색해야합니다.

1
나는 보통 동적 프로그램을 찾는다. 욕심은 퇴보 DP입니다.

1
(까다 롭지 않지만 1 또는 2 유로 노트는 없습니다. 값 집합을 {5, 10, 20, 50, 100, 200}으로 바꾸거나 ;-)를 바꾸고 싶을 수도 있습니다.)
Anthony Labarre

설명 된 코인 변경 알고리즘은 {1,2,5,10}에서 작동하지만 다른 값에 대한 최적의 결과를 계산하지 못할 수도 있습니다. 예 : {1,3,4}에서 6의 최적 해는 [3,3]이지만 알고리즘은 [4,1,1]을 반환합니다.
Socowi

1
동전 교환 문제에 대한 matroid 구조가 있습니다 -gauss.ececs.uc.edu/Courses/C671/html/Homework/hw5_sol.html
Tushant Mittal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.