Ifi6057w3: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
PriitJ (arutelu | kaastöö)
PriitJ (arutelu | kaastöö)
 
(ei näidata sama kasutaja 2 vahepealset redaktsiooni)
7. rida: 7. rida:
Videoloeng: [http://www.youtube.com/watch?v=9ZSVrUZ-vn0 BFS ja DFS]
Videoloeng: [http://www.youtube.com/watch?v=9ZSVrUZ-vn0 BFS ja DFS]


Harjutustunniks - õpiku algoritmid valmispaketina:
== Harjutustund ==


[https://github.com/aimacode/aima-python aima-python]
Lahenda 4x4 sudoku kasutades <code>search.Problem</code> klassi ja <code>search</code> mooduli otsingualgoritme.
* [https://github.com/aimacode/aima-python/blob/master/search.py otsingu moodul].


[https://github.com/aimacode/aima-java aima-java]
Olek tuleb kodeerida 16-kohaliseks tupleks järgmiselt:
* kuidas kasutada: [https://github.com/aimacode/aima-java/wiki/AIMA3e-Workspace-Setup Setting up your own workspace]
* mõned olulised klassid: [http://aimacode.github.io/aima-java/aima3e/javadoc/aima-core/aima/core/search/framework/TreeSearch.html TreeSearch], [http://aimacode.github.io/aima-java/aima3e/javadoc/aima-core/aima/core/search/framework/Problem.html Problem].


[[Ifi6057strategies|Otsingustrateegiad harjutustunniks]]
[[Image:Ifi6057_sudoku1.png|sudoku]]
 
  (2, 1, 0, 0,
  0, 3, 2, 0,
  0, 0, 0, 4,
  1, 0, 0, 0)
 
Ja üks tegevus (''action'') tuleb edasi anda tuplena (number, x-koordinaat, y-koordinaat), mis tähendab et number kirjutatakse antud koordinaatidega ruutu. Koordinaadid on 0-st 3-ni.
 
  (2, 3, 3)
 
Tähendab, et number "2" kirjutatakse alumisse ritta viimasesse veergu.
 
Veel algolekuid testimiseks:
 
  (1, 0, 3, 4, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1)
  (4, 2, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 3)
  (0, 0, 0, 3, 4, 0, 0, 0, 0, 1, 3, 0, 3, 0, 2, 0)
 
Ülesande klassi toorik
 
  class MiniSudoku(search.Problem):
    def actions(self, state):
        act = []
        # ...
        return act
    def result(self, state, action):
        newstate = list(state)
        # ...
        return tuple(newstate)
    def goal_test(self, state):
        # blah asemel on lõppseisu tingimus
        if blah: return True
        return False
 
 
 
<!--
 
  def test(initial, searchfunc):
    p = search.EightPuzzle(initial, GOAL)
    ip = search.InstrumentedProblem(p)
    n=searchfunc(ip)
    # expanded/goal tests/leaves/(solution)
    print (ip)
    if hasattr(n, "solution"):
        print (n.solution())
    else:
        print (n)
 
-->
 
<!--2016 [[Ifi6057strategies|Otsingustrateegiad harjutustunniks]]-->

Viimane redaktsioon: 20. september 2017, kell 11:51

3. Nädal

Ülesannete lahendamine otsinguga; AIMA chapter 3.3-3.4, TI 14-15.

Lühendatud slaidid PDF

Videoloeng: BFS ja DFS

Harjutustund

Lahenda 4x4 sudoku kasutades search.Problem klassi ja search mooduli otsingualgoritme.

Olek tuleb kodeerida 16-kohaliseks tupleks järgmiselt:

sudoku

 (2, 1, 0, 0,
  0, 3, 2, 0,
  0, 0, 0, 4,
  1, 0, 0, 0)

Ja üks tegevus (action) tuleb edasi anda tuplena (number, x-koordinaat, y-koordinaat), mis tähendab et number kirjutatakse antud koordinaatidega ruutu. Koordinaadid on 0-st 3-ni.

 (2, 3, 3)

Tähendab, et number "2" kirjutatakse alumisse ritta viimasesse veergu.

Veel algolekuid testimiseks:

 (1, 0, 3, 4, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1)
 (4, 2, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 3)
 (0, 0, 0, 3, 4, 0, 0, 0, 0, 1, 3, 0, 3, 0, 2, 0)

Ülesande klassi toorik

 class MiniSudoku(search.Problem):
   def actions(self, state):
       act = []
       # ...
       return act
   def result(self, state, action):
       newstate = list(state)
       # ...
       return tuple(newstate)
   def goal_test(self, state):
       # blah asemel on lõppseisu tingimus
       if blah: return True
       return False