forked from prilopes/basicAI_Search
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEstado.R
62 lines (50 loc) · 1.46 KB
/
Estado.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Estado <- function(desc=NULL){
e <- environment()
assign("desc", desc, envir = e)
assign("pai", NULL, envir = e)
assign("g", 0, envir = e)
assign("h", Inf, envir = e)
assign("f", Inf, envir = e)
class(e) <- c("Estado")
return(e)
}
## Sobrecarregando o operador "==" para comparação entre estados
Ops.Estado = function(obj1,obj2){
if(.Generic == "=="){
return(all(obj1$desc == obj2$desc))
}
}
## Sobrecarga da função genérica print
print.Estado <- function(obj){
cat(obj$desc, "\n")
cat(obj$g, "\n")
cat(obj$h, "\n")
}
## Criação do método genérico "heuristica"
heuristica <- function(atual, ...) {
UseMethod("heuristica")
}
## Função padrão para o método genérico "heuristica"
## Deve ser implementada para o problema específico
heuristica.default <- function(atual, ...) {
print("Funcao Generica. Defina a heuristica para o seu problema!\n")
return(NULL)
}
## Criação do método genérico "custo"
custo <- function(atual, ops){
UseMethod("custo")
}
## Função padrão para o método genérico "custo"
## Deve ser implementada para o problema específico
custo.default <- function(atual, ops) {
print("Funcao Generica. Defina o custo para o seu problema!\n")
return(NULL)
}
## Criação do método genérico "geraFilhos"
geraFilhos <- function(obj) {
UseMethod("geraFilhos")
}
geraFilhos.default <- function(obj) {
print("Funcao Generica. Defina a geração de filhos para o seu problema!\n")
return(NULL)
}