Matroid og'irligi - Weighted matroid

Yilda kombinatorika, filiali matematika, a vaznli matroid a matroid bajarishi mumkin bo'lgan funktsiyaga ega ochko'zlik algoritmi.

A vazn funktsiyasi matroid uchun ning har bir elementiga qat'iy ijobiy vazn belgilaydi . Biz funktsiyani yig'ish yo'li bilan; yig'indisi ustida yilda . Bilan bog'liq og'irlik funktsiyasi bo'lgan matroid og'irlikdagi matroid deb ataladi.

Spanning o'rmon algoritmlari

Oddiy misol sifatida aytaylik, topishni istaymiz maksimal o'rmon o'rmoni grafik. Ya'ni, har bir chekka uchun grafik va vazn berilgan holda, har bir tepalikni o'z ichiga olgan va daraxtdagi qirralarning umumiy og'irligini maksimal darajada oshiradigan o'rmonni toping. Ushbu muammo ba'zi klasterlash dasturlarida paydo bo'ladi. Agar biz yuqorida joylashgan o'rmon matroidining ta'rifiga nazar tashlasak, shuni bilib olamizki, maksimal uzunlikdagi o'rmon shunchaki eng katta umumiy og'irlikka ega bo'lgan mustaqil to'plamdir - bunday to'plam grafani qamrab olishi kerak, aks holda biz tsikllar yaratmasdan qirralarni qo'shishimiz mumkin. Ammo buni qanday topishimiz mumkin?

Asosni topish

Baza topish uchun oddiy algoritm mavjud:

  • Dastlab ruxsat berildi bo'sh to'plam bo'ling.
  • Har biriga yilda
    • agar mustaqil, keyin o'rnatiladi ga .

Natijada aniq mustaqil to'plam mavjud. Bu maksimal mustaqil to'plam, chunki agar ba'zi bir kichik to'plam uchun mustaqil emas ning , keyin ham mustaqil emas (kontrapozitiv meros mulk ). Shunday qilib, agar biz biron bir elementni qabul qilsak, keyinchalik uni ishlatish uchun bizda hech qachon imkoniyat bo'lmaydi. Qattiqroq muammoni hal qilish uchun ushbu algoritmni umumlashtiramiz.

Optimalgacha kengaytma

Eng katta umumiy vaznning mustaqil to'plami deyiladi maqbul o'rnatilgan. Optimal to'plamlar har doim asosdir, chunki chekka qo'shilishi mumkin bo'lsa, u shunday bo'lishi kerak; bu faqat umumiy og'irlikni oshiradi. Ma'lum bo'lishicha, ahamiyatsiz narsa bor ochko'zlik algoritmi vaznli matroidning optimal to'plamini hisoblash uchun. U quyidagicha ishlaydi:

  • Dastlab ruxsat berildi bo'sh to'plam bo'ling.
  • Har biriga yilda , vazn bo'yicha (monotonik) kamayib boruvchi tartibda olinadi
    • agar mustaqil, keyin o'rnatiladi ga .

Ushbu algoritm asosni topadi, chunki u yuqoridagi algoritmning alohida holatidir. U har doim mustaqillikni saqlab qolish uchun eng katta vazn elementini tanlaydi (shunday qilib "ochko'z" atamasi). Bu har doim optimal to'plamni ishlab chiqaradi: u ishlab chiqaradi deb taxmin qiling va bu . Endi har qanday kishi uchun bilan , ochiq to'plamlarni ko'rib chiqing va . Beri dan kichikroq , ning ba'zi bir elementlari mavjud ichiga qo'yish mumkin natija hali ham mustaqil bo'lib qolmoqda. Ammo qo'shilishi mumkin bo'lgan maksimal og'irlik elementidir mustaqillikni saqlab qolish. Shunday qilib ba'zi elementlardan kichikroq vaznga ega emas va shuning uchun hech bo'lmaganda katta vaznga ega . Bu hamma uchun to'g'ri , nisbatan og'irroq .

Murakkablikni tahlil qilish

A'zolarni kesib o'tishning eng oson usuli kerakli tartibda ularni saralash. Bu talab qiladi taqqoslash yordamida vaqt saralash algoritmi. Shuningdek, har biri uchun sinov o'tkazishimiz kerak yo'qmi mustaqil; mustaqillik sinovlarini talab qilsa vaqt, algoritm uchun umumiy vaqt .

Agar biz buning o'rniga minimal uzunlikdagi daraxtni topmoqchi bo'lsak, shunchaki og'irlik funktsiyasini katta doimiydan chiqarib, "teskari" qilamiz. Aniqrog'i, ruxsat bering , qayerda barcha grafik qirralarning umumiy vaznidan oshib ketadi. Har xil matroidlar va vazn funktsiyalari bo'yicha ko'plab optimallashtirish muammolarini ushbu ahamiyatsiz usul bilan hal qilish mumkin, ammo ko'p hollarda ko'proq ixtisoslashgan xususiyatlardan foydalanadigan yanada samarali algoritmlarni topish mumkin.

Matroid talablari

Shuni ham unutmangki, agar biz to'plamni olsak matroid bo'lmagan "mustaqil" to'plamlarning to'plami, shuning uchun ochko'z algoritm har doim ham ishlamaydi. Buning uchun mustaqil to'plamlar mavjud va bilan , ammo bunday narsa yo'q bu mustaqil.

An tanlang va shu kabi . Ning elementlarini torting oralig'ida ga , ning elementlari oralig'ida ga , ning elementlari oralig'ida ga va qolganlari oraliqda ga . Ochko'zlik algoritmi elementlarini tanlaydi , va keyin biron bir elementni tanlay olmaydi . Shuning uchun u tuzadigan mustaqil to'plam eng katta vaznga ega bo'ladi ning vaznidan kichikroq .

Tarix

Faqat 1971 yilga qadar Jek Edmonds "Matroidlar va ochko'z algoritm" maqolasida vaznli matroidlarni ochko'z algoritmlarga ulagan. Korte va Lovasz ushbu fikrlarni nomlangan ob'ektlarga umumlashtiradilar greedoidlar, bu hatto katta muammolarni ochko'z algoritmlar yordamida hal qilishga imkon beradi.

Adabiyotlar

  • Jek Edmonds. Matroidlar va ochko'z algoritmi. Matematik dasturlash, 1-jild, p. 125-136. 1971 yil.