Galerie de cartes mentales Общие знания алгоритмов
Поделитесь полной версией «Общих знаний об алгоритмах»! Содержание включает в себя понимание алгоритмов, разработку алгоритмов, стратегии алгоритмов и введение алгоритмов. Карта насыщенная и подробная, друзья, приступаем к изучению~
Modifié à 2023-03-14 21:49:53Общие знания алгоритмов
Понимание алгоритмов
Природа
К алгоритмам предъявляются чрезвычайно строгие требования к ясности.
например, опыт свахи: Живите близко – насколько близко считается близко? близко к дому? Рядом с работой? Приоритизация между несколькими местоположениями...
Алгоритмы решают проблемы с детерминированными гарантиями
Моделирование — суть преимущества алгоритма
например, при покупке чайника-термоса в Интернете всегда рекомендуется использовать чайник-термос при поиске «Ветер» и различных шпионских фильмов;
Моделирование: рассматривайте разные проблемы одинаково и решайте их с помощью одного и того же набора алгоритмов.
Алгоритмы не хороши и не плохи, за ними стоят человеческие мысли.
сложность
Сложности оценки эффективности алгоритма: использование абсолютного времени для оценки эффективности неприменимо.
Аппаратные зависимости
гигантский
временная сложность
«Функциональная зависимость», при которой «общее количество основных операций» растет с «размером входных данных» алгоритма.
например, чтобы построить пирамиду высотой 10 метров, чертеж определяет, следует ли построить 100 000 камней или 500 000 камней: Каменное основание = базовая операция; 10 метров = масштаб ввода; чертеж = общий объем каменного основания; функциональная зависимость между общим объемом каменного основания и высотой пирамиды – временная сложность;
Способы сокращения временной сложности
пространство для времени
Пространственная сложность: функциональная зависимость, при которой пространственные ресурсы, занимаемые алгоритмом, увеличиваются по мере увеличения размера входных данных.
Очень выгодно пожертвовать некоторым объемом памяти (жесткий диск/память) в обмен на более высокую скорость поиска.
разделяй и властвуй мышление
например, от преобразования Фурье до быстрого преобразования Фурье сжатие звука занимает от 1 дня до 1 секунды.
Вдохновлять
Модель выбора полезности: приближение к реальности при сохранении разрешимости
Полезность: Удовлетворение
например, на то, голосуют американские избиратели или нет, влияет множество факторов, таких как пол, этническая принадлежность, уровень образования, род занятий и т. д. Существует слишком много факторов, влияющих на полезность, а некоторые факторы даже имеют сложные корреляции.
Если модель слишком сложна, решение невозможно получить; в этом случае модель необходимо упростить; предполагается, что связь между всеми факторами представляет собой только линейную суперпозицию без сложных взаимодействий; это называется моделью линейного эффекта;
Техасский холдем-покер: уменьшение размера проблемы
Масштаб слишком велик для компьютеров, поэтому вам придется найти способ выбросить некоторую информацию.
например, Техасский Холдем: объединить похожие состояния.
Исследуйте и используйте: повторяйте, чтобы получить результаты
например, веб-сайт с видео сначала будет рекомендовать вам различный контент, а через некоторое время начнет рекомендовать контент, который вы смотрите чаще всего.
Для размышления: алгоритмы могут выполняться и не могут нести ответственность только в том случае, если с алгоритмом возникла проблема, нам придется обратиться к людям, чтобы найти ответ;
Алгоритмы не могут нести ответственность за проблемы
Например, оба книжных магазина устанавливают свои цены, кратные ценам другого, что приводит к необычно высоким ценам.
Алгоритмы не могут нести ответственность за данные
например, я взяла черный чай со льдом для анализа мочи и обнаружила, что уровень сахара превышает норму, что указывает на подозрение на диабет.
Алгоритмы не могут нести ответственность за интерпретацию.
например, IBM создает систему медицинской диагностики Watson, но алгоритм не может дать объяснений.
алгоритм проектирования
План алгоритма
прояснить проблему
ясная цель
например, сопоставьте всех пассажиров такси или сопоставьте как можно больше пассажиров как можно быстрее.
Четкие ограничения
например, время ожидания для пассажиров в городских районах не может превышать 1 минуты.
Уточнить критерии оценки
например, экономия времени или затрат
Моделирование
Это процесс преобразования реальных проблем в алгоритмические, а также процесс абстрагирования множества деталей.
Прежде чем разрабатывать алгоритм, необходимо создать математическую модель.
Итерация модели очень важна
Выбор алгоритма
Определяется уровнем достижения цели и временной сложностью
Итерировать
алгоритмы, аппаратное обеспечение
Моделирование
Определить гипотезу
Определить требования к точности результатов прогнозирования, отбросить неважные детали, а также уточнить и количественно оценить нечеткие проблемы.
Проверить модель
Используйте здравый смысл для проверки; используйте исторические данные для проверки;
Взвесить осуществимость
Она должна быть близка к реальности и легко решаема.
Выбор алгоритма
Связь: модели и алгоритмы не являются однозначным соответствием.
например, проблема с рюкзаком
Выбор: компромисс между качеством и эффективностью
например, решение о размещении онлайн-рекламы должно быть принято мгновенно и с использованием жадного алгоритма;
например, планируя защиту диких животных, мы должны найти максимально оптимальное решение и использовать алгоритм ветвей и границ.
Дополнительно: дополнительные рекомендации для инженеров-алгоритмов
Предпочитайте алгоритмы с низкой чувствительностью к данным, небольшим количеством ограничений и небольшой зависимостью от данных.
стратегия алгоритма
Итерировать
Итерационный алгоритм: Алгоритм, который повторяет фиксированную операцию через цикл, при этом каждый шаг начинается с результата предыдущего шага и постепенно приближается к ответу.
Условия эффективности итерационного алгоритма: во-первых, алгоритм должен сходиться, во-вторых, фиксированная точка должна быть уникальной;
Итерационная стратегия допускает ошибки в процессе поиска решения, и эта ошибка очень быстро уменьшается, поэтому итерационный алгоритм также очень быстр.
например, поиск машины в Чикаго происходит очень медленно. Это называется алгоритмом грубой силы.
Например, используйте итерационный алгоритм для поиска автомобиля. На первом этапе расстояние от автомобиля составляет 10 километров. Когда вы поворачиваете на первый поворот и входите во вторую итерацию, расстояние становится 1 километром. После еще одной итерации оно становится 100. метров. Это расстояние называется «остаточным».
разделяй и властвуй
Алгоритм «разделяй и властвуй»: алгоритм обратного отслеживания, который разбивает большие проблемы на мелкие посредством обратного отслеживания, одна и та же проблема непрерывно разлагается до тех пор, пока проблема не станет достаточно маленькой, чтобы ее можно было решить напрямую, а затем решения небольших проблем объединяются в одну; оригинальное решение проблемы.
например, главный судья теннисного матча передает судейскую работу на разных уровнях по субподряду.
Traceback: вложенный цикл вызывает собственную процедуру
Условия эффективности алгоритма «разделяй и властвуй»
Можно ли его использовать? Убедитесь, что проблему можно разложить на подзадачи, аналогичные исходной задаче, и что эти подзадачи независимы друг от друга.
Решение быстрое или нет?
Две важные операции «разделяй и властвуй» — разложение и слияние — не являются бесплатными.
например, обнаружение столкновений: чтобы вычислить, какие из 100 движущихся шаров в пространстве столкнулись друг с другом, расстояние между ними рассчитывается в общей сложности 4950 раз путем разделения пространства на две части и независимого обнаружения их числа; сокращается в 2450 раз. Поиск подходящих позиций деления при разделении пространства требует дополнительных вычислительных затрат. При слиянии обнаруживается, что некоторые шары разрезаются посередине. Чтобы определить, произошло ли столкновение, требуются дополнительные вычисления. Это стоимость результата слияния.
Если проблема декомпозиции и вычисление объединенных результатов не являются сложными, стратегия «разделяй и властвуй» может снизить сложность алгоритма.
Алгоритм «разделяй и властвуй» может рассчитываться параллельно с несколькими ЦП, в то время как итерационный алгоритм требует, чтобы каждый шаг основывался на результате предыдущего шага и вычислялся последовательно, поэтому его нельзя рассчитывать параллельно с несколькими ЦП.
динамическое программирование
Решение: начните с конечной цели, двигайтесь от малого к большому.
например, игра с конфетами: тот, кто в конце концов столкнется с 4 конфетами, проигрывает.
например, вертикальная мягкая посадка ракеты: конечное положение должно быть очень близко к заданному положению, угол между ракетой и землей должен быть очень близок к 90 градусам, а скорость приземления должна быть очень близка к 0.
Когда вы сталкиваетесь с многоэтапной проблемой принятия решений, оптимальное решение определенного шага включает в себя оптимальную стратегию для задач меньшего масштаба и зависит от нее. Это оптимальная подструктура.
например, игра со сбором конфет: оптимальная стратегия должна заключаться в том, чтобы взять две конфеты в начале, но если вы не будете следовать оптимальной стратегии, столкнувшись с меньшим количеством конфет в будущем, вы не выиграете, если возьмете две конфеты сейчас;
На эффективность динамического программирования влияет взрыв окружности. В это время инженер-алгоритмист не обязательно может точно решить все подзадачи, а может решить только часть из них, и это является неточным решением для решения других подзадач.
ветвь и граница
Оптимизация портфеля
Найти осуществимое решение несложно, но особенно трудно найти оптимальное решение.
например: Найдите самое большое яблоко на дереве: отрежьте ветки, которые заведомо меньше, и оставьте несколько ветвей для сравнения.
ветвь и граница
например, найти самого высокого ученика в средней школе.
Филиал: Неполная средняя школа/Средняя школа
Разграничение: Родниковая выходная пещера младшей средней школы имеет высоту 1,8 метра, никому не нужно нагибаться - «1,8 метра» - это верхний предел этого филиала младшей средней школы.
Обрезка: если в старшей средней школе есть одно дерево высотой более 1,8 метра, можно уничтожить всю младшую среднюю школу.
Когда цель, которую можно получить в определенном подпространстве, не так хороша, как известное допустимое решение, это подпространство будет напрямую исключено.
Как сделать метод ветвей и границ эффективным
Это зависит от того, насколько эффективно вы сможете обрезать, если вы будете разветвлять только без обрезки, нет никакой разницы от подсчета их всех;
Стратегия «ранней остановки»: если полученная временная оптимальная диссоциация очень близка к реальному оптимальному решению, ранняя остановка может значительно сэкономить время.
эвристика
Если вы столкнулись с особенно сложной задачей комбинаторной оптимизации и не можете найти оптимальное решение, вы можете обратиться к эвристическим алгоритмам, чтобы найти хорошее осуществимое решение.
Эвристические алгоритмы: соответствуют человеческой интуиции или законам природы.
Монте-Карло
Применимо: слишком много возможностей для подсчета
Монте-Карло: выборка случайных событий в задаче, выполнение независимых вычислений для ограниченного числа выборок и, наконец, статистика результатов выборки.
Он во многом зависит от правильности параметров и не очень помогает выявить природу проблемы.
Граница алгоритма
машинное обучение
Алгоритмы машинного обучения — это серия алгоритмов, которые позволяют компьютерам обучаться автономно. Они наиболее подходят для задач, которые люди не могут решить, используя четкие правила.
Машинное обучение научило многие детали, которым людей не учили и которые они не понимают.
Машинное обучение изучает сложные взаимосвязи между вещами
Стратегия обучения: как обучаются алгоритмы машинного обучения
Алгоритм K соседей, основанный на памяти, наконец выражает набор исторических данных.
например, прецедентное право в системе общего права.
Модель дерева решений суммирует условные суждения посредством индукции данных и, наконец, выражает некоторые сложные условные суждения.
Модель нейронной сети имитирует передачу нервных сигналов и процесс реакции нервов на различную внешнюю информацию и, наконец, выражает ряд значений параметров.