Fungsi Boolean monoton mana yang direpresentasikan sebagai ambang jumlah?

16

Saya akan memperkenalkan masalah saya dengan sebuah contoh. Katakanlah Anda sedang merancang sebuah ujian, yang terdiri dari satu set tertentu dari n pertanyaan independen (bahwa calon bisa mendapatkan benar atau salah). Anda ingin memutuskan skor untuk diberikan pada masing-masing pertanyaan, dengan aturan bahwa calon dengan skor total di atas ambang tertentu akan lulus, dan yang lainnya akan gagal.

Bahkan, Anda sangat teliti tentang hal ini, dan Anda telah membayangkan segala kemungkinan 2n hasil, dan memutuskan untuk masing-masing apakah calon dengan kinerja ini harus lulus atau gagal. Jadi Anda memiliki fungsi Boolean f:{0,1}n{0,1} yang menunjukkan apakah kandidat harus lulus atau gagal tergantung pada jawaban yang tepat. Tentu saja fungsi ini harus monoton : ketika mendapatkan serangkaian pertanyaan yang benar membuat Anda lulus, mendapatkan superset yang benar harus membuat Anda lulus juga.

Bisakah Anda memutuskan skor (bilangan real positif) untuk diberikan pada pertanyaan, dan pada ambang, sehingga fungsi Anda f benar-benar ditangkap oleh aturan "seorang kandidat lulus jika jumlah skor untuk pertanyaan yang benar berada di atas ambang" ? (Tentu saja ambang dapat dianggap 1 tanpa kehilangan keumuman, hingga mengalikan skor dengan konstanta.)

Secara formal: Apakah ada karakterisasi fungsi monoton Boolean yang ada sedemikian rupa sehingga untuk semua , kita memiliki iff ?w 1 , , w nR + v { 0 , 1 } n f ( v ) = 1 ¢ i w i v i1f:{0,1}n{0,1}w1,,wnR+v{0,1}nf(v)=1iwivi1

Tidak terlalu sulit untuk melihat bahwa tidak semua fungsi dapat diwakili. Misalnya fungsi tidak dapat: karena diterima, kita harus memiliki w 1 + w 21 , jadi salah satu dari w 1 , w 2 harus , dan juga untuk . Sekarang, jika ya, misalnya, dan , kami memiliki kontradiksi karena tetapi ditolak; kasus-kasus lainnya analog.(x1x2)(x3x4)(1,1,0,0)w1+w21w1,w21/2w3,w4w1w3w1+w31(1,0,1,0)

Bagi saya ini terlihat seperti masalah yang sangat alami, jadi pertanyaan utama saya adalah mengetahui dengan nama apa ini telah dipelajari. Meminta "karakterisasi" tidak jelas, tentu saja; pertanyaan saya adalah untuk mengetahui apakah kelas fungsi yang dapat direpresentasikan dengan cara ini memiliki nama, apa yang diketahui tentang kerumitan pengujian apakah fungsi input miliknya (diberikan sebagai rumus, atau sebagai sirkuit), dll.

Tentu saja orang dapat memikirkan banyak variasi pada tema ini. Misalnya, pada ujian nyata, pertanyaan tidak independen, tetapi ada DAG pada pertanyaan yang menunjukkan ketergantungan, dan kandidat hanya dapat menjawab pertanyaan jika semua prasyarat telah dijawab. Kondisi pada fungsi monoton kemudian dapat dibatasi pada penilaian dalam yang memenuhi dependensi, dan pertanyaannya adalah menentukan apakah fungsi input dapat ditangkap dengan diberi input DAG pada variabel. Kita juga bisa memikirkan varian di mana skornya adalah -tuples untuk fixed (dijumlahkan secara pointwise, dan dibandingkan secara pointwise dengan vektor threshold), yang dapat menangkap lebih banyak fungsi daripada k k k = 1{0,1}nkkk=1. Atau Anda dapat menangkap fungsi yang lebih ekspresif yang bukan Boolean tetapi buka domain yang benar-benar dipesan, dengan ambang batas berbeda yang akan menunjukkan posisi Anda di domain. Terakhir, saya tidak yakin tentang apa yang akan terjadi jika Anda mengizinkan skor negatif (sehingga Anda dapat menjatuhkan batasan monoton tentang fungsi).

(Catatan: Apa yang membuat saya bertanya-tanya tentang ini adalah putaran pemilihan Google Code Jam, di mana kandidat dipilih jika mereka mencapai batas skor tertentu, dan skor masalah mungkin dirancang dengan hati-hati untuk mencerminkan set masalah yang dianggap cukup untuk dipilih). Code Jam memiliki struktur ketergantungan pada pertanyaan, dengan beberapa pertanyaan "input besar" yang tidak dapat diselesaikan kecuali Anda telah memecahkan "input kecil" yang pertama.)

a3nm
sumber
Ini dikenal sebagai fungsi ambang (meskipun istilah ini kadang-kadang didefinisikan lebih ketat). Saya tidak tahu apakah ada karakterisasi yang pada dasarnya berbeda. Suatu kondisi yang diperlukan jelas adalah bahwa dan f - 1 ( 0 ) adalah cembung (yaitu, cembung cembung f - 1 ( 1 ) berpotongan dengan { 0 , 1 } n termasuk dalam f - 1 ( 1 ) , dan juga untuk 0). f1(1)f1(0)f1(1){0,1}nf1(1)
Emil Jeřábek mendukung Monica
Sebenarnya, sekarang saya berpikir tentang hal itu: fungsi Boolean adalah fungsi ambang jika jika cembung lambung f - 1 ( 1 ) dan f - 1 ( 0 ) terpisah. ff1(1)f1(0)
Emil Jeřábek mendukung Monica
2
Sebenarnya, ini lebih tepatnya fungsi ambang positif.
Kristoffer Arnsfelt Hansen
@KristofferArnsfeltHansen: Tepat, terima kasih! Sebenarnya ini disebutkan dalam Fungsi Boolean: Teori, Algoritma, dan Aplikasi . Teorema 9.16 mengatakan bahwa dengan memberikan DNF positif kita dapat, di PTIME, menguji apakah itu merupakan fungsi ambang batas, dan jika ya membangun vektor (yang kemudian akan menjadi positif, saya pikir, oleh Teorema 9.6). Apakah ada yang diketahui tentang varian yang saya sarankan, terutama yang memiliki DAG pada variabel? Jika tidak, Anda dipersilakan untuk membuat jawaban yang mengatakan demikian (dan merangkum komentar Anda), dan saya akan menerimanya. :)w
a3nm

Jawaban:

2

Disebutkan dalam komentar bahwa ini adalah fungsi ambang positif.

Adapun penokohan lainnya, saya menemukan yang berikut ini menarik. Misalkan kita memiliki fungsi threshold positif dengan penurunan bobot : f ( v 1 , ... , v n ) = 1w1w2...wn Kemudian secara khusus set input(v1,,vn)yangf(v )=1adalah ideal urutan kisi mayorisasi biner dengan2npoin, yaitu belajar di

f(v1,...,vn)=1sayawsayavsaya1.
(v1,...,vn)f(v)=12n

Donald Knuth, "Seni Pemrograman Komputer", Latihan 109 dari Bagian 7.1.1.

fff(0,1,1)f(1,0,1)f(1,1,0)

Namun, tidak semua fungsi tersebut adalah fungsi ambang positif! Yaitu, hanya karena Anda telah memesan soal-soal ujian dari yang paling penting hingga yang paling tidak berarti aturan lulus / gagal Anda didasarkan hanya dengan menjumlahkan beberapa skor.

n

2,3,5,10,27,119,1113,...
2,3,5,10,27,119,1173,
Bjørn Kjos-Hanssen
sumber
Terima kasih! Hanya berpikir saya akan menunjukkan bahwa jenis fungsi Boolean lain yang disebutkan dalam jawaban Anda, yang dengan urutan total pada pengaruh variabel, disebut fungsi Boolean "biasa". Ini disebutkan dalam urutan A132183, dan fungsi-fungsi tersebut dipelajari dalam Bab 8 dari Fungsi Boolean: Teori, Algoritma, dan Aplikasi
a3nm