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)
}
}