Belirli bir merdivenin geçerli olup olmadığını etkin bir şekilde belirleme


28

Yerel squash kulübümde aşağıdaki şekilde çalışan bir merdiven var.

  1. Sezonun başında, kulübün her üyesinin adını ayrı bir satırda bir masa inşa ediyoruz.
  2. Daha sonra kazanılan oyunların sayısını ve her ismin yanında oynanan oyunların sayısını yazıyoruz (forma: oyuncu kazanır / oyun).

Böylece sezonun başında masa şöyle görünür:

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

Her iki oyuncuda bir oyuncu kazanabilir, bir oyuncu kazanır. Masanın altına en yakın olan oyuncu kazanırsa, oyuncuların konumu değiştirilir. Daha sonra her bir oyuncunun yanındaki galibiyet ve oyun sayısını güncelleyerek 2. adımı tekrar ediyoruz. Örneğin, Alice Billy'i yenerse,

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

Bu maçlar sezon boyunca devam eder ve sonunda oyuncuların yaklaşık güç sırasına göre listelenmesine neden olur.

Ne yazık ki, güncelleme oldukça tehlikeli bir şekilde gerçekleşir, bu nedenle hatalar yapılır. Aşağıda geçersiz tabloların bazı örnekleri verilmiştir, yani bazı başlangıç ​​sırası (sezonun başında kullandığımız sırayı unuttuk) ve eşleşme ve sonuçların sırası için yukarıdaki adımları izleyerek doğru şekilde üretilemeyen tablolar:

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

Bir tablo verildiğinde, geçerli olup olmadığını nasıl etkili bir şekilde belirleyebiliriz? Aşağıdakileri not ederek başlayabiliriz:

  1. Orijinal başlangıç ​​sırasını unuttuğumuz için isimlerin sırası önemli değil.

  2. Toplam kazanma sayısı, oynanan oyun sayısının toplamının yarısı kadar olmalıdır. (Bu, yukarıdaki ilk örneğin geçersiz olduğunu gösterir.)

  3. Tablonun geçerli olduğunu varsayalım. Sonra bir çoklu grafik var - birden fazla kenarı kabul eden, ancak hiçbir döngüyü kabul etmeyen bir grafik - her köşe bir oyuncuya karşılık gelir ve her kenar bir maç için oynanır. Daha sonra, her bir oyuncunun oynadığı toplam oyun sayısı, oyuncunun köşe karesinde derecesine karşılık gelir. Bu nedenle, uygun köşe derecelerine sahip bir çoklama yoksa, tablo geçersiz olmalıdır. Örneğin, bir derece derece birinci ve bir derece derece dereceli bir çoklu belge yoktur, bu nedenle ikinci örnek geçersizdir. [Böyle bir çoklu belgenin varlığını verimli bir şekilde kontrol edebiliriz.]

Bu nedenle, başlamak için uygulayabileceğimiz iki kontrol var, ancak bu yine de üçüncü örnek gibi geçersiz tablolara izin veriyor. Bu tablonun geçersiz olduğunu görmek için geriye doğru çalışabiliriz ve tablonun ortaya çıkması muhtemel tüm yollarını tüketiriz.

Bu karar problemini çözen birinin polinom zamanı (oyuncu sayısı ve oyun sayısı) algoritmasını düşünüp düşünmediğini merak ediyordum.


2
Muhtemelen yönlendirmeli çoklu belgeler için Havel Hakimi tipi bir teorem var ...
Aryabhata

Üçüncü örnek neden mümkün olamıyor? Peki ya Alice Bob'u kazandıysa Carol Bob'u ve Carol Daffyd'i kazandı. Sonra Alice 1 maçta 1 kazandı, Bob 2 maçta 0 kazandı, Carol 2 maçta 2 kazandı ve Daffyd 1 maçta 0 kazandı?
utdiscant

utdiscant: Her oyundan sonra, eğer alt oyuncu kazanırsa, oyuncu değiştirilir. Üçüncü örneğin mümkün olduğunu göstermek için, verilen tablonun sonuçlandığı bir başlangıç ​​konfigürasyonu ve bir dizi oyun (yani, bir sıra ile) vermeniz gerekir.
Ben

aryabhata: Teşekkürler - evet, bu yararlı bir adım olacaktır. Ne yazık ki, oldukça zor geliyor ...
Ben

1
Bunu incelemek / çözmek için bir öneri. SAT problemi olarak belirtin. daha sonra birçok rastgele olayı deneyin. Standart bir çözücü için zor olup olmadığına bakınız. değilse, belki de onun P. içinde sınırlı bir altkümesi
vzn

Yanıtlar:


1

Bu tam bir cevap değil. Sorunun daha basit bir ifadesini ve bazı açıklamalar veriyorum.

[n]

vulbirbel(v)<lbirbel(u)

G,ne

N-PG,

Gözlem

lbirbel(v)vv

Polinom zaman algoritması vermek için bu gözlemi Havel-Hakimi ile birleştirmenin mümkün olabileceğini düşünüyorum .


Merhaba. Teşekkür ederim. Gözleminizi yine merdivenler bağlamında ifade ettiğinizi belirtir misiniz? Bence 3. seviye bir grafik için bir karşı örnek var, ama belki yanlış okudum.
Ben,

@Ben, şöyle olacağını düşünüyorum: Merdiven üzerindeki son kişinin, turnuva başında kazandığı tüm oyunları oynadığını ve turnuva sonunda kaybettiği tüm oyunları oynadığını varsayabilirsiniz. . Buna bir karşı örnek varsa, bunu dikkatlice kontrol etmedim.
Kaveh

Ne yazık ki, bunun gibi bir merdiven var: A 2/2 B 0/1 C 0/1
Ben

@ Ben, örneğin yazdıklarımla tutarlı olduğunu düşünüyorum, yani gözlem için bir karşı örnek değil.
Kaveh,

Merdiven geçerli. Son oynanan oyunun C kaybı olduğunu varsayalım. O zaman son oyundan önce, merdiven şöyle görünmüş olmalı: C 0/0 B 0/1 A 1/1, ancak bu merdiven geçersiz. Dolayısıyla, son oyunun C kaybı olduğunu varsayamayız
Ben

0

Sorunu çözmedim, ancak açıklamaları aşağıda verilen kısmi sonuçlarım var. İlgilenen olursa ispatları yazarım.

Önerme . Merdivenin (1) birden fazla oyuncu içerdiğini (2) eşit sayıda kazanç ve kayıp içerdiğini varsayalım; ve (3) öyle ki, her oyuncu en az bir oyun kazandı ve en az bir oyun kaybetti. O zaman merdiven geçerli.

WbenbenLbenbenR,ben

Lben=0

WbenΣk:R,k>R,ben,Wk>0(Lk-1)++Σk:R,k<R,benLk,
LbenWben=0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.