나는 각각 자신의 고정 된 위치를 가진 N 개의 노드를 가진 (이론적 인) 네트워크를 가지고 있습니다. 각 노드는 사이클 당 하나의 메시지를 보내고 직접 또는 다른 노드를 통해 루트에 도달해야합니다.가장 에너지 효율적인 ad-hoc 네트워크를 계산하는 알고리즘
노드 A에서 노드 B로 메시지를 보내는 데 드는 에너지 비용은 두 노드 사이의 거리를 제곱합니다.
도전 과제는 이러한 노드를 트리 형식으로 연결하여 에너지 효율적인 네트워크를 만드는 방법입니다.
예. 이 노드들을 연결할 수있는 두 가지 방법이 있으며, 왼쪽은 에너지 효율이 더 높습니다.
유전자 알고리즘을 사용하여 문제를 해결하기 위해 노력하고 있지만 다른 아이디어가 있거나 다른 관련 오픈 소스 코드를 알고 있는지 궁금합니다.
편집 : 네트워크의 또 다른 측면은 각 노드가 배터리로 작동한다는 점입니다. 따라서 동일한 노드를 통해 라우팅되는 메시지가 너무 많으면 해당 노드의 배터리가 고갈되어 네트워크가 작동하지 않게됩니다. 네트워크의 에너지 효율은 노드가 배터리를 모두 소모하기 전에 각 노드에서 루트로 성공적으로 전송할 수있는 메시지 수에 의해 측정됩니다.
편집 # 2 : 질문의 원본 텍스트에서 죄송합니다. 그것으로 말미암아, 이전의 대답들 중 일부는 내가 찾던 것이 아니지만 MST 알고리즘에 익숙하지 않았기 때문에 그들에 대해 알려 줘서 고마워. 명확 일들이 나를이를 추가 할 수 있도록 만드는 희망에서
는 :모든 노드는 내부 노드를 포함하여, 사이클 당 자신의 하나의 메시지를 보냅니다. 내부 노드는받은 메시지를 중계 할 책임이 있습니다. 이것은 배터리의 변형에 추가됩니다. 추가 메시지를 보내고있는 경우입니다. 목표는 노드의 배터리가 소모되기 전에 실행되는 사이클의 양을 최대화하는 것입니다.
다이어그램이 혼동을 일으킬 정도로 잘못 표시되어 있습니다. 오른쪽의 노드는 (1,2)가 아닌 (0,2) 인 것 같습니다. – Svante
질문이 명확하지 않습니다. 에지 가중치의 합을 최소화합니까? 또는 루트에 대한 모든 경로 길이의 합계? (중간 노드조차도 자신의 메시지를 보낼 수 있습니다 ...). 또는 두 노드 사이의 경로 합계를 최소화하고 있습니까? –
이 질문은 더 명확한 정의의 이점을 누릴 수 있습니다. 늦은 편집은 첫 번째 (그리고 더 사소한) 문제를 언급 한 대부분의 대답으로 도움이되지 않았습니다. 내 솔루션은 각 정점이 특정 양의 배터리 (에지)를 취할 수있는 경우 최소 에너지 비용 (에지 가중치)을 계산합니다. – Larry