#algorithm
Алгоритмическое мышление - способность понять как функционирует система. Определить последовательность и порядок действий и операций в ней, для достижения результата. Любая система, задача, объект - сущности с протекающими в них процессами. Поняв процесс, разбив его на простую последовательность действий, мы достигнем результата.
Развитие алгоритмического мышления дает набор навыков и умений, которые здорово помогут нам в жизни.
--> Мы сможем разбивать задачу на более мелкие подзадачи, понимать суть вещей, процессов, явлений.
--> Сможем более эффективно искать, усваивать и перерабатывать информацию.
--> Более ясно понимать, к какому результату приводят те или иные действия/бездействие.
--> Элементарно прогнозировать события, отталкиваясь от окружающей действительности.
Хорошо развивают алгоритмическое мышление - математика, программирование, стратегические игры, планирование действий.
Алгоритмическое мышление - способность понять как функционирует система. Определить последовательность и порядок действий и операций в ней, для достижения результата. Любая система, задача, объект - сущности с протекающими в них процессами. Поняв процесс, разбив его на простую последовательность действий, мы достигнем результата.
Развитие алгоритмического мышления дает набор навыков и умений, которые здорово помогут нам в жизни.
--> Мы сможем разбивать задачу на более мелкие подзадачи, понимать суть вещей, процессов, явлений.
--> Сможем более эффективно искать, усваивать и перерабатывать информацию.
--> Более ясно понимать, к какому результату приводят те или иные действия/бездействие.
--> Элементарно прогнозировать события, отталкиваясь от окружающей действительности.
Хорошо развивают алгоритмическое мышление - математика, программирование, стратегические игры, планирование действий.
May 18, 2023
#algorithm
Дерево - древовидная структура данных. Состоит из узлов и ветвей.
Бинарное дерево представляет собой структуру у которой любой узел обладает не более чем двумя дочерними узлами.
Узел - один из элементов бинарного дерева. Ветви - связи между узлами. По сути бинарное дерево - это набор связанных между собой узлов. Бинарное дерево всегда состоит из корня, откуда начинается ветвление, и левого и правого поддерева.
Термины:
--> Лист дерева - узел не имеющий потомков.
--> Глубина - на каком уровне находится тот или иной элемент дерева.
--> Ветви - связи между узлами.
--> Узел или вершина, один из элементов дерева.
--> Длина пути - количество пути, которое необходимо пройти от корня до текущего узла.
Дерево - древовидная структура данных. Состоит из узлов и ветвей.
Бинарное дерево представляет собой структуру у которой любой узел обладает не более чем двумя дочерними узлами.
Узел - один из элементов бинарного дерева. Ветви - связи между узлами. По сути бинарное дерево - это набор связанных между собой узлов. Бинарное дерево всегда состоит из корня, откуда начинается ветвление, и левого и правого поддерева.
Термины:
--> Лист дерева - узел не имеющий потомков.
--> Глубина - на каком уровне находится тот или иной элемент дерева.
--> Ветви - связи между узлами.
--> Узел или вершина, один из элементов дерева.
--> Длина пути - количество пути, которое необходимо пройти от корня до текущего узла.
May 18, 2023
#algorithm
Задача упаковки.
Задачи упаковки — класс задач оптимизации в математике, в которых пытаются упаковать объекты в контейнеры. Цель упаковки — либо упаковать отдельный контейнер как можно плотнее, либо упаковать все объекты, использовав как можно меньше контейнеров. Многие из таких задач могут относиться к упаковке предметов в реальной жизни, вопросам складирования и транспортировки.
Задача упаковки.
Задачи упаковки — класс задач оптимизации в математике, в которых пытаются упаковать объекты в контейнеры. Цель упаковки — либо упаковать отдельный контейнер как можно плотнее, либо упаковать все объекты, использовав как можно меньше контейнеров. Многие из таких задач могут относиться к упаковке предметов в реальной жизни, вопросам складирования и транспортировки.
May 12, 2024
#algorithm
Задача о рюкзаке.
Задача о рюкзаке — задача комбинаторной оптимизации. Своё название получила от конечной цели: уложить как можно большее число ценных вещей в рюкзак при условии, что вместимость рюкзака ограничена. С различными вариациями задачи о рюкзаке можно столкнуться в экономике, прикладной математике, криптографии и логистике.
Задача о рюкзаке.
Задача о рюкзаке — задача комбинаторной оптимизации. Своё название получила от конечной цели: уложить как можно большее число ценных вещей в рюкзак при условии, что вместимость рюкзака ограничена. С различными вариациями задачи о рюкзаке можно столкнуться в экономике, прикладной математике, криптографии и логистике.
May 12, 2024
#algorithm
Проблема маршрутизации транспортного средства - Vehicle Routing Problems - VRP.
Одна из задач комбинаторной оптимизации, цель которой выработать оптимальный/наиболее выгодный набор маршрутов для заданного набора клиентов.
Эта задача имеет связь с двумя знакомыми задачами. Такими как Задача коммивояжера - Traveling Salesman Problem - TSP и Задача об упаковке рюкзака - Bin Packing Problem - BPP.
Оптимизация доставки товара и выбора оптимального маршрута требуется широкому кругу компаний задействованных в перевозке и логистике.
Кроме того в реальных задачах учитываются дополнительные факторы:
--> Маршрутизация с ограничением по грузоподъемности - capacitated VRP - CVRP.
--> Маршрутизация с ограничением по времени - VRP with Time Windows - VRPTW.
--> Маршрутизация с несколькими депо - Multiple Depot VRP - MDVRP.
--> Маршрутизация с возвратом товаров - VRP with Pick-Ups and Delivering - VRPPD.
--> Маршрутизация с различным транспортом - Split Delivery VRP - SDVRP.
--> Маршрутизация со случайными данными - Stochastic VRP - SVRP.
Проблема маршрутизации транспортного средства - Vehicle Routing Problems - VRP.
Одна из задач комбинаторной оптимизации, цель которой выработать оптимальный/наиболее выгодный набор маршрутов для заданного набора клиентов.
Эта задача имеет связь с двумя знакомыми задачами. Такими как Задача коммивояжера - Traveling Salesman Problem - TSP и Задача об упаковке рюкзака - Bin Packing Problem - BPP.
Оптимизация доставки товара и выбора оптимального маршрута требуется широкому кругу компаний задействованных в перевозке и логистике.
Кроме того в реальных задачах учитываются дополнительные факторы:
--> Маршрутизация с ограничением по грузоподъемности - capacitated VRP - CVRP.
--> Маршрутизация с ограничением по времени - VRP with Time Windows - VRPTW.
--> Маршрутизация с несколькими депо - Multiple Depot VRP - MDVRP.
--> Маршрутизация с возвратом товаров - VRP with Pick-Ups and Delivering - VRPPD.
--> Маршрутизация с различным транспортом - Split Delivery VRP - SDVRP.
--> Маршрутизация со случайными данными - Stochastic VRP - SVRP.
May 16, 2024
#algorithm
Алгоритм.
Набор/последовательность/совокупность действий/правил/процедур, которые приводят к намеченному результату/цели.
Конструкция из правил/путей/процессов.
Благодаря алгоритмам реешаются задачи.
Пример алгоритма - арифметические операции, приготовление кофе, распорядок дня.
Алгоритм.
Набор/последовательность/совокупность действий/правил/процедур, которые приводят к намеченному результату/цели.
Конструкция из правил/путей/процессов.
Благодаря алгоритмам реешаются задачи.
Пример алгоритма - арифметические операции, приготовление кофе, распорядок дня.
October 28, 2024
#algorithm
Перетасовка Фишера–Йетса.
Метод случайной перестановки элементов, широко применяемый в различных областях.
Например
--> Компьютерные игры. Для создания случайности в играх, например, при тасовании карт.
--> Статистические исследования. Перестановочные тесты используются для проверки гипотез о различиях между группами.
--> Криптография. Используется для увеличения сложности шифрования.
--> Машинное обучение. В обучении моделей иногда требуется случайным образом перемешать обучающие данные.
--> Тестирование. При тестировании программ перетасовка используется для генерации случайных данных, для проверки устойчивости программы.
Программер
Перетасовка Фишера–Йетса.
Метод случайной перестановки элементов, широко применяемый в различных областях.
Например
--> Компьютерные игры. Для создания случайности в играх, например, при тасовании карт.
--> Статистические исследования. Перестановочные тесты используются для проверки гипотез о различиях между группами.
--> Криптография. Используется для увеличения сложности шифрования.
--> Машинное обучение. В обучении моделей иногда требуется случайным образом перемешать обучающие данные.
--> Тестирование. При тестировании программ перетасовка используется для генерации случайных данных, для проверки устойчивости программы.
Программер
November 7, 2024
#algorithm
Алгоритм Руццо–Томпы
Алгоритм поиска совпадающих с образцом подстрок.
Ищет паттерны в больших объемах текстов, например, последовательностей ДНК или РНК.
Алгоритм Руццо-Томпы обладает временем работы O(n+m)O(n+m), где n - длина текста, а m - длина образца. Он эффектвен в поиске коротких образцов в длинных текстах.
Относительно прост в реализации.
Легко адаптируется для различных приложений.
Основная идея - построение суффиксного дерева для текста, что позволяет эффективно находить все вхождения образца.
Примеры
--> Поиск повторяющихся последовательностей в геномах.
--> Анализ биологических последовательностей для выявления специфичных участков.
--> Поиск ключевых слов в больших корпусах текстов.
Особенно полезен, где требуется быстрый поиск множества совпадений в большом объеме данных.
Алгоритм Руццо–Томпы
Алгоритм поиска совпадающих с образцом подстрок.
Ищет паттерны в больших объемах текстов, например, последовательностей ДНК или РНК.
Алгоритм Руццо-Томпы обладает временем работы O(n+m)O(n+m), где n - длина текста, а m - длина образца. Он эффектвен в поиске коротких образцов в длинных текстах.
Относительно прост в реализации.
Легко адаптируется для различных приложений.
Основная идея - построение суффиксного дерева для текста, что позволяет эффективно находить все вхождения образца.
Примеры
--> Поиск повторяющихся последовательностей в геномах.
--> Анализ биологических последовательностей для выявления специфичных участков.
--> Поиск ключевых слов в больших корпусах текстов.
Особенно полезен, где требуется быстрый поиск множества совпадений в большом объеме данных.
November 7, 2024
#algorithm
Алгоритм Штрассена
Способ быстрого умножения двух матриц. Вместо обычного метода, требующего много умножений и сложений, алгоритм Штрассена использует хитрый трюк.
Есть две большие таблицы чисел - матрицы, нужно их перемножить. Обычный способ - пройти по каждой строке первой матрицы и умножить её на каждую колонку второй матрицы. Это занимает много времени.
Алгоритм Штрассена разбивает матрицу на четыре меньшие части и использует специальные формулы для умножения этих частей. Это позволяет делать меньше умножений, весь процесс идёт быстрее.
Алгоритм используется в задачах, где нужно быстро перемножать большие матрицы.
Например
--> Научные расчёты. Учёные используют матричное умножение для моделирования сложных систем, погода, движение частиц.
--> Графика и анимация. В играх и фильмах нужны быстрые расчёты для отображения трёхмерных объектов.
--> Машинное обучение. Некоторые алгоритмы машинного обучения требуют умножения больших матриц для тренировки нейронных сетей.
Программер
Алгоритм Штрассена
Способ быстрого умножения двух матриц. Вместо обычного метода, требующего много умножений и сложений, алгоритм Штрассена использует хитрый трюк.
Есть две большие таблицы чисел - матрицы, нужно их перемножить. Обычный способ - пройти по каждой строке первой матрицы и умножить её на каждую колонку второй матрицы. Это занимает много времени.
Алгоритм Штрассена разбивает матрицу на четыре меньшие части и использует специальные формулы для умножения этих частей. Это позволяет делать меньше умножений, весь процесс идёт быстрее.
Алгоритм используется в задачах, где нужно быстро перемножать большие матрицы.
Например
--> Научные расчёты. Учёные используют матричное умножение для моделирования сложных систем, погода, движение частиц.
--> Графика и анимация. В играх и фильмах нужны быстрые расчёты для отображения трёхмерных объектов.
--> Машинное обучение. Некоторые алгоритмы машинного обучения требуют умножения больших матриц для тренировки нейронных сетей.
Программер
November 7, 2024