Download sistema de reglas generación de servicios de zugym
Document related concepts
no text concepts found
Transcript
SISTEMA DE REGLAS GENERACIÓN DE SERVICIOS DE ZUGYM En el presente documento se presentan las reglas creadas con el fin de mostrar una visión de cómo sería la generación de cada uno de los servicios propuestos por ZuGYm; además, de cómo se realizaría la personalización de los mismo. A continuación en la Tabla 1, se mostrarán las abreviaturas usadas en el sistema de reglas, para facilitar la comprensión de las mismas. Tabla 1. Abreviaturas Sistema de Reglas 1. Abreviatur a Definición TCAC TE LCG LAP DI DD LEP RI RD LRMI LRMD Tabla de Composición de Alimentos Colombianos Tabla de Ejercicios Lista de Canciones General Lista de Alimentos por Pacientes Dieta Inicial Dieta Deseada Lista de Ejercicios por Paciente Rutina de Ejercicios Inicial Rutina de Ejercicios Deseada Lista de Reproducción de Música Inicial Lista de Reproducción de Música Deseada Reglas Generales Se crearon algunas reglas que aplican para todos los servicios que serán generados por ZuGym y que serán especificadas a continuación. 1.1. Reglas Filtros Generales Sea a ϵ TCAC Sea e ϵ TE Sea c ϵ TCAC Filtrar_Alimento (a) { //LAP para empezar tiene una copia del TCAC LAP = LAP – {a} } Filtrar_AlimentoOp (a) { LAP.a.valorPreferencia = “Restringido” } Filtrar_Ejercicio (e) { //LEP para empezar tiene una copia del TCAC LEP = LEP – {e} } Filtrar_EjercicioOp (e) { LEP.e.valorPreferencia = “Restringido” } Filtrar_Cancion(c) { LRMD.add(c) } 1.2. Filtros de Salud -Alimentos Sea a ϵ TCAC Filtro_SaludAlimento (a) { If (a ϵ "Nocivos") { FiltrarAlimento (a) } else { If (a ϵ "Restringidos") { Filtrar_AlimentoOp (a) } } } 1.3. Filtros de Salud - Ejercicios Sea e ϵ TE Filtro_SaludEjercicio (a) { If (e ϵ "Nocivos") { Filtrar Ejercicio(e) } else { If (e ϵ "Restringidos") { Filtrar_EjercicioOp (e) } } } 1.4. Filtro Objetivo Paciente Dieta y Rutina Sea a ϵ TCAC Sea e ϵ TE If (Tipo_Obj == "Salud" || Tipo_Obj == “Mejorar_Estado_Físico”) { Filtro_Salud Alimento(a) Filtro_Salud Ejercicio(a) } else { //Tipo_Obj == “Estética” If (Peso_Deseado >= Peso_Actual) { Filtro_Salud Alimento(a) Filtro_AdelgazarAlimen (a) //Alimentos con alto contenido calórico por ejemplo Filtro_AdelgazarEjerc(e) //Ejercicios con rango alto de esfuerzo por ejemplo. } else { Filtro_Salud (a) Filtro_EngordarAlimento(a) Filtro_EngordarEjercicio(e) } } 1.5. Reglas Preferencia de Despliegue Información y Actividad Sea q ϵ Formato_Despliegue Sea r ϵ Actividad Preferencia_Despliegue (q){ If (q e Carác_Dispositivo) { desplegarInfo(q) }else sustitución_formato(q) } } Preferencia_Actividad(){ If (Actividad_Especifica) { If (Actividad_Paciente){ Filtrar_Actividad (criterios, actividad) } } } Filtrar_Actividad(criteriosActividad, actividad){ If (criterioActividad == “Socio_Cultural”) { If (“Religión”) { Preferencia_SocioCultural(Religión, Tiempo) } else {} } else { //Temporada If (“Vacaciones”) { Preferencia_SocioCultural(Vacaciones, Tiempo) } else {} } } Preferencia_SocioCultural(tipo, tiempo){ If (tipo == “Religión” ˅ tipo == “Creencia”) { TCAC – {TipoAlimento} ˅ Agenda (“NingúnAlimento”, franja) } else { TCAC – {Alimento} ˅ //Alimentos que no come por su estilo de vida TCAC + {Alimento} //Alimentos que come por su estilo de vida } } 2. Reglas Generación de Dietas 2.1. Regla Dieta Inicial Sea tipoDieta ϵ Patrones Dieta If (tipoDieta == “Hipercalórico”){ MostrarDieta(“Hipercalórico”) }else{ If(tipoDieta == “Hipocalórica”){ MostrarDieta(“Hipocalórica”) }// Así con todos los tipos de dietas generales a partir de patrones establecidos (hipoglúcida, hipocalóricas, hipercalórico e hiposódica) } 2.2. Reglas Relacionadas a la Dieta Deseada Preferencia de Alimentos Sea a ϵ TCAC Preferencia_Alimentos (a) { If (a == "Rechaza") ( Filtrar (a) Sustitución (a) ) else ( If (a == "Gusta") ( PAD { a } ) else { //por preferencia // f: lista alimentos preferidos aЄf f-{a} } ) } Sustitución (a) [ d = Intercambio(a) Return d } Opción 1 Intercambio Intercambio1 (a) { For (i = 0; i >= TCAC.length ; i++) { If (c.Kilocalorias == TCAC.get(i).Kilocalorias c. Carbohidratos == TCAC.get(i).Carbohidratos c.Grasas == TCAC.get(i).Grasas c.Proteínas == TCAC.get(i).Proteínas){ Return TCAC.get(i) } } } Opción 2 Intercambio Intercambio2 (a) { //Cuando el alimento está relacionado a otros del mismo valor nutricional aa = TCAC.a.getIntercambio If (aa.valorPreferencia == “Gusta” || aa.valorPreferencia == “Prefiere”){ Return aa }else{ Intercambio1(a) } } 2.3. Preferencia Cocción Sea a TCAC Intercambio_Cocción () { If (a “Fruta”) { If (a.Preferencia_Cocción == "Graso") { If (Tipo_Obj == “Salud” (Tipo_Obj == “Estética” Peso_Deseado > Peso_Actual) ) { Preferencia_Cocción( Sustitución (p) ) } else { Preferencia_Cocción (“Graso”) } } } else { Preferencia_Cocción (“Ninguna”) } } 2.4. Preferencia Horaria Sea di Días de la semana Sea h Horas del día Sea f Comida fp Plato de Comida TCAC {fp| {<Alimento>}*} // If (f == “Desayuno”) { If (fp Disponibles (Estación, Influencia_Año) fp Cocina_Regional) { Comida_Desayuno(fp) Preferencia_Horaria (Desayuno, franja, sustitución_hora) } else { Comida_Desayuno_Sustitución(fp) ) } else { If (f == “Almuerzo”) { If (fp Disponibles (Estación, Influencia_Año) fp Cocina_Regional) { Comida_Almuerzo (fp) Preferencia_Horaria (Almuerzo, franja, sustitución_hora) } else { Comida_Almuerzo_Sustitución (fp) ) } else { If (fp Disponibles (Estación, Influencia_Año) fp Cocina_Regional) { Comida_Comida (fp) Preferencia_Horaria (Comida, franja, sustitución_hora) } else { Comida_Comida_Sustitución (fp) ) } } // Otra posible forma pero es como más dada por el nutricionista que por el sistema Sea c Alimento TCAC If (c Disponibles (Estación, Influencia_Año) c Cocina_Regional) { Comida_TipoComida (add c) Preferencia_Horaria (TipoComida, franja, sustitución_hora) } else { Comida_TipoComida_Sustitución(c) ) If (c.Tipo_Plato == “Ensalada”) { Lista_Comida_Almuerzo(c) Lista_Comida_Comida(c) } else { If (c.Tipo_Plato == “Sopa”) { Lista_Comida_Almuerzo(c) Lista_Comida_Comida(c) } else { If (c.Tipo_Plato == “Seco”) { Lista_Comida_Almuerzo(c) Lista_Comida_Comida(c) } else { Lista_Comida_Almuerzo(c) Lista_Comida_Comida(c) Lista_Comida_Desayuno(c) Lista_Comida_Nueves(c) Lista_Comida_Onces(c) } } } 3. Reglas Generación de Rutinas 3.1. Preferencia de Ejercicios Sea e ϵ TE Preferencia_Ejercicios (e) { If (e == "Rechaza") ( Filtrar (e) Sustitución (e) ) else ( If (e == "Gusta") ( PAD { e } ) else { //por preferencia // f: lista ejercicios preferidos eЄf f-{e} } ) } Sustitución (e) [ d = Intercambio(e) Return d } Opción 1 Intercambio Intercambio1 (e) { For (i = 0; i >= TE.length ; i++) { If (e.intensidad == TE.get(i).intensidad e. frecuencia== TE.get(i).frecuencia e.objetivo == TE.get(i).objetivo { Return TE.get(i) } } } Opción 2 Intercambio Intercambio2 (e) { //Cuando el ejercicio está relacionado a otros del mismo valor nutricional ee = TE.e.getIntercambio If (ee.valorPreferencia == “Gusta” || ee.valorPreferencia == “Prefiere”){ Return ee }else{ Intercambio1(e) } } 3.2. Preferencia Material Sea ee TE Intercambio_Material () { ee = TE.a.getIntercambio If (ee.valorPreferencia == “Gusta” || ee.valorPreferencia == “Prefiere”){ Return ee }else{ Intercambio1(a) } } 3.3. Preferencia Horaria Sea di Días de la semana Sea h Horas del día fp TE {fp| {<Ejercicio>}*} If (f == “Mañana”) { Ejercicio_Mañana(fp) Preferencia_Horaria (Mañana, franja, sustitución_hora) } else { If (f == “Tarde”) { Ejercicio_Tarde (fp) Preferencia_Horaria (Tarde, franja, sustitución_hora) } else { Comida_Comida (fp) Preferencia_Horaria (Comida, franja, sustitución_hora) } } 4. Reglas Generación de Listas de Reproducción 4.1. Preferencia de Música Sea m ϵ LCG Preferencia_Musica (m) { If (m == "Rechaza") ( Filtrar (m) Sustitución (m) ) else ( If (e == "Gusta") ( PAD {m} ) else { //por preferencia // f: lista música preferidos mЄf f - {m} } ) } Sustitución (m) [ d = Intercambio(e) Return d } Opción 1 Intercambio Intercambio1 (m) { For (i = 0; i >= LCG.length ; i++) { If (e.ritmo == LCG.get(i).ritmo e. arminia== LCG.get(i).armonia e.melodia == LCG.get(i).melodia { Return LCG.get(i) } } } Opción 2 Intercambio Intercambio2 (a) { //Cuando la canción está relacionado a otros del mismo valor nutricional mm = LCG.a.getIntercambio If (mm.valorPreferencia == “Gusta” || mm.valorPreferencia == “Prefiere”){ Return mm }else{ Intercambio1(m) } }