Erinevus lehekülje "ITI0140:Ülesanne 15" redaktsioonide vahel
(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 | + | 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> | ||
| − | + | Create_graph peaks tegema antud ascii laburündist reeglite kohase networkx graafi. | |
| − | + | (Reegleid soovitan vaadata loengu slaididelt, tegemist on kaalutud graafiga.) | |
| − | |||
| − | |||
| − | |||
| + | <pre> | ||
| + | def find_shortest_path(graph): | ||
</pre> | </pre> | ||
| − | , | + | 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 | ||
<pre> | <pre> | ||
| − | + | 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. | ||
| − | + | Võtsime ülesandel testid ära, implementatsiooni vaatame kaitsmisel. | |
| − | |||
| − | |||
| − | |||
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.