Erinevus lehekülje "ITI0140:Ülesanne 15" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
(Uus lehekülg: '= Miinikits Miina tagasitulek = Teie ustav kits Miina on läinud kaduma. Kuulete häälte järgi, et ta on kadunud maa-alusesse labürinti. Kuna Miina aitas teid enne miini lei...')
 
 
(ei näidata ühe teise kasutaja üht vahepealset redaktsiooni)
3. rida: 3. rida:
 
Teie ustav kits Miina on läinud kaduma. Kuulete häälte järgi, et ta on kadunud maa-alusesse labürinti. Kuna Miina aitas teid enne miini leidmisega, on aeg teil teda aidata. Peate koostama networkx-i graafi ala ASCII pildist ja leidma networkx-i abil lühima tee läbi selle graafi.
 
Teie ustav kits Miina on läinud kaduma. Kuulete häälte järgi, et ta on kadunud maa-alusesse labürinti. Kuna Miina aitas teid enne miini leidmisega, on aeg teil teda aidata. Peate koostama networkx-i graafi ala ASCII pildist ja leidma networkx-i abil lühima tee läbi selle graafi.
 
   
 
   
−
ASCII pildist tuleb lugeda välja koordinaadid nii, et iga sõlm koosneb suurest tähest ja numbrist. Täht tuleneb Rea numbrist, ja number tuleneb veeru numbrist, e. siis:
+
ASCII pildist tuleb graaf koostada nii, et iga ristumine on tipp, sisseppäs on lähtetipp ja väljappäs on lõpptipp. Tippude nimed on kodeeritud vastavate koordinaatidega.
  
 
<pre>
 
<pre>
10. rida: 10. rida:
 
B  ['X', 'X', ' '],
 
B  ['X', 'X', ' '],
 
C  ['X', 'X', ' ']]
 
C  ['X', 'X', ' ']]
 +
 
</pre>
 
</pre>
−
 
 
Peate realiseerima kaks funktsiooni:
 
Peate realiseerima kaks funktsiooni:
  
 
<pre>
 
<pre>
 
def create_graph(labyrinth):
 
def create_graph(labyrinth):
 +
</pre>
  
−
Andes sisse ascii kaardi, nagu näiteks
+
Create_graph peaks tegema antud ascii laburündist reeglite kohase networkx graafi.
−
 
+
(Reegleid soovitan vaadata loengu slaididelt, tegemist on kaalutud graafiga.)
−
[[' ', ' ', ' '],
 
−
['X', 'X', ' '],
 
−
['X', 'X', ' ']]
 
  
 +
<pre>
 +
def find_shortest_path(graph):
 
</pre>
 
</pre>
  
−
, kus 'X' on sein ja ' ' (tühik) on tühimik, mida mööda saab liikuda, ülesandeks on koostada sellisest maatriksist networkx-i graafi, e. see funktsioon peaks tagastama vastava networkx-i graafi.
+
See funktsioon võtab sisse ascii labürindi ja tagastab tee sissepäästust kõige all paremapoolsele väljapääsule. Tee koosneb kaartest ja kaaludest Ehk eelmise näite järgi, peaks tagastama [("A0", "C2", {"weight": 4})], kuna ühtegi hargnemist ei ole.
−
 
−
teiseks tuleb realiseerida järgnev:
 
  
 +
Järgneva maatriksi puhul
 
<pre>
 
<pre>
−
def find_shortest_path(graph):
+
    0    1    2    3    4
 +
A [[' ', ' ', ' ', ' ', ' '],
 +
B  [' ', 'X', ' ', 'X', ' '],
 +
C  [' ', ' ', ' ', 'X', ' ']]
 +
</pre>
 +
ootame vastust
 +
<pre>
 +
[("A0", "A2", {"weight": 2}), ("A2", "C4", {"weight": 4})]
 +
</pre>
 +
On garanteeritud, et koridorid on maksimaalselt ühe ühiku laiused.
  
−
See funktsioon peaks võtma sisse networkx-i graafi, ja tagastama tee A0-ist kõige all paremapoolsele sõlmele.
+
Võtsime ülesandel testid ära, implementatsiooni vaatame kaitsmisel.
−
Ehk eelmise näite järgi, peaks tagastama ['A0', 'A1', 'A2', 'B2', 'C2']. (Võib kasutada networkx-i lahendusi sellele)
 
−
</pre>
 
−
On garanteeritud, et koridorid on maksimaalselt ühe ühiku laiused, ja et find_shortest_path-i testites antakse ette alati leitav tee.
 

Viimane redaktsioon: 26. november 2015, kell 09:00

Miinikits Miina tagasitulek

Teie ustav kits Miina on läinud kaduma. Kuulete häälte järgi, et ta on kadunud maa-alusesse labürinti. Kuna Miina aitas teid enne miini leidmisega, on aeg teil teda aidata. Peate koostama networkx-i graafi ala ASCII pildist ja leidma networkx-i abil lühima tee läbi selle graafi.

ASCII pildist tuleb graaf koostada nii, et iga ristumine on tipp, sisseppäs on lähtetipp ja väljappäs on lõpptipp. Tippude nimed on kodeeritud vastavate koordinaatidega.

     0    1    2
A [[' ', ' ', ' '],
B  ['X', 'X', ' '],
C  ['X', 'X', ' ']]

Peate realiseerima kaks funktsiooni:

def create_graph(labyrinth):

Create_graph peaks tegema antud ascii laburündist reeglite kohase networkx graafi. (Reegleid soovitan vaadata loengu slaididelt, tegemist on kaalutud graafiga.)

def find_shortest_path(graph):

See funktsioon võtab sisse ascii labürindi ja tagastab tee sissepäästust kõige all paremapoolsele väljapääsule. Tee koosneb kaartest ja kaaludest Ehk eelmise näite järgi, peaks tagastama [("A0", "C2", {"weight": 4})], kuna ühtegi hargnemist ei ole.

Järgneva maatriksi puhul

     0    1    2    3    4
A [[' ', ' ', ' ', ' ', ' '],
B  [' ', 'X', ' ', 'X', ' '],
C  [' ', ' ', ' ', 'X', ' ']]

ootame vastust

[("A0", "A2", {"weight": 2}), ("A2", "C4", {"weight": 4})]

On garanteeritud, et koridorid on maksimaalselt ühe ühiku laiused.

Võtsime ülesandel testid ära, implementatsiooni vaatame kaitsmisel.