library(ggplot2)
library(reshape)

Load Data

data <- read.csv("~/Desktop/520-Intro to AI/Project3/Repeated_Forward_Astar/data_set.csv", header=FALSE)
colnames(data)<-c("Sample","dim","agent","terrain","move","exam","total")
head(data)
##   Sample dim agent terrain move exam total
## 1      0   5     6       8   27   12    39
## 2      0   5     7       8   10    6    16
## 3      1   5     6       5   23    7    30
## 4      1   5     7       5   21    7    28
## 5      0   5     8       8   41   55    96
## 6      2   5     7       2   11   11    22

Defining Theme for better Plots

mynamestheme <- theme(plot.title = element_text(family = "Courier", face = "bold", size = (12)), 
legend.title = element_text(colour = "Black",  face = "bold.italic", family = "Helvetica"), 
legend.text = element_text(face = "italic", colour="steelblue4",family = "Helvetica"), 
axis.title = element_text(family = "Helvetica",face = "bold.italic", size = (10), colour = "Black"),
axis.text = element_text(family = "Courier", colour = "cornflowerblue", size = (10)))

Plot of Total Action Cost V/S Dimension of Gridworld

test1 <- data[,c("agent","dim","total")]
v1<-aggregate(test1[test1$agent==6,]$total,list(test1[test1$agent==6,]$dim), mean)
v2<-aggregate(test1[test1$agent==7,]$total,list(test1[test1$agent==7,]$dim), mean)
v3<-aggregate(test1[test1$agent==8,]$total,list(test1[test1$agent==8,]$dim), mean)

colnames(v1)<-c("Gridworld_Dimension","Agent 6")
colnames(v2)<-c("Gridworld_Dimension","Agent 7")
colnames(v3)<-c("Gridworld_Dimension","Agent 8")

MergedDF <- merge(v1, v2, by="Gridworld_Dimension")
MergedDF <- merge(MergedDF, v3, by="Gridworld_Dimension")

Molten <- melt(MergedDF, id.vars = "Gridworld_Dimension")
gp1 <- ggplot(Molten, aes(x = Gridworld_Dimension, y = value, colour = variable)) +
 geom_point()+ 
 geom_line(aes(y = value, x =Gridworld_Dimension ))+
 scale_color_discrete("Agent Type")+
 theme_minimal()+
 theme(legend.position="top")

print(gp1 + mynamestheme + labs( y="Average Total Cost (Movement + Examination)", x = "Gridworld Dimension"))

Plot for Average Movement Cost V/S Dimension of Gridworld

test1 <- data[,c("agent","dim","move")]
v1<-aggregate(test1[test1$agent==6,]$move,list(test1[test1$agent==6,]$dim), mean)
v2<-aggregate(test1[test1$agent==7,]$move,list(test1[test1$agent==7,]$dim), mean)
v3<-aggregate(test1[test1$agent==8,]$move,list(test1[test1$agent==8,]$dim), mean)

colnames(v1)<-c("Gridworld_Dimension","Agent 6")
colnames(v2)<-c("Gridworld_Dimension","Agent 7")
colnames(v3)<-c("Gridworld_Dimension","Agent 8")

MergedDF <- merge(v1, v2, by="Gridworld_Dimension")
MergedDF <- merge(MergedDF, v3, by="Gridworld_Dimension")

Molten <- melt(MergedDF, id.vars = "Gridworld_Dimension")
gp1 <- ggplot(Molten, aes(x = Gridworld_Dimension, y = value, colour = variable)) +
 geom_point()+ 
 geom_line(aes(y = value, x =Gridworld_Dimension ))+
 scale_color_discrete("Agent Type")+
 theme_minimal()+
 theme(legend.position="top")

print(gp1 + mynamestheme + labs( y="Average Movement Cost", x = "Gridworld Dimension"))

Plot for Average Examination Cost V/S Dimension of Gridworld

test1 <- data[,c("agent","dim","exam")]
v1<-aggregate(test1[test1$agent==6,]$exam,list(test1[test1$agent==6,]$dim), mean)
v2<-aggregate(test1[test1$agent==7,]$exam,list(test1[test1$agent==7,]$dim), mean)
v3<-aggregate(test1[test1$agent==8,]$exam,list(test1[test1$agent==8,]$dim), mean)

colnames(v1)<-c("Gridworld_Dimension","Agent 6")
colnames(v2)<-c("Gridworld_Dimension","Agent 7")
colnames(v3)<-c("Gridworld_Dimension","Agent 8")

MergedDF <- merge(v1, v2, by="Gridworld_Dimension")
MergedDF <- merge(MergedDF, v3, by="Gridworld_Dimension")

Molten <- melt(MergedDF, id.vars = "Gridworld_Dimension")
gp1 <- ggplot(Molten, aes(x = Gridworld_Dimension, y = value, colour = variable)) +
 geom_point()+ 
 geom_line(aes(y = value, x =Gridworld_Dimension ))+
 scale_color_discrete("Agent Type")+
 theme_minimal()+
 theme(legend.position="top")

print(gp1 + mynamestheme + labs( y="Average Examination Cost", x = "Gridworld Dimension"))

Looking where target hidden in Flat Terrain Type.

test1 <- data[data$terrain==2,c("agent","dim","total")]
v1<-aggregate(test1[test1$agent==6,]$total,list(test1[test1$agent==6,]$dim), mean)
v2<-aggregate(test1[test1$agent==7,]$total,list(test1[test1$agent==7,]$dim), mean)
v3<-aggregate(test1[test1$agent==8,]$total,list(test1[test1$agent==8,]$dim), mean)

colnames(v1)<-c("Gridworld_Dimension","Agent 6")
colnames(v2)<-c("Gridworld_Dimension","Agent 7")
colnames(v3)<-c("Gridworld_Dimension","Agent 8")

MergedDF <- merge(v1, v2, by="Gridworld_Dimension")
MergedDF <- merge(MergedDF, v3, by="Gridworld_Dimension")

Molten <- melt(MergedDF, id.vars = "Gridworld_Dimension")
gp1 <- ggplot(Molten, aes(x = Gridworld_Dimension, y = value, colour = variable)) +
 geom_point()+ 
 geom_line(aes(y = value, x =Gridworld_Dimension ))+
 scale_color_discrete("Agent Type")+
 theme_minimal()+
 theme(legend.position="top")

print(gp1 + mynamestheme + labs( y="Average Total Cost (Movement + Examination)", x = "Gridworld Dimension"))

Looking where target hidden in Hilly Terrain Type.

test1 <- data[data$terrain==5,c("agent","dim","total")]
v1<-aggregate(test1[test1$agent==6,]$total,list(test1[test1$agent==6,]$dim), mean)
v2<-aggregate(test1[test1$agent==7,]$total,list(test1[test1$agent==7,]$dim), mean)
v3<-aggregate(test1[test1$agent==8,]$total,list(test1[test1$agent==8,]$dim), mean)

colnames(v1)<-c("Gridworld_Dimension","Agent 6")
colnames(v2)<-c("Gridworld_Dimension","Agent 7")
colnames(v3)<-c("Gridworld_Dimension","Agent 8")

MergedDF <- merge(v1, v2, by="Gridworld_Dimension")
MergedDF <- merge(MergedDF, v3, by="Gridworld_Dimension")

Molten <- melt(MergedDF, id.vars = "Gridworld_Dimension")
gp1 <- ggplot(Molten, aes(x = Gridworld_Dimension, y = value, colour = variable)) +
 geom_point()+ 
 geom_line(aes(y = value, x =Gridworld_Dimension ))+
 scale_color_discrete("Agent Type")+
 theme_minimal()+
 theme(legend.position="top")

print(gp1 + mynamestheme + labs( y="Average Total Cost (Movement + Examination)", x = "Gridworld Dimension"))

Looking where target hidden in Forest Terrain Type.

test1 <- data[data$terrain==8,c("agent","dim","total")]
v1<-aggregate(test1[test1$agent==6,]$total,list(test1[test1$agent==6,]$dim), mean)
v2<-aggregate(test1[test1$agent==7,]$total,list(test1[test1$agent==7,]$dim), mean)
v3<-aggregate(test1[test1$agent==8,]$total,list(test1[test1$agent==8,]$dim), mean)

colnames(v1)<-c("Gridworld_Dimension","Agent 6")
colnames(v2)<-c("Gridworld_Dimension","Agent 7")
colnames(v3)<-c("Gridworld_Dimension","Agent 8")

MergedDF <- merge(v1, v2, by="Gridworld_Dimension")
MergedDF <- merge(MergedDF, v3, by="Gridworld_Dimension")

Molten <- melt(MergedDF, id.vars = "Gridworld_Dimension")
gp1 <- ggplot(Molten, aes(x = Gridworld_Dimension, y = value, colour = variable)) +
 geom_point()+ 
 geom_line(aes(y = value, x =Gridworld_Dimension ))+
 scale_color_discrete("Agent Type")+
 theme_minimal()+
 theme(legend.position="top")

print(gp1 + mynamestheme + labs( y="Average Total Cost (Movement + Examination)", x = "Gridworld Dimension"))