Académique Documents
Professionnel Documents
Culture Documents
FACULTAD DE ANI
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).
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.
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. 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.
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
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
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.
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
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
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.
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
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
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:
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:
2. Contador: Consiste en usarla como un verificador del nmero de veces que se realiza un proceso (a a + 1)
14
4. De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a c + b*2/4).
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
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.
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 .
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.
18
Sobre la notacin:
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
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
21
Bibliografa
22
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
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.
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