-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCounter.R
70 lines (52 loc) · 1.81 KB
/
Counter.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
63
64
65
66
67
68
69
#############################################################
# ExecuteJMetal ::R functions::
#
# Author: Lucas Prestes [email protected]
#
#############################################################
countWinners <- function(algorithms, instances){
winners <- data.frame(matrix(nrow=length(algorithms), ncol=4))
colnames(winners) <- c("algorithm","hv","igd","ep")
winners$algorithm <- algorithms
winners$hv <- rep(0,length(algorithms)) #c(0,0,0,0)
winners$igd <- rep(0,length(algorithms)) #c(0,0,0,0)
winners$ep <- rep(0,length(algorithms)) #c(0,0,0,0)
for(instance in instances){
hvs <- list()
df <- data.frame(matrix(nrow=length(algorithms), ncol=4))
colnames(df) <- c("algorithm","hv","igd","ep")
for (a in c(1:length(algorithms))){
indicators <- bestIndicators(algorithms[a],instance)
df[a,]<-indicators
}
index <- which(df$hv == max(df$hv))
winners[index,2] <- winners[index,2]+1
index <- which(df$igd == min(df$igd))
winners[index,3] <- winners[index,3]+1
index <- which(df$ep == min(df$ep))
winners[index,4] <- winners[index,4]+1
}
return (winners)
}
##############################################################
#Operator history functions
##############################################################
countAll <- function(algorithm, instance){
values <- read.table(paste("../ucbHistory/",algorithm,"/operators_",instance,".dat",sep=""), header=FALSE)
allvalues <- table(t(values[1,]))
for(i in 2:50){
allvalues <- allvalues+table(t(values[i,]))
# print(table(t(values[i,])))
}
# print(allvalues)
return (allvalues)
}
countAllinBenchmark <- function(algorithm, benchmark){
instances <- setBenchmark(benchmark)
allvalues <- c(length=11)
for(instance in instances){
allvalues <- allvalues + countAll(algorithm, instance)
}
print(allvalues)
return (allvalues)
}