이 프로젝트는 변형되지 않은 네트워크의 에코 웨이브 알고리즘을 구현합니다. 알고리즘의 각 반복에서 현실적인 실행을 시뮬레이션하려면 프로토콜을 실행할 수있는 노드가 무작위로 생성됩니다.
네트워크의 목적에 따라 네트워크의 연결 패턴, 네트워크의 비용 및 시간간에 상관 관계가 있기 때문에 적절한 네트워크 구조를 선택해야합니다. 따라서 네트워크 연결이 강하면 실행 시간이 삭제되지만 비용이 증가하고 (총 메시지 전송) 얕은 나무를 생성합니다. 반면에 네트워크가 잘 연결되어 있지 않으면 비용은 감소하지만 시간이 증가하고 트리 깊이가 증가합니다.
입력은 src/ resources/ 폴더에 위치 해야하는 .txt 파일에 의해 읽습니다. 이 파일에는 프로그램이 올바르게 실행되기 위해 따라야하는 고유 한 패턴이 있어야합니다. 벨로우어가 설명 된 규칙은 다음과 같습니다.
파일의 첫 번째 줄은 그래프 크기 여야합니다. (파일을 두 번 읽지 않으려면)
각각의 나머지 선은 다음 형식의 가장자리를 나타내야합니다.
각 노드 값 (Val)은 정수 여야하며 다음과 같은 불평등을 충족시켜야합니다. 0> = val> GraphSize. 정적 구조가 사용되었으므로 강력히 권장됩니다.
[0, Graphsize) 범위에서 모든 노드 값은 불필요한 메모리 할당을 피하기 위해 사용되며 그래프의 연결된 구성 요소에서 알고리즘을 수행하지 않으므로 그래프가 연결되어 있는지 확인하십시오.
@src.uk.ac.ac.ncl.echo.usealgorithm#main : 파일을 테스트하려면 inputfilename String 배열에 파일 이름을 추가하고 Src/ Resources/ Folder의 파일 자체를 추가하십시오.
@src.uk.ac.ncl.echo.usealgorithm : 보고서의 결론을 도출하는 데 도움이되는 두 가지 상수가 선언되었습니다. test = true를 변경하면 테스트 모드가 활성화되고 각 그래프는 알고리즘 test_runs 시간을 실행합니다. 그런 다음 results.txt가 테스트 결과를 포함하여 작성됩니다.
@src.uk.ac.ncl.echo.echowavealgorithm : k는 기본적으로 2로 설정됩니다.