Обновить
198.78

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Симплексный метод решения задач линейного программирования

Время на прочтение15 мин
Количество просмотров41K

Задача линейного программирования (ЗЛП) состоит в определении значений упорядоченной совокупности переменных xj, j=1(1)n при которых линейная целевая функция достигает экстремального значения и при этом выполняются (удовлетворяются) все ограничения (они также линейные) в форме равенств или неравенств. Требуется найти план  Х <n> = <x1, x2, ..., xn>, который обеспечивает получение целевой функцией с экстремальным значением.

Читать далее

30 миллиардов параметров: реально ли обучить русский GPT-3 в «домашних» условиях?

Время на прочтение17 мин
Количество просмотров33K

Не так давно Сбер, а затем и Яндекс объявили о создании сверхбольших русских языковых моделей, похожих на GPT-3. Они не только генерируют правдоподобный текст (статьи, песни, блоги и т. п.), но и решают много разнообразных задач, причем эти задачи зачастую можно ставить на русском языке без программирования и дополнительного обучения — нечто очень близкое к «универсальному» искусственному интеллекту. Но, как пишут авторы Сбера у себя в блоге, «подобные эксперименты доступны только компаниям, обладающим значительными вычислительными ресурсами». Обучение моделей с миллиардами параметров обходится в несколько десятков, а то сотен миллионов рублей. Получается, что индивидуальные разработчики и маленькие компании теперь исключены из процесса и могут теперь только использовать обученные кем-то модели. В статье я попробую оспорить этот тезис, рассказав о результатах попытки обучить модель с 30 миллиардами параметров на двух картах RTX 2080Ti.

Читать далее

О том, как нейросеть исследует физику толпы…

Время на прочтение4 мин
Количество просмотров4.6K

...чтобы потом обучать урбанистических роботов.

Цифровой двойник плотных скоплений хаотически движущихся объектов разрабатывают для задач навигации роботов студенты НИТУ "МИСиС", ИТМО и МФТИ . Он будет представлять собой веб-сервис с применением графовых нейронных сетей и позволит изучать физику толпы, законы роевого поведения у животных и принципы движения «активной материи». Эти данные активно требуются для обучения роботов-курьеров, беспилотников и других автономных устройств, работающих в условиях многолюдных пространств. Первые результаты опубликованы в журнале Journal of Physics: Conference Series.

Подробнее -->

Метод ветвей и границ. Задача коммивояжера

Время на прочтение27 мин
Количество просмотров91K

Среди методов, привлекаемых к решению задач исследования операций (ИО) особое место занимает метод ветвей и границ (МВГ), который внес оригинальный взгляд в целом на проблемы оптимизации и позволил по другому воспринимать смысл оптимальности решений. Авторы разработанного метода предложили оценивать целевую функцию (ЦФ) задачи нижней границей целевой функции (НГЦФ) всего множества решений конкретной задачи, не получая ни всех решений, ни одного из них. Располагая такой оценкой, можно формировать решения задачи последовательно их улучшая не сильно уклоняясь от НГЦФ. В статье предлагается детальный разбор этого метода решения на числовом примере с подробными комментариями выполняемых действий при поиске оптимального решения.

Читать далее

Без границы. Системный подход и алгоритмы творчества

Время на прочтение6 мин
Количество просмотров3.8K

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

Читать далее

Обзор методов численной оптимизации. Безусловная оптимизация: метод линий

Время на прочтение24 мин
Количество просмотров48K
image

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

Введение


Оптимизация — это процесс нахождения точки экстремального значения некоторой заданной целевой функции $f(\mathbf{x})$. Это один из крупнейших краеугольных камней прикладной математики, физики, инженерии, экономики, промышленности. Область её применений необъятна и может распространяться от минимизации физических величин на микро- и макроуровнях до максимизации прибыли или эффективности логистических цепочек. Машинное обучение также заострено на оптимизации: всевозможные регрессии и нейроные сети пытаются минимизировать ошибку между предсказанием и реальными данными.

Экстремум может быть как минимумом, так и максимумом, но обычно принято изучать любую оптимизацию исключительно как поиск минимума, поскольку любая максимизация эквивалентна минимизации из-за возможности поменять знак перед целевой функцией: $f(\mathbf{x})\to -f(\mathbf{x})$. Следовательно, в любом месте ниже под оптимизацией мы будем понимать именно минимизацию.
Читать дальше →

Неочевидные лайфхаки 3D реконструкции людей

Время на прочтение4 мин
Количество просмотров8.1K

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

Читать далее

Теория Графов. Часть 1 Введение и классификация графов

Время на прочтение4 мин
Количество просмотров42K

В этой статье: Что такое графы и почему они такие универсальные?

Читать далее

DataScience Digest — 24.06.21

Время на прочтение2 мин
Количество просмотров2.8K

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

Читать далее

Аналитика ФИО в ЦФТ

Время на прочтение13 мин
Количество просмотров6.4K


Всем привет! Меня зовут Степан Деревянченко. Я специализируюсь на алгоритмах анализа текстовых данных (Natural Language Processing – NLP).

Данная статья посвящена тому, как в отделе машинного обучения ЦФТ занимаются аналитикой ФИО клиентов, зачем это нужно, и каких результатов удалось достичь за время исследований в данной области.

Моё выступление с докладом об аналитике ФИО на CFT ML Meetup можно посмотреть здесь.
Читать дальше →

Fast Hough Transform: от Эльбруса до КОМДИВа

Время на прочтение11 мин
Количество просмотров6.7K

На протяжении пяти лет мы в Smart Engines рассказываем вам о том, как оптимизируем свой софт под процессорную архитектуру Эльбрус. Обычно мы делимся с вами феерическими результатами, когда на Эльбрусах нам удается распознавать почти так же быстро, как на топовых иностранных процессорах. Сегодняшняя статья посвящена описанию оптимизированных «внутренностей» одного крайне важного для всех систем компьютерного зрения алгоритма – быстрого преобразования Хафа. Кроме того, расскажем еще об одном крайне интересном семействе отечественных архитектур – микропроцессорах КОМДИВ.

Читать далее

Найти подстроку в строке

Время на прочтение6 мин
Количество просмотров33K

Алгоритм поиска строки Бойера — Мура — алгоритм общего назначения, предназначенный для поиска подстроки в строке.

Давайте попробуем найти вхождение подстроки в строку.

Подготовка к собеседованию

Как мы создали Web приложение для определения лиц и масок для Google Chrome (часть 2)

Время на прочтение12 мин
Количество просмотров3.4K
Определение лица и маски
В предыдущей статье я рассказывал о том, можно ли использовать машинное обучение (в частности определение лица и маски) в браузере, подходах к детекции и оптимизации всех процессов.
Сегодня я хочу рассказать о технических подробностях реализации.
Читать дальше →

Ближайшие события

Как улучшить блок-схемы алгоритмов по ГОСТ 19.701-90? Эргономичный визуальный алгоритмический язык ДРАКОН. Критерии

Время на прочтение27 мин
Количество просмотров53K

Статья содержит анализ и критику стандарта ГОСТ 19.701-90 в части схем алгоритмов. Предлагается для записи алгоритмов создать новый стандарт, основанный на эргономичном визуальном алгоритмическом языке ДРАКОН. Дается сравнительный анализ блок-схем алгоритмов по ГОСТ 19.701-90 и дракон-схем.

Читать далее

Powershell настоящий язык программирования. Скрипт оптимизации рутины в техподдержке

Время на прочтение17 мин
Количество просмотров17K

Работая в компании IT-аутсорса в качестве руководителя 3 линии поддержки, задумался, как автоматизировать подключение сотрудников по RDP, через VPN к серверам десятков клиентов.

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

Держать все подключения к VPN в Windows не самая лучшая идея, да и при переустановке оного, создавать VPNы тоже не доставляет удовольствие.

Задача, к тому же, осложняется тем, что у некоторых клиентов pptp, у кого-то l2tp, у некоторых несколько подсетей, туннели и т.п.

В результате, для начала был написан скрипты на Powershell для каждого клиента, но позже они переродились в некое приложение, написанное с помощью того же Powershell.

До написания этого скрипта-приложения программированием не занимался вообще, разве что лет 20 назад что-то пописывал на VBS в MS Excel и MS Access, поэтому не гарантирую красивость кода и принимаю критику от опытных программистов, как можно было бы сделать красивее.

В Powershell, начиная с Windows 8 и, конечно в Windows 10, появилась прекрасная возможность создавать VPN подключения командой Add-VpnConnection и указывать какие маршруты использовать с этими соединениями командой Add-VpnConnectionRoute.

На основании этих команд и создано данное приложение. Но, обо всем по порядку.

Для начала, создаем в Google Disk таблицу с именованными столбцами:
Number; Name; VPNname; ServerAddress; RemoteNetwork; VPNLogin; VPNPass; VPNType; l2tpPsk; RDPcomp; RDPuser; RDPpass; DefaultGateway; PortWinbox; WinboxLogin; WinboxPwd; Link; Inform

Читать далее

DataScience Digest — 17.06.21

Время на прочтение2 мин
Количество просмотров3K

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

Читать далее

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

Время на прочтение5 мин
Количество просмотров7.6K
image

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

В новой статье, опубликованной в рецензируемом научном журнале Artificial Intelligence, ученые из DeepMind утверждают, что интеллект и связанные с ним способности появятся не в результате формулирования и решения сложных проблем, а в результате соблюдения простого, но действенного принципа: максимизация вознаграждения. Речь идет про обучение с подкреплением.
Читать дальше →

Как я пытался придумать новый подход к изучению алгоритмов через интерактивные визуализации

Время на прочтение4 мин
Количество просмотров28K

Представьте человека, который изучает алгоритмы. Чтобы понять как они работают, приходится разбираться в их коде и представлять, как компьютер будет его выполнять. Это странно — почему мы должны учиться думать как компьютер, вместо того, чтобы заставить его помогать нам? Какая-то сильная технозависимость.

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

Читать далее

Исследование операций

Время на прочтение20 мин
Количество просмотров16K

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

Читать далее

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

Время на прочтение7 мин
Количество просмотров6.6K

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


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


Далее разберем нюансы на примере функций сортировки. Сортировка и поиск используются максимально часто во всех манипуляциях с данными. Экономия нескольких миллисекунд на операции может приводить к суммарному сокращению часов расчета на значительных данных.


Является продолжением серии предыдущих публикаций.

Читать дальше →

Вклад авторов