Я начал заниматься математической оптимизацией совсем недавно и мне это нравится. Кажется, многие проблемы оптимизации могут быть легко выражены и решены в виде линейных программ (например, сетевые потоки, покрытие краев / вершин, коммивояжёр и т. Д.). Я знаю, что некоторые из них являются NP-сложными, но суть в том, что они могут быть «оформлена как линейная программа», если не решена оптимально.
Это заставило меня задуматься: нас всегда учили системам линейных уравнений, линейной алгебре на протяжении всей школы / колледжа. И увидеть мощь LP для выражения различных алгоритмов это довольно увлекательно.
Вопрос: Хотя вокруг нас распространены нелинейные системы, как / почему линейные системы так важны для информатики? Я понимаю, что они помогают упростить понимание и в большинстве случаев поддаются вычислению, но так ли это? Насколько хорошо это «приближение»? Мы слишком упрощаемся, и результаты все еще значимы на практике? Или это просто «природа», то есть проблемы, которые являются наиболее захватывающими, действительно просто линейны?
Будет ли безопасно гарантировать, что «линейная алгебра / уравнения / программирование» является краеугольным камнем CS? Если нет, то в чем было бы хорошее противоречие? Как часто мы имеем дело с нелинейными вещами (я имею в виду не обязательно теоретически, но также и с точки зрения «решаемости», то есть просто говоря, что это NP, не сокращает его; должно быть хорошее приближение к проблеме, и она приземлится быть линейным?)