Saya tertarik pada reducibilitas diri sendiri dari masalah Grafik 3-Coloralibity.
Definisi masalah Grafik 3-Coloralibity.
Mengingat sebuah grafik diarahkan tidak terdapat cara untuk mewarnai node merah, hijau, dan biru yang ada node yang berdekatan memiliki warna yang sama?
Definisi reducibilitas diri.
Bahasa dapat direduksi sendiri jika ada mesin turing oracle TM sehingga dan untuk setiap input panjang , menanyakan oracle untuk kata-kata panjang paling banyak .
Saya ingin menunjukkan dengan cara yang sangat ketat dan formal bahwa Graph 3-colorability dapat direduksi sendiri.
Bukti self-reducibility SAT dapat digunakan sebagai contoh ( self-reducibility SAT ).
Menurut pendapat saya, gagasan umum bukti reducibilitas diri sendiri dari Grafik 3-colorability berbeda dari bukti SAT reducibilitas diri dalam beberapa aspek.
- SAT memiliki dua pilihan untuk setiap literal (benar atau salah) dan Grafik 3-kolorabilitas memiliki tiga pilihan (yaitu, merah hijau biru).
- Pilihan SAT literal independen satu sama lain dan pilihan warna Grafik 3 daya warna sangat tergantung, setiap simpul yang berdekatan harus memiliki warna yang berbeda, properti ini berpotensi dapat membantu mengurangi iterasi di antara semua warna.
Ide umum pembuktian .
Mari kita tunjukkan dengan warna vertex , yang dapat mengambil salah satu dari nilai berikut (merah, hijau, biru). Tentukan grafik dari grafik dengan mewarnai titik sembarang , tetapkan menjadi' red 'dan letakkan grafik dengan simpul berwarna ke input oracle. Jika oracle menjawab 1, yang berarti bahwa grafik yang dimodifikasi masih 3-warna, simpan tugas saat ini dan mulai iterasi baru, dengan berbagai vertex dipilih secara sewenang-wenang, color vertexsesuai dengan warna dari simpul yang berdekatan. jika oracle menjawab 0, yang berarti tugas sebelumnya telah merusak 3 colorability, pilih warna yang berbeda dari set tiga warna, tetapi masih sesuai dengan warna dari simpul yang berdekatan.
Bukti sebelumnya tidak kuat secara matematika, pertanyaannya adalah bagaimana memperbaikinya dan membuatnya lebih formal dan matematis ketat. Sepertinya saya perlu lebih hati-hati membedakan kasus ketika simpul baru tidak memiliki tepi dengan simpul yang sudah berwarna dan ketika simpul baru berdekatan dengan simpul yang sudah berwarna.
Selain itu saya ingin membuktikan bahwa Grafik 3-colorability adalah self-reducible ke bawah.
Definisi bahasa yang dapat direduksi sendiri ke bawah.
Bahasa dikatakan dapat direduksi sendiri ke bawah jika memungkinkan untuk menentukan dalam waktu polinomial jika menggunakan hasil kueri terpendek.
Idenya tampaknya sederhana dan intuitif: mulai dengan mewarnai titik sembarang, dan pada setiap iterasi tambahkan satu lagi titik berwarna dan periksa dengan oracle apakah grafik masih 3-warna, jika tidak membalikkan pewarnaan sebelumnya dan memeriksa warna lain.
Tetapi bagaimana menulis buktinya dengan cara yang ketat dan lebih penting bagaimana menemukan penyandian grafik yang sesuai.
Singkatnya, saya ingin menunjukkan bahwa Grafik 3-colorability dapat direduksi sendiri dan dapat direduksi sendiri secara ketat dan formal.
Saya akan menghargai berbagi pemikiran Anda dengan kami.
Memperbarui:
reducibilitas diri sendiri ke bawah
Reducibilitas diri menurun diterapkan pada masalah keputusan dan itu menjawab masalah keputusan yang sama dengan input yang lebih pendek, pada akhir proses penurunan diri sendiri kita harus memiliki tugas warna yang tepat.
Setiap 3 - grafik berwarna dengan lebih dari tiga simpul, memiliki dua simpul dengan warna yang sama. Rupanya, hanya ada tiga warna dan lebih dari tiga simpul sehingga beberapa simpul yang tidak berdekatan mungkin memiliki warna yang sama. Jika kita menggabungkan dan dengan warna yang sama dengan hasil, kita masih memiliki grafik 3 - warna, hanya karena, jika grafik 3 - berwarna, maka ada hak penugasan semua simpul yang berdekatan dengan dan sesuai dengan warna yang sama dari , jadi dengan menggabungkankita tidak perlu mengubah warna dari setiap simpul, kita hanya perlu menambahkan lebih banyak tepi antara simpul yang sudah berwarna dengan benar (saya tahu itu bukan penjelasan terbaik, saya akan menghargai jika seseorang bisa menjelaskannya dengan lebih baik). Pada setiap iterasi kita mengambil dua simpul yang tidak berdekatan dari grafik , menggabungkan dan dan mendapatkan grafik yang merupakan input kami yang lebih pendek ke oracle. Oracle menjawab apakah itu 3-warna atau tidak. Sekarang masalahnya adalah sebelum mengatur pada input oracle saya harus mewarnai vertex yang digabung dan menguji colorability dari , jika itu bukan perubahan warna 3-colorable, tetapi bagaimana menerapkannya dengan benar, saya perlu pengkodean yang tepat untuk itu.
reducibilitas diri
Pertama, kita harus memeriksa apakah grafik diberi 3-warna sama sekali, jadi aturlah pada input oracle, dan oracle akan menjawab jika itu 3 - berwarna, jika ya maka mulailah prosesnya. Dua simpul yang tidak bersebelahan dapat memiliki warna yang sama dalam grafik 3-warna. Proses reducibilitas diri kita harus berjalan dalam iterasi, saya pikir kita bisa mulai dari subgraf kecil dari grafik diberikan dan pada setiap iterasi tambahkan satu lagi simpul dari ke . Secara paralel, kita harus mempertahankan tugas simpul yang sudah berwarna. Sayangnya, saya masih belum mendapatkan ide sepenuhnya. Akan menghargai bantuan dan petunjuk.
Jawaban:
Seperti yang disebutkan Vor dalam komentarnya, reduksi Anda tidak berfungsi, karena 3-colorability tidak menerima penetapan sebagian warna. Masalah akan lebih dalam, karena pengaturan warna simpul tunggal tidak membuat setiap kemajuan dalam menentukan apakah grafik adalah 3-yg berhasil: memang, grafik adalah 3-yg berhasil IFF ada 3-mewarnai di mana simpul adalah warna yang ditugaskan , untuk setiap Anda pilih.v c v,c
Berikut ini adalah petunjuk tentang cara menyelesaikan latihan Anda, bagian kedua. Dalam setiap 3-pewarnaan grafik pada lebih dari tiga simpul, ada dua simpul mendapatkan warna yang sama (mengapa?). Jika kita menggabungkan dan , grafik yang dihasilkan masih 3-warna (mengapa?). Coba gunakan ide ini untuk membuat algoritma pengurangan sendiri ke bawah untuk 3-warna.G x,y x y
Sunting: Dan di sini ada petunjuk tentang bagaimana menyelesaikan latihan, bagian pertama. Pertimbangkan dua simpul yang tidak terhubung . Jika ada pewarnaan di mana mereka mendapatkan warna yang sama maka adalah 3-colorable (mengapa?), Dan pewarnaan dapat diekstraksi dari pewarnaan (bagaimana?). Kapan proses ini akan berhenti?x,y Gxy G Gxy
sumber
Mungkin seperti ini Kita dapat menambahkan dua vertex terhubung l1 dan l2. Pertama, kami menghubungkan mereka dengan vertex v *. Perhatikan bahwa perilaku ini berarti bahwa pada akhirnya, kita hanya mengunci beberapa warna pada titik termasuk v *.
Kemudian kami menjalankan versi keputusan dari 3-colorability, jika algoritma keputusan menerima, maka kami menambahkan simpul ini ke s_1. kita ulangi langkah ini dengan setiap simpul (hubungkan l1 dan l2 dengan simpul lain), kita akan menemukan bahwa pada akhirnya, semua simpul dengan warna yang sama (ditemukan dengan warna merah) ditemukan, dan simpul ini dengan warna merah dilambangkan dengan s_1.
Jika ada masalah, harap tunjukkan. 🤥
Selanjutnya, sama seperti apa yang kita lakukan di atas, tambahkan dua vertex yang terhubung (l3 l4), Pertama, kita hubungkan mereka dengan vertex apa pun kecuali yang ada di s_1, jalankan algoritma keputusan. Kemudian .....
sumber