Hoe dit algoritmische probleem op te lossen - Gopher 2

stemmen
0

Ik probeer om dit probleem op te lossen https://open.kattis.com/problems/gopher2 :

De gopher familielid, weerde de hond bedreiging, moet er een nieuwe predator geconfronteerd.

Het zijn 𝑛 mollen en 𝑚 gopher gaten, elk op afzonderlijke (𝑥, 𝑦) coördinaten. Een havik komt en als een gopher geen gat in 𝑠 seconden heeft bereikt is kwetsbaar voor opgegeten. Een gat kan besparen ten hoogste één gopher. Alle gophers draaien op dezelfde snelheid 𝑣. De gopher familie heeft een ontsnapping strategie die het aantal kwetsbare>> Gophers minimaliseert.

t minimaliseert het aantal kwetsbare mollen.

De brute kracht benadering zou zijn om alle mogelijke gaten bereikbaar per gopher vinden, dan vinden allemaal verschillend (gopher, gat) paren.

Is er een snellere algoritme?

De vraag is gesteld op 02/12/2019 om 23:57
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Dit kan worden geformuleerd als een voorbeeld van de maximumkardinaliteit matching probleem op een tweeledige grafiek.

Laten Ade set van mollen en Bde verzameling van gaten. Er is een rand van gopher a ∈ Agat b ∈ Bindien de afstand ertussen maximaal s*v, dat wil zeggen de maximale afstand gopher kan in de beschikbare tijd.

Een oplossing bestaat uit maximaal formaat subset van de randen in deze grafiek, zodanig dat (1) elk a ∈ Aten hoogste één rand (2) telkens b ∈ Bmaximaal één rand. De beperkingen geven de regels die elk gopher alleen kan gaan om één gat, en elke hole kunt hem slechts één gopher. Het aantal "kwetsbaar" gophers is dan het aantal mollen minus het aantal randen in de matching.

De grafiek neemt O ( min ) tijd construct en een maximumkardinaliteit overeenkomende ligt in O ( min ) tijd of minder onder toepassing van een standaard algoritme zoals Ford-Fulkerson , waarbij m het aantal mollen en n is het aantal gaten.

Als dat niet efficiënt genoeg voor de online rechter, kunt u gebruik maken van een meer efficiënte algoritme aan de matching, en een efficiëntere manier te vinden om de randen in de grafiek, bijvoorbeeld met behulp van een vondst quadtree om vraag die gaten zijn binnen afstand s*vvan een gopher in minder dan O ( n ) tijd.

antwoordde op 03/12/2019 om 00:29
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more