각 피어가 귀하의 경우 개별적으로 행동한다는 것을 고려할 때 하나의 오토 마톤이 문제를 해결하는 것이 아니라 많은 것을 고려해야합니다. 주어진 지연 내에서 데이터 블록을 사용할 수 없을 때 데이터 블록을 가져 오는 것이 일반적으로 다항식 문제이며 개별 피어가 작업을 수행하므로 각 피어의 NP 문제는 로컬에서 발생하지 않습니다.
다른면에서 서버가 '누락 된 블록'을 전송하기 위해 백업 리소스의 최소 할당을 계산해야하는 경우 먼저 피어가 블록을 놓칠 확률을 알아야합니다 (평균 + 표준 편차). 예). 이러한 이벤트의 통계적 분포를 알고 있다고 가정하면 대역폭에서 실패/허용 오차의 위험 요소를 선택하여 누락 된 블록을 전송하는 데 필요한 전체 대역폭을 계산할 수 있습니다. 여러 서버를 사용하여 필요를 충족시키는 경우 부하를 분산시키기 위해 임의로 동료에게 연락해야합니다.
이 통계적 문제를 해결하는 것은 NP 문제가 아닙니다. 각 피어에서 오류 정보를 수집하여 중앙/서버 피어에 추가 할 수 있습니다. 따라서 결론적으로 귀하의 문제는 NP 문제가 아닙니다.
PART II :
아, 나는 이제 더 귀하의 케이스를 이해 : 여러 '서버'동료가 잠재적으로 전체 블록을 얻는 하나의 피어 (peer)를 할 수 있습니다. 이 경우 서버 피어 수가 주어진 블록에 대해 시스템에서 기하 급수적으로 커집니다. 이 경우,이 최적화 문제는 나에게 홍수 문제의 모든 특성을 가지고 있으며 NP입니다.
피어 그래프와 잠재적 인 연결이 정적 인 경우 (실제 P2P 네트워크에서는 결코 그렇지 않음) 50 개 또는 100 개 노드에 대해 적절한 시간 내에 최적의 솔루션을 계산하는 것은 사실상 당신이이 그래프에서 매우 특정한 가정을 할 수 없다면 (불가능하지는 않습니다.
하지만 절대 최적 솔루션이 필요하거나 최적 최적 제품 근처에 뭔가 있습니까?
지능형 학습 도구를 사용하면 동료가 다운로드 대역폭 용량이 동일하거나 더 큰 경우 먼저 가장 높은 업로드 시점 대역폭을 가진 피어에게 서비스를 제공하여 눈사태 효과를 극대화하고 피어가 피할 수있는 위험을 줄일 수 있습니다. 일반적으로 도움을 요청하십시오.
그래프가 상대적으로 균형이 맞으면 (즉, 대부분의 동료가 대부분의 피어에 연결할 수 있음), 초기 서버의 최소 대역폭은 그래프의 노드 수와 그래프의 평균 속도의 로그 함수가됩니다. 또래들은 봉사 할 것으로 기대합니다. 이것은 내 직감이며 실제 조치 또는 귀하의 사례에 대한 강력한 모델링을 통해 검증되어야합니다.
답변 해 주셔서 감사합니다. :)! 내 얘기는 당신이 언급 한 두 번째 사건입니다. 그러나 나는 당신이 블록을 놓칠 확률을 의미하는지 이해하지 못합니다. P2P 네트워크 토폴로지가 완전한 그래프라고 가정하고, 피어는 전체 블록을 수신 한 후 소스가됩니다. 이러한 정보를 얻더라도이 전송 방법이 서버의 총 대역폭을 최소화 할 수 있음을 어떻게 알 수 있습니까? – changefor