Untuk pertanyaan pertama Anda, tanpa urutan total, jawaban untuk pertanyaan Anda adalah bahwa pada dasarnya sama sulitnya dengan pemrograman linier. Inilah garis besar bukti.
Pertama, mari kita membuat variabel , yang kita sebut . Sekarang, mari kita pilih variabel lain , yang akan kita panggil . Kami ingin memastikan bahwa
Untuk melakukan ini, pertimbangkan ketidaksetaraan
dan seterusnya. Dengan rantai yang cukup panjang, ini akan memberi tahu kita bahwa , atau , untuk beberapa sangat besar ( adalah angka Fibonacci, dan tumbuh secara eksponensial di ).ϵ x i 1 ϵ ≪ 1x1>0ϵxi1x 1 < x 2 , x 1 + x 2 < x 3 , x 2 + x 3 < x 4 , N x 1 < x i ϵ < 1 / N N N i
ϵ≪1.
x1<x2,
x1+x2<x3,
x2+x3<x4,
Nx1<xiϵ<1/NNNi
Kami sekarang dapat memproduksi program linier dengan koefisien integer. Jika kita menginginkan koefisien 3 pada , kita menambahkan ketidaksetaraan
dan biarkan berdiri dalam untuk 3 . Jika Anda ingin koefisien yang lebih besar, Anda bisa mendapatkannya dengan mengekspresikan koefisien dalam notasi biner, dan membuat ketidaksetaraan yang menjamin bahwa , , dan seterusnya. Untuk mendapatkan sisi kanan, kita melakukan hal yang sama dengan variabelxt
xt<xt′<xt′′<xt+ϵ
xt+xt′+xt′′xtxu≈2xtxv≈2xuxi=1. Teknik ini akan membiarkan kita menggunakan program linier dari bentuk OP untuk kira-kira memeriksa kelayakan untuk program linear sewenang-wenang dengan koefisien bilangan bulat, tugas yang pada dasarnya sekeras pemrograman linier.
Saya tidak tahu bagaimana menganalisis pertanyaan kedua, bertanya tentang kasus di mana ada total pesanan pada semua himpunan bagian.