Hacker News Digest

Тег: #fuzzy-logic

Постов: 2

The shadows lurking in the equations (gods.art) 🔥 Горячее

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

Примеры демонстрируют впечатляющие различия: для уравнения "Slash Dot" FuzzyGraph выявляет гигантскую "черную дыру", полностью невидимую в бинарном представлении. Уравнение "Quasar" показывает глазоподобные структуры, также скрытые от традиционного графирования. Даже простые уравнения, такие как "Черная дыра" (1/(x²+y²)=0), не имеют решений в бинарном режиме, но FuzzyGraph визуализирует их математическую топографию. Эти "тени" не всегда похожи на черные дыры - иногда они образуют линии или другие сложные структуры, раскрывая скрытые аспекты математических объектов.

by calebm • 05 ноября 2025 г. в 14:21 • 294 points

ОригиналHN

#mathematics#visualization#fuzzy-logic#equations#desmos#calcplot3d#machine-learning

Комментарии (85)

  • Обсуждение развернулось вокруг того, что авторы называют «fuzzy graph» просто визуализируют погрешность, а не решают уравнение.
  • Участники обсуждали, что «цветная» версия графика по сути показывает, насколько точка отклоняется от равновесия, а не само решение.
  • Некоторые комментаторы отметили, что подобные визуализации полезны для иллюстрации градиента ошибки и чувствительности модели к шуму в данных.
  • Были упомянуты инструменты вроде Desmos 3D и CalcPlot3D, которые позволяют пользователям самостоятельно экспериментировать с подобными визуализациями.
  • Несколько участников подчеркнули, что визуализация «размытого» графика не нова и используется в машинном обучении для отображения ошибки модели.

Uncertain<T> (nshipster.com) 🔥 Горячее

Люди слишком уверены в себе. В коде это проявляется так:

if currentLocation.distance(to: target) < 100 {
    print("Вы прибыли!") // А точно ли? 🤨

GPS-координаты приблизительны, но Bool требует выбора. Мы «схлопываем волновую функцию» слишком рано.

В 2014 г. исследователи предложили тип Uncertain<T>, встроенный в систему типов. Я портировал идею на Swift:

import Uncertain

let loc = Uncertain<CLLocation>.from(currentLocation)
let nearby = loc.distance(to: target) < 100
if nearby.probability(exceeds: 0.95) {
    print("Вы прибыли!") // с 95 % уверенности
}

Сравнение возвращает не Bool, а Uncertain<Bool> — вероятность истинности. Под капотом используется распределение Рэлея и метод Монте-Карло; выборка происходит только при необходимости, а SPRT экономит вычисления.

let speed = 400 / Uncertain<Double>.normal(mean: 60, sd: 5)
let ok = speed < 6
print(ok.probability(exceeds: 0.9))

Такой подход делает неопределённость первоклассной и заставляет писать более умный код.

by samtheprogram • 28 августа 2025 г. в 17:22 • 416 points

ОригиналHN

#swift#probabilistic-programming#uncertainty#monte-carlo#gps#interval-arithmetic#fuzzy-logic

Комментарии (93)

  • Обсуждение крутится вокруг идеи «Uncertain<T>» — типа данных, который носит и распространяет неопределённость (ошибки, распределения вероятностей) через обычные вычисления.
  • Участники вспоминают похожие подходы: interval arithmetic, вероятностное программирование, fuzzy logic, а также библиотеки Boost, gvar, monad-bayes и Pyro.
  • Отмечают, что GPS-ошибки редко бывают круглыми и независимыми; важно учитывать ковариацию и корреляции между переменными.
  • Кто-то мечтает о таблицах, где можно вводить «1 m ± 10 cm» и получать правильную пропагацию погрешностей, а кто-то — о языках, где «Uncertain» был бы типом по умолчанию.
  • Главный вопрос: почему, несмотря на множество реализаций, такие типы всё ещё не стали мейнстримом в продакшене.