Открыть сервис

Майкл Фредман

Майкл Фредман (англ. Michael Fredman; род. 18 июля 1945, Нью-Йорк) — американский учёный в области информатики, профессор компьютерных наук, известный своими работами в области анализа алгоритмов, структур данных и теории сложности вычислений. Наиболее значимые достижения включают создание структуры данных «куча Фредмана — Тарьяна» (Fibonacci heap) и разработку алгоритма Фредмана — Тарьяна для поиска минимального остовного дерева.

Биография

Майкл Фредман родился в 1945 году в Нью-Йорке. Получил степень бакалавра по математике в Принстонском университете в 1966 году, а затем степень доктора философии (Ph.D.) по математике в Стэнфордском университете в 1972 году под руководством Дональда Кнута. Тема диссертации была связана с анализом алгоритмов сортировки и поиска.

После защиты докторской Фредман работал в Исследовательском центре Xerox PARC (Palo Alto Research Center), а затем перешёл на факультет компьютерных наук Калифорнийского университета в Сан-Диего (UCSD), где проработал до выхода на пенсию. В разное время он также занимал должности в Массачусетском технологическом институте (MIT) и Университете Рутгерса.

Научный вклад

Куча Фибоначчи (Fibonacci heap)

В 1984 году совместно с Робертом Тарьяном Фредман предложил структуру данных, известную как куча Фибоначчи (Fibonacci heap). Это структура, реализующая приоритетную очередь с амортизированным временем выполнения операций. Основные характеристики:

Куча Фибоначчи стала важным инструментом для оптимизации алгоритмов, таких как алгоритм Дейкстры для поиска кратчайших путей и алгоритм Прима для построения минимального остовного дерева. Благодаря этой структуре удалось добиться асимптотически оптимального времени работы для ряда задач.

Алгоритм Фредмана — Тарьяна для минимального остовного дерева

В 1987 году Фредман и Тарьян разработали алгоритм, который находит минимальное остовное дерево (MST) во взвешенном неориентированном графе за время O(m log β(m,n)), где m — количество рёбер, n — количество вершин, а β(m,n) — медленно растущая функция, обратная функции Аккермана. Этот алгоритм использует структуру «куча Фибоначчи» и идею «разделяй и властвуй» для достижения почти линейного времени работы.

Другие работы

Фредман внёс вклад в теорию сложности вычислений, в частности в изучение нижних оценок для алгоритмов сортировки и поиска. Он также занимался анализом алгоритмов на графах, структурами данных для динамических множеств и проблемами вычислительной геометрии.

Признание и награды

  • В 1986 году совместно с Робертом Тарьяном получил премию Ассоциации вычислительной техники (ACM) за лучшую статью (ACM SIGACT Paper Award) за работу о куче Фибоначчи.
  • В 1990 году избран членом Ассоциации вычислительной техники (ACM Fellow) за вклад в анализ алгоритмов и структуры данных.
  • В 2002 году удостоен премии Кнута (Knuth Prize) за фундаментальные достижения в области информатики.

Основные публикации

  • Fredman, M. L., & Tarjan, R. E. (1984). «Fibonacci heaps and their uses in improved network optimization algorithms». Journal of the ACM, 34(3), 596–615.
  • Fredman, M. L., & Tarjan, R. E. (1987). «A data structure for dynamic trees». Journal of Computer and System Sciences, 34(3), 344–363.
  • Fredman, M. L. (1975). «On the complexity of sorting». SIAM Journal on Computing, 4(3), 283–292.

Влияние на современную информатику

Работы Фредмана заложили основы для многих современных алгоритмов и структур данных. Куча Фибоначчи используется в библиотеках стандартных алгоритмов (например, в Boost C++ Libraries), а его алгоритмы для минимального остовного дерева применяются в задачах проектирования сетей, кластеризации данных и анализа графов. Вклад Фредмана в теорию нижних оценок повлиял на развитие теории сложности и алгоритмов.

Интересные факты

  • Фредман является одним из немногих учёных, чьи работы напрямую повлияли на создание «библиотеки алгоритмов» STL (Standard Template Library) в C++.
  • В 1990-х годах он участвовал в разработке алгоритмов для поиска в больших базах данных, что предвосхитило современные методы индексации.
Загружаем BFOmetr…