Ejercicios de Sistemas de Ayuda a la Decisión Hoja 2

Anuncio
Ejercicios de
Sistemas de Ayuda a la Decisión
Hoja 2
Fecha de entrega: lunes 7 de febrero 2011 (examen de ordinario plan 96)
Grupos de a lo sumo 3
1. El problema de decisión clı́nica que conlleva una enfermedad cardı́aca y la posible cirugı́a para
realizar un bypass está representado por el siguiente diagrama de influencia. Las preferencias
dependen del coste economico (bajo, medio, alto) y de la calidad de vida (muerte, baja y alta). La
enfermedad condiciona al sintoma de dolor y al resultado del angiograma.
bypass = list(
PAIN = node( Type = ”CHANCE”, Name = ”PAIN”,
Values=c(”ABSENT”,”PRESENT”), Preds=c(”HEARTDISEASE”),
Pots=matrix( data = c(
0.80, 0.20,
0.70, 0.30),
nrow = 2, ncol = 2, byrow = TRUE, dimnames = NULL)),
ANGIOGRAM = node( Type = ”CHANCE”, Name = ”ANGIOGRAM”,
Values=c(”NEGATIVE”,”POSITIVE”), Preds=c(”HEARTDISEASE”),
Pots=matrix( data = c(
0.95, 0.05,
0.15, 0.85),
nrow = 2, ncol = 2, byrow = TRUE, dimnames = NULL)),
HEARTSURGERY = node( Type = ”DECISION”, Name = ”HEARTSURGERY”,
Values=c(”NO”,”YES”), Preds=c(”PAIN”,”ANGIOGRAM”),
Pots=matrix( data = c(1.0), dimnames = list(”phase”,”HEARTSURGERY”))),
HEARTDISEASE = node(Type=”CHANCE”, Name=”HEARTDISEASE”,
Values=c(”ABSENT”,”PRESENT”), Preds=c(),
Pots=matrix( data = c(
0.85, 0.15),
nrow=1,ncol=2,byrow=TRUE,dimnames=NULL)),
LIFEQ = node(Type=”CHANCE”, Name=”LIFEQ”,
Values=c(”DEAD”,”LIVE2ALQ”,”LIVE2AHQ”), Preds=c(”HEARTDISEASE”,”HEARTSURGERY”),
Pots=matrix( data = c(
0.02, 0.08, 0.90,
0.09, 0.29, 0.62,
0.15, 0.30, 0.55,
0.17, 0.23, 0.60),
nrow=4, ncol=3, byrow=TRUE, dimnames=NULL)),
ECONOMICALC = node(Type=”CHANCE”, Name=”ECONOMICALC”,
Values=c(”LOW”,”MEDIUM”,”HIGH”), Preds=c(”HEARTSURGERY”),
Pots=matrix( data = c(
0.70, 0.25, 0.05,
0.05, 0.35, 0.60),
nrow=2,ncol=3,byrow=TRUE,dimnames=NULL)),
UTILITY = node(Type=”UTILITY”, Name=”UTILITY”,
Values=c(0.0,1.0), Preds=c(”LIFEQ”,”ECONOMICALC”),
Pots=matrix( data=c(
1.0, 0.90, 0.70, 0.80, 0.50, 0.10, 1.40, 1.50, 1.80),
nrow=9,ncol=1,byrow=TRUE,dimnames=list( NULL, c(”UTILITY”))))
)
1
bypass = influence.diagram( bypass)
model definition cat( ”Influence Diagram – bypass”)
model name dump.netG(server,”server”)
# export to GeNie remarc.eval(server,DUMP=TRUE)
# evaluation
(a) Evaluar el diagrama detallando las operaciones de cada paso.
(b) Mostrar las alternativas óptimas.
(c) Mostrar la distribución de probabilidad a posteriori de HEARTDISEASE.
(d) Realizar los apartados anteriores con P(HEARTDISEASE=PRESENT) = 0.3. ¿Cambia el
resultado de la evaluación?
2. En una empresa se propone actualizar un servidor de aplicaciones. Primero se condidera actualizar
o no la máquina y posteriormente el software. El tamaño del registro de incidencias dependen de la
productividad o caudal de peticiones servidas. Las averı́as, caidas del servidor dependen del número
de incidencias. La satisfacción de los clientes depende de la productividad. Tomamos la decisión de
actualizar la máquina a la vista del nivel de averı́as y la satisfacción. Se ha formulado el problema
mediante un modelo de diagrama de influencia:
## Influence Diagram: server
server = list(
Incidencias = node( Type = ”CHANCE”, Name = ”Incidencias”,
Values = c(”pocos”,”muchos”), Preds = c(”Productividad”),
Pots = matrix( data = c(
0.60, 0.40,
0.15, 0.85),
nrow = 2, ncol = 2, byrow = TRUE, dimnames = NULL)),
Productividad = node( Type = ”CHANCE”, Name = ”Productividad”,
Values = c(”media”,”alta”), Preds = c(),
Pots = matrix( data = c(
0.20, 0.80),
nrow = 1, ncol = 2, byrow = TRUE, dimnames = NULL)),
Averias = node(Type=”CHANCE”, Name=”Averias”,
Values = c(”raras”,”frecuentes”), Preds = c(”Incidencias”),
Pots = matrix( data = c(
0.90, 0.10,
0.30, 0.70),
nrow=2, ncol=2, byrow=TRUE, dimnames=NULL)),
Satisfaccion = node(Type=”CHANCE”, Name=”Satisfaccion”,
Values = c(”baja”,”alta”), Preds = c(”Productividad”),
Pots = matrix( data = c(
0.80, 0.20,
0.65, 0.35),
nrow=2, ncol=2, byrow=TRUE, dimnames=NULL)),
NuevoServidor = node( Type = ”DECISION”, Name = ”NuevoServidor”,
Values = c(”no”,”si”), Preds = c(”Averias”,”Satisfaccion”),
Pots = matrix( data = c(1.0), dimnames = list(”phase”,”NuevoServidor”))),
NuevoSoftware = node( Type = ”DECISION”, Name = ”NuevoSoftware”,
Values = c(”no”,”si”), Preds = c(”NuevoServidor”),
Pots = matrix( data = c(2.0), dimnames = list(”phase”,”NuevoSoftware”))),
2
Utility = node(Type=”UTILITY”, Name = ”Utility”,
Values = c(0.0,1.0), Preds = c(”NuevoServidor”,”NuevoSoftware”,”Incidencias”),
Pots = matrix( data = c(
## no,no,pocos, no,no,muchos, no,si,pocos, no,si,muchos, si,no,pocos, si,no,muchos, si,si,pocos,
si,si,muchos
80.0, -5.0, 110.0, -8.0, 100.0, -4.0, 50.0, -2.0),
nrow=8, ncol=1 ,byrow=TRUE, dimnames=list( NULL, c(”utility”))))
)
server = influence.diagram( server)
# model definition cat(”Influence Diagram: server”)
# model name dump.netG(server,”server”)
# export to GeNie remarc.eval(server,DUMP=TRUE)
# evaluation
(a) Resolver el diagrama de influencia (apps-server.R) indicando las operaciones de cada paso del
algoritmo.
(b) Calcular la utilidad final del problema y mostrar el resultado, las tablas de decisiones óptimas.
(c) Analizar el resultado si Utilidad( NuevoServidor=si, NuevoSoftware=si, pocos) = 0.0 (appsserver-2.R), ¿Cambia la polı́tica óptima?
(d) Resolver el diagrama con evidencia de que la Productividad es media.
(e) Transformar el diagrama de influencia inicial en un árbol de decisión y evaluar las polı́ticas
óptimas. Comentar que aspectos del problema determinan la mejor opción para modelizar.
Indicar si el árbol es simétrico y mostrar el número de escenarios.
(f) Resolver el diagrama inicial con NuevoSoftware como decisión primera (apps-server-3.R) e
indicar si cambia el resultado.
NuevoSoftware = node( Type = ”DECISION”, Name = ”NuevoSoftware”, Values = c(”no”,”si”),
Preds = c(”Averias”,”Satisfaccion”),
vPots = matrix( data = c(1.0), dimnames = list(”phase”,”NuevoSoftware”))),
NuevoServidor = node( Type = ”DECISION”, Name = ”NuevoServidor”, Values = c(”no”,”si”),
Preds = c(”NuevoSoftware”),
Pots = matrix( data = c(2.0), dimnames = list(”phase”,”NuevoServidor”))),
3
Descargar