Связанные понятия
Мемоизация (запоминание, от англ. memoization (англ.) в программировании) — сохранение результатов выполнения функций для предотвращения повторных вычислений. Это один из способов оптимизации, применяемый для увеличения скорости выполнения компьютерных программ. Перед вызовом функции проверяется, вызывалась ли функция ранее...
Избыточность — термин из теории информации, означающий превышение количества информации, используемой для передачи или хранения сообщения, над его информационной энтропией. Для уменьшения избыточности применяется сжатие данных без потерь, в то же время контрольная сумма применяется для внесения дополнительной избыточности в поток, что позволяет производить исправление ошибок при передаче информации по каналам, вносящим искажения (спутниковая трансляция, беспроводная передача и т. д.).
В статистике метод оценки с помощью апостериорного максимума (MAP) тесно связан с методом максимального правдоподобия (ML), но дополнительно при оптимизации использует априорное распределение величины, которую оценивает.
Подробнее: Оценка апостериорного максимума
В информатике
объединение (англ. union) представляет собой значение или структуру данных, которое может иметь несколько различных представлений.
Выравнивание данных в оперативной памяти компьютеров — способ размещения данных в памяти особым образом для ускорения доступа.
Упоминания в литературе
Любой фрактал может быть представлен как визуализация некоторого алгоритма, набора математических процедур, имеющих
характер последовательных итераций (многократных повторений заданных операций). Фрактальные итерации – рекурсивны, т. е. каждый результат предыдущего шага служит начальным значением для нового цикла самовоспроизводства фрактальной структуры (узора, конструкции, идеи).
Анализ топологии процесса может проводиться в несколько итераций. В результате первоначальный построенный процесс может кардинально измениться. Например, функции, которые раньше выполнялись последовательно друг за другом, стали
выполняться параллельно. Цель данного анализа – добиться максимально понятного течения процесса, отражающего при этом либо реальное положение вещей, либо оптимальное с учетом доступности ресурсов.
Ракурс, который нам дает теория исследований операции, позволяет увидеть и особую роль механизмов бифуркации в развитии материн. Используя язык этой теории, мы могли бы сказать, что бифуркационные механизмы в отличие от механизмов адаптационного типа осуществляют нелокальную
оптимизацию. То, что начинает происходить в природе, когда вступает в действие бифуркационный механизм, можно уподобить ситуации, в которой вычислитель, работая с диалоговой системой оптимизации, время от времени при решении сложной задачи отступает от использования локальных алгоритмов типа наискорейшего пуска. Так он поступает всякий раз, когда используемый алгоритм «зацикливается», т. е. когда последующие итерации с помощью этого алгоритма перестают совершенствовать систему, т. е. приближать нас к точке минимума. В этом случае опытный вычислитель, как правило, переходит на метод Монте-Карло или какой-нибудь другой метод нелокального спуска.
В биологии простые формы оказываются во многих
случаях более адаптивными, чем сложные, да и в культуре сложность организации как отдельных образований, так и целых социально-исторических систем вовсе не даёт гарантий их выживания и успешного ответа на разного рода вызовы., Трансцендентность вектора усложнения обусловлена, думаю, тем, что сложность структуры пропорциональна скоростям протекающих в ней процессов. Ведь чем выше уровень сложности, тем больше скорости внутренних взаимодействий[59]. А ускорение процессов – показатель сжатия времени, на глобальном уровне стремящегося к своему снятию. В этом смысле, каждая локальная система живёт в своём темпомире, внутренне ускоряющемся по ходу эволюционных итераций. Так, вектор усложнения устремляется к возврату (на новом, разумеется, уровне) в состояние не-длительности. Даже если сжатие времени и не достигает (никогда не достигнет?) метафизической точки снятия, а просто стремится к бесконечности, то и этого достаточно, чтобы служить глобальным трендом эволюционного усложнения форм и систем. Стремление доводить всё до логического конца – в данном случае до финализма квазигегелевского толка – въевшаяся в подсознание привычка, выработанная рационалистическим логицизмом. Однако сама действительность никаких «логических концов», как правило, не приемлет. Так, результатом «критического» уплотнения времени может стать растворение каузальности в когерентности, преодоление необратимости времени и т. п.
Нужно отметить, что если бы архитектура человека была построена на какой-либо другой базовой формуле и воспроизводилась бы,
например, по 24-м итерациям, как в рунической системе, то методы описания такого фрактала отличались, хотя аналогии между такими системами возможны. Поэтому, руническая и сефиротическая традиции отличаются, но обладают точками сопряжения.
В части IV мы переключаем внимание на вопросы, связанные с составлением календарных графиков для проекта. Глава 13 открывается обзором этапов составления календарных графиков для сравнительно простого, выполняемого одной командой проекта. В следующей главе (14) рассматривается вопрос планирования итераций. Главы 15 и 16 посвящены
выбору длины итераций для проекта и оценке первоначального темпа продвижения команды. В главе 17 детально разбирается составление календарных графиков для проекта с высоким уровнем неопределенности или с высокой чувствительностью к некорректности графика. Раздел завершается главой 18, в которой описываются дополнительные этапы при оценке и планировании проекта, осуществляемого несколькими командами.
При этом легкие методологии также отличаются друг от друга – Crystal призывает совмещать производительность и толерантность, в отличие от ХР, где продуктивность возрастает как раз за счет уменьшения толерантности. Методология «Adaptive Software Development» разработана специально для крайне нестабильных ситуаций в разработках, когда требования, проектирование и невозможно короткие сроки являются функциями друг друга и постоянно меняются (так зачастую происходит в веб-разработках). Scrum характерен активным воздействием внешних лиц по отношению к рабочей группе, при этом у заказчика сохраняется максимальный приоритет. Заказчик продукта сам решает, как оформить бэклог продукта,
выбирает требования для следующей итерации. При этом несоблюдение базовых принципов, заложенных в Scrum, таких как самонаправляемые команды, обязательная расстановка приоритетов или еженедельные обновления, может привести к срыву проекта.
Связанные понятия (продолжение)
Метка (англ. label) — символьное имя, идентификатор для более удобного указания данных и кода в языках программирования. Позволяет программисту обходиться без вычисления и пересчёта адресов и смещений внутри программы (эти действия за него выполняет компилятор). Несмотря на то, что большинство языков программирования высокого уровня поддерживают операции с метками, их использование крайне нежелательно, так как программный код становится плохочитаемым, и отладка такой программы занимает большее время...
Псевдопреобразова́ние Адама́ра (англ. Pseudo-Hadamard Transform, PHT) — обратимое преобразование битовых строк, используемое в криптографии для обеспечения диффузии при шифровании. Количество бит на входе преобразования должно быть чётным, чтобы было возможным разделение строки на две части равной длины. Создателем преобразования является французский математик Жак Адамар.
Глобальная переменная в программировании — переменная, областью видимости которой является вся программа, кроме специально затенённых областей. Механизмы взаимодействия с глобальными переменными называют механизмами доступа к глобальному окружению или состоянию (англ. global environment, global state). Глобальные переменные могут использоваться для взаимодействия между процедурами и функциями как альтернатива передачи аргументов и возвращения значений.
Прототипом
функции в языке Си или C++ называется объявление функции, не содержащее тела функции, но указывающее имя функции, арность, типы аргументов и возвращаемый тип данных. В то время как определение функции описывает, что именно делает функция, прототип функции может восприниматься как описание её интерфейса.
Недостижимый код часто относят к одному из типов мёртвого кода, такая терминология обычно применяется при рассмотрении исходного кода программ. Однако в теории компиляторов, эти понятия никак не связаны, мёртвым кодом там называют только достижимый, но не влияющий на вывод программы код.
Гибри́дная (или комбини́рованная) криптосисте́ма — это система шифрования, совмещающая преимущества криптосистемы с открытым ключом с производительностью симметричных криптосистем. Симметричный ключ используется для шифрования данных, а асимметричный для шифрования самого симметричного ключа, иначе это называется числовой упаковкой.
Функциональный объект (англ. function object), также функтор, функционал и функционоид — распространённая в программировании конструкция, позволяющая использовать объект как функцию. Часто используется как callback, делегат.
Абстракция в информатике представляет собой технику управления сложностью систем.
Кома́нда перехо́да — команда процессора, которая нарушает непрерывную последовательность исполнения команд, вынуждая выбирать и исполнять последующие команды с произвольно заданного адреса. Используется для организации условных операторов, циклов, для связи с подпрограммами. Исполнение команды перехода в современных микропроцессорах чревато потерями производительности из-за простоев конвейера.
Экранирование символов — замена в тексте управляющих символов на соответствующие текстовые подстановки. Один из видов управляющих последовательностей.
В информатике
таблица символов (от англ. symbol table «таблица идентификаторов») — это структура данных, используемая транслятором (компилятором или интерпретатором), в которой каждый идентификатор переменной или функции из исходного кода ассоциируется с информацией, связанной с его объявлением или появлением в коде: типом данных, областью видимости и в некоторых случаях местом в памяти (смещением).
В программировании понятие
флаг относится к одному или нескольким битам памяти, используемым для хранения двоичной комбинации или кода, который характеризует состояние некоторого объекта. Флаги обычно входят в определённые структуры данных, такие как записи баз данных, и их значения, как правило, связаны со значением структур данных, частью которых они являются. Во многих случаях двоичное значение флага представляет собой кодированное представление одного из нескольких возможных состояний или статусов...
Парсер (англ. parser; от parse – анализ, разбор) или синтаксический анализатор — часть программы, преобразующей входные данные (как правило, текст) в структурированный формат. Парсер выполняет синтаксический анализ текста.
Подробнее: Синтаксический анализатор
Хеш-деревом, деревом Меркла (англ. Merkle tree) называют полное двоичное дерево, в листовые вершины которого помещены хеши от блоков данных, а внутренние вершины содержат хеши от сложения значений в дочерних вершинах. Корневой узел дерева содержит хеш от всего набора данных, то есть хеш-дерево является однонаправленной хеш-функцией. Дерево Меркла применяется для эффективного хранения транзакций в блокчейне криптовалют (например, в Bitcoin'е, Ethereum'е). Оно позволяет получить «отпечаток» всех транзакций...
Подробнее: Дерево хешей
Атака возврата в библиотеку (англ. Return-to-libc attack) — один из видов компьютерных атак, популярных на x86-совместимых машинах и схожие с ними, связанных с переполнением буфера, когда адрес возврата функции на стеке подменяется адресом иной функции в программе, и в последующую часть стека записываются параметры для вызываемой функции. Эта техника позволяет нападающему выполнить какую-либо существующую функцию без необходимости внедрять вредноносный код в программу.
Веду́щие нули ́ в записи числа при помощи позиционной системы счисления — последовательность из одного или более нулей, занимающая старшие разряды. Понятие ведущих нулей возникает при использовании представлений чисел, имеющих фиксированное количество разрядов. В остальных случаях, как правило, ведущие нули не пишутся.
В теории вычислимости
алгоритмически неразрешимой задачей называется задача, имеющая ответ да или нет для каждого объекта из некоторого множества входных данных, для которой (принципиально) не существует алгоритма, который бы, получив любой возможный в качестве входных данных объект, останавливался и давал правильный ответ после конечного числа шагов.
Коди́рование — процесс написания программного кода, скриптов, с целью реализации определённого алгоритма на определённом языке программирования.
В программировании, ассемблерной вставкой называют возможность компилятора встраивать низкоуровневый код, написанный на ассемблере, в программу, написанную на языке высокого уровня, например, Си или Ada. Использование ассемблерных вставок может преследовать следующие цели...
Подробнее: Ассемблерная вставка
Стековый язык программирования (англ. stack-oriented programming language) — это язык программирования, в котором для передачи параметров используется машинная модель стека. Этому описанию соответствует несколько языков, в первую очередь Forth и PostScript, а также многие ассемблерные языки (использующие эту модель на низком уровне — Java, C#). При использовании стека в качестве основного канала передачи параметров между словами элементы языка естественным образом образуют фразы (последовательное...
Зацепление , сцепление, сопряжение (англ. coupling) — способ и степень взаимозависимости между программными модулями; сила взаимосвязей между модулями; мера того, насколько взаимозависимы разные подпрограммы или модули.
Зако́н Амдала (англ. Amdahl's law, иногда также Закон Амдаля-Уэра) — иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей. Джин Амдал сформулировал закон в 1967 году, обнаружив простое по существу, но непреодолимое по содержанию ограничение на рост производительности при распараллеливании вычислений: «В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения...
Дублирование кода — термин из программирования, под которым понимается, что некоторые участки исходного кода могут встречаться более чем однажды, как внутри одной, так и в нескольких программных сущностях. Дублирование является симптомом так называемого «дурно пахнущего кода». В первую очередь потому, что увеличивается его длина; именно из-за дублирования, а не из-за совпадений. Последовательность дубликатов иногда называют клонами.
Менеджер памяти — часть компьютерной программы (как прикладной, так и операционной системы), обрабатывающая запросы на выделение и освобождение оперативной памяти или (для некоторых архитектур ЭВМ) запросы на включение заданной области памяти в адресное пространство процессора.
Точка следования (англ. sequence point) — в программировании любая точка программы, в которой гарантируется, что все побочные эффекты предыдущих вычислений уже проявились, а побочные эффекты последующих ещё отсутствуют.
Таблица векторов прерываний (англ. Interrupt Descriptor Table, IDT) используется в архитектуре x86 и служит для определения корректного ответа на прерывания и исключения.
В языках программирования единица трансляции — минимальный блок исходного текста, который физически можно оттранслировать (преобразовать во внутреннее машинное представление; в частности, откомпилировать). Важная концепция языков Си и Си++.
Управляющая последовательность (исключённая последовательность, экранированная последовательность, от англ. escape sequence) — совокупность идущих подряд значащих элементов, в группе теряющих для обрабатывающего механизма своё индивидуальное значение, одновременно с приобретением этой группой нового значения.
В программировании то́чка остано́ва (англ. breakpoint) — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика (одновременно с этим программа сама может использовать точки останова для своих нужд). После перехода к отладчику программист может исследовать состояние программы (логи, состояние памяти, регистров процессора, стека и т. п.), с тем чтобы определить, правильно ли ведёт себя программа. В отличии от полной остановки, с помощью останова, после работы в...
Охра́на (охраня́ющее выраже́ние, охранное выражение) — логическое выражение, которое предназначено для ограничения вычислительных процессов и выбора варианта вычислений. Обычно, используется в функциональных языках программирования (например, Haskell, Erlang).
Квазиньютоновские методы — методы оптимизации, основанные на накоплении информации о кривизне целевой функции по наблюдениям за изменением градиента, чем принципиально отличаются от ньютоновских методов. Класс квазиньютоновских методов исключает явное формирование матрицы Гессе, заменяя её некоторым приближением.
Точка входа — адрес в оперативной памяти, с которого начинается выполнение программы. Другими словами — адрес, по которому хранится первая команда программы. Однако не надо путать её с «первыми командами» программы на языке высокого уровня. Например программа на C++ начинает выполнение с функции main(), на самом деле, программа в памяти начинается далеко не с первой команды этой функции.
Признаковое описание объекта (англ. feature vector) — это вектор, который составлен из значений, соответствующих некоторому набору признаков для данного объекта. Значения признаков могут быть различного, не обязательно числового, типа. Является одним из самых распространённых в машинном обучении способов ввода данных.
Делегат (англ. delegate) — класс, который позволяет хранить в себе ссылку на метод с определённой сигнатурой (порядком и типами принимаемых и типом возвращаемого значений) произвольного класса. . Экземпляры делегатов содержат ссылки на конкретные методы конкретных классов.
В программировании
тип возвращаемого значения (англ. return type) или тип результата (англ. result type) определяет и накладывает ограничения на тип данных, возвращаемых методом или функцией. Во многих языках программирования (особенно это касается языков со статической типизацией, как например, Java, C++ и Си) возвращаемый тип должен быть явно указан при объявлении функции.
Обобщённый алгебраический тип да́нных (англ. generalized algebraic data type, GADT) — один из видов алгебраических типов данных, который характеризуется тем, что его конструкторы могут возвращать значения не своего типа, связанного с ним. Сконструированы под влиянием работ об индуктивных семействах в среде исследователей зависимых типов.
Мажорита́рный элеме́нт (мажоритарный клапан, переключатель по большинству, ППБ) — логический элемент из класса пороговых, с чётным или нечётным числом входов и одним выходным сигналом, значение которого совпадает со значением на большинстве входов. При чётном числе входов большинством считается n/2+1, соответственно, n/2 к большинству не относится. Таким образом, элемент работает по «принципу большинства»: если на большинстве входов будет сигнал «1», то и на выходе схемы установится сигнал «1»; и...
Группа Григорчука — первый пример конечнопорождённой группы промежуточного роста (то есть её рост быстрее полиномиального, но медленнее экспоненциального).
Перебор делителей (пробное деление) — алгоритм факторизации или тестирования простоты числа путём полного перебора всех возможных потенциальных делителей.
Перенос и заём в арифметике — приёмы, применяемые в арифметических алгоритмах позиционных систем счисления при выполнении операций сложения и вычитания соответственно, а также (в составе тех же сложения и вычитания) и иных арифметичких операций. Перенос можно понимать как выделение умножения на основание системы счисления в отдельное слагаемое, с последующей перегруппировкой слагаемых.
Лине́йная интерполя́ция — интерполяция алгебраическим двучленом P1(x) = ax + b функции f, заданной в двух точках x0 и x1 отрезка . В случае, если заданы значения в нескольких точках, функция заменяется кусочно-линейной функцией.
Таблица поиска (англ. lookup table) — это структура данных, обычно массив или ассоциативный массив, используемая с целью заменить вычисления на операцию простого поиска. Увеличение скорости может быть значительным, так как получить данные из памяти зачастую быстрее, чем выполнить трудоёмкие вычисления.
Сортировка Шелла (англ. Shell sort) — алгоритм сортировки, являющийся усовершенствованным вариантом сортировки вставками. Идея метода Шелла состоит в сравнении элементов, стоящих не только рядом, но и на определённом расстоянии друг от друга. Иными словами — это сортировка вставками с предварительными «грубыми» проходами. Аналогичный метод усовершенствования пузырьковой сортировки называется сортировка расчёской.
Конструктивная блочная геометрия, КБГ (англ. Constructive Solid Geometry, CSG) — технология, используемая в моделировании твёрдых тел. Конструктивная блочная геометрия зачастую, но не всегда, является способом моделирования в трёхмерной графике и САПР. Она позволяет создать сложную сцену или объект с помощью битовых операций для комбинирования нескольких иных объектов. Это позволяет более просто математически описать сложные объекты, хотя не всегда операции проходят с использованием только простых...