1. Generate-and-Test

 - 단순히 풀이법을 만들어 실험해보는 방식

 1) 해결 가능한 Solution을 생성한다. 

 2) Solution이 맞는지 Test한다.

 3) 해결되면 그만두고, 실패하면 다시 1번으로 돌아간다


2. Hill Climbing

 - 현재 노드에서 가장 evaluation function 결과가 좋은 노드로 이동해 나가다가 더이상 좋은 노드가 없거나 goal state에 도착시 멈춤.

 1) 현재 노드에서 갈 수 있는 노드들을 evaluation 한다.

 2) 그 중 가장 높은 evaluation 값을 가진 노드로 이동

    만약 가장 높은 evaluation도 현재 evaluation보다 작다면 움직이지 않는다.

 3) 현재 노드가 goal state인지 확인, goal state 라면 끝, 아니면 다시 1로


3. Steepest-Ascent Hill Climbing

 - 현재 노드에서 가장 가파르게 evaluation 값이 상승하는 노드로 이동한다.

 1) 현재 노드에서 갈 수 있는 노드들을 evaluation 한다.

 2) 그 중 가장 많이 증가한 evaluation 값을 가진 노드로 이동

    만약 가장 많이 증가한 evaluation도 현재 evaluation보다 작다면 움직이지 않는다.

 3) 현재 노드가 goal state인지 확인, goal state 라면 끝, 아니면 다시 1로


4. Best-first search

 - 현재 펼쳐진 노드( evaluation을 평가했던 노드 )들 중에서 가장 큰 노드로 이동한다.

 1) 현재 노드에서 갈 수 있는 노드들을 evaluation 한다.

 2) 현재 펼쳐진 노드 중 evaluation 값이 가장 높은 노드로 이동

    evaluation 값이 가장 높은 노드가 없다면 움직이지 않음

 3) 현재 노드가 goal state인지 확인, goal state 라면 끝, 아니면 다시 1로


5. A* Search

 - 현재 펼쳐진 노드 중 evaluation 값과 start state에서 현재 노드까지 이동하는데 필요한 비용을 더한 값이 가장 작은 노드로 이동한다.
    f(n) = g(n) + h(n)   (f(n) : 총 값, g(n) : 현재 노드까지 이동하는데 소요된 비용, h(n) : goal state 까지 소모된다고 예측되는 비용)

 1) 현재 노드에서 갈 수 있는 노드들을 evaluation 하고, 현재 노드까지 소요된 비용을 더한다.

 2) 현재 펼쳐진 노드 중 계산된 값이 가장 높은 노드로 이동

    계산된 값이 가장 높은 노드가 없다면 움직이지 않음

 3) 현재 노드가 goal state인지 확인, goal state 라면 끝, 아니면 다시 1로 


6. Heuristic function estimate

 - Heuristic function을 overestimate 하지 않는 이상 admissible하다고 본다.

 - 만약 underestimate 하다면 optimal하지만 시간이 오래걸린다.

'AI' 카테고리의 다른 글

[AI] Knowledge Representation  (0) 2017.06.07
[AI] Constraint Satisfaction Problems  (0) 2017.06.07
[AI] Game Playing  (0) 2017.04.17
[AI] Genetic Algorithm  (0) 2017.04.17
[AI]2장 Intelligent Software Agent, Problem, Problem spaces, Search  (2) 2017.04.13

- AI 수업 내용 정리


1. Intelligent Software Agent

 1) 용어 정리

   - Agent : 특정 할 일을 대신 해주는 대행자

   - Intelligent Software Agent : 인공지능 소프트웨어가 할 일을 대신해 주는 것

 2) Intelligent Software Agent란?

   - Environment에서 다양한 Sensor를 통해 들어온 정보를 percept 한다.

   - percept된 정보를 토대로 정의된 State를 찾는다.

   - State에서 가능한 Action 중 Goal에 가까워 질 수 있는 Action을 Actuators로 실행.

   - Goal 도달!!

 3) 예시

   - 의료 진단 시스템( 암 진단 등... )

   - 웹 쇼핑 프로그램( 필요한 상품 추천 등... )


2. Particular Problem

 1) 문제를 정확히 정의한다

 2) 문제를 분석한다

 3) 문제를 풀기 위해 필요한 정보를 분리해낸다.

 4) 최적의 풀이기법을 정한뒤 Particular Problem에 적용시킨다


3. State space Search로 Problem을 정의하는 법

 - state를 정의

 - 가능한 모든 state set(state space)을 정의

 - 시작 state와 목표 state 정의

 - state의 전이 정의


4. water jug problem

 1) 문제 정의

   - 2개의 눈금 없는 주전자가 있고, 하나의 주전자는 4gallon, 하나의 주전자는 3gallon을 담을 수 있다.
     이 떄, 한 주전자에 4gallon 주전자에 2gallon의 물을 담을 방법은?

 2) State 정의

   - S(x, y)

   - x = 0, 1, 2, 3, 4 (4 gallon 주전자)

   - y = 0, 1, 2, 3    (3 gallon 주전자)

   - start state : S(0, 0)

   - goal state : S(2, y)

 3) production Rule

   - (x, y) if x < 4 then (4, y) : fill the 4-gallon jug

   - (x, y) if x < 3 then (x, 3) : fill the 3-gallon jug

   - .... etc 이런식으로 정의

   - 상태 전이의 룰을 정의, 순서가 없다


5. MC problem

 1) 문제 정의

   - 3명의 식인종과 3명의 선교사가 강변에 있다. 모두 다 배를 타고 반대편 강변에 도착해야한다.
     하지만, 배의 승선 가능 인수는 2명이고, 만약 식인종이 선교사보다 수가 많다면 선교사는 죽임을 당할 수 있다. 
     이 경우, 모두 다 살아서 강을 건너는  방법은?

 2) State 정의

   - S(Can_Left, Miss_Left, BoatPos, Can_Right, Miss_Right)

   - Can_Left = 0, 1, 2, 3 ( 왼쪽 강변의 식인종 수 )

   - Miss_Left = 0, 1, 2, 3 ( 왼쪽 강변의 선교사 수)

   - Boat_Pos = Left, Right ( 현재 배 위치 )

   - Can_Right = 0, 1, 2, 3 ( 오른쪽 강변의 식인종 수)

   - Miss_Right = 0, 1, 2, 3 ( 오른쪽 강변의 선교사 수)

 3) Production Rule

   - (Can_Left, Miss_Left, Left, Can_Right, Miss_Right)
     : if Can_Left > 0 && Miss_Left > 0 then (Can_Left-1, Miss_Left-1, Right, Can_Right+1, Miss_Right+1) - Move-1m1c-lr

   - (Can_Left, Miss_Left, Right, Can_Right, Miss_Right)
     : if Can_Right > 0 && Miss_Right > 0 then (Can_Left-1, Miss_Left-1, Left, Can_Right-1, Miss_Right-1) - Move-1m1c-rl


6. Production systems

 1) 정의해야 할 것들

   - global databases 정의 = state space를 정의한다.

   - production rule을 정의

   - control strategy를 정의( 탐색 방법을 정한다 )

 2) control strategy

   - 가장 첫번쨰를 적용한다

   - 랜덤으로 룰을 적용한다

   - dfs를 이용한다

   - bfs를 이용한다

  3) heuristic search

   - 효율적으로 search를 하게 해주는 방법 ( 탐색을 줄여준다 )

   - heuristic evaluation function을 이용해 탐색의 조건을 추가해준다.

'AI' 카테고리의 다른 글

[AI] Knowledge Representation  (0) 2017.06.07
[AI] Constraint Satisfaction Problems  (0) 2017.06.07
[AI] Game Playing  (0) 2017.04.17
[AI] Genetic Algorithm  (0) 2017.04.17
[AI]3장 Heuristic Search Tech.  (0) 2017.04.13

https://github.com/open-korean-text/open-korean-text

트위터에서 개발한 한국어 분석기!

이건 또 메이븐 프로젝트이다...


1. https://maven.apache.org/download.cgi

메이븐 다운로드를 해주자.



2. 메이븐을 설치하고픈 폴더에 설치 후 환경설정 값 저장하기




3. cmd에서 확인하기

mvn --version

이라고 명령어를 넣어서 아래처럼 뜬다면 설치 성공






4. 이젠 IntelliJ 설치

https://www.jetbrains.com/idea/#chooseYourEdition

가난한 학생이므로 Community를 받자.




next의 연속.jpg




5. https://github.com/open-korean-text/open-korean-text

여기서 프로젝트를 다운받자.





6. IntelliJ에 임포트!




7. pom.xml 파일을 선택해주면 알아서 maven 프로젝트라 인식한다.


8. Next...




9. reimport!



10. mvn test

입력하기


11. 결과 출력이 됨

Test라고 된 부분에 출력이 된 것을 볼 수 있다.



소스 분석은 이후에...

'AI > Natural Language Processing' 카테고리의 다른 글

[NLP]Komoran 설치  (2) 2017.03.21

+ Recent posts