Saya mengalami kesulitan mencoba menggambarkan ini dalam istilah yang benar sehingga saya hanya akan memberikan sedetail mungkin dan semoga seseorang tahu apa yang saya coba lakukan = -)
Saya mencoba membandingkan dua pohon simpul untuk menentukan seberapa mirip / berbeda mereka secara struktur. Dalam diagram saya di bawah, kedua contoh memiliki jumlah anak, cucu, dan sebagainya yang sama. Dalam contoh 1, Root memiliki anak dengan dua anak, tetapi dalam contoh dua, root tidak.
Saya mungkin bisa mencari cara untuk mengulang secara berulang dan menghitung berapa banyak setiap level yang ada dan membandingkannya, memberi saya gambaran betapa miripnya pohon-pohon itu, tetapi hanya melakukannya dengan cara itu, akan terlihat seperti mereka identik, tetapi sebenarnya mereka tidak.
Adakah yang tahu tentang ini? Atau bahkan apa istilah teknis untuk apa ini?
Sunting: Juga, ini ada di C # dan saya menggunakan Daftar untuk menyimpan benda-benda ini dan anak-anak mereka.
Contoh 1
Contoh 2
sumber
Jawaban:
Apa yang Anda cari adalah Rooted Tree Isomorphism, yang merupakan versi khusus dari Graph Isomorphism , kecuali untuk pohon dan simpul akar sudah diperbaiki.
Penjelasan yang diberikan dalam tugas ini menggunakan dua properti:
Dengan menggunakan dua properti ini, lanjutkan perjalanan Anda dari daun ke akar, beri label setiap node dengan jumlah anak, dalam urutan leksikografis. Misalnya, Root Anda dalam Contoh 1 akan diberi label (0, 0, (0, 1)) - ia memiliki tiga anak, yang pertama / kedua memiliki 0 anak, dan yang ketiga memiliki 2 anak yang masing-masing memiliki 0 dan 1 anak. Akhirnya Anda hanya membandingkan label root untuk melihat apakah pohonnya sama.
Saya belum melakukan subjek semacam ini dan saya hanya membaca makalah ini beberapa menit yang lalu jadi saya tidak bisa menjamin kebenarannya; semoga ini membantu.
sumber
Masalah untuk melihat apakah dua grafik secara logis sama disebut Graph Isomorphishm sehingga Anda mungkin ingin jadi mulai dari sana.
Perhatikan bahwa masalah umum Graph Isomorphism ada di NP tetapi untuk kasus khusus ini mungkin ada jalan pintas, saya tidak yakin karena tampaknya logis bahwa untuk mengetahui perbedaan Anda harus memeriksa apakah mereka sama.
sumber