Під час тестування алгоритмів загальним підходом є випадкове тестування: генеруйте значну кількість входів відповідно до деякого розподілу (зазвичай рівномірного), запустіть алгоритм на них і перевірте правильність. Сучасні рамки тестування можуть автоматично генерувати входи, надаючи алгоритми, з деякими обмеженнями.
Якщо вхідні дані - це числа, списки або рядки, генеруючи такі входи прямолінійно. Дерева складніші, але все ж легкі (використовуючи стохастичні без контексту граматики або подібні підходи).
Як можна генерувати випадкові графіки (ефективно)? Зазвичай, вибір графіків рівномірно не є тим, що ви хочете: вони повинні бути з'єднані, або планарними, або без циклу, або виконати будь-яку іншу властивість. Вибірка відхилення здається неоптимальною, через потенційно величезний набір небажаних графіків.
Які корисні дистрибуції слід переглянути? Корисне тут означає, що це
- графіки, ймовірно, добре перевіряють алгоритм під рукою та
- їх можна генерувати ефективно та ефективно.
Я знаю, що існує багато моделей для випадкових графіків, тому я би вдячний деякому розумінню того, які найкращі для створення графіків у цьому плані.
Якщо "деякий алгоритм" занадто загальний, будь ласка, використовуйте алгоритми пошуку найкоротших шляхів як конкретний клас алгоритмів, що перевіряються. Графіки для тестування повинні бути з'єднаними та досить щільними (з великою часткою ймовірності чи принаймні в очікуванні). Для тестування оптимальним рішенням було б створити випадкові графіки навколо найкоротшого шляху, щоб ми знали бажаний результат (без використання іншого алгоритму).