본문내용
X PLY에 해당 값이 최대, 최소값을 선택하여 첫번째 페이스의 선택값이 경로(path)가 결정되게 된다.
Alpha-Beta Procecdure
기본적인 접근방법은 Minimax와 동일하지만, 그 결과값을 선택하는데에 있어서 이미, 결정이 난 최대 최소값보다 오히려 작거나 큰 노드가 먼저 보인다면, 그 다음 sibling 에 대해서는 탐색할 필요가 없는 경우가 생기는데 이런 경우에 prunning 할 수가 있으며, MAX ply 의 경우를 alpha, MIN ply 의 경우를 beta 로 지칭하고 alpha-ply 에 값에 의해서 beta-ply에서 prunning 하는 경우를 alpha-prunning 그 반대의 경우를 beta-prunning이라 한다.
- Alpha : 적어도 alpha 값 이상은 나온다 threadshold - lower-bound
- Beta : 많아야 beta 값이 나온다. - upper-bound
객체지향에 관한 휴리스틱
* 모든 데이터는 클래스 안에 감추어져 있어야 한다. 즉 private이어야 한다. (->) Encapsulation
* 클래스 사용자는 클래스의 공개(public) 인터페이스에 의존해야 하며, 구현에 의존해서는 안된다. 하지만 클래스는 사용자에 의존해서는 안된다. (->) Encapsulation
* 클래스 간의 프로토콜에서 교환되는 메시지의 수를 최소화 하라. (->) Encapsulation, High Cohesion &Low Coupling
* 모든 클래스들이 이해하는(즉 사용할 수 있는) 공개 인터페이스는 가능한 구현하라. 예를 들면 deep copy와 shallow copy, 동등 검사, 일목요연한 정보를 알려주는 프린트 기능 등이다. (->) This is not related to OO Principle, but a good heuristic!
* 클래스의 여러 메소드에서 함께 사용하려 구현한 공용 코드와 같은 클래스 사용자가 알 필요가 없는 코드의 구현은 은닉하라. (->) Encapsulation
* 클래스 사용자가 사용할 수 없거나 사용하지 않을 공개 인터페이스는 만들지 말라. (->) Encapsulation, High Cohesion &Low Coupling
* 클래스는 다른 클래스의 공개 인터페이스에서 정의한 연산만을 사용해야 하며, 이러한 관계가 아니라면 두 클래스는 관계를 맺지 말아야 한다. (->) Encapsulation, High Cohesion &Low Coupling
* 클래스는 단 하나의 개념(책임)만을 표현해야 한다. (->) High Cohesion, Single Responsibility Principle
* 관련있는 데이터와 행위는 한 곳에 담아라. (->) High Cohesion, Single Responsibility Principle
* 관련없는 정보는 다른 클래스로 분사시켜라. (->) High Cohesion, Single Responsibility Principle
* 당신이 모델링하고 있는 추상화가 클래스이다. 객체가 맡는 역할이 클래스가 아니다. (->) How to use Inheritance Concept
- 여기서 말하는 바는 Father와 Mother가 있을때, 이들을 각각의 클래스로 만들어야 하는것인지, 아니면 Person 클래스의 객체로 만들어야 하는것인지에 관한 것이다. Father와 Mother가 같은 행위를 한다면 이는 Person으로, 다른 행위를 한다면 Father, Mother로 클래스를 만든다. 단순히 Father, Mother를 표현하기 위해, 즉 두 클래스의 행위가 같을 때에, 이들을 따로 클래스로 만드는 것은 옳지 않다.
Alpha-Beta Procecdure
기본적인 접근방법은 Minimax와 동일하지만, 그 결과값을 선택하는데에 있어서 이미, 결정이 난 최대 최소값보다 오히려 작거나 큰 노드가 먼저 보인다면, 그 다음 sibling 에 대해서는 탐색할 필요가 없는 경우가 생기는데 이런 경우에 prunning 할 수가 있으며, MAX ply 의 경우를 alpha, MIN ply 의 경우를 beta 로 지칭하고 alpha-ply 에 값에 의해서 beta-ply에서 prunning 하는 경우를 alpha-prunning 그 반대의 경우를 beta-prunning이라 한다.
- Alpha : 적어도 alpha 값 이상은 나온다 threadshold - lower-bound
- Beta : 많아야 beta 값이 나온다. - upper-bound
객체지향에 관한 휴리스틱
* 모든 데이터는 클래스 안에 감추어져 있어야 한다. 즉 private이어야 한다. (->) Encapsulation
* 클래스 사용자는 클래스의 공개(public) 인터페이스에 의존해야 하며, 구현에 의존해서는 안된다. 하지만 클래스는 사용자에 의존해서는 안된다. (->) Encapsulation
* 클래스 간의 프로토콜에서 교환되는 메시지의 수를 최소화 하라. (->) Encapsulation, High Cohesion &Low Coupling
* 모든 클래스들이 이해하는(즉 사용할 수 있는) 공개 인터페이스는 가능한 구현하라. 예를 들면 deep copy와 shallow copy, 동등 검사, 일목요연한 정보를 알려주는 프린트 기능 등이다. (->) This is not related to OO Principle, but a good heuristic!
* 클래스의 여러 메소드에서 함께 사용하려 구현한 공용 코드와 같은 클래스 사용자가 알 필요가 없는 코드의 구현은 은닉하라. (->) Encapsulation
* 클래스 사용자가 사용할 수 없거나 사용하지 않을 공개 인터페이스는 만들지 말라. (->) Encapsulation, High Cohesion &Low Coupling
* 클래스는 다른 클래스의 공개 인터페이스에서 정의한 연산만을 사용해야 하며, 이러한 관계가 아니라면 두 클래스는 관계를 맺지 말아야 한다. (->) Encapsulation, High Cohesion &Low Coupling
* 클래스는 단 하나의 개념(책임)만을 표현해야 한다. (->) High Cohesion, Single Responsibility Principle
* 관련있는 데이터와 행위는 한 곳에 담아라. (->) High Cohesion, Single Responsibility Principle
* 관련없는 정보는 다른 클래스로 분사시켜라. (->) High Cohesion, Single Responsibility Principle
* 당신이 모델링하고 있는 추상화가 클래스이다. 객체가 맡는 역할이 클래스가 아니다. (->) How to use Inheritance Concept
- 여기서 말하는 바는 Father와 Mother가 있을때, 이들을 각각의 클래스로 만들어야 하는것인지, 아니면 Person 클래스의 객체로 만들어야 하는것인지에 관한 것이다. Father와 Mother가 같은 행위를 한다면 이는 Person으로, 다른 행위를 한다면 Father, Mother로 클래스를 만든다. 단순히 Father, Mother를 표현하기 위해, 즉 두 클래스의 행위가 같을 때에, 이들을 따로 클래스로 만드는 것은 옳지 않다.
추천자료
Heuristic(휴리스틱) 교정 C 소스
메타휴리스틱을 이용한 최적화(Simulated Annealing)
가용성휴리스틱에 대하여,가용성휴리스틱의사례,가용성휴리스틱의실험방법,가용성휴리스틱의...
휴리스틱, 휴리스틱의 어원과 정의, 접근법, 유형과 사례, 주먹구구식 판단과 편파성 휴리스...
사람들이 의사결정을 할 때 사용하는 휴리스틱 3가지를 제시하고 그러한 휴리스틱을 사용할 ...
사람들이 의사결정을 할 때 사용하는 휴리스틱 3가지를 제시하고 그러한 휴리스틱을 사용할 ...
사람들이 의사결정을 할 때 사용하는 휴리스틱 3가지를 제시하고 그러한 휴리스틱을 사용할 ...
휴리스틱의 의의 및 종류.
소개글