Для вашего первого вопроса, без полного порядка, ответ на ваш вопрос заключается в том, что это по сути так же сложно, как линейное программирование. Вот набросок доказательства.
Во-первых, давайте установим переменную x1>0, который мы называем ϵ, Теперь давайте выберем другую переменнуюxi, который мы будем называть 1, Мы хотим убедиться, что
ϵ≪1.
Для этого рассмотрим неравенства
x1<x2,
x1+x2<x3,
x2+x3<x4,
и так далее. С достаточно длинной цепью, это скажет нам, что
Nx1<xi, или
ϵ<1/Nдля некоторых очень больших
N (
N является числом Фибоначчи, и поэтому экспоненциально растет в
i).
Теперь мы можем создать линейную программу с целыми коэффициентами. Если мы хотим коэффициент 3 наxtДобавляем неравенства
xt<xt′<xt′′<xt+ϵ
и пусть 3 . Если вы хотите увеличить коэффициенты, вы можете получить их, выражая коэффициенты в двоичной записи и создавая неравенства, которые гарантируют, что , и так далее. Чтобы получить правую часть, мы делаем то же самое с переменной . Этот метод позволит нам использовать линейные программы в форме ОП для приблизительной проверки выполнимости произвольных линейных программ с целочисленными коэффициентами, задача, которая по сути столь же сложна, как и линейное программирование.
xt+xt′+xt′′xtxu≈2xtxv≈2xuxi=1
Я не знаю, как анализировать второй вопрос, спрашивая о случае, когда есть общий порядок по всем подмножествам.