Как / почему линейные системы так важны для информатики?


9

Я начал заниматься математической оптимизацией совсем недавно и мне это нравится. Кажется, многие проблемы оптимизации могут быть легко выражены и решены в виде линейных программ (например, сетевые потоки, покрытие краев / вершин, коммивояжёр и т. Д.). Я знаю, что некоторые из них являются NP-сложными, но суть в том, что они могут быть «оформлена как линейная программа», если не решена оптимально.

Это заставило меня задуматься: нас всегда учили системам линейных уравнений, линейной алгебре на протяжении всей школы / колледжа. И увидеть мощь LP для выражения различных алгоритмов это довольно увлекательно.

Вопрос: Хотя вокруг нас распространены нелинейные системы, как / почему линейные системы так важны для информатики? Я понимаю, что они помогают упростить понимание и в большинстве случаев поддаются вычислению, но так ли это? Насколько хорошо это «приближение»? Мы слишком упрощаемся, и результаты все еще значимы на практике? Или это просто «природа», то есть проблемы, которые являются наиболее захватывающими, действительно просто линейны?

Будет ли безопасно гарантировать, что «линейная алгебра / уравнения / программирование» является краеугольным камнем CS? Если нет, то в чем было бы хорошее противоречие? Как часто мы имеем дело с нелинейными вещами (я имею в виду не обязательно теоретически, но также и с точки зрения «решаемости», то есть просто говоря, что это NP, не сокращает его; должно быть хорошее приближение к проблеме, и она приземлится быть линейным?)


4
Я не понизил голос, но я не понимаю, почему управляемость не является удовлетворительным ответом для вас. Есть несколько интересных точных смыслов, в которых невыпуклые задачи неразрешимы, например. arxiv.org/abs/1210.0420 .
Колин МакКиллан

2
У Downvoters может быть много причин, почему они решили не комментировать.
Тайсон Уильямс

1
Один из способов взглянуть на это состоит в том, что любая проблема NP может быть сведена к целочисленному программированию за полиномиальное время, и тогда проблема целочисленного программирования может быть смягчена. но мы используем спектральные методы и релаксации SDP, которые являются задачами квадратичной оптимизации, которые эффективно разрешимы.
Сашо Николов

1
Что означает «линейные системы» в этом вопросе?
Цуёси Ито

1
линейные системы встречаются на протяжении всего периода науки ... это упрощение, которое получает удивительно большой пробег ... это кажется небольшим следствием необоснованной эффективности математики в естественных науках .. очевидно, CS соответствует этой категории "естественных наук «.... он тесно связан с физикой, возможно, все более и более все время [например, сжимающиеся транзисторы, рассеивание тепла, низкий уровень качества, исследование энергопотребления, энтропия и т. д.]…
vzn

Ответы:


12

Суть вопроса несколько ошибочна: многие утверждают, что квадратики являются реальной «границей» для управляемости и моделирования, поскольку задачи наименьших квадратов почти так же «легки», как и линейные задачи. Есть другие, которые утверждают, что выпуклость (или даже субмодульность в некоторых случаях) является границей для управляемости.

Возможно, что более актуально, так это «почему линейные системы допускают управляемые решения?» что не совсем то, что вы просили, но связано. Одной из точек зрения на это является составность. Поскольку определяющим свойством линейной системы является то, чтое(Икс+Y)знак равное(Икс)+е(Y)это придает системе некое подобие памяти. Чтобы создать решение проблемы, я могу сосредоточиться на отдельных частях и комбинировать их без штрафа. Действительно, предпосылка большинства алгоритмов для потока именно такова.

Это отсутствие памяти придает эффективность: я могу разбивать вещи на части или работать итеративно, и я не проигрываю благодаря этому. Я все еще могу принимать плохие решения (например, жадные алгоритмы), но сам процесс деления вещей не повредит мне.

Это одна из причин, почему линейность обладает такой силой. Есть, вероятно, много других.


Мне нравится этот ответ, но тем, кто утверждает, что линейное программирование не является границей, я отвечаю: «это P-complete!» ;).
Артем Казнатчеев

Да, но так ли это, например, с SDP?
Суреш Венкат

Нам не нужно иметь единственную границу, и некоторые границы P (скажем, квадратичное программирование с положительной полуопределенной матрицей для квадратов) кажутся более общими. Я не хотел не соглашаться, просто указывал на то, что граница - это скорее вопрос вкуса при выборе между P-полными задачами.
Артем Казнатчеев

5

« Хотя вокруг нас распространены нелинейные системы, как / почему линейные системы так важны для информатики?»

Вот частичный ответ в моем уме: я думаю, что это потому, что природа изобилует объектами / явлениями - представляемыми функциями, которые, хотя и являются нелинейными по своим операндам, на самом деле являются членами линейных пространств. Волновые функции в гильбертовом пространстве, компоненты в спектре Фурье, кольца полиномов, случайные процессы - все они ведут себя таким образом. Даже очень общие определения искривленных пространств строятся из составления небольших диаграмм плоских пространств (многообразий, римановых поверхностей и т. Д.). Более того, природа полна симметрий, и изучение симметрий неизменно входит в изучение линейных операторов (теория представлений, на мой взгляд, проникает во многие области информатики повсеместно).

Это в дополнение к случаям, когда сами операторы имеют линейный характер.

Большая часть проблем, для которых нам нужны компьютерные программы, возникают либо непосредственно, либо абстрагируются от естественных явлений. Возможно, изучение / решение линейных систем не должно быть большим сюрпризом, в конце концов?


Ах да, замечательные радости от подъема карт.
Суреш Венкат
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.