10 алгоритмов, которые правят миром

IBM CRUSH

Этот алгоритм пока ещё не управляет миром, но, очевидно, ждать осталось совсем недолго. Всё больше полицейских подразделений в США, Канаде и некоторых других странах используют тестирующуюся уже около четырёх лет систему Criminal Reduction Utilising Statistical History (CRUSH), предназначенную для прогнозирования времени и места возможного совершения преступлений в будущем. Этот программный комплект фактически копирует идею, обыгранную в известном научно-фантастическом фильме «Особое мнение» («Minority Report»).

Ещё в 2010 году департамент полиции Мемфиса начал использовать систему CRUSH, которая позволила сократить число серьёзных преступлений на 30%, в том числе снизить на 15% количество насильственных преступлений по сравнению с 2006 годом

Проект привлёк внимание других городов и даже стран: интерес к CRUSH проявили в Польше, Израиле и Великобритании. В настоящее время пилотные проекты CRUSH запущены в Лос-Анджелесе, Санта-Крузе и Чарльстоне

Система CRUSH работает на основе принципа «больших данных», анализируя огромные массивы накопленных за несколько лет данных о различных преступлениях с использованием специализированных алгоритмов. Всё это позволяет с достаточно высокой вероятностью прогнозировать возможность совершения конкретных преступлений в определённых районах в определённое время суток и эффективно их предотвращать. В будущем такие системы получат возможность отслеживать перемещение известных преступников в реальном времени, в том числе и с помощью беспилотников, получать данные GPS и распознавать биосигнатуры, анализировать сообщения в интернете и «просеивать» потоки данных во всех прочих средствах связи.

Поиск Google

Бесспорный лидер хит-парада — «великий и ужасный» поисковик Google, индексирующий всё на свете. Казалось бы, ещё совсем недавно несколько крупных поисковых систем сражались за место на рынке. Но Google со своим инновационным алгоритмом расчёта авторитетности ссылок PageRank оказался наиболее эффективным и точным поисковиком и занял доминирующую позицию. На Google приходится, по разным оценкам, чуть менее 80% поисковых запросов в мире, и он оставляет далеко позади все остальные международные поисковые системы, включая Yahoo, Baidu, Live.com и российский «Яндекс». Для большинства пользователей интернета сегодня именно Google выступает в роли ворот во Всемирную сеть.

Запатентованный алгоритм PageRank работает в связке с автоматическими поисковыми роботами-«пауками» и использует огромный список ключевых слов и веб-адресов. Основная идея проста: страница тем важнее и популярнее, чем больше на неё ведёт ссылок с других сайтов

На основе количества и качества гиперссылок, указывающих на ту или иную страницу, алгоритм оценивает «важность» этой страницы и самого сайта и выводит её на соответствующий уровень при выдаче результатов поиска. Но это не просто конкурс популярности: при расчёте важности используется и масса прочих параметров, в том числе частота и расположение ключевых слов на странице и длительность существования такой страницы

Новостная лента Фэйсбука

Нам, конечно, не хотелось бы это признавать, но новостная лента Фэйсбука — это «место», где каждому из нас нравится тратить время. И если вы не настроите её так, чтобы видеть ВСЕ действия и обновления ВСЕХ ваших друзей в хронологическом порядке, вам выдается заранее заданный выбор пунктов, которые алгоритм Фэйсбука выбрал для вас.

Чтобы вычислить, какой контент наиболее интересен, он учитывает несколько факторов, такие как количество комментариев, кто «запостил» историю (да, там есть внутреннее распределение на «популярных» людей и тех, с кем вы больше всего взаимодействуете), и какого типа этот пост (фотография, видео, статус, обновление и т. д.).

Применяются в:

  • картографических сервисах типа Google maps или Apple maps для прокладки маршрутов и определения местоположения;
  • сетях для решения проблемы минимальной задержки пути;
  • абстрактных автоматах для определения через переход между различными состояниями возможных вариантов достижения некоторого целевого состояния, например минимально возможного количества ходов, необходимого для победы в игре.

4. Обнаружение циклов

Рис. 5. Цикл

Цикл — это путь, в котором первая и последняя вершины графа совпадают. То есть путь, начинающийся и завершающийся в одной и той же вершине, называется циклом. Обнаружение циклов — это процесс выявления таких циклов. На рисунке 5 показано, как происходит обнаружение цикла.

Ссылки

  • Главная страница и теория работы (GitLab GPL): Проект «Общая теория алгоритмов»
  • Вводная статья работы «Разрабатываем теорию алгоритмов как проект с открытым исходным кодом». Пожалуйста, не судите строго эту наивную публикацию «сверх-идеи» устаревшей версии 2019 года.
  • Статьи серии «Что такое алгоритм?!»
    • №1 «Действие» (текущая)
    • №2 «Обусловленная и связная последовательность»
    • №3 «Синтез алгоритма запоминанием»
    • №3.1 «Эволюция памяти»
    • №3.14 «Копирование иерархии памяти»
    • №5 «Эволюция поведения»
    • №4 «Математика»
    • №4.0 «Физика»
    • №3.25 «Язык»
  • Статьи в хабе «Программирование»:
    • Детская сказка программисту на ночь
    • Эволюция программного проекта и ООП
    • Как не понимать принципы развития архитектуры SOLID
  • Все рисунки к статье (кроме заглавного) сформированы сообществом Wikipedia. Лицензия (Creative Commons Attribution-Share Alike 4.0 International)

Преимущества системы Rave OS

Rave OS — система для майнеров, которая позволяет им контролировать происходящее с майнинг-фермами на расстоянии. При этом разработчики обещают стабильность майнинга, высокий хешрейт и минимальные простои, которые обычно приводят к убыткам.

Главным преимуществом системы является её простота. Для установки достаточно записать образ на носитель и подключить последний к устройству. После этого система автоматически определит модель оборудования, подберёт соответствующие настройки и позволит майнить. Вдобавок у Rave OS есть большое комьюнити, а значит комбинации параметров разгона есть в избытке.

Алгоритмический трейдинг

На финансовых рынках уже давно используются специальные алгоритмы для предсказания изменения курсов, но сегодня подобные технологии стали широко применяться и на фондовых биржах: они получили название «алгоритмический трейдинг» или «высокочастотная алгоритмическая торговля». Это разновидность автоматической торговли при помощи алгоритмов-ботов, способных принимать решения за доли секунды. Для сравнения: человеку, чтобы оценить ситуацию и отреагировать на неё, требуется как минимум одна секунда.

В результате живые трейдеры всё чаще вытесняются программами, которые, впрочем, неидеальны и тоже могут совершать ошибки. Известная история — «биржевой крах» 6 мая 2010 года, когда всего за несколько минут торгов индекс Доу-Джонса упал сразу на тысячу пунктов. Окончательные причины обвала так и не были объявлены, но некоторые эксперты полагают, что всему виной алгоритмы quote stuffing, способные автоматически генерировать до 5 000 заявок в секунду, мгновенно замусоривая систему.

Что такое граф?

Граф состоит из конечного множества вершин (узлов) и набора рёбер, соединяющих эти вершины. Две вершины считаются смежными, если они соединены друг с другом одним и тем же ребром.

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

  • Порядок: число вершин в графе.
  • Размер: число рёбер в графе.
  • Степень вершины: число рёбер, инцидентных вершине.
  • Изолированная вершина: вершина, которая не связана ни с одной другой вершиной графа.
  • Петля: ребро, вершины которого совпадают.
  • Ориентированный граф: граф, в котором все рёбра имеют направление, определяющее начальную и конечную вершину.
  • Неориентированный граф: граф с рёбрами, которые не имеют направления.
  • Взвешенный граф: рёбра такого графа имеют определённый вес.
  • Невзвешенный граф: рёбра такого графа не имеют никаких весов.

Рис. 1. Терминология графов (схематичное изображение)

1. Поиск в ширину

Рис. 2. Визуальное отображение обхода на графах (поиск в ширину)

Обход или поиск — это одна из фундаментальных операций, выполняемых на графах. Поиск в ширину начинается с определённой вершины, затем исследуются все её соседи на данной глубине и происходит переход к вершинам следующего уровня. В графах, в отличие от деревьев, могут быть циклы — пути, в которых первая и последняя вершины совпадают. Поэтому необходимо отслеживать посещённые алгоритмом вершины. При реализации алгоритма поиска в ширину используется структура данных «очередь».

На рисунке 2 показан пример того, как выглядит поиск в ширину на графе. Жёлтым цветом помечаются обнаруженные вершины, красным — посещённые.

ASIC и видеокарты для майнинга — какую выбрать

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

Асики (ASIC) — это узкоспециализированные майнинг устройства на один алгоритм. Их выпускает небольшое число компаний с резко конъюктурной ценовой политикой, которые к тому же не прочь сами помайнить на новом оборудовании перед отправкой заказчику.

Видеокарты против ASIC

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

Самая большая проблема асиков — узкозаточенность и постоянно снижающийся доход в криптовалюте, связанный в первую очередь с выходом новых моделей, чья энергоэффективность в разы лучше старых.

Видеокарты или GPU — широко распространённое универсальное устройство, умеющее работать на многих новых алгоритмах и имеющее неплохую остаточную стоимость (40-60 процентов) на вторичном рынке даже через несколько лет эксплуатации. По истечению гарантийного срока, а лучше перед окончанием, их можно продать геймерам.

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

Поэтому для личного использования майнеры в основном используют именно видеокарты, причем преимущественно последних или предпоследних поколений.

Сайты знакомств

Сетевые сайты знакомств — один из старейших бизнесов в интернете, и не удивительно, что, по некоторым оценкам, сегодня это многомиллиардный бизнес. Такие международные сайты, как Match.com, eHarmony и OKCupid, ежегодно расширяют свою аудиторию на 3,5%, и, по мнению экспертов, в ближайшие пять лет эта тенденция сохранится.

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

К примеру, одним из создателей бесплатного сайта знакомств OKCupid был математик из Гарвардского университета Кристиан Раддер, и на его сайте применяется строго аналитический подход, построенный на информации от пользователей

Помимо простого сравнения интересов, алгоритм взвешивает степень важности каждого вопроса для пользователя и для его потенциального партнёра, и это делает OKCupid одним из самых успешных сайтов этого типа

Алгоритм k-ближайших соседей (K-Nearest Neighbors)

Как построить алгоритм К-ближайших соседей

  1. Соберите все данные
  2. Вычислите Евклидово расстояние от новой точки данных х до всех остальных точек в множестве данных
  3. Отсортируйте точки из множества данных в порядке возрастания расстояния до х
  4. Спрогнозируйте ответ, используя ту же категорию, что и большинство К-ближайших к х данных

Плюсы и минусы алгоритма К-ближайших соседей

Плюсы:

  • Алгоритм прост и его легко понять
  • Тривиальное обучение модели на новых тренировочных данных
  • Работает с любым количеством категорий в задаче классификации
  • Легко добавить больше данных в множество данных
  • Модель принимает только 2 параметра: К и метрика расстояния, которой вы хотели бы воспользоваться (обычно это Евклидово расстояние)

Минусы:

  • Высокая стоимость вычисления, т.к. вам требуется обработать весь объем данных
  • Работает не так хорошо с категорическими параметрами

Подведем итог

Пример задачи на классификацию(футболисты или баскетболисты), которую может решить алгоритм
Как данный алгоритм использует Евклидово расстояние до соседних точек для прогнозирования к какой категории принадлежит новая точка данных
Почему значения параметра К важно для прогнозирования
Плюсы и минусы использования алгоритма К-ближайших соседей

Что такое алгоритм шифрования криптовалют?

Алгоритмы криптовалют — это набор специфических криптографических механизмов и правил, которые шифруют цифровую валюту. Майнеры при помощи специального оборудования расшифровывают алгоритм конкретной криптовалюты — этот процесс заключается в поиске хеша.

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

Процесс дешифрования (добычи монет) превращает набор случайных данных в упорядоченную систематизированную информацию, которая впоследствии записывается в блокчейн.

Сегодня насчитывается несколько десятков алгоритмов криптовалют. Некоторые алгоритмы более популярны и используются для нескольких разных криптовалют (блокчейнов).

Наиболее популярные криптографические алгоритмы шифрования на сегодняшний деть это: DaggerHashimoto, Scrypt, SHA256, ScryptNf, X11, X13, Keccak, X15, Nist5, NeoScrypt, Lyra2RE, WhirlpoolX, Qubit, Quark, Axiom, Lyra2REv2, ScryptJaneNf16, Blake256r8, Blake256r14, Blake256r8vnl, Hodl, Decred, CryptoNight, Skunk, Lbry, Equihash, Pascal, X11Gost, Sia, Blake2s.

Как видите список алгоритмов весьма велик, мы расскажем подробнее о самых востребованных и надежных из них:

  • SHA256 – именно на этом алгоритме построен классический биткоин, для работы с ним видеокарт уже давно не достаточно, так как для него наши братья-китайцы изобрели специальное оборудование – АСИКи (от английской аббревиатуры ASIC (application specific integrated circuit – интегральная схема специального назначения). На этом же алгоритме основано и множество копирующих биткоин криптовалют, например, недавно появившийся BitcoinCash.
  • Scrypt – на этом алгоритме работает «цифровое серебро» — Litecoin. В своё время этот алгоритм был отличной альтернативой, когда АСИКи были разработаны только для SHA256. Но времена идут, появились Scrypt-ASIC и этот алгоритм большинству майнеров тоже недоступен.
  • Ethash (DaggerHashimoto) – алгоритм шифрования, нашедший применение в криптовалюте Ethereum. Для эффективной работы требуется иметь видеокарты с большим объемом ОЗУ и желательно на основе микропроцессоров AMD, хотя и Nvidia 10-й серии неплохо справляется с DaggerHashimoto.
  • X11 – применяется в монетке Dash, доступен для современных видеокарт. Однако в конце 2017 — начале 2018, появились первые партии ASIC-майнеров для Dash.
  • Decred – модификация алгоритма Blake256, применяется в криптомонете Decred. Можно майнить на видеокартах. Майнинг Decred чаще всего запускается параллельно с DaggerHashimoto на программе Claymore’s Dual Miner.
  • CryptoNight – на основе данного алгоритма работает Monero. Алгоритм примечателен тем, что относительно неплохо вычисляется на процессорах. Конкретно в данную минуту процессор Intel Xeon E3 даёт мне около четверти доллара в сутки (сопоставимые цифры и для Intel Core I7). Смешной заработок, но у криптоинвестора любая машина должна майнить хотя бы в фоновом режиме.
  • Equihash – лежит в основе валюты Zcash, довольно популярной в наше время среди майнеров на видеокартах, в силу того что сложность сети Ethereum (лидера у GPU майнеров) сильно возросла.
  • X11Gost – алгоритм лежит в основе криптомонеты Sibcoin, которая еще называется «Сибирский Червонец». По сути это форк, российский аналог валюты Dash. Не буду вдаваться в криптографию, но отмечу, что в основе алгоритма лежит хеш-функция в соответствии с ГОСТ Р 34.11-2012.

Особенности других алгоритмов майнинга

Модели карт с малым объёмом памяти, просто старые карты, да и некоторые современные модели, к сожалению, не могут майнить вышеописанные алгоритмы или менее эффективны в них. Для таких карт Nvidia тоже есть большое число интересных и прибыльных алгоритмов.

Основными из них по прибыльности во второй половине 2020 года являются алгоритмы монет Beam и Ravencoin — они называются BeamHash-III и Kawpow.

Майнинг Nvidia на алгоритме BeamHash-III

Третья версия алгоритма для монеты BEAM позиционирующийся как асикоустойчивый алгоритм для майнинга на GPU.

Изначально считалось, что для него необходимо более 3 ГБ видеопамяти на карте, но достаточно быстро создатели майнинг-программы LolMiner включили с свою программу поддержку карт с 3 ГБ свободной памяти, то есть памяти не выводящей изображение в системе Windows.

При разгоне ядра алгоритм быстро упирается в память в районе средних значений энергопотребления на картах серии 10хх (около 70 процентов), а дальнейшее увеличение частоты ядра уже почти не приводит к росту хешрейта. Поэтому этот алгоритм нельзя считать горячим, при этом он даёт неплохую среднегодовую доходность на картах 3-4 ГБ видеопамяти.

Майнинг Nvidia на алгоритме Kawpow

Алгоритм Kawpow, основной валютой на котором является RVN, достаточно ярко ворвался в майнинг, но уже через три месяца он перестал попадать в топ доходности.

Казалось бы, его взлёт был недолгим, но необходимо отметить ключевые преимущества: алгоритм работает даже с картами с 3 ГБ памяти, он не капризный (многие капризные карты на других алгоритмах уверенно работают на kawpow), скорость неплохо коррелирует с уровнем PL карт, и монета RVN есть на многих крупных биржах.

Разгон похож на Beam, не будем особенно на нём останавливаться. К слову, именно Beam оттянул на себя часть 3 ГБ карт, что дало возможность майнерам kawpow в 2020 году чувствовать себя стабильнее и увереннее.

К тому же после обновления ETC и оттока части 3 ГБ карт на эту монету мы чаще сможем наблюдать Kawpow в топе доходности даже для больших карт.

Майнинг Nvidia на алгоритме Cuckarooz29 и Cuckatoo32

Оба алгоритма (сокращенно C29 и C32) являются развитием криптовалюты GRIN, которая изначально позиционировалась как GPU-ориентированная и асикоустойчивая, в связи с чем разработчики периодически незначительно меняют алгоритм, чтобы максимально усложнить создание узкоспециализированных устройств.

Ввиду достаточно серьезной привязки данных алгоритмов к одной монете, популярность которой слегка снизилась, майнинг данной моменты на алгоритме C29 практически не встречается в топе прибыльности.

Криптовалюта Grin

В отличие от своего брата, алгоритм C32 имеет существенные требования по объему видеопамяти: для майнинга необходимо минимум 8 ГБ видеопамяти, при этом как и для алгоритма Cortex топовые карты серий имеют существенно больший хешрейт. Поэтому этот алгоритм часто появляется в топе прибыльности для карт 1080ti, 2080ti, 3060ti, 3070, 3080 и 3090.

Алгоритм не капризный, очень стабильно работает даже на картах со слабой памятью.

Майнинг Nvidia на алгоритмах Equihash-xxx

В 2016 году, когда появилась анонимная монета ZEC на новом алгоритме equihash, это стало хорошим вызовом доминированию ETH в майнинге. Изначально монета майнилась только на CPU, но меньше чем через месяц появился GPU-майнер, который давал существенно лучшие результаты на зеленых картах, чем на красных.

Алгоритм Equihash сильно зависит от разгона ядра и не имеет значимых по размеру промежуточных файлов для размещения в памяти видеокарт, поэтому он был относительно лёгкой целью для создателей ASIC-устройств. Несмотря на угрозу централизации сети, создатель монеты не стали менять алгоритм, что породило массу слухов об их аффилированности с крупнейший производителей ASIC-майнеров компанией Bitmain.

Помещение с логотипом компании Bitmain

В отличие от основной валюты, различные клоны реально ощущали угрозу от существенно возросшего хешрейта, который можно было собрать в одних руках. Поэтому они приняли решения об изменении алгоритма. Так появились модификации Equihash-xxx, где xxx- это числовой идентификатор модификации.

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

Эти алгоритмы в первую очередь требуют разгона ядра.

CRUSH от IBM

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

В 2010-м году было объявлено, что благодаря программе интеллектуального анализа IBM (названной CRUSH, что можно расшифровать и перевести как снижение уголовных преступлений с использованием статистической истории) управление полиции Мемфиса сократило число серьёзных преступлений более чем на 30%, включая сокращение числа тяжких преступлений на 15% с 2006-го года. Вдохновившись, другие города в Польше, Израиле и Великобритании взяли программу на заметку. Экспериментальные проекты сейчас осуществляются в Лос-Анджелесе, Санта-Круз и Чарльстоне.

Программа работает с помощью сочетания агрегирования данных, статистического анализа и, конечно, передовых алгоритмов. Это позволяет полиции оценивать модели происшествий по всему городу и прогнозировать появление преступных «горячих точек», чтобы «быстро выделить ресурсы и дислоцировать персонал, что позволит повысить эффективность работы и безопасность граждан».

В будущем эти системы повсеместно возьмут на себя работу аналитиков. Преступники будут отслеживаться сложными алгоритмами, следящими за интернет-активностью, GPS, карманными персональными компьютерами, биосигнатурами и всеми контактами в реальном времени. Возрастет использование беспилотных летательных аппаратов для слежения за потенциальными правонарушителями, способных прогнозировать намерения человека, основываясь на его движениях и других визуальных подсказках.

Проблема

Текущее состояние в области программирования — это обучение ремеслу по большей части личной практикой или разборами примеров стороннего кода, с которым по каким-то причинам приходится сталкиваться.

В результате программированию учишься по наитию. Лишь немного в этом труде помогают сборники алгоритмов, прикладных техник и шаблонов проектирования. Общая совокупность предлагаемых ими рецептов выстраивается длинным списком, и его длина грозит каждому из прочитанных приемов быть позабытым (как была забыта 53-яя личная группа в «телеге» до введения разбиения по каталогам). Но даже тот прием, который остался в памяти, чаще всего просто является описанием прикладной задачи, в которой было успешно его использование.

Почему конкретный прием был успешен в задаче-образце? Будет ли он успешен в твоём проекте? Какие признаки проекта дают понять, что использование приёма уместно?

В личном опыте существования в профессии не раз отмечено, что каждый Junior борется с одинаковыми ветряными мельницами и постигает методы создания программ основываясь только на своих ошибках. Но ведь такие ошибки совершили уже очень многие. Почему до сих пор не создана система правил программирования, которая поможет обойти новоиспеченному кораблю-программисту подводные прибрежные камни? Ну, например, объяснение вреда использования метода «Copy-Paste» для развития кода. Если такие правила получится объяснить малым набором причин, их сформировавшим, то это объяснение обеспечит их запоминание и последующее использование в практике, тем самым поможет уклониться от бесчисленных грабель, разложенных тут и там.

Для компактного и полезного набора объяснений нужно:

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

Если обобщить, то нужны алгоритмы для написания и развития алгоритмов.

Задуманная серия статей не претендует на полное решение указанной проблемы. Предпринимается небесспорная попытка сделать первый шаг на пути к этому решению. Этот шаг состоит в выделении структуры и свойств главного кирпичика программиста — Алгоритма.

Алгоритмы сжатия данных

Трудно решить, какой алгоритм сжатия является наиболее важным, поскольку в зависимости от задачи используемый алгоритм может изменяться от zip до mp3 и от JPEG до MPEG-2. Но всем известно, насколько важны эти алгоритмы почти во всех сферах деятельности.

Где может использоваться алгоритм сжатия помимо очевидного заархивированного документа? Например, эта веб-страница использует сжатие данных во время загрузки на ваш компьютер. Также эти алгоритмы используются в видеоиграх, видео, музыке, облачных вычислениях, базах данных и т. д. Можно сказать, что почти все используют алгоритмы сжатия данных, потому что они помогают сделать системы более дешёвыми и эффективными.

Анализ связей

В информационную эру взаимоотношения между различными субъектами имеют большое значение. От поисковых систем и социальных сетей до инструментов анализа рынка — каждый пытается найти реальную структуру интернета на все времена.

Алгоритм анализа связей за время своего существования оброс большим количеством мифов и заблуждений среди широкой публики. Проблема заключается в существовании различных способов анализа ссылок с различными характеристиками, что делает каждый алгоритм немного другим (и позволяет патентовать алгоритмы), хотя при этом их основания похожи.

Идея анализа связей проста вы можете представить график в виде матрицы, что сводит задачу к проблеме собственной значимости каждого узла. Такой подход к структуре графа даёт нам возможность оценить относительную важность каждого объекта, включённого в систему. Алгоритм был разработан в 1976 году Габриэлем Пински и Фрэнсисом Нарином

Где используется этот алгоритм? При ранжировании страниц во время поиска в Google, при генерации ленты новостей в Facebook (поэтому новостной канал Facebook — не алгоритм, а его результат), при составлении списка возможных друзей на Google+ и Facebook, при работе с контактами в LinkedIn и т. д. Каждый из вышеперечисленных сервисов работает с разными параметрами и объектами, но математика за каждым алгоритмом остаётся неизменной.

Кстати, видимо, Google является не первой компанией, начавшей работу с подобными типами алгоритмов. В 1996 году (за два года до основания Google) небольшая поисковая система под названием «RankDex», основанная Робином Ли, уже использовала эту идею для ранжирования страниц. Также, Массимо Марчиори, основатель «HyperSearch», использовал алгоритм ранжирования страниц, основанный на отношениях между отдельными страницами (эти два основателя упоминаются в патентах Google).

Выводы

Соберём всё, что мы отметили рассматривая разные примеры «действия»:

  • «действие» можно использовать для создания алгоритма;
  • «действие» может быть элементарным;
  • «действие» может быть реализовано алгоритмом;
  • в «действии» обязательно участвует некоторый объект или группа объектов;
  • для группы объектов «действие» происходит только тогда, когда эти объекты «достаточно близко»;
  • в действии изменяются связи и параметры объектов (включая параметры их движения);
  • «действие» всегда и обязательно должно быть повторимо.

Признак Повторимости помогает нам в создании наших алгоритмов. С его использованием мы из всех процессов выделяем те, что являются «действием» и на их основе создаём новые алгоритмы. Более того этот признак достаточно прост и на основе его формализации можно снизить требования к системе обнаруживающей и создающей «действия» и поручить это нашему компьютеру.

Следующая статья серии (Часть 2) будет посвящена рассмотрению способов, с использованием которых «действия» могут быть сгруппированы в алгоритм. Этих способов достаточно много и есть предпосылки, что их описание не получится уместить в одну статью. Напишем — увидим.

Спасибо Вам за внимание

Выводы

Несмотря на запоздалый старт в индустрии майнинга, продукция корпорации Nvidia уверенно занимает положенную ей долю на рынке майнинга. По состоянию на сентябрь 2020 и данным из открытой статистики, на долю зелёных карт приходится уже 39 процентов всех видеокарт, хотя в 2018 их было менее 25 процентов. Из них более 90 процентов это ещё карты семейства 10хх, то есть новые карты 20хх только вступают в бой, а на носу уже возможный массовый переход майнеров к следующей серии 30хх.

Универсальность в выборе алгоритмов приводит к намного меньшему разрыву доходности между топовыми алгоритмами и альтернативными для карт Nvidia по данным 2Cryptocalc, да и сам выбор эффективных алгоритмов куда шире.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Советчик
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: