entrega modelo funcional tesis leidy

Anuncio
Introducción
El presente informe muestra el Modelo Funcional para el prototipo propuesto que
ejemplificara el funcionamiento del Orquestador de Ejecución de Componentes de
Software. El prototipo consiste en resolver el problema del agente viajero mediante
la aplicación de algoritmos genéticos.
Aquí se efectúa el correspondiente análisis de requerimientos funcionales y no
funcionales del sistema y los diseños de casos de uso.
Adicionalmente se especifican los requerimientos para el funcionamiento del
Orquestador de Ejecución de Componentes se incluirán los casos de uso del
orquestador también?.
OBJETIVOS





Identificar y definir los requerimientos funcionales y no funcionales del
sistema.
Identificar y definir los requerimientos del componente Orquestador de
Ejecución de componentes de software.
Identificar y especificar los casos de uso del sistema.
Identificar los actores que intervienen en la realización de los casos de uso.
Analizar la comunicación requerida en el sistema para llevar una respuesta
a una solicitud del actor.
MODELO FUNCIONAL
DEFINICIÓN DEL PROBLEMA
(Agente Viajero)
Consiste en un agente de ventas que tiene que visitar n ciudades, comenzando y
terminando en la misma ciudad, visitando solamente una vez cada ciudad, y
haciendo el recorrido de costo mínimo, este costo de recorrido puede ser
expresado en términos de distancia, es decir recorrer el mínimo de kilómetros
posibles.
Se trata de un problema NP completo, en el que la única alternativa para su
solución consiste en verificar todas las posibles opciones para encontrar cuál es la
óptima, hay que tener en cuenta que si el número de ciudades es n, el número de
posibles recorridos a ensayar resulta ser n!/2n. ref1.
A cada uno de los recorridos que puede realizar el viajero se le denomina viaje.
Comprobar uno por una todos los posibles viajes para n ciudades requiere realizar
n! sumas, por lo tanto se requiere utilizar algoritmos de búsquedas que permitan
encontrar una solución optima.
USO DE ALGORITMOS GENETICOS PARA RESOLVER EL PROBLEMA DEL
AGENTE VIAJERO
Un algoritmo genético puede encontrar una solución óptima al problema del
agente viajero en una cantidad de tiempo razonable, aunque probablemente no
sea la mejor solución.
Para llevar a cabo el algoritmo genético, es necesario definir inicialmente la
cantidad de ciudades a visitar y las distancias entre ellas, esto para definir el
tamaño que tendrá el cromosoma. Seguido de esto, se debe definir la función de
aptitud donde serán evaluados los diferentes cromosomas que componen la
población.
La población que se utilizará para la resolución del problema, en la primera
generación, será creada de forma aleatoria, para ello se necesita definir el tamaño
que tendrá durante toda la ejecución del algoritmo genético. (ref2 aqui esta la de
alander) Alander (1992), basándose en evidencia empírica sugiere que un tamaño
de población comprendida entre el número de ciudades y el doble de este tamaño
es suficiente para atacar con éxito te tipo de problemas.
Una vez se realice la evaluación de los cromosomas mediante la función de
aptitud, se debe realizar la selección de aquellos que son más aptos para la
resolución del problema, para esto se deben utilizar diferentes técnicas de
selección basadas en probabilidad.
Este procedimiento se repite n veces, de acuerdo al número de iteraciones
establecidas para tratar de encontrar el cromosoma optimo, es decir el mejor viaje
a realizar. Para seleccionar los individuos de la población inicial en cada iteración
se toman los mejores individuos de la iteración inmediatamente anterior y se
realizan operaciones de cruce, mutación o selección por torneo.
ref 1: http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t2geneticos.pdf página 18
ref 2: http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t2geneticos.pdf página 9
GLOSARIO
TECNOLOGÍA UTILIZADA
 Modelamiento: Enterprise Architecte 7.5
 Diseño: Mozart Oz
REQUERIMIENTOS DE SOFTWARE
REQUERIMIENTOS FUNCIONALES
IDENTIFICADOR
DEL
NOMBRE DE REQUERIMIENTO
REQUERIMIENTO
REQ-1
Establecer función objetivo
REQ-2
Determinar numero de generaciones
REQ-3
Determinar numero de ciudades
REQ-3.1
El usuario debe ingresar el numero de ciudades
REQ-4
Determinar nombre de ciudades
REQ-5
Determinar Distancia entre ciudades
REQ-5.1
Generar aleatoriamente distancia entre ciudades
REQ-5.2
Permitir ingresar la distancia entre ciudades
REQ-5.3
Permitir editar la distancia entre ciudades
REQ-6
Determinar ciudad de origen
REQ-7
Generar Población Inicial
REQ-7.1
Determinar tamaño de población inicial
REQ-7.2
Generar aleatoriamente la población inicial
(No estoy segura si estos son casos de uso aparte como lo
tengo en el diseño o es solo uno y en la especificación es q se
detalla)
REQ-11.
Se debe determinar el tamaño del cromosoma
Generación de Cromosomas
Se debe generar aleatoriamente los genes que conforman un
cromosoma (es decir las ciudades que conforman un
cromosoma)
Se debe asegurar que el primer gen de un cromosoma
corresponda con la ciudad de origen
Se debe garantizar que no se repita ningún gen dentro del
cromosoma
Fitness
El sistema debe evaluar cada cromosoma dentro de la función
objetivo para obtener el fitness de cada uno de ellos.
Selección de padres
REQ-11.1
Selección de padres por el método de la ruleta
REQ-11.2
Selección de padres por el método elitista
REQ-11.3
Selección de padres por torneo
REQ-12
Generación de nuevos individuos para la población
REQ-12.1
Reproducción por cruce
REQ-12.1.1
Reproducción por el operador de cruce basado en el orden
(OX1)
REQ-12.1.2
Reproducción por el operador de cruce basado en una
correspondencia parcial (PMX)
REQ-12.2
Reproducción por mutación
REQ-12.2.1
Reproducción por el operador de mutación basado en el
desplazamiento (DM)
REQ-12.2.2
Reproducción por el operador de mutación basado en el
cambio (SM)
REQ-13
Generación de nueva población
REQ-13.1
Tomar el 20 % de la población anterior.
REQ-13.2
Tomar el 80% de la nueva población
Finalización del algoritmo
Luego de evaluar el número de generaciones ingresadas por
el usuario, el sistema debe estar en la capacidad de mostrar el
cromosoma que contiene el mejor fitness de la población.
X
REQUERIMIENTOS NO FUNCIONALES
IDENTIFICADOR
DEL
REQUERIMIENTO
NOMBRE DE REQUERIMIENTO
RFN-1
TIEMPO DE RESPUESTA.
RNF-1.1
No hay un parámetro de respuesta, Este tiempo viene
determinado por el número de generaciones que el usuario
quiera utilizar para encontrar la solución al problema del
agente viajero.
Se espera que el tiempo de ejecución de cada corrida sea
meno a un minuto.
RNF-2
INTERFAZ DE USUARIO.
RNF-2.1
Presentar al usuario una interfaz amigable.
RNF-2.2
El software debe proveer una navegación sencilla.
RNF-2.3
El software deberá tener una interfaz gráfica uniforme de las
pantallas, menús y opciones, teniendo en cuenta factores
como el tamaño de las pantallas, color, tipo de letra y la
configuración de los campos de entrada.
RNF-2.4
Dentro de lo posible el software debe facilitar la entrada de
datos a los usuarios, presentando listas de opciones que
permitan escoger valores predeterminados.
RNF-3
REUSABILIDAD.
RNF-3.1
Los componentes desarrollados deben poder ser utilizados en
otros desarrollos de Software.
RNF-4
MODULARIDAD.
RNF-4.1
El proceso de diseño deberá proveer una correcta
modularidad, tal que permita agregar nuevas funcionalidades
en etapas futuras sin traer grandes complicaciones.
IDENTIFICADOR
DEL
REQUERIMIENTO
NOMBRE DE REQUERIMIENTO
RNF-5
TOLERANCIA A FALLAS
RNF-5.1
El software debe estar en la capacidad de manejar cualquier
error que afecten la prestación estable del servicio.
RNF-5.2
Manejo de excepciones.
RNF-6
CONFIABILIDAD
RNF-6.1
La información otorgada por el aplicativo luego de la ejecución
del algoritmo genético debe ser confiable.
MODELAMIENTO FUNCIONAL BASADO EN CASOS DE USO
DIAGRAMA GENERAL DE CASOS DE USO
ESPECIFICACION DE CASOS DE USO
Identificación:
CU-1
Caso de uso:
Ingresar datos de configuración del AG
Actores:
Usuario
Descripción:
El sistema debe permitirle al usuario ingresar el número de
generaciones a evaluar para obtener una solución óptima,
además el usuario debe ingresar el número de ciudades a
recorrer por el viajero. Finalmente el sistema le debe preguntar al
usuario si desea ingresar la distancia entre las ciudades o desea
que el sistema las genere aleatoriamente.
Tipo:
Primario
Precondiciones:
Sistema en ejecución, el usuario debe encontrarse en la pantalla
inicial del sistema.
Postcondiciones: El sistema debe contar con las variables de:
 Número de generaciones
 Número de ciudades
 Se requiere la generación automática de distancias entre
ciudades
Referencias
Cruzadas:
CU-2 Asignar nombre a las ciudades
CU-3 Ingresar distancia entre ciudades
CU-4 Asignación aleatoria de distancia entre ciudades
Requerimientos
asociados:
REQ-2 Determinar numero de generaciones
REQ-3 Determinar numero de ciudades
REQ-3.1 El usuario debe ingresar el numero de ciudades
REQ-6 Determinar ciudad de origen
Secuencia
Identificación:
CU-2
Caso de uso:
Asignar nombre a las ciudades
Actores:
Sistema
Descripción:
El sistema debe generar de manera automática los nombres de
las ciudades a recorrer por el viajero.
Tipo:
Secundario
Precondiciones:
El usuario ha proveído el numero de ciudades a recorrer por el
viajero
Postcondiciones: El sistema debe contar con las ciudades a recorrer por el viajero
Referencias
Cruzadas:
CU-1 Ingresar datos de configuración del AG
Requerimientos
asociados:
REQ-4 Determinar nombre de ciudades
Secuencia
Identificación:
CU-3
Caso de uso:
CU-3 Ingresar distancia entre ciudades
Actores:
Usuario
Descripción:
El sistema debe permitir al usuario ingresar la distancia que
existe entre una ciudad y otra
Tipo:
Secundario
Precondiciones:
El usuario ha proveído el número de ciudades a recorrer por el
viajero.
El sistema ha asignado un nombre a cada una de las ciudades.
Postcondiciones: El sistema debe contar con la distancia entre las ciudades a
recorrer por el viajero
Referencias
Cruzadas:
CU-1 Ingresar datos de configuración del AG
Requerimientos
asociados:
REQ-5 Determinar Distancia entre ciudades
REQ-5.1 Permitir ingresar la distancia entre ciudades
Secuencia
Identificación:
CU-4
Caso de uso:
Selección aleatoria de distancia entre ciudades
Actores:
Usuario
Descripción:
El usuario ha proveído el número de ciudades a recorrer por el
viajero.
El sistema ha asignado un nombre a cada una de las ciudades.
El usuario selecciono la opción de generar automaticamente la
distancia entre ciudades.
Tipo:
Secundario
Precondiciones:
El sistema debe contar con la distancia entre las ciudades a
recorrer por el viajero
Postcondiciones: El sistema debe contar con las ciudades a recorrer por el viajero
Referencias
Cruzadas:
CU-1 Ingresar datos de configuración del AG
Requerimientos
asociados:
REQ-5 Determinar Distancia entre ciudades
REQ-5.1 Generar aleatoriamente distancia entre ciudades
REQ-5.3 Permitir editar la distancia entre ciudades
Secuencia
Documentos relacionados
Descargar