Bagaimana cara menentukan secara efisien apakah tangga yang diberikan valid?

28

Di klub squash lokal saya, ada tangga yang berfungsi sebagai berikut.

  1. Di awal musim kami membuat tabel dengan nama masing-masing anggota klub pada baris yang berbeda.
  2. Kami kemudian menulis jumlah permainan yang dimenangkan dan jumlah permainan yang dimainkan di sebelah setiap nama (dalam bentuk: pemain menang / permainan).

Jadi pada awal musim tabelnya terlihat seperti ini:

Carol 0/0
Billy 0/0
Alice 0/0
Daffyd 0/0

Dua pemain mana saja dapat memainkan pertandingan, dengan satu pemain menang. Jika pemain terdekat dari bawah tabel menang, maka posisi para pemain berubah. Kami kemudian ulangi langkah 2., memperbarui jumlah kemenangan dan permainan di sebelah masing-masing pemain. Misalnya, jika Alice mengalahkan Billy, kami punya

Carol 0/0
Alice 1/1
Billy 0/1
Daffyd 0/0

Pertandingan-pertandingan ini berlangsung sepanjang musim dan akhirnya menghasilkan pemain yang terdaftar dalam urutan kekuatan perkiraan.

Sayangnya, pembaruan terjadi dengan cara yang agak serampangan, sehingga terjadi kesalahan. Di bawah ini adalah beberapa contoh tabel tidak valid, yaitu, tabel yang tidak dapat diproduksi dengan mengikuti langkah-langkah di atas untuk beberapa urutan awal dengan benar (kami telah lupa urutan yang kami gunakan di awal musim) dan urutan pertandingan dan hasil:

Alice 0/1
Billy 1/1
Carol 0/1
Daffyd 0/0

Alice 2/3
Billy 0/1
Carol 0/0
Daffyd 0/0

Alice 1/1
Billy 0/2
Carol 2/2
Daffyd 0/1

Diberikan tabel, bagaimana kita dapat secara efisien menentukan apakah itu valid? Kita bisa mulai dengan memperhatikan hal berikut:

  1. Urutan nama tidak masalah, karena kami lupa urutan awal yang asli.

  2. Jumlah total kemenangan harus setengah dari jumlah permainan yang dimainkan. (Ini menunjukkan bahwa contoh pertama di atas tidak valid.)

  3. Misalkan tabel tersebut valid. Lalu ada multigraf - grafik yang mengakui banyak sisi tetapi tidak ada loop - dengan masing-masing simpul terkait dengan pemain dan setiap tepi untuk pertandingan dimainkan. Kemudian jumlah total permainan yang dimainkan oleh setiap pemain sesuai dengan tingkat verteks pemain dalam multigraf. Jadi jika tidak ada multigraf dengan derajat titik yang sesuai, maka tabel harus tidak valid. Misalnya, tidak ada multigraf dengan satu simpul derajat satu dan satu derajat tiga, sehingga contoh kedua tidak valid. [Kami dapat memeriksa keberadaan multigraf dengan efisien.]

Jadi kami memiliki dua pemeriksaan yang dapat kami terapkan untuk memulai, tetapi ini masih memungkinkan tabel tidak valid, seperti contoh ketiga. Untuk melihat bahwa tabel ini tidak valid, kita dapat bekerja mundur, melelahkan semua kemungkinan cara tabel bisa muncul.

Saya bertanya-tanya apakah ada yang bisa memikirkan waktu polinomial (dalam jumlah pemain dan jumlah game) yang memecahkan masalah keputusan ini?

Ben
sumber
2
Mungkin ada teorema tipe Havel Hakimi untuk multigraf langsung ...
Aryabhata
Mengapa contoh ketiga tidak mungkin? Bagaimana jika Alice menang atas Bob, Carol menang atas Bob dan Carol menang atas Daffyd. Kemudian Alice memenangkan 1 dari 1 pertandingan, Bob memenangkan 0 dari 2 pertandingan, Carol memenangkan 2 dari 2 pertandingan dan Daffyd memenangkan 0 dari 1 pertandingan?
utdiscant
utdiscant: Setelah setiap pertandingan, jika pemain yang lebih rendah menang, para pemain akan beralih. Untuk menunjukkan bahwa contoh ketiga dimungkinkan, Anda harus memberikan konfigurasi awal dan urutan permainan - yaitu, dengan pesanan - yang menghasilkan tabel yang diberikan.
Ben
aryabhata: Terima kasih - ya, itu akan menjadi langkah yang bermanfaat. Sayangnya, kedengarannya agak sulit ...
Ben
1
saran untuk mempelajari / menyelesaikan ini. tentukan sebagai masalah SAT. kemudian coba banyak kasus acak. lihat apakah ada yang sulit untuk pemecah standar. jika tidak, mungkin ini adalah himpunan bagian yang dibatasi dalam P.
vzn

Jawaban:

1

Ini bukan jawaban yang lengkap. Saya memberikan pernyataan sederhana tentang masalah dan beberapa komentar.

Kita mulai dengan grafik di mana simpul diberi label dengan .[n]

vkamulSebuahbel(v)<lSebuahbel(kamu)

Gne

NPG

Pengamatan

lSebuahbel(v)vv

Saya pikir mungkin untuk menggabungkan pengamatan ini dengan Havel-Hakimi untuk memberikan algoritma waktu polinomial.

Kaveh
sumber
Hai. Terima kasih. Maukah Anda menyatakan pengamatan Anda lagi diungkapkan dalam konteks tangga? Saya pikir ada contoh tandingan untuk grafik pesanan 3, tapi mungkin saya salah membaca.
Ben
@Ben, saya pikir itu akan menjadi sebagai berikut: Anda dapat berasumsi bahwa orang terakhir di tangga memainkan semua game yang dimenangkannya di awal turnamen dan memainkan semua game yang hilang di akhir turnamen . Beritahu saya jika ada contoh tandingan untuk ini, saya belum memeriksanya dengan cermat.
Kaveh
Sayangnya, ada tangga seperti ini: A 2/2 B 0/1 C 0/1
Ben
@Ben, saya pikir contoh ini konsisten dengan apa yang saya tulis, yaitu bukan contoh yang berlawanan dengan pengamatan.
Kaveh
Tangga itu valid. Mari kita asumsikan bahwa pertandingan terakhir yang dimainkan adalah kerugian untuk C. Kemudian sebelum pertandingan terakhir, tangga pasti terlihat seperti ini: C 0/0 B 0/1 A 1/1, tetapi tangga ini tidak valid. Karenanya, kami tidak dapat menganggap pertandingan terakhir adalah kerugian bagi C.
Ben
0

Saya belum memecahkan masalah, tetapi saya memiliki hasil parsial, pernyataan yang diberikan di bawah ini. Saya akan menulis bukti jika ada yang tertarik.

Proposisi . Misalkan tangga (1) berisi lebih dari satu pemain (2) berisi jumlah kemenangan dan kekalahan yang sama; dan (3) sedemikian rupa sehingga setiap pemain telah memenangkan setidaknya satu pertandingan dan kehilangan setidaknya satu pertandingan. Maka tangga itu valid.

WiiLiiRi

L.saya=0

Wsayak:Rk>Rsaya,Wk>0(L.k-1)++k:Rk<RsayaL.k,
L.sayaWsaya=0
Ben
sumber