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

Я смотрел какой-то код и видел вне контекста комментарий о "гистерезис". Я думаю, что я понял, что делает код, поэтому мой вопрос не затрагивает ничего конкретного. Я просто не понимаю, что означает этот термин или как он применим в программировании. Я огляделся и увидел некоторые математические определения, но хотел бы получить дополнительную информацию. Из того, что я могу сказать, Гистерезис имеет какое-то отношение к предсказанию или предположению определенного состояния для X на основе того, что случилось с X в прошлом?

Ответ 1

Гистерезис характеризует систему, поведение которой (выход) зависит не только от ее ввода в момент времени t, но и от его прошлого поведения по следующему пути.

Известным устройством, которое проявляет гистерезис, является термостат. Представьте себе термостат, который включал бы включение и выключение при температуре 70 ° F. Когда температура около 70 ° F, немного колеблясь, термостат будет постоянно включать и выключать нагрев. Как правило, термостат построен с гистерезисом: он включается при нагреве (скажем) 69 ° F, но отключает нагрев при 71 ° F. Это позволяет избежать постоянных переключателей.

EDIT: посмотрите Статья в Википедии.

Ответ 2

Пример термостата:

heatPointLow = 8°C
heatPointHeight = 10°C
heater = off

while(true){
    if(temperature < heatPointLow)
        heater = on
    if(temperature > heatPointHeight)   
        heater = off
}

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

Ответ 3

Google был моим другом:

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

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

Я думаю о тех пузырях "Device Driver Configured", которые отображаются в панели задач Windows 7, как проявление гистерезиса: пузырь появляется в ответ на событие завершения из ОС и начинает исчезать. Событие мыши от пользователя будет reset, что таймер, дающий пользователю время нажать на пузырь для получения подробной информации о событии; он задерживает затухающую анимацию, даже если события мыши после этого выходят за пределы области пузыря.

Ответ 4

Хорошие ответы. В практических интеграционных слоях это очень важно. Уровень интеграции с гистерезисом сама по себе является подсистемой. Ясно, что идеальным является отсутствие гистерезиса (машина Мура); но, как правило, в государственных машинах каждой из систем существует несоответствие, и это может быть разрешено только переводчиком, использующим гистерезис. Например, модуль Microsoft Dynamics/Great Plains Field Service регистрирует состояние в своей таблице SVC00210 Service Master Audit Trail. Каждый вызов находится в некотором SRVSTAT. При интеграции планировщика, такого как планировщик оптимизации служб ClickSoftware, нужно работать с его состоянием. Состояние CS определяется пользовательской реализацией. Например. Открыть, InRoute, OnSite, Неполное, Отменено, Завершить. Кроме того, он также имеет состояние неполного с деталями в ожидании, хотя это реализовано как машина подсетей в неполном состоянии. Таким образом, переходы в GP должны отображаться в CS. К сожалению, GP позволяет (делает запись на экране ввода для вызова) переходом из одного состояния в себя; поэтому, таким образом, событие перехода не может использоваться исключительно для запуска изменения состояния в GP. Следовательно, новое событие триггера представляет собой комбинацию перехода состояния GP, а также мета-состояние, определенное некоторой логикой в ​​наборе прошлых событий. Как вы можете видеть, гистерезис быстро берет проблему от простого к сложному. В терминах компьютерной науки идеальным является машина Мура, но практичной является машина Мили. Я предпочитаю думать об этом, как мука муки с жуками, живущими в ней и все! Я думаю, что его можно создать машину Мура с любой машины Мили, машина Мура будет просто иметь больше состояний. См.: Мили v/s. Мур

Ответ 5

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

Найдите "гирсерез берсерка" в примере на YouTube. Без гистерезиса роботы в игре буквально просто дергались и не двигались вообще (когда происходит много активности).