基于二维拓扑数的可达性查询
1. 基本概念 在一个有向无环图中,可达性查询r(u, v)是指u到v是否有一条路径,当u到v存在一条路径时,r(u, v)返回true,即u到v可达;反之返回false,即不可达。 任意一个有向图均可转化为有向无环图,详细转化方法可参考(http://blog.csdn.net/woniu317/art
1. 基本概念
在一个有向无环图中,可达性查询r(u, v)是指u到v是否有一条路径,当u到v存在一条路径时,r(u, v)返回true,即u到v可达;反之返回false,即不可达。
任意一个有向图均可转化为有向无环图,详细转化方法可参考(http://blog.csdn.net/woniu317/article/details/23658301)。易得处于同一个强连通分量中的节点转换后成为了一个节点,当查询可达性的时候可以先转化为有向无环图中的结点再进行查询即可。因此所有的可达性查询只需要研究有向无环图。
2. 基本思想
对于任意一个图的任意一种拓扑序列进行分析可得:
若结点u到结点v可达,则必然有u的拓扑序号小于v的拓扑序号;也就是说当结点u的拓扑序号大于v的拓扑序号时,则u一定不可达v。
如图2-1所示,表2-1中T1列为图的一种拓扑序列。例如a到h可达,a的序号小于h的序号;g的序号大于h的序号,因此g不可达h,从图2-1中可验证。值得注意的是,即使u的序号小于v的序号,u也不一定可达v,例如结点a与b。
不难发现利用表2-1中的拓扑顺序会存在很多的不能修剪的结点对,比如(a,b),(a,g),(a,f)。即使换一种拓扑顺序也会出现同样的状况。因此,同时采用两种拓扑顺序进行修剪效果更佳。但如何求得两种拓扑顺序使得剪枝效果最好是NPC问题,因此采用一种近似的方式求得第二个拓扑序列。
图2-1 图G
表2-1 图2-1的拓扑序列
vc6szdjGy9DywdC1xLn9wsvQp7n7oaPNvDItMcv5x/O1xLXatv60zrXEzdjGy9DyusXI57HtMi0x1tBUMsHQy/nKvqGjPC9wPgo8cD7I9HW1vXa/ybTvo6zU8rHYyLvT0HW1xMG9uPbN2MbL0PK6xbfWsfC21NOm0KHT2na1xM3YxsvQ8rrFoaPNrNH5xOO38cP8zOKjrMj0dbXEwb249s3YxsvQ8rrFsru2vNCh09p2tcTN2MbL0PK6xaOs1PJ10ru2qLK7v8m073ahozwvcD4KPGgzPjMuIL/JtO/Q1LLp0a88L2gzPgo8cD6/ybTv0NSy6dGvssnTw8nutsjTxc/IsenA+rXEt73KvaOssunRr8H3s8zI5828My0xy/nKvqGjPC9wPgo8cCBhbGlnbj0="center">
图3-1 可达性查询流程图
参考论文
ReachabilityQueries in Very Large Graphs A Fast Refined Online Search Approach

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Muat turun versi terbaharu aplikasi tempahan tiket 12306 Ia adalah perisian pembelian tiket perjalanan yang semua orang sangat berpuas hati dengannya -pengesahan nama untuk membeli tiket dalam talian Semua pengguna Anda boleh membeli tiket perjalanan dan tiket penerbangan dengan mudah dan menikmati diskaun yang berbeza. Anda juga boleh mula menempah tempahan terlebih dahulu untuk merebut tiket Anda boleh menempah hotel atau pemindahan kereta khas Dengan itu, anda boleh pergi ke mana-mana yang anda mahu pergi dan membeli tiket dengan satu klik lebih mudah dan memudahkan semua orang lebih selesa. Kini editor memperincikannya dalam talian Menyediakan 12306 pengguna cara untuk melihat rekod pembelian tiket sejarah. 1. Buka Keretapi 12306, klik Saya di sudut kanan bawah, dan klik Pesanan Saya 2. Klik Dibayar pada halaman pesanan. 3. Pada halaman berbayar

Bagaimana untuk menyemak kelayakan akademik saya di Xuexin.com? Anda boleh menyemak kelayakan akademik anda di Xuexin.com Ramai pengguna tidak tahu cara menyemak kelayakan akademik mereka di Xuexin.com Seterusnya, editor membawakan tutorial grafik kepada pengguna tentang cara menyemak kelayakan akademik mereka di Xuexin.com pengguna datang dan lihat! Tutorial penggunaan Xuexin.com: Cara menyemak kelayakan akademik anda di Xuexin.com 1. Pintu masuk Xuexin.com: https://www.chsi.com.cn/ 2. Pertanyaan laman web: Langkah 1: Klik pada alamat Xuexin.com di atas untuk masuk ke laman utama Klik [Education Query]; Langkah 4: Pada halaman log masuk Masukkan maklumat dan klik [Log Masuk];

MySQL dan PL/SQL ialah dua sistem pengurusan pangkalan data yang berbeza, mewakili ciri pangkalan data hubungan dan bahasa prosedur masing-masing. Artikel ini akan membandingkan persamaan dan perbezaan antara MySQL dan PL/SQL, dengan contoh kod khusus untuk digambarkan. MySQL ialah sistem pengurusan pangkalan data hubungan popular yang menggunakan Bahasa Pertanyaan Berstruktur (SQL) untuk mengurus dan mengendalikan pangkalan data. PL/SQL ialah bahasa prosedur yang unik untuk pangkalan data Oracle dan digunakan untuk menulis objek pangkalan data seperti prosedur tersimpan, pencetus dan fungsi. sama

Jika anda ingin menyemak tarikh pengaktifan menggunakan telefon bimbit Apple, cara terbaik ialah menyemaknya melalui nombor siri dalam telefon bimbit Anda juga boleh menyemaknya dengan melawati laman web rasmi Apple, menyambungkannya ke komputer, dan memuat turun ketiga -perisian pihak untuk menyemaknya. Bagaimana untuk menyemak tarikh pengaktifan telefon bimbit Apple Jawapan: Pertanyaan nombor siri, pertanyaan laman web rasmi Apple, pertanyaan komputer, pertanyaan perisian pihak ketiga 1. Cara terbaik untuk pengguna ialah mengetahui nombor siri telefon bimbit mereka nombor siri dengan membuka Tetapan, Umum, Mengenai Mesin Ini. 2. Menggunakan nombor siri, anda bukan sahaja boleh mengetahui tarikh pengaktifan telefon bimbit anda, tetapi juga menyemak versi telefon bimbit, asal telefon bimbit, tarikh kilang telefon bimbit, dll. 3. Pengguna melawati tapak web rasmi Apple untuk mencari sokongan teknikal, mencari bahagian perkhidmatan dan pembaikan di bahagian bawah halaman, dan menyemak maklumat pengaktifan iPhone di sana. 4. Pengguna

Tajuk: Bagaimana untuk menggunakan Oracle untuk bertanya sama ada jadual dikunci? Dalam pangkalan data Oracle, kunci jadual bermaksud bahawa apabila transaksi menjalankan operasi tulis pada jadual, transaksi lain akan disekat apabila mereka ingin melakukan operasi tulis pada jadual atau membuat perubahan struktur pada jadual (seperti menambah lajur, memadam baris , dan lain-lain.). Dalam proses pembangunan sebenar, kita sering perlu bertanya sama ada jadual dikunci untuk menyelesaikan masalah dan menangani masalah berkaitan dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan pernyataan Oracle untuk bertanya sama ada jadual dikunci dan memberikan contoh kod tertentu. Untuk memeriksa sama ada meja dikunci, kita

Forum adalah salah satu bentuk laman web yang paling biasa di Internet Ia menyediakan pengguna dengan platform untuk berkongsi maklumat, bertukar dan berbincang. Discuz ialah program forum yang biasa digunakan, dan saya percaya ramai juruweb sudah sangat mengenalinya. Semasa pembangunan dan pengurusan forum Discuz, selalunya perlu untuk menanyakan data dalam pangkalan data untuk analisis atau pemprosesan. Dalam artikel ini, kami akan berkongsi beberapa petua untuk menanyakan lokasi pangkalan data Discuz dan memberikan contoh kod khusus. Pertama, kita perlu memahami struktur pangkalan data Discuz

Semak harga terkini BitTorrent Coin (BTT) BTT ialah mata wang kripto pada blockchain TRON yang digunakan untuk memberi ganjaran kepada pengguna rangkaian BitTorrent kerana berkongsi dan memuat turun fail. Begini cara untuk mencari harga terkini untuk BTT: Pilih tapak web atau apl semakan harga yang boleh dipercayai. Beberapa tapak web pertanyaan harga yang biasa digunakan termasuk: CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/Binance: https://www.binance.com/ Cari di tapak web atau aplikasi BTT. Semak harga terkini untuk BTT. Nota: Harga Mata Wang Kripto

Konsep asas dan penggunaan SQL dalam bahasa Go SQL (StructuredQueryLanguage) ialah bahasa yang digunakan khas untuk mengurus dan mengendalikan pangkalan data hubungan. Dalam bahasa Go, kami biasanya menggunakan SQL untuk melaksanakan operasi pangkalan data, seperti menanyakan data, memasukkan data, mengemas kini data, memadam data, dsb. Artikel ini akan memperkenalkan konsep asas dan penggunaan SQL dalam bahasa Go, dengan contoh kod khusus. 1. Sambung ke pangkalan data Dalam bahasa Go, kami boleh menggunakan perpustakaan pihak ketiga untuk menyambung data
