Я не працюю в теорії, але моя робота потребує читання (і розуміння) теоретичних робіт раз у раз. Коли я розумію (набір) результатів, я обговорюю ці результати з людьми, з якими працюю, більшість з яких також не працює в теорії. Під час однієї з таких дискусій виникло таке питання:
Коли можна сказати, що два задані алгоритми "схожі"?
Що я маю на увазі під "схожим"? Скажемо, що два алгоритми, як кажуть, схожі, якщо ви можете зробити будь-яку з наведених заявок у документі, не плутаючи / дратуючи будь-якого рецензента (краще визначення вітається):
1. "Алгоритм А , аналогічний алгоритму , також вирішує задачу "
Заява 2. "Наш алгоритм схожий на алгоритм "
Дозвольте зробити це трохи більш конкретним. Припустимо, ми працюємо з алгоритмами графіків. Спочатку кілька необхідних умов, щоб два алгоритми були подібними:
- Вони повинні вирішувати ту саму проблему.
- Вони повинні мати однакову інтуїтивну ідею високого рівня.
Наприклад, якщо говорити про обхід графів, обхід першої ширини та першої глибини, задовольняють вищезазначені дві умови; для обчислень з найкоротшими шляхами алгоритм Дейкстра задовольняє вищевказаним двом умовам (звичайно, для невагомих графіків); тощо.
Це також достатні умови? Більш конкретно, припустимо, що два алгоритми задовольняють необхідні умови для подібності. Чи справді ви б їх називали подібними
- вони мають різні асимптотичні показники?
- для спеціального класу графів, один алгоритм вимагає час , в той час як інша вимагає O ( п 1 / 3 ) час?
- у них різні умови закінчення? (Нагадаємо, вони вирішують ту саму проблему)
- крок попередньої обробки відрізняється в двох алгоритмах?
- складність пам'яті відрізняється в двох алгоритмах?
Редагувати: Питання, очевидно, дуже залежить від контексту та є суб'єктивним. Я сподівався, що вищезазначені п'ять умов дозволять отримати деякі пропозиції. Я радий додатково змінити питання та надати більше деталей, якщо це потрібно, щоб отримати відповідь. Спасибі!