0

여기 내 문제가 있습니다 : P2P 네트워크에서 동일한 데이터 블록을 요청하는 피어가 n 개 있습니다. 그리고 약간의 제약이 있습니다. 1. 자체 업로드 대역폭을 가진 피어 및 평균 대역폭은 데이터 블록의 크기입니다. 2. 피어는이 데이터 블록에 대한 기한이 다릅니다. 한 피어가 마감 시간 전에 전체 블록을 얻지 못하면 서버 도움말을 검색해야합니다. 3. 피어는 전체 데이터 블록이있는 경우에만 데이터 (부분 또는 전체)를 전송할 수 있습니다.이 데이터 공유 문제는 NP 문제입니까?

개체는 서버 총 업로드를 최소화하는 것이므로 최적의 알고리즘이 있거나 NP 문제인 경우이를 파악할 수 없습니다. 마감일 첫 번째 또는 가장 큰 대역폭은 먼저 어떤 상황을 처리하지 못할 수도 있습니다. 이와 유사한 NP 문제가 있습니까? 이것은 그래프 흐름 문제 또는 명령 스케줄링과 같지만 공급 업체의 전체 대역폭과 마감일을 동시에 처리해야하기 때문에 어려운 일입니다. 솔루션에 대한 방향 또는 리소스를 얻을 수 있기를 바랍니다. 감사.

답변

0

각 피어가 귀하의 경우 개별적으로 행동한다는 것을 고려할 때 하나의 오토 마톤이 문제를 해결하는 것이 아니라 많은 것을 고려해야합니다. 주어진 지연 내에서 데이터 블록을 사용할 수 없을 때 데이터 블록을 가져 오는 것이 일반적으로 다항식 문제이며 개별 피어가 작업을 수행하므로 각 피어의 NP 문제는 로컬에서 발생하지 않습니다.

다른면에서 서버가 '누락 된 블록'을 전송하기 위해 백업 리소스의 최소 할당을 계산해야하는 경우 먼저 피어가 블록을 놓칠 확률을 알아야합니다 (평균 + 표준 편차). 예). 이러한 이벤트의 통계적 분포를 알고 있다고 가정하면 대역폭에서 실패/허용 오차의 위험 요소를 선택하여 누락 된 블록을 전송하는 데 필요한 전체 대역폭을 계산할 수 있습니다. 여러 서버를 사용하여 필요를 충족시키는 경우 부하를 분산시키기 위해 임의로 동료에게 연락해야합니다.

이 통계적 문제를 해결하는 것은 NP 문제가 아닙니다. 각 피어에서 오류 정보를 수집하여 중앙/서버 피어에 추가 할 수 있습니다. 따라서 결론적으로 귀하의 문제는 NP 문제가 아닙니다.

PART II :

아, 나는 이제 더 귀하의 케이스를 이해 : 여러 '서버'동료가 잠재적으로 전체 블록을 얻는 하나의 피어 (peer)를 할 수 있습니다. 이 경우 서버 피어 수가 주어진 블록에 대해 시스템에서 기하 급수적으로 커집니다. 이 경우,이 최적화 문제는 나에게 홍수 문제의 모든 특성을 가지고 있으며 NP입니다.

피어 그래프와 잠재적 인 연결이 정적 인 경우 (실제 P2P 네트워크에서는 결코 그렇지 않음) 50 개 또는 100 개 노드에 대해 적절한 시간 내에 최적의 솔루션을 계산하는 것은 사실상 당신이이 그래프에서 매우 특정한 가정을 할 수 없다면 (불가능하지는 않습니다.

하지만 절대 최적 솔루션이 필요하거나 최적 최적 제품 근처에 뭔가 있습니까?

지능형 학습 도구를 사용하면 동료가 다운로드 대역폭 용량이 동일하거나 더 큰 경우 먼저 가장 높은 업로드 시점 대역폭을 가진 피어에게 서비스를 제공하여 눈사태 효과를 극대화하고 피어가 피할 수있는 위험을 줄일 수 있습니다. 일반적으로 도움을 요청하십시오.

그래프가 상대적으로 균형이 맞으면 (즉, 대부분의 동료가 대부분의 피어에 연결할 수 있음), 초기 서버의 최소 대역폭은 그래프의 노드 수와 그래프의 평균 속도의 로그 함수가됩니다. 또래들은 봉사 할 것으로 기대합니다. 이것은 내 직감이며 실제 조치 또는 귀하의 사례에 대한 강력한 모델링을 통해 검증되어야합니다.

+0

답변 해 주셔서 감사합니다. :)! 내 얘기는 당신이 언급 한 두 번째 사건입니다. 그러나 나는 당신이 블록을 놓칠 확률을 의미하는지 이해하지 못합니다. P2P 네트워크 토폴로지가 완전한 그래프라고 가정하고, 피어는 전체 블록을 수신 한 후 소스가됩니다. 이러한 정보를 얻더라도이 전송 방법이 서버의 총 대역폭을 최소화 할 수 있음을 어떻게 알 수 있습니까? – changefor