모든 matroid 및 가중치 함수 에 대해 최대 가중치 기준 을 반환하는 알고리즘이 종료됩니다 . 따라서 반대 방향도 사실입니까? 즉, 욕심 많은 알고리즘이 있다면, 일부 matroid 구조가 있어야합니다.
모든 matroid 및 가중치 함수 에 대해 최대 가중치 기준 을 반환하는 알고리즘이 종료됩니다 . 따라서 반대 방향도 사실입니까? 즉, 욕심 많은 알고리즘이 있다면, 일부 matroid 구조가 있어야합니다.
답변:
실제로 욕심 많은 알고리즘으로 해결할 수있는 문제에 대한 완전하고 일반적인 설명은 matroid 삽입 과 matroid 개념과 greedoid 개념을 일반화하는 것 입니다. 대답은 더-문제 matroid 구조를 가지고 있지 욕심 알고리즘을 필요로 풀 수 없지만, 그것은 것 입니다 (아아, 훨씬 더 복잡)는 matroid 삽입의 구조를 가지고있다.
이 중 일부에 대한 정신 모델은 최소 스패닝 트리를 찾는 것일 수 있습니다. Kruskal의 알고리즘에서 사용되는 구조는 matroid이지만 Prim의 알고리즘에서 사용되는 구조 (시작 노드 필요)는 아닙니다. (그러나 그것은 탐욕스럽고 matroid 임베딩입니다.)
Helman et al. (1993), 그들의 논문 에서 탐욕 구조의 정확한 특성화 는 세트 시스템의 관점에서 탐욕 알고리즘의 개념을 정의하는데, 이는 마트 로이드와 탐욕에 사용되는 것과 같은 형식이다. 설정 시스템 세트로 구성 및 수집 의 서브셋 소위 가능한 세트 . 세트 시스템 의 기본 은 가능한 최대 세트, 즉 실행 가능하지만 다른 실행 가능한 세트에는 포함되지 않은 세트입니다. 목적 함수 각각의 서브 세트 연관 값으로한다. 안 이 형식에서 최적화 문제 는 주어진 세트 시스템과 목적 함수에 대한 최대 목표 값의 기초를 찾는 것으로 구성됩니다.
이 형식주의의 관점에서 정의 된 탐욕스러운 알고리즘은 매우 간단합니다. 빈 세트로 시작하여 기초에 도달 할 때까지 단일 요소를 연속적으로 추가하여 (i) 각 단계에서 세트가 실현 가능하도록하고 ( ii) 추가 한 요소는 결과 결과의 목적 함수 wrt를 최대화합니다. 추가 할 수있는 모든 대체 요소. 즉, 개념적으로 가능한 모든 대안을 추가하고 가장 높은 목표 값을 산출하는 대안을 선택하십시오.
당신은 아마, 탐욕 알고리즘의 다른 형태가있을 수 있습니다 주장 할 수 있지만,이 세트 시스템에게 같은 기반 알고리즘 설명 알고리즘과 조합 최적화에 대한 몇 가지 교과서가 욕심 알고리즘. 그것이 맞지 않는 것을 묘사하는 것을 방해하지는 않지만 여전히 욕심이라고 불릴 수 있다고 생각합니다. (그럼에도 불구하고,이 수행 은 비록 잠재적으로, 예를 들어, matroid 구조를 가질 수있다 커버 아무것도 훨씬 더 일반적인합니다.)
Helman et al. 이 알고리즘이 언제 작동하는지 설명합니다. 더 구체적으로:
선형 목적 함수 (객관 값이 요소 가중치의 합인 경우)에서 탐욕스러운 알고리즘은 마그 로이드 임베딩으로 정의한 구조에서 정확하게 작동합니다.
그것들은 소위 병목 현상 목표에 대해 비슷한 특성을 제공합니다 (집합의 목표 값이 개별 요소 무게에 대한 최소값과 같습니다). 과
그들은 마그 로이드 임베딩에 대한 탐욕스러운 알고리즘에 의해 선형 함수 이외의 목적 함수가 최적화되는 정확한 특성을 제공합니다.
욕심 알고리즘은 공식적으로 정의 된 개념이 아닙니다. 이 직관적 인 개념을 포착하려는 다양한 모델이 있지만 탐욕스러운 알고리즘에 대한 합의는 없습니다. 욕심 많은 알고리즘으로 의미하는 바에 대한 공식적인 정의를 지정하지 않으면 질문에 예 또는 아니오로 대답 할 수 없습니다.
의 일반화가 matroids 라는 greedoid 당신이보고 할 수 있습니다 무엇을 욕심 알고리즘에 의해 영감을받은 것입니다.
COIN-CHAINING EURO : 1,2,5,10 유로의 무한한 금액이 주어지면 가능한 적은 수의 지폐를 사용하여 X 유로를 지불하십시오. 욕심 많은 알고리즘을 사용하여 해결할 수 있습니다. 그러나이 문제에는 matroid 구조가 없습니다.
구멍 범위 : x_1, x_2, ..., x_n 위치에 구멍이 있습니다. 길이 10cm의 패치가 있습니다. 가능한 적은 수의 패치를 사용하여 구멍을 패치하십시오. 다시 말하지만 이것은 탐욕스러운 방식으로 해결 될 수 있지만 (가능한 한 정확하게 패치를 넣으면 됨), matroid 구조는 없습니다.