Saya mencari cara untuk mempertahankan pohon rentang yang relatif seimbang dari grafik, karena saya menambahkan node / tepi baru ke grafik.
Saya memiliki grafik tidak terarah yang dimulai sebagai satu simpul, "root".
Pada setiap langkah, saya menambahkan grafik baik simpul baru dan tepi yang menghubungkannya ke grafik, atau hanya tepi baru, menghubungkan dua node lama. Saat saya menumbuhkan grafik, saya memelihara pohon yang merentang. Sebagian besar waktu, ini berarti bahwa ketika saya menambahkan node dan edge baru, saya menetapkan node baru untuk menjadi anak dari node lama yang terhubung dengannya.
Saya tidak memiliki kontrol atas urutan di mana node baru ditambahkan, sehingga algoritma pembangunan pohon di atas jelas dapat menyebabkan pohon spanning tidak seimbang.
Adakah yang tahu heuristik online yang akan membuat spanning tree "relatif seimbang", sambil meminimalkan jumlah pekerjaan yang dilakukan dalam re-treeing? Saya memiliki kendali penuh atas struktur pohon. Yang tidak saya kendalikan adalah konektivitas grafik, atau urutan penambahan node baru.
Perhatikan bahwa respons Google standar terhadap istilah seperti "seimbang" "rentang" dan "pohon" tampaknya adalah pohon biner dan pohon-B, yang keduanya tidak berlaku. Node grafik saya dapat memiliki jumlah tetangga, sehingga simpul pohon dapat memiliki jumlah anak, bukan 2 seperti pohon biner. B-tree menjaga keseimbangan dengan mengubah daftar kedekatan mereka, dan saya tidak dapat mengubah konektivitas grafik.