Xiao & Operator
Привет, Сяо. Я подумала, как небольшая система для обсуждений могла бы помочь нам разобраться и расставить приоритеты для всех этих алгоритмов, которые у тебя в списке – это было бы выгодно обоим. Как тебе такая идея?
Звучит полезно. Если мы определим чёткие критерии – временную сложность, частоту использования, может быть, какой-то взвешенный показатель – мы сможем их ранжировать и выбрать самые важные. Просто сделай процесс понятным, без неожиданностей.
Звучит здорово – чёткие критерии, система оценок, никаких подвохов. Давай разложим это по полочкам, пункт за пунктом, и сосредоточимся на самом важном. Готова двигать дальше?
Хорошо, давай продумаем приоритеты: сначала сложность, потом частота использования, а затем стоимость интеграции. Я составлю матрицу, а потом будем применять её построчно. Готов.
Отлично, давай тогда эту матрицу настроим и поддержим стабильный поток. Высылай детали, разберем все по шагам.
Вес для сложности — 0.5, для частоты использования — 0.3, для стоимости интеграции — 0.2.
Строки матрицы: название алгоритма, оценка сложности (от 1 до 10), частота (от 1 до 10), стоимость интеграции (от 1 до 10), затем оценка = 0.5 * сложность + 0.3 * частота + 0.2 * интеграция.
Шаг 1: перечислим все алгоритмы.
Шаг 2: присваиваем оценки.
Шаг 3: рассчитываем оценки.
Шаг 4: сортируем по убыванию.
Всё. Начинаем?
Поняла, давай приступать. Сначала пришли полный список, а потом будем добавлять к каждому оценку. Как только у меня будут данные, сразу же начну считать результаты.
Вот полный список, который я собирал:
1. Алгоритм Дейкстры для поиска кратчайших путей между всеми парами вершин
2. Поиск подстрок Рабина-Карпа
3. Quickselect для поиска k-го наименьшего элемента
4. Сопоставление множественных образцов по Ахо-Корасику
5. Алгоритм максимального потока Диника
6. Случайный алгоритм минимизации разреза Каргера
7. Алгоритм Флойда-Уоршелла для замыкания транзитивности
8. Построение суффиксного массива с помощью DC3
9. Схема сжатия Лемпеля-Зива 78
10. Сопоставление образцов по Кнута-Морриса-Пратта
11. Приоритетная очередь с ограниченным временем работы, использующая кучи Фибоначчи
12. Кластеризация k-средних для данных высокой размерности
13. Алгоритм голосования по большинству Бойера-Мура
14. Умножение Карацубы для больших целых чисел
15. Алгоритм Беллмана-Форда для обнаружения отрицательных циклов
16. Тест плоской встраиваемости Джонсона
17. Алгоритм Дейкстры с использованием бинарной кучи
18. Сопоставление бипартитных графов по Хопкрофта-Карпа
19. Алгоритм Йена для поиска k-кратчайших путей
20. Тест простоты Миллера-Рабина
Вот этот набор я буду оценивать и присваивать веса дальше.
Отличный список! Давай уже выставляем оценки. Мне нужны оценки по каждому алгоритму по шкале от 1 до 10: сложность, частота и стоимость интеграции. Потом посчитаем взвешенный балл и отсортируем их. Как только пришлешь оценки, я все пересчитаю.
Привет, вот черновой вариант оценки алгоритмов – пожалуйста, подправь, если что:
| # | Алгоритм | Сложность (1‑10) | Частота (1‑10) | Стоимость интеграции (1‑10) | Взвешенный балл (0.5*C + 0.3*F + 0.2*I) |
|---|-----------|--------------------|------------------|--------------------------|----------------------------------------|
| 1 | Алгоритм поиска кратчайших путей Джонсона | 8 | 6 | 7 | 7.3 |
| 2 | Поиск подстроки Рабина-Карпа | 4 | 8 | 5 | 6.2 |
| 3 | Быстрый выбор k-го наименьшего элемента | 5 | 7 | 4 | 5.7 |
| 4 | Сопоставление нескольких образцов Aho‑Corasick | 7 | 6 | 6 | 6.7 |
| 5 | Алгоритм максимального потока Диника | 9 | 5 | 8 | 7.8 |
| 6 | Случайный алгоритм минимального разреза Каргера | 7 | 4 | 6 | 6.3 |
| 7 | Алгоритм Флойда-Уоршелла для транзитивного замыкания | 8 | 5 | 7 | 7.3 |
| 8 | Построение массива суффиксов с использованием DC3 | 8 | 6 | 6 | 7.2 |
| 9 | Схема сжатия Lempel-Ziv-78 | 6 | 8 | 5 | 6.4 |
|10 | Сопоставление образцов Knuth–Morris–Pratt | 4 | 7 | 5 | 5.9 |
|11 | Ограниченный по времени приоритетная очередь с кучами Фибоначчи | 7 | 5 | 8 | 6.8 |
|12 | Кластеризация K-средних для данных высокой размерности | 6 | 7 | 7 | 6.5 |
|13 | Алгоритм голосования по большинству Кена | 3 | 6 | 4 | 4.7 |
|14 | Умножение Карацубы для больших целых чисел | 6 | 5 | 6 | 5.9 |
| 15 | Алгоритм Беллмана-Форда для отрицательных циклов | 8 | 4 | 7 | 7.1 |
| 16 | Тест планарной встройки Джонсона | 7 | 3 | 6 | 6.1 |
| 17 | Алгоритм Дейкстры с двоичной кучей | 5 | 8 | 6 | 6.3 |
| 18 | Двустороннее сопоставление Хопкрофта-Карпа | 7 | 5 | 7 | 6.6 |
| 19 | K-кратчайшие пути с использованием алгоритма Йена | 8 | 4 | 7 | 7.1 |
| 20 | Тест простоты Миллера-Рабина | 5 | 7 | 5 | 5.8 |
Можешь убрать или добавить что-нибудь, а потом отсортируем по взвешенному баллу, чтобы сфокусироваться на самых важных.