그래프 이론을 사용하여 Archive Archive of France에서 배열 문제를 해결하는 방법은 무엇입니까?


9

안녕하세요! 나는 실제로 Archives Nationales of France에서 인턴십을하고 있는데 그래프를 사용하여 해결하려는 상황에 직면했습니다 ...

먼지가 많은 상황

보관소 비용을 최소화하기 위해 도서관 도서의 높이를 기준으로 책 배열을 최적화하려고합니다. 책의 높이와 두께는 알려져 있습니다. 우리는 이미 책을 높이 의 오름차순으로 정렬 했습니다. 각 책의 두께를 알면 각 클래스 마다 배열에 필요한 두께를 결정 하고 라고 부를 수 (예 : 높이 의 책 은 총 두께 ).H1,H2,,HH나는나는H나는=23미디엄나는=300미디엄

라이브러리는 원하는 길이와 높이를 나타내는 맞춤형 선반을 제작할 수 있습니다 (깊이에는 문제 없음). 높이 및 길이 의 선반 비용은 . 여기서H나는엑스나는에프나는+나는엑스나는에프나는 고정 비용이며 나는 길이 단위당 선반 비용입니다.

높이 선반 H나는 높이 책을 저장하는 데 사용할 수 있습니다 H제이제이나는. 비용을 최소화하고 싶습니다.

교사는이 문제를 길 찾기 문제로 모델링 할 것을 제안했습니다. 이 모델에는+1 정점 색인 양식 0. 멘토는 기존 조건, 각 엣지 의미 및 평가 방법을 해결하도록 제안했습니다.V(나는,제이) 가장자리와 관련 (나는,제이). 또한 다른 솔루션과 통찰력도 괜찮습니다.

예를 들어 컨벤션 (프랑스 역사의 어두운시기)에는 다음과 같은 배열이 있습니다.

나는124H나는12미디엄15미디엄18미디엄23미디엄나는100미디엄300미디엄200미디엄300미디엄에프나는1000120011001600나는5/미디엄6/미디엄7/미디엄9/미디엄

II. 연수생 책벌레의 가정

Djikstra, Bellman 또는 Bellman-Kalaba 사이의 알고리즘을 계산해야한다고 생각합니다 ... 다음 하위 섹션에서 어떤 알고리즘을 찾으려고합니다.

1. 조건

우리는 척추 사이의 길 찾기 문제가 있습니다. 0 그리고 꼭짓점 , 에서 나가야합니다 0 (즉, 경로 (또는 도보)는 0

2. 계산 대상 (업데이트 됨 (2015 년 10 월 25 일))

// 정점과 모델링 할 모서리를 모르는 한 계속 진행 중입니다 ...

내 최선의 추측

배열에서 가장 짧은 경로를 찾을 때마다 적어도 한 가지 유형의 선반을 제거한다고 생각하지만 그건 내 가정입니다 ...;).

선반을 구입하고 책을 보관하는 방법을 모델링하는 가장 좋은 방법은 다음 그래프와 같아야한다고 생각합니다 (그러나 제 방법을 비판하십시오!;)

0 그래프에서

꼭짓점 :

  • 나는[1,4] 책을 보관하는 데 사용할 수있는 선반입니다.
  • 0책이 저장되지 않은 상태입니다. 이 정점을 사용하면 각 비용 공식 (가장자리)을 사용할 수 있습니다.

가장자리 : 에프나는+나는엑스나는,나는[1,4]선반 유형을 사용하는 비용입니다. 예를 들어 :에프1+1엑스1 fom 0은 양피지, 원고를 저장하기 위해 유형 1 선반 만 사용하는 비용입니다 ...

그러나 여기에서 가장 짧은 경로 문제를 만드는 방법을 모르겠습니다.

사실, 나는 나의 모든 책을 어디에 보관할 것인지 알 수 없었습니다.

이것은 나를 다른 아이디어로 인도합니다 ...

또 다른 아이디어 ...

~ 0 그래프

여기에서는 주어진 정점에서 0 상태까지의 최단 경로, 즉 가장 높은 문서가 와이이자형 나는 키가 크고 문서를 정리하는 가장 저렴한 방법을 찾고 있습니다.

꼭짓점 :

  • 나는[1,4] 책을 보관하는 데 사용할 수있는 선반입니다.
  • 0모든 책이 저장된 상태입니다. 이 정점을 사용하면 각 비용 공식 (가장자리)을 사용할 수 있습니다.

가장자리 : 에프나는+나는엑스나는,나는[1,4]선반 유형을 사용하는 비용입니다. 예를 들어 :에프1+1엑스1 3에서 비용은 와이이자형 1 사용 후 선반 와이이자형  양피지, 원고를 보관할 선반 ...

그러나 나는 어디에 넣을 지 모른다. 에프4+4엑스4.

3. 계산 방법

작은 책을 보관할 수있는 한 높은 선반부터 시작해야한다고 생각합니다.

하다

우리는 와 cm H나는= 높이의 선반 높이 + 의 cm H나는=1 그것이 복용보다 더 비싸 질 때까지 높이 H나는=1선반. 그때나는=나는1

i> <0 동안

마지막으로 x를 다양하게 만드는 방법을 모르겠습니다 ...

즉, 선택하는 방법을 말하는 것입니다 엑스나는 문서 4 또는 예를 들어.


책이 몇 권 있습니까? 즉영형(),영형(영형) 알고리즘 만 허용되는 알고리즘은 무엇입니까?
jjohn

5
이것이 그래프와 어떤 관련이 있는지 알 수 없습니다. 문제가 빈 포장과 같은 경우 그래프 기반으로 무언가를 수행 해야하는 이유는 무엇입니까? 모델은 선반의 실용성을 고려하지 않습니다. 예를 들어 선반 유닛에는 특정 길이의 선반이 있습니다. 길이가 5m 인 선반을 서로 겹쳐 놓을 수 있지만 99cm 선반, 172cm 선반, 128cm 선반, 83cm 선반 및 18cm 선반 (총 길이) 5m)는 완전히 쓸모가 없습니다. 그리고 왜 지상에서 23cm 높이의 선반을 1 미터 건설하는 데 2500 유로가 필요합니까? 그것은 현실적으로 보이지 않습니다. 이 도서관은 진짜인가요?
David Richerby

3
1. 나는 왜 당신이 스스로를 길 찾기 문제로 접근하도록 강요하는지 이해하지 못한다. 실제로 이러한 상황에 직면하고 있다면 불필요한 제한을 두는 것이 합리적이지 않습니다. 왜 다른 접근법을 사용하여 문제를 해결하는 다른 솔루션을 거부하겠습니까? 해당 요구 사항을 제거하기 위해 질문을 편집하는 것이 좋습니다. 2. 아직 책이 몇 권인지 알려주지 않았습니다. 우리에게 번호를 줄 수 있습니까? 그것이 단지 크기의 추정치 일지라도 "loooot"보다 더 특정한 것입니까?
DW

1
문제에 대해 꽤 많은 생각을 한 것 같습니다. 잘 됐어요! 그러나 하나의 질문에 당신의 생각의 완전한 역사를 저장하는 것은 오히려 다루기 어렵습니다. 하나의 집중된 질문과 질문에 대답하기에 충분한 배경을 게시하면 SE가 훨씬 잘 작동합니다.
Raphael

1
"그래프 문제로 표현할 필요가있다"에 관해서는 ... 바보 같은 요구 사항입니다. 문제가 P에있는 경우 LP로 작성하고 동등한 최대 흐름 인스턴스를 계산하십시오. 짜잔 NP에 있지만 P에있는 것을 모르는 경우 IP로 작성하고 NP 완료 그래프 문제로 변환하십시오. 짜잔
Raphael

답변:


5

"Dijkstra의 알고리즘으로이 문제를 해결하고 싶지만 실행할 수있는 좋은 그래프를 설정할 수 없습니다."라고 묻습니다. 그런 그래프가 표시됩니다.

꼭짓점이 책장 세트 인 디 그래프.

자, 키가 큰 책이 있습니다 H, 1 그리고 폭 , 각 책의 높이가 오름차순으로 정렬되어 선반에 그룹화됩니다.

솔루션 노드에이 숫자를 재사용하십시오 , 여기서 해당 노드는 솔루션 상태 "모든 책"을 나타냅니다. 나는 우리는 노드에서 시작합니다 0 그리고 노드에 가려고 Dijkstra의 알고리즘으로 가장 짧은 경로로. 이 노드는 그래프의 꼭짓점입니다.

그런 다음 노드에서 그립니다. 나는 모든 노드에 제이>나는 이 중개 도서가 모두 하나의 선반으로 선반에 놓일 것이라고 가정하는 방향성 모서리 (예 :이 모서리의 길이는

나는제이=에프제이+제이 =나는+1제이,
내가 당신이 합산 비용을 말했을 때 에프나는+나는엑스나는 아래 첨자 나는엑스나는 완전히 의미가 없었습니다.

Dijkstra의 알고리즘은 노드에 가장 짧은 길이의 경로를 제공합니다 .


@Christ Drost, thaaaaaaaaanks, 많이! 그래프없이 만들려고하는 것을 이해하는 데 시간이 걸렸지 만 그것이 내가 찾던 것입니다! 나는 당신의 놀라운 프로필을 읽었습니다, 그것은 당신의 대답과 일치합니다 haha;)!
Monica에 대한 Revolucion

Bellman-Kalaba가 Djikstra보다 더 적합하지 않은지 궁금했습니다. 유일하게 필요한 사람은 아무도 없습니다.
Revolucion for Monica

그리고 그것은 가장자리의 길이도 확실하게 설정하는 알고리즘입니다. "노드 n은"모든 책 i≤n이 보류되었습니다. "라는 해결책을 나타냅니다. 제공 한 내용으로 되돌아 갈 수도 없습니다.
Monica Revolucion 21

"뒤로 이동"의 의미가 확실하지 않지만 "뒤로 이동"을 원할 경우 노드가 "이 선반에서 선반에 놓은 책 수"의 목록 인 더 정교한 그래프를 고려해야합니다. Int보다 큼 1. 이것은 n^2꼭짓점 의 그래프로 이어집니다 . A와 B 사이의 경로를 찾고 모든 엣지 가중치가 양수이면 Bellman-Kalaba가 항상 업데이트 할 필요가없는 엣지를 업데이트하려고한다는 점을 제외하고 Dijkstra와 Bellman-Kalaba 사이에는 차이가 없습니다. Dijkstra는 관심 대상 정점에 대한 포인터 만 저장합니다.
CR Drost

7

귀하의 문제에 대한 해결책이 있다고 생각합니다. 잘만되면 나는 당신의 문제의 정의에서 무언가를 오해하지 않았습니다. 여기 간다:

동적 프로그래밍 접근법을 설명하겠습니다. 그것은영형(2) 알고리즘은 책의 수가 많기 때문에 많은 도움이되지 않습니다. (조금 수정해야합니다!). 약간의 작업으로 상기 동적 프로그래밍 접근법을 직접 비순환 그래프에서 최단 경로를 찾는 인스턴스로 바꿀 수 있습니다. (자체 동적 프로그래밍 알고리즘은 : P)

있다고 가정하자 다른 높이의 책들.

또한 책을 다음과 같이 할당하여 최적의 비용을 달성한다고 가정하십시오. 나는 높이 선반 h1,h2,...,h나는 어디 h1<h2<...<h나는.

다음 두 가지를 증명해 봅시다.

ㅏ. >1

반대로 가정하십시오. 허락하다1 서가에 지정된 도서 세트 1 그때 영형에스=영형h이자형아르 자형,에스에프에프+1h나는케이이자형에스에스(1)

이후 우리는 <1선반의 모든 책을 옮기자 1 (이후 가능하다 h1<h.

그래서 지금, 영형에스=영형h이자형아르 자형,에스에프에프+h나는케이이자형에스에스()이전보다 낮습니다. 따라서 우리는 가정 한 최적 성으로 인해 모순이 있습니다.

그래서 >1 생성 된 모든 선반

B. 렛 제이 서가에 지정된 책이어야합니다 . 그것을 증명하자h이자형나는h(제이)>h1

이것은 매우 쉽습니다. 만약h이자형나는h(제이) 보다 작았 다 h1 책을 선반에 넣을 수있었습니다 1 더 나은 비용으로 (A로 인해).

우리가 입증 한 두 가지 중에서 B가 중요한 것입니다.

허락하다 []= 책꽂이를위한 최적의 비용 1... 선반이 있도록 h이자형나는h(). 정의 할 방법을 찾아야합니다[] 값으로 dp[1],dp[2],....dp[a1]

나는 여기서 멈출 것이다. 사실 B를 사용하여 동적 프로그래밍에 익숙한 경우 재발을 쉽게 수행 할 수 있습니다. 그렇지 않으면 :)로 문의하십시오. 내가 말했듯이, 이것은 DAG 문제로 바뀔 수 있습니다. 위의 관계를 알면 가장자리가 무엇인지 쉽게 알 수 있습니다.(a,b) 비용을 의미하고 정의합니다.

마지막으로, 위에서 말했듯이 책이 크기 때문에 각 책마다 알고리즘을 사용할 수 없습니다. 두께의 합으로 높이를 나타내는 것이 트릭을 수행해야한다고 생각합니다. (나는 당신의 진술에서 이미 그런 것 같아요)

(나는 다른 높이의 수가 책의 수보다 훨씬 적다고 생각합니다)



이 확실한 도움에 감사드립니다! 먼저 A 부분에 대한 질문이있었습니다. 왜 최적 성 문제로 인해 모순이 발생합니까? 더 높은 선반에 더 낮은 높이의 책을 보관할 때 비용이 저렴하다는 것이 논리적으로 이해하지만 우리는 어떤 최적 성을 가정합니까? (아마도 다음 학기에만 역동적 인 프로그래밍을하기 때문일 수 있습니다 ...?)
Monica에 대한 Revolucion

둘째, A에 대해 말했을 때 오타가 있다고 생각합니다. C<1반대로, 그렇지 않습니까?
Monica에 대한 Revolucion

@ Marine1 예. 네 말이 맞아 오타입니다! 곧 고칠 것입니다. 이제 다른 질문입니다. 최적의 알고리즘 (최고의 비용을 출력하는 알고리즘)이 있다고 가정하십시오. 선반이 있으면 그것으로 >+1 선반에서 모든 책을 옮길 수있었습니다 선반에 +1 선반을 만들지 마십시오 . 그런 다음 더 작은 비용으로 끝납니다 (a. 두께에 대한 비용이 적고 b. 필요하지 않기 때문에)에프). 그러나 우리의 가정에서 우리는 이미 최적의 알고리즘을 가지고 있으므로 이것을 유지할 수 없습니다. 이것이 당신에게 다소 명확 해지기를 바랍니다!
jjohn

0

때로는 문학에서 "가장 가까운 문제"에 대한 "확대"가 문제의 이론과 배경을 이해하고 추상화를 구축하며 가짜 세부 사항을 제거하는 데 도움이 될 수 있습니다. 귀하의 문헌에서 가장 가까운 문제는 "가변 크기 빈 포장 문제"로 알려진 것 같습니다. 샘플 용지는 다음과 같습니다. 이 문제는 이론적으로 고도로 연구되었으며 일부 상용 소프트웨어가 있으며 트럭 운송 컨테이너와 같은 포장 상자를 최적화하는 데 나타납니다. 컨테이너 크기를 조정할 수있는 버전도 있습니다. 많은 알고리즘 접근법이 있습니다. 예를 들어, 첫 번째 논문에서 :

이 논문에서 다루는 문제는 주어진 사각형 모양의 아이템 세트를 최소한의 3 차원 사각형 빈에 직각으로 포장하는 문제이다.

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