Temukan simpul mana yang akan dihapus dari grafik untuk mendapatkan komponen terbesar terkecil

8

Diberikan grafik , cari simpul , yang penghapusan akan menghasilkan grafik dengan komponen terkecil terkecil. G=(V,E)k{v1,,vk}

Saya berasumsi untuk besardan besar masalahnya sulit (NP-keras), tapi saya tertarik pada nilai kecil ( ).n=|V|kkk{1,2,3,4}

Untuk , saya pikir mungkin untuk menemukan titik terbaik untuk dihapus dengan melakukan pencarian kedalaman-pertama-tunggal pada grafik (yaitu, memeriksa titik artikulasi).k=1{v1}

Untuk , dimungkinkan untuk menemukan simpul terbaik dengan melakukan pencarian kedalaman-pertama (masing-masing untuk grafik ). Pendekatan serupa dapat diterapkan dalam kasus .k=2{v1,v2}nGi=G/{vi}k>2

Saya ingin tahu apakah ada solusi yang lebih baik dari itu.

(Terkait: menghitung jumlah simpul minimum tanpa harus menyebutkannya )

MindaugasK
sumber
Yah, itu menggeneralisasikan penutup simpul yang meminta simpul sehingga memiliki komponen terbesar ukuran singleton. S={v1,,vk}GS
Pål GD
Ps., Algoritma parameterized adalah algoritma FPT jika berjalan dalam waktu untuk beberapa , dan algoritma adalah algoritma XP jika berjalan dalam waktu . f(k)nccnf(k)
Pål GD
Bisakah Anda datang dengan informasi lebih lanjut? Saya cukup tertarik dengan latar belakang masalah ini.
Pål GD
Saya menghadapi masalah ini sambil mencari subgraph maks yang terhubung umum dari dua grafik. Periksa komentar dalam jawaban Anda :)
MindaugasK

Jawaban:

9

Masalah yang Anda gambarkan dikenal sebagai Component Connect Connectivity di bidang langkah-langkah kerentanan grafik . Versi keputusan masalah adalah sebagai berikut:

Konektivitas Pesanan Komponen :

Input: Grafik , bilangan bulat danG=(V,E)k

Pertanyaan: Apakah ada sekumpulan simpul dengan ukuran paling banyak sehingga ukuran komponen terbesar paling banyak ?XVkGX

Masalahnya jelas NP-lengkap karena menggeneralisasi vertex cover; kasus ketika adalah penutup simpul. Oleh karena itu masalahnya tidak dapat diperbaiki dengan parameter yang bisa ditelusur ketika diparameterisasi oleh (kecuali ). Masalahnya juga dikenal sebagai -dekat ketika diparameterisasi oleh . Karenanya, kita harus menggunakan algoritma dengan waktu berjalan eksponensial dalam=1FPT=W[1]W[1]kk+.

Pertanyaan yang sangat menarik. Untuk inputG,k,, pendekatan brute force adalah:

branching(G,k,l):
    Find a connected set of vertices D of G of size l+1
    if no such D exists:
            return True // no component of size > l
    for v in D:
        if branching(G-v,k-1,l):
            return True
    return False

Algoritma berjalan dalam waktu (+1)kn2.

Perhatikan contoh ya itu G,k, masalah memiliki treewidth, dan memang pathwidth paling banyak k+. Ini dapat diamati dengan melihat bahwa mengambil set penghapusanX ukuran paling banyak k menghasilkan grafik GX di mana setiap komponen yang terhubung memiliki ukuran paling banyak . Oleh karena itu, dekomposisi jalur yang valid adalah dengan membuat satu tas untuk masing-masing komponenGX lalu tambahkan semua Xuntuk setiap tas. Oleh karena itu setiap contoh ya punya|E(G)|n(k+).

Masalah terkait telah dipelajari di masa lalu dengan nama Graph Integrity, atau Vertex Integrity untuk membedakan versi penghapusan titik dan versi penghapusan tepi:

Integritas Vertex :

Input: GrafikG=(V,E), bilangan bulat p

Pertanyaan: Apakah ada seperangkat simpulXV seperti yang |X|+maxDcc(GX)|D|p?

Artinya, jumlah set penghapusan dan ukuran komponen maksimal harus diminimalkan. Masalah ini juga NP-hard. Lihat, misalnya,

  • Clark, LH, Entringer, RC, Fellows, MR: Komputasi kompleksitas integritas. J. Combin. Matematika Kombinasikan. Comput 2, 179–191 (1987)
  • Fellows, M., Stueckle, S .: Urutan pencelupan, subgraph terlarang dan kompleksitas integritas jaringan. J. Combin. Matematika Kombinasikan. Komputasi 6, 23–32 (1989)
Pål GD
sumber
Sebenarnya saya bekerja dengan grafik kimia, yang planar dengan probabilitas sangat tinggi.
MindaugasK
Kemudian Anda dapat memeriksa teorema pemisah planar (Lipton dan Tarjan) yang mengatakan bahwa Anda dapat menemukan pemisah seimbang . O(n)
Pål GD
Saya memecahkan masalah ini seperti yang saya sarankan dalam pertanyaan, dengan melakukan -depth-first-searches (satu untuk menemukan poin artikulasi, untuk menemukan pasangan poin artikulasi). Komponen maksimum grafik kimia (molekul), yang jarang, sering dapat dibuat cukup kecil dengan menghapus hanya 1-2 atom (simpul) (dengan pengecualian langka). Saya tidak mencari solusi optimal, saya hanya menginginkan 1, 2 atau 3 atom, yang pengangkatannya akan 'memotong' molekul menjadi kecil, dan DFS sudah cukup. |V|+1|V|
MindaugasK
Sebenarnya masalah yang saya nyatakan dalam pertanyaan itu bukanlah yang ingin saya pecahkan. Setiap simpul juga memiliki bobot yang terkait dengannya. Jadi, saya ingin memilih simpul, yang tidak hanya menghasilkan komponen terbesar yang kecil, tetapi juga jumlah bobot yang kecil.
MindaugasK
Ini sendiri merupakan subproblem dari masalah lain: menemukan max substruktur umum yang terhubung dari 2 molekul yang diberikan (menemukan max subgraf yang diinduksi terhubung secara umum dari 2 grafik). Setelah memetakan atom tunggal dari satu molekul dengan semua kemungkinan pemetaan dari yang lain, Anda dapat menghapus atom itu dari pertimbangan, dan alangkah baiknya jika ia 'memotong' molekul tersebut. Mungkin saya harus menyatakan ini sebagai pertanyaan lain.
MindaugasK