Está en la página 1de 34

UNIVERSIDAD TECNOLGICA DEL PER FILIAL AREQUIPA

FACULTAD DE ANI

INGENIERA DE SEGURIDAD INDUSTRIAL Y MINERA CURSO MATEMATICAS DISCRETAS

DOCENTE: ING. ROLANDO LINARES DELGADO REALIZADO POR: FERNANDEZ CALDERON, ELSA FERNANDEZ RIVERA, CARLOS FLORES ALEMAN, OLGA HUAMANI SAICO, LUIS PARICAHUA SINCA, HENRY VERA CABRERA, ADALBERTO TURNO: NOCHE B CICLO: IV AREQUIPA PERU 2014

DEDICATORIA A Dios por haberme dado la capacidad y fortaleza necesaria para profesionalmente. desarrollarme

A mis padres por su gran constancia y perseverancia diaria en querer lograr en mi una persona de bien.

ii

INTRODUCCIN

Una de las tcnicas ms eficaces para dividir un problema en varias secciones es la tcnica denominada divide y vencers. Esta tcnica consiste en efectuar tres pasos para resolver un problema. - Dividir en problema en subproblemas. - Resolver cada uno de los subproblemas. - Combinar la solucin de dichos subproblemas.

Algunos problemas de ordenamiento como el quicksort y el mergesort se motivan en esta tcnica para su solucin. El casco convexo es un problema de geometra computacional que consiste en encontrar el polgono convexo mnimo que contiene un conjunto de puntos S.

iii

NDICE

DEDICATORIA .................................................................................................................. i INTRODUCCIN ............................................................................................................ iii I. PLANTEAMIENTO TEORICO ............................................................................................. 1 1.1. Problema de investigacin ........................................................................................... 1 Caracterizacin del problema......................................................................................... 1 Formulacin del problema .............................................................................................. 3 Justificacin de la investigacin ..................................................................................... 3 1.2. Objetivos de la investigacin .................................................................................. 4 Objetivos generales ............................................................................................................ 4 Objetivos especficos .......................................................................................................... 4 1.3. Variables de investigacin ........................................................................................... 4 1.4. MARCO TEORICO. ................................................................................................. 5 1. 2. 3. 4. ALGORITMO............................................................................................................. 5 DEFINICIN FORMAL ............................................................................................ 6 MEDIOS DE EXPRESIN DE UN ALGORITMO .............................................................. 9 DIAGRAMA DE FLUJO ................................................................................................ 10

4.1. Diagrama de flujo .................................................................................................... 10 4.2. Pseudocdigo ........................................................................................................... 11 4.3. Sistemas formales ................................................................................................... 12 4.4. Implementacin ....................................................................................................... 13 4.5. Variables ................................................................................................................... 13 5. 6. 7. Estructuras secuenciales ........................................................................................... 14 Algoritmos como funciones ...................................................................................... 15 Anlisis de algoritmos ............................................................................................... 16

7.1. Descripcin de alto nivel .......................................................................................... 18 7.2. Descripcin formal ................................................................................................... 18 7.3. Implementacin ....................................................................................................... 19 II. PLANTEAMIENTO METODOLOGICO .............................................................................. 22 2.1. Metodologa de la investigacin ................................................................................ 22

iv

2.1.1. Mtodo de investigacin ........................................................................................ 22 2.1.2. Alcance de la investigacin (Tipo) ........................................................................... 22 2.1.3. Diseo de la investigacin....................................................................................... 22 2.2. Recoleccin de la informacin ............................................................................. 22 2.2.1. Tcnicas ............................................................................................................... 22 2.2.2. Instrumentos ........................................................................................................ 22 2.3. Poblacin y muestra................................................................................................... 22 III. RESULTADOS DE LA INVESTIGACION ........................................................................... 23 3.1. Descripcin de resultados .......................................................................................... 23 3.2. Conclusiones ......................................................................................................... 28

BIBLIOGRAFA ............................................................................................................... 29

I. PLANTEAMIENTO TEORICO 1.1. Problema de investigacin Caracterizacin del problema Dado un conjunto de puntos en el plano, dibujar el casco convexo que contiene dicho punto. Existen dos algoritmos vistos en clases que utilizan divide y vencers; estos son ptimos en tiempo; el primero de dichos algoritmos es el quick hull y se motiva en el algoritmo de ordenamiento quicksort; el segundo de dichos algoritmos es el mtodo de la tangente el cual se motiva en el algoritmo de ordenamiento mergesort. Elaborar un programa que permita pintar en un plano un conjunto de puntos; posteriormente el usuario puede oprimir un botn que pinta el casco convexo de dicho conjunto de puntos. Como puntuacin extra, si el programa permite ver paso a paso los movimientos que efecta el algoritmo, se dar una puntuacin de 10 puntos extras en esta prctica. Existen problemas para los cuales no es posible encontrar una solucin ptima en un tiempo razonable, circunstancia que justifica el desarrollo y perfeccionamiento de algoritmos capaces de abordar ese tipo de problemas que pertenecen a la clase NP-C. Aquellos algoritmos son llamados heursticos. En este contexto, los problemas son tratables o del tipo P para los que existe un algoritmo de complejidad polinomial capaz de resolverlos; o son problemas NP para los cuales no se conoce un algoritmo de complejidad polinomial capaz de resolverlos.

Adicionalmente existe un subconjunto de la familia NP, llamado NPC, que presenta un mayor grado de dificultad de resolucin. Entre los problemas que se pueden resolver en tiempo polinomial se encuentran diversas variedades de orden, como los logartmicos (log(n)), los lineales (n), los cuadrticos (n2), los cbicos (n3). En los problemas NP la complejidad de los algoritmos es del tipo exponencial (2n) o factorial (n!), donde si se aumentan las variables de entrada (n), el tiempo de resolucin del problema pudiese crecer significativamente. En general estos problemas se reducen a maximizar o minimizar una funcin objetivo sujeta a restricciones, por ejemplo, encontrar un camino ptimo, o de costo mnimo, al recorrer un conjunto de ciudades pasando solamente una vez por cada ciudad. En la actualidad no se conoce un algoritmo capaz de encontrar soluciones ptimas para la familia de problemas pertenecientes a la clase NP-C, esto es, encontrar ptimos en tiempo polinomial, utilizando una mquina determinstica, para instancias complejas. Una instancia es la especificacin de un problema en particular que pertenece a una familia de problemas, por ejemplo, la instancia indica la ubicacin de ciudades y costo que demanda recorrerlas, otra instancia indicar otras ciudades y costos. Este tipo de especificacin corresponde a instancias del Problema NP-C del Vendedor Viajero (PVV) o Traveling Salesman Problem (TSP) en ingls. Es necesario considerar, que el conjunto de soluciones (rutas factibles no necesariamente ptimas) puede crecer

exponencialmente en relacin con el tamao del problema que es especificado por una instancia. Luego, podra resultar imposible

implementar un algoritmo que encuentre soluciones ptimas en tiempo polinomial. Por ello, se utilizan mtodos aproximados, como es el desarrollo de heursticas que acercan a una solucin ptima, factible y de utilidad prctica. En contraposicin a los mtodos exactos, que proporcionan una solucin ptima al problema, los mtodos heursticos se limitan a entregar una buena solucin pero que no es necesariamente la ms adecuada. Para los objetivos de este trabajo se considera uno de los problemas pertenecientes a la familia NP-C, el E-TSP. Un TSP se puede representar por un grafo, G = (V, A) en que V es el conjunto de vrtices y A es el conjunto de aristas. Se asocia a G una matriz de costos C, en que cada elemento representa el costo o distancia de la arista (i, j). Un tour (T) o Ciclo Hamiltoniano es un ciclo simple que pasa por todos los vrtices del grafo. El problema consiste en determinar un T de costo mnimo. Para El E-TSP se define el costo cij como la distancia euclidiana entre dos puntos (i, j) en un plano 2D. Los costos de esta ecuacin son simtricos, por lo tanto: d(i, j) = d(j, i) adems d(i, j) + d(j, k) d(i, k).

Formulacin del problema Cul es el algoritmo para casco convexo?

Justificacin de la investigacin Este proyecto se realiza con la finalidad de dar a conocer el algoritmo convexa es una geometra computacional (grficos) en el concepto. No es estricta con las palabras de un determinado conjunto de puntos en un plano de dos dimensiones, convexa es conectar los puntos polgonos convexos ultraperifricas componen, contiene el punto de referencia de todos los puntos.

1.2. Objetivos de la investigacin

Objetivos generales
Comprender las tcnicas de divide y vencers al resolver un problema de geometra computacional.

Objetivos especficos
Conocer las tcnicas avanzadas de diseo y anlisis de algoritmos para problemas complejos. Programar las soluciones y probar experimentalmente las cotas asintticas en grandes conjuntos de datos. 1. Algoritmos para manejo de cadena. Bsquedas en cadenas. Apareamiento de patrones. Anlisis sintctico. Compactacin de archivos. Criptologa. 2. Algoritmos geomtricos. Mtodos geomtricos elementales. Encontrando el casco convexo. Bsquedas en rangos.

Intersecciones geomtricas. Problemas de puntos ms cercanos. 3. Grficas. Conectividad. Grficas con pesos. Grficas dirigidas. Flujo en redes. 4. Problemas NP. Algoritmos de tiempo polinomial determinsticos y no determinsticos. NP-completez. Teorema de Cook. Algunos problemas NP-completos.

1.3. Variables de investigacin


Variable dependiente Algoritmo Variable Independiente Casco convexo

1.4. MARCO TEORICO.

1. ALGORITMO

En matemticas, lgica, ciencias de la computacin y disciplinas relacionadas, un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia.11

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemtica son el algoritmo de multiplicacin, para calcular el producto, el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de ecuaciones.

Chandi, K. M.; Misra, J., Parallel Program Design, A. Foundation,

Addison-Wesley Publishing Company, 1988.

Los diagramas de flujo sirven para representar algoritmos de manera grfica.

2. DEFINICIN FORMAL

En general, no existe ningn consenso definitivo en cuanto a la definicin formal de algoritmo. Muchos autores los sealan como listas de instrucciones para resolver un clculo o un problema abstracto, es decir, que un nmero finito de pasos convierten los datos de un problema (entrada) en una solucin (salida).

Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versin modificada de la criba de Eratstenes que nunca termine de calcular nmeros primos no deja de ser un algoritmo.7

A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de "calculabilidad efectiva" basada en su clculo lambda y por Alan Turingbasndose en la mquina de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver exactamente los mismos problemas con ambos enfoques.8 9 Sin embargo, estos modelos estn sujetos a un tipo particular de datos como son nmeros, smbolos o grficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1En general, la parte comn en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7

Tiempo

secuencial.

Un

algoritmo funciona

en

tiempo

discretizado paso a paso, definiendo as una secuencia de estados "computacionales" por cada entrada vlida

(la entrada son los datos que se le suministran al algoritmo antes de comenzar). Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementacin (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.

Exploracin acotada. La transicin de un estado al siguiente queda completamente determinada por una descripcin fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de trminos del estado actual.

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigedad y sin hacer referencia a una computadora en particular, y adems tiene un lmite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definicin abarca tanto a algoritmos prcticos como aquellos que solo funcionan en teora, por ejemplo el mtodo de Newton y la eliminacin de Gauss-Jordan funcionan, al menos en principio, con nmeros de precisin infinita; sin embargo no es posible programar la precisin infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda funcin calculable se puede programar en una mquina de Turing (o equivalentemente, en un lenguaje de programacin suficientemente general):

Aritmetizabilidad.

Solamente

operaciones

innegablemente

calculables estn disponibles en el paso inicial.2

Aoe, J.-I.; Editor, Computer Algorithms: Key Search Strategies, IEEE

Computer Society Press, 1991

3. MEDIOS DE EXPRESIN DE UN ALGORITMO


Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de

flujo ylenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen

independientes de un lenguaje de programacin especfico.

La descripcin de un algoritmo usualmente se hace en tres niveles:

1. Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.

2. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la solucin.3

3. Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin especfico o algn objeto capaz de llevar a cabo instrucciones.

Cragon, H. G. , Branch Strategy Taxonomy and Performance

Models, IEEE Computer Society Press, 1992

Tambin es posible incluir un teorema que demuestre que el algoritmo es correcto, un anlisis de complejidad o ambos.

4. DIAGRAMA DE FLUJO

Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de un nmero

4.1. Diagrama de flujo


Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados con flechas para indicar la secuencia de instrucciones y estn regidos por ISO.

10

Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan mucho espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin.4

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las

descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas

expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin especfico.

4.2. Pseudocdigo
El pseudocdigo (falso lenguaje, el prefijo pseudo significa falso) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de

programacin, como asignaciones, ciclos y condicionales, aunque no est regido por ningn estndar. Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el desarrollo de un
4

Reilly, M. H. , A Performance Monitor For Parallel Programs,

Academic Press, Inc., 1990

11

algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocdigo requieren menos espacio para representar instrucciones complejas.

El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una

implementacin. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programacin concretos. Sin embargo, el pseudocdigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programacin especfico, y es a la vez suficientemente estructurado para que su implementacin se pueda hacer directamente a partir de l.

As el pseudodocdigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programacin. Busque fuentes ms precisas para tener mayor comprensin del tema.

4.3. Sistemas formales


La teora de autmatas y la teora de funciones

recursivas proveen modelos matemticos que formalizan el concepto de algoritmo. Los modelos ms comunes son la mquina de Turing, mquina de registro y funciones recursivas. Estos modelos son tan precisos como un lenguaje mquina, careciendo de expresiones coloquiales o

12

ambigedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementacin.

4.4. Implementacin
Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito elctrico o un aparato mecnico y elctrico. Algunos algoritmos inclusive usando se disean y especialmente El algoritmo para de

implementarse

lpiz

papel.

multiplicacin tradicional, el algoritmo de Euclides, la criba de Eratstenes y muchas formas de resolver la raz

cuadrada son slo algunos ejemplos.

4.5. Variables
Son elementos que toman valores especficos de un tipo de datos concreto. La declaracin de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables:

1. Mediante una sentencia de asignacin.

2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

13

Ejemplo:

5. Estructuras secuenciales
La estructura secuencial es aquella en la que una accin sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso. La asignacin de esto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma:

1. Simples: Consiste en pasar un valor constante a una variable (a 15)

2. Contador: Consiste en usarla como un verificador del nmero de veces que se realiza un proceso (a a + 1)

3. Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)

14

4. De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a c + b*2/4).

Un ejemplo de estructura secuencial, como obtener la rea de un tringulo:

6. Algoritmos como funciones


Esquemtica de un algoritmo solucionado un problema de ciclo hamiltoriano

Un algoritmo se puede concebir como una funcin que transforma los datos de un problema (entrada) en los datos de una solucin (salida).

15

Ms aun, los datos se pueden representar a su vez como secuencias de bits, y en general, de smbolos cualesquiera.1 9 11 Como cada secuencia de bits representa a un nmero natural (vase Sistema binario), entonces los algoritmos son en esencia funciones de los nmeros naturales en los nmeros naturales que s se pueden calcular. funcin Es decir que todo algoritmo calcula una

donde cada nmero natural es la codificacin de

un problema o de una solucin.

En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el algoritmo nunca devuelve ningn valor de salida, y podemos decir que la funcin queda indefinida para ese valor de entrada. Por esta razn se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definicin.

Cuando una funcin puede ser calculada por medios algortmicos, sin importar la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha funcin es computable. No todas las funciones entre secuencias datos son computables. El problema de la parada es un ejemplo.

7. Anlisis de algoritmos
Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El anlisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolucin del gasto de tiempo y memoria en funcin del tamao de los valores de entrada.

16

El anlisis y estudio de los algoritmos es una disciplina de las ciencias de la computacin y, en la mayora de los casos, su estudio es completamente abstracto sin usar ningn tipo de lenguaje de programacin ni cualquier otra implementacin; por eso, en ese sentido, comparte las caractersticas de las disciplinas matemticas. As, el anlisis de los algoritmos se centra en los principios bsicos del algoritmo, no en los de la implementacin particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo enpseudocdigo o utilizar un lenguaje muy simple tal como Lexico, cuyos cdigos pueden estar en el idioma del programador.

Algunos

escritores

restringen

la

definicin

de

algoritmo

procedimientos que deben acabar en algn momento, mientras que otros consideran procedimientos que podran ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algn dispositivo fsico que fuera capaz de funcionar eternamente. En este ltimo caso, la finalizacin con xito del algoritmo no se podra definir como la terminacin de este con una salida satisfactoria, sino que el xito estara definido en funcin de las secuencias de salidas dadas durante un periodo de vida de la ejecucin del algoritmo. Por ejemplo, un algoritmo que verifica que hay ms ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor til. Si se implementa correctamente, el valor devuelto por el algoritmo ser vlido, hasta que evale el siguiente dgito binario. De esta forma, mientras evala la siguiente secuencia podrn leerse dos tipos de seales: una seal positiva (en el caso de que el nmero de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolucin de valores exclusivamente positivos si hay ms ceros que unos en la secuencia y, en cualquier otro caso, devolver una mezcla de seales positivas y negativas.

17

Ejemplos de algoritmos

El problema consiste en encontrar el mximo de un conjunto de nmeros. Para un ejemplo ms complejo vase Algoritmo de Euclides.

7.1. Descripcin de alto nivel


Dado un conjunto finito de nmeros, se tiene el problema de

encontrar el nmero ms grande. Sin prdida de generalidad se puede asumir que dicho conjunto no es vaco y que sus elementos estn numerados como .

Es decir, dado un conjunto encontrar tal que . para todo elemento

se pide que

pertenece al conjunto

Para encontrar el elemento mximo, se asume que el primer elemento ( ) es el mximo; luego, se recorre el conjunto y se

compara cada valor con el valor del mximo nmero encontrado hasta ese momento. En el caso que un elemento sea mayor que el mximo, se asigna su valor al mximo. Cuando se termina de recorrer la lista, el mximo nmero que se ha encontrado es el mximo de todo el conjunto.

7.2. Descripcin formal


El algoritmo puede ser escrito de una manera ms formal en el siguiente pseudocdigo:

18

Sobre la notacin:

"" representa una asignacin: variable toma el valor de ;

significa que la

"devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el mximo de ).

7.3. Implementacin
En lenguaje C++:

19

Algoritmo para calcular el caso convexo

El algoritmo de graban comienza con dos ciclos for que toman un tiempo (n) cada uno. Si se utiliza un orden optimo como el merge sort. El tiempo para ordenar en el peor caso ser (n lg n). el tiempo de ejecucin total del ultimo ciclo while es (n) ya que se puede destacar un punto cuando mucho una vez y se tienen a puntos. El ciclo for en si se ejecuta (n) veces; entonces el tiempo total para los ltimos ciclos for y while es (n). se ve que el tiempo para ordenar domina, de manera que el tiempo en el peor caso para el algoritmo de Grabam es (n lg n). el tiempo despus de ordenar los puntos, es (n), de manera que si los puntos llegan preordenados el algoritmo de Grabam calculara el caso convexo en un tiempo lineal.

El ultimo teorema

20

APLICACIONES DE CASCO CONVEXO

21

II. PLANTEAMIENTO METODOLOGICO 2.1. Metodologa de la investigacin 2.1.1. Mtodo de investigacin


El mtodo y tipo de investigacin es descriptivo experimental

2.1.2. Alcance de la investigacin (Tipo)


Descriptivo aplicativa

2.1.3. Diseo de la investigacin


El diseo de la investigacin es cualitativa cuantitativa 2.2. Recoleccin de la informacin 2.2.1. Tcnicas

Se utiliza ficha documental 2.2.2. Instrumentos

Bibliografa

2.3. Poblacin y muestra


Debido al carcter aplicativo y relacionado con las matemticas no existe poblacin.

22

III. RESULTADOS DE LA INVESTIGACION 3.1. Descripcin de resultados


El problema de encontrar los cascos convexas encuentra sus aplicaciones prcticas en el reconocimiento de patr ones,

procesamiento de imgenes, estadsticas, SIG y anlisis de cdigo esttico por interpretacin abstracta. Tambin sirve como una herramienta, un bloque de construccin para un nmero de otros algoritmos de clculo-geomtricas tales como el mtodo de pinzas de rotacin para calcular el ancho y el dimetro de un conjunto de puntos. En este trabajo se utiliza un algoritmo desarrollado en el contexto de un proyecto de investigacin aplicada en optimizacin, en el Departamento de Ingeniera Informtica de la USACH. La utilizacin de este algoritmo es suficiente para mostrar el propsito de este trabajo. El algoritmo heurstico utilizado logra soluciones cercanas a ptimos conocidos [2] para el conjunto de instancias reportadas en Tabla 1 (comparar las columnas "ptimo" y "V1").

23

Tabla

1.

Comparativa

parcial

de

resultados.

24

Con el fin de explicar parte de la heurstica implementada, la Figura 1 ilustra como el algoritmo logra un tour para la instancia

20puntos10interiores: a) identifica grupos de ciudades cercanas, b) fija las ciudades que bordean a otras ciudades (casco convexo), c) une las ciudades al interior de un grupo que se conecta con una ciudad perteneciente al casco convexo y d) procede a unir otro grupo,

25

conectndolo a otra ciudad del casco convexo, logrando finalmente un tour.

Figura 1. Heurstica aplicada a una instancia de problema del E-TSP. TSPLIB [8], sitio de dominio pblico, provee instancias, soluciones obtenidas hasta la fecha y, para algunos casos, su solucin ptima. La Figura 2 ilustra la forma en que se representa una instancia E-TSP.

Figura 2. Instancia E-TSP 5puntos1.


26

En la Figura 2 NAME indica el nombre de la instancia, TYPE o tipo genrico de problema, COMMENT indica la solucin ptima conocida hasta la fecha, DIMENSION es la cantidad de puntos del problema, en este caso 5, EDGE_WEIGHT_TYPE para este caso euclidiano de dos dimensiones, NODE_COORD_SECTION lista de coordenadas en el plano representando la ubicacin de las ciudades. La estrategia propuesta requiere ejecutar versiones del algoritmo heurstico, tabular y facilitar la comparacin de resultados, administrar versiones del algoritmo y sus instancias de prueba, representar grficamente resultados obtenidos por los indicadores formulados, entre otras funcionalidades que son necesarias para cada una de las etapas que en la seccin "Estrategia" de este trabajo se presentan. Las necesidades indicadas demandaron el desarrollo de un "Ambiente de Pruebas" para facilitar tales tareas.

27

3.2. Conclusiones
La Matemtica se concibe como una ciencia construida por el hombre, dinmica, viva y en constante evolucin. No est hecha para ser observada, ni para ver lo que hicieron otros. A la Matemtica hay que hacerla, transformarla, mejorarla, cambiarla; el desafo es extender a la sociedad la idea de que la matemtica es un quehacer para todos y no una disciplina solo para elegidos. Es una manera de pensar, una forma de descubrir regularidades. Es el arte de anticipar que suceder cuando se decide hacer algo, sin tener que hacerlo realmente. Por ejemplo: saber el espacio disponible en el comedor, si se quiere comprar una vitrina. De este modo, es importante considerar como progresa el conocimiento matemtico y las condiciones en que es escolarizado.

28

BIBLIOGRAFA S., Graph Algorithms, Computer Science Press, 1979 Chandi, K. M.; Misra, J., Parallel Program Design, A. Foundation, Addison-Wesley Publishing Company, 1988. Aoe, J.-I.; Editor, Computer Algorithms: Key Search Strategies, IEEE Computer Society Press, 1991 Cormen, T. H.; Leierson, C. E.; Rivest, R. L. , Introduction To Algorithms, McGraw-hill Book Company, 1990. Cragon, H. G. , Branch Strategy Taxonomy and Performance Models, IEEE Computer Society Press, 1992 Kuck, D. J. , The Structure Of Computers And Computations, Volume One, Wiley & Sons, 1978 Axford, T., Concurrent Programming Fundamental Techniques For Real Time And Parallel Software Design, John Wiley & Sons, Inc., 1989 Carey, G. F.; Editor, Parallel Supercomputing: Methods, Algorithms And Applications, John Wiley and Sons, Inc., 1989 Gehani, N.; McGettrick, A.; Editores, Concurrent Programming, Addison-Wesley Publishing Company, 1988. Jaja, J., An Introduction parallel Algorithms, Addison-Wesley Publishing Company, 1992 Reilly, M. H. , A Performance Monitor For Parallel Programs, Academic Press, Inc., 1990 Modi, J. J., Parallel Algorithms And Matrix Computation, Clarendon Press, Oxford, 1988

29

También podría gustarte