ينفذ هذا المشروع خوارزمية موجة الصدى للشبكات غير الموجهة. لمحاكاة تنفيذ واقعي في كل تكرار للخوارزمية ، يتم إنشاء العقد التي يمكن تنفيذ البروتوكول بشكل عشوائي.
اعتمادًا على الغرض من الشبكة ، يجب تحديد بنية الشبكة المناسبة لأن هناك علاقة بين نمط اتصال الشبكة وتكلفة الشبكة ووقتها. لذلك ، يتم إسقاط وقت التنفيذ عندما يكون اتصال الشبكة قويًا ، لكن هذا يزيد من التكلفة (إجمالي الرسائل المرسلة) وينتج الأشجار الضحلة. من ناحية أخرى ، إذا لم تكن الشبكة متصلة جيدًا ، فإن التكلفة تنخفض ولكن الوقت يزداد وعمق الشجرة.
تتم قراءة الإدخال بواسطة ملف .txt الذي يجب أن يكون موجودًا في SRC/ المجلد/ المجلد. يجب أن يحتوي هذا الملف على نمط فريد يجب اتباعه من أجل تشغيل البرنامج بشكل صحيح. يجب اتباع القواعد الموصوفة:
يجب أن يكون السطر الأول من الملف هو حجم الرسم البياني. (لتجنب قراءة الملف مرتين)
يجب أن يمثل كل خط من خطوط الراحة حافة مع التنسيق التالي: "$ integer + Space || tab + $ integer" (على سبيل المثال السطر "3 2" أو "3 2" يعني أن العقد ذات القيمة 3 و 2 متصلة).
يجب أن تكون كل قيمة عقدة (VAL) عددًا صحيحًا وتلبية عدم المساواة التالية: 0> = Val> GraphSize. ينصح بشدة ، حيث تم استخدام الهياكل الثابتة ،
يتم استخدام أن قيم جميع العقد ، في نطاق [0 ، Graphsize) ، من أجل تجنب تخصيص الذاكرة غير الضرورية أيضًا تأكد من أن الرسم البياني متصل بخلاف ذلك لن ينتهي الخوارزمية ، لأن أداء الخوارزمية في مكونات الرسم البياني المتصلة لم يتم تنفيذها بعد
@src.uk.ac.ncl.echo.usealgorithm#الرئيسي: إذا كنت تريد اختبار ملفك ، فأضف اسم الملف في صفيف سلسلة inputFilename والملف نفسه في SRC/ المجلد.
@src.uk.ac.ncl.echo.usealgorithm: تم الإعلان عن ثوابت للمساعدة في استنتاجات تقرير التقرير. إذا قمت بتغيير test = true ، يتم تمكين وضع الاختبار وسيقوم كل رسم بياني بتشغيل خوارزمية Test_Runs Times. ثم يتم إنشاء results.txt يحتوي على نتائج الاختبار.
@src.uk.ac.ncl.echo.echowavealgorithm: K تم تعيينه على 2 بشكل افتراضي.