Este documento presenta un análisis de algoritmos de ordenamiento y búsqueda determinísticos y aleatorios. Incluye teoría sobre el Teorema Maestro y notaciones asintóticas para calcular tiempos de ejecución. Resuelve ejercicios aplicando estas herramientas y propone nuevos problemas sobre diseño de algoritmos por división y conquista.
Este documento trata sobre la interferencia intersimbólica (ISI) y el patrón de ojo en sistemas de comunicación digital de banda base. Explica cómo la respuesta limitada del canal puede causar solapamiento entre pulsos adyacentes, resultando en ISI. También cubre los criterios de Nyquist para eliminar la ISI y maximizar la eficiencia espectral, así como ilustraciones del efecto de la ISI. El objetivo es comprender y mitigar los efectos de la ISI en la transmisión de señales digitales a través
Este documento describe las principales familias lógicas de circuitos integrados. Describe familias bipolares como TTL, ECL, HTL e I2L y familias MOS como CMOS, PMOS y NMOS. Explica las características, ventajas y desventajas de cada familia lógica. Las familias más populares son TTL debido a su amplia gama de funciones digitales y CMOS por su bajo consumo de energía.
Clasificacion analisis de cluster (clustering)Zynat
El análisis de cluster es un método estadístico que agrupa casos con características similares. Existen dos tipos principales de métodos: jerárquicos y no jerárquicos. Los métodos jerárquicos crean una jerarquía de grupos, mientras que los no jerárquicos obtienen una sola partición optimizando una función. El objetivo del clustering es agrupar elementos similares y determinar los grupos y su pertenencia.
El documento presenta información sobre la teoría de grafos. Introduce los objetivos de estudiar grafos, incluyendo definir y reconocer diferentes tipos de caminos, circuitos, y árboles. Explica el problema histórico de los siete puentes de Königsberg que inspiró el desarrollo de la teoría de grafos. Define los conceptos básicos de un grafo, incluyendo vértices, aristas, grafos dirigidos y no dirigidos.
Este documento presenta 8 ejercicios estadísticos que involucran tablas de frecuencia, gráficos y análisis de datos. Los ejercicios cubren temas como elaborar tablas de frecuencia a partir de muestras de datos, calcular porcentajes, construir histogramas y polígonos de frecuencia, y representar datos poblacionales mediante gráficos de sectores y barras. El último ejercicio analiza datos sobre tipos de cáncer en pacientes hospitalizados, incluyendo elaborar tablas y representar la información gr
Geometría Computacional: Interseccción de segmentosMiguel Sancho
1. El documento describe el algoritmo de barrido del plano para encontrar intersecciones de segmentos de línea. 2. El algoritmo mantiene un estado ordenado de los segmentos que intersectan la línea de barrido y comprueba intersecciones sólo entre segmentos adyacentes. 3. El algoritmo es sensible a la salida porque su complejidad depende del número de intersecciones en lugar del número total de segmentos.
Este documento trata sobre sistemas digitales de control en tiempo discreto. Explica conceptos como la discretización de sistemas analógicos, el diseño de controladores PID digitales mediante aproximaciones rectangular y trapezoidal, y diferentes arquitecturas para la implementación de controladores digitales. También incluye un ejemplo de diseño de control de un motor DC mediante el controlador L293E, donde se obtiene el modelo discreto del motor, se implementa un control PID digital y se explican técnicas como el PWM para regular la velocidad del motor.
Este documento presenta diferentes tipos de ecuaciones y métodos para resolverlas. Introduce intervalos, el valor absoluto y sus propiedades. Explica cómo resolver ecuaciones lineales, cuadráticas, con radicales y con valor absoluto. Proporciona ejemplos resueltos de cada tipo de ecuación. El objetivo es que los estudiantes aprendan a identificar y resolver diversos tipos de ecuaciones algebraicas.
Este documento trata sobre la interferencia intersimbólica (ISI) y el patrón de ojo en sistemas de comunicación digital de banda base. Explica cómo la respuesta limitada del canal puede causar solapamiento entre pulsos adyacentes, resultando en ISI. También cubre los criterios de Nyquist para eliminar la ISI y maximizar la eficiencia espectral, así como ilustraciones del efecto de la ISI. El objetivo es comprender y mitigar los efectos de la ISI en la transmisión de señales digitales a través
Este documento describe las principales familias lógicas de circuitos integrados. Describe familias bipolares como TTL, ECL, HTL e I2L y familias MOS como CMOS, PMOS y NMOS. Explica las características, ventajas y desventajas de cada familia lógica. Las familias más populares son TTL debido a su amplia gama de funciones digitales y CMOS por su bajo consumo de energía.
Clasificacion analisis de cluster (clustering)Zynat
El análisis de cluster es un método estadístico que agrupa casos con características similares. Existen dos tipos principales de métodos: jerárquicos y no jerárquicos. Los métodos jerárquicos crean una jerarquía de grupos, mientras que los no jerárquicos obtienen una sola partición optimizando una función. El objetivo del clustering es agrupar elementos similares y determinar los grupos y su pertenencia.
El documento presenta información sobre la teoría de grafos. Introduce los objetivos de estudiar grafos, incluyendo definir y reconocer diferentes tipos de caminos, circuitos, y árboles. Explica el problema histórico de los siete puentes de Königsberg que inspiró el desarrollo de la teoría de grafos. Define los conceptos básicos de un grafo, incluyendo vértices, aristas, grafos dirigidos y no dirigidos.
Este documento presenta 8 ejercicios estadísticos que involucran tablas de frecuencia, gráficos y análisis de datos. Los ejercicios cubren temas como elaborar tablas de frecuencia a partir de muestras de datos, calcular porcentajes, construir histogramas y polígonos de frecuencia, y representar datos poblacionales mediante gráficos de sectores y barras. El último ejercicio analiza datos sobre tipos de cáncer en pacientes hospitalizados, incluyendo elaborar tablas y representar la información gr
Geometría Computacional: Interseccción de segmentosMiguel Sancho
1. El documento describe el algoritmo de barrido del plano para encontrar intersecciones de segmentos de línea. 2. El algoritmo mantiene un estado ordenado de los segmentos que intersectan la línea de barrido y comprueba intersecciones sólo entre segmentos adyacentes. 3. El algoritmo es sensible a la salida porque su complejidad depende del número de intersecciones en lugar del número total de segmentos.
Este documento trata sobre sistemas digitales de control en tiempo discreto. Explica conceptos como la discretización de sistemas analógicos, el diseño de controladores PID digitales mediante aproximaciones rectangular y trapezoidal, y diferentes arquitecturas para la implementación de controladores digitales. También incluye un ejemplo de diseño de control de un motor DC mediante el controlador L293E, donde se obtiene el modelo discreto del motor, se implementa un control PID digital y se explican técnicas como el PWM para regular la velocidad del motor.
Este documento presenta diferentes tipos de ecuaciones y métodos para resolverlas. Introduce intervalos, el valor absoluto y sus propiedades. Explica cómo resolver ecuaciones lineales, cuadráticas, con radicales y con valor absoluto. Proporciona ejemplos resueltos de cada tipo de ecuación. El objetivo es que los estudiantes aprendan a identificar y resolver diversos tipos de ecuaciones algebraicas.
Este documento presenta un resumen de los conceptos fundamentales relacionados con las guías de onda y líneas de transmisión. Introduce los diferentes tipos de modos electromagnéticos que pueden existir (TEM, TE, TM y HEM) y describe las ecuaciones generales que rigen las soluciones para cada modo. También explica cómo calcular las componentes de los campos eléctricos y magnéticos para modos TEM utilizando la ecuación de Laplace.
El documento presenta diferentes identidades trigonométricas, incluyendo identidades recíprocas, por cociente, y pitagóricas. También explica cómo resolver ecuaciones y ejercicios trigonométricos utilizando estas identidades.
Este documento describe los codificadores y decodificadores binarios, incluyendo cómo funcionan los decodificadores de N a 2N y ejemplos como el decodificador 74LS139. También explica los displays de 7 segmentos, incluyendo los displays de ánodo común y cátodo común, y cómo se pueden formar números activando diferentes segmentos. Por último, muestra circuitos con decodificadores 7447 y 7448 para implementar displays de 7 segmentos de ánodo común y cátodo común respectivamente.
Ejercicios de Multiplexores y decodificadoresBertha Vega
El documento contiene la solución a varios problemas relacionados con decodificadores y multiplexores. En el Problema 1, se implementa la función f(a,b,c)=Σm(0,3,6) utilizando decodificadores con diferentes configuraciones de salidas y puertas lógicas. Los Problemas 2-4 describen la implementación de funciones utilizando multiplexores de 1, 2 o 4 canales. El Problema 5 analiza circuitos propuestos en un boletín anterior.
El documento describe diferentes métodos de transmisión de datos, incluyendo banda ancha y banda base. Explica que la banda ancha permite la transmisión simultánea de múltiples señales a través de un medio compartido, mientras que la banda base se refiere a la transmisión de señales en su frecuencia original para cortas distancias. También describe varios códigos utilizados en la transmisión de banda base como NRZ, RZ, codificación diferencial y Manchester para proveer sincronización y detectar errores.
Esta monografia, trata de analizar el problema de las ocho reinas, para así dar solución al conflicto que se presenta en los Sistemas de Comunicaciones de banda estrecha y direccional.
La recursividad o recursión es una técnica de programación que consiste en expresar una solución en términos de sí misma. Se dice que los algoritmos recursivos aplican una técnica de "divide y vencerás", para reducir un problema complejo en subproblemas más pequeños y fáciles de resolver.
PDS Unidad 2 Sección 2.2: Representación de sistemas discretos con diagrama a...Juan Palacios
Sección 2.2 "Representación de sistemas discretos con diagrama a bloques" del curso Procesamiento Digital de Señales de la Universidad Autónoma de Nayarit
Este documento presenta los conceptos básicos de álgebra lineal relacionados con matrices, determinantes y sistemas lineales. Define diferentes tipos de matrices como matrices cuadradas, simétricas, antisimétricas y nulas. También introduce operaciones básicas con matrices como suma, multiplicación por un escalar y producto. El objetivo es resolver sistemas de ecuaciones lineales de hasta 4 ecuaciones usando estas herramientas.
1. El documento introduce conceptos básicos sobre señales y el análisis de Fourier en MATLAB. Explica cómo representar señales discretas en MATLAB y realizar operaciones como cálculo de coeficientes de Fourier y transformadas de Fourier rápidas.
2. Se presentan ejemplos numéricos para ilustrar el cálculo de coeficientes de Fourier de una señal cuadrada, la reconstrucción de señales a partir de su serie de Fourier, y el cálculo de transformadas de Fourier de señales exponenciales moduladas.
Estadistica trabajo frecuencia 14030368MariaLucena25
Este documento presenta dos ejercicios estadísticos. El primer ejercicio analiza los datos de espera en minutos de clientes en 80 entidades bancarias y construye una tabla de frecuencias. El segundo ejercicio presenta datos de diámetros de balines fabricados e incluye una tabla de frecuencias de los diámetros. Ambos ejercicios proporcionan tablas de frecuencias para analizar la distribución de datos.
Sección 2.7 Correlación de señales discretas en el tiempoJuan Palacios
El documento describe los conceptos básicos de la correlación de señales discretas en el tiempo. Explica que la correlación permite comparar cuán parecidas o distintas son dos señales mediante la medición de su similitud cuando una se desplaza respecto a la otra. Proporciona fórmulas matemáticas para calcular la correlación cruzada y la autocorrelación y ofrece ejemplos numéricos de su cálculo.
El documento describe los árboles como una estructura de datos, incluyendo definiciones de árboles binarios, recorridos en árboles binarios, árboles de búsqueda como árboles lexicográficos y árboles hilvanados, e implementaciones en lenguajes de programación. También cubre objetivos, introducción a árboles, y características y tipos de árboles.
El documento describe el uso del software Simulink para modelar y simular sistemas dinámicos. Simulink permite modelar tanto sistemas lineales como no lineales usando diferentes bloques. Se explican conceptos como bloques de entrada y salida, simulaciones, uso de gráficos y subsistemas. También se cubren temas como sistemas en tiempo continuo y discreto, ecuaciones diferenciales y de diferencias, y funciones de transferencia.
Este documento presenta el contenido de un libro de texto sobre topología general. Incluye 13 capítulos que cubren temas como conjuntos con topología, espacios métricos, funciones continuas, homeomorfismos, compacidad y axiomas de separación. El libro provee una introducción formal a la topología para estudiantes de primer curso en este campo.
Este documento describe un proyecto de electrónica para un sistema de alarma controlado manualmente. Incluye un objetivo, justificación y plan de trabajo dividido en varias etapas como el montaje del circuito y la programación. La programación explica cómo controlar componentes como la pantalla LCD, el teclado y el zumbador, y describe la programación completa dividida en funciones para los modos de inicio, verde, naranja y rojo.
The document discusses designing FIR filters using windowing techniques. It describes using a rectangular window to design a high pass FIR filter. The key steps are: 1) Obtaining the Fourier coefficients of the desired frequency response, 2) Multiplying the coefficients by a window function to reduce oscillations, 3) The windowed coefficients give the impulse response of the FIR filter. Designing a filter using a rectangular window results in significant sidelobes in the frequency response. The document then discusses using a Kaiser window to design a low pass FIR filter and analyzing the effect of different beta values on the filter characteristics.
Seccion 3.4 Inversión de la transformada ZJuan Palacios
Sección 3.4 "Inversión de la transformada Z" de la unidad Transformada Z y sus aplicaciones del curso de Procesamiento Digital de Señales de la Universidad Autónoma de Nayarit
Los sistemas combinacionales están formados por un conjunto de compuertas interconectadas cuya salida, en un momento dado, esta únicamente en función de la entrada, en ese mismo instante. Por esto se dice que los sistemas combinacionales no cuentan con memoria
En cambio los sistemas secuenciales, son capaces de tener salidas no solo en función a través de sus estados internos. Esto se debe a que los sistemas secuenciales tienen memoria y son capaces de almacenar información a través de sus estados internos.
El documento describe los diferentes niveles de RAID (Redundant Array of Independent Disks). RAID 0 distribuye los datos entre varios discos para aumentar el rendimiento pero no ofrece redundancia, mientras que RAID 1 duplica los datos en varios discos para proporcionar redundancia. Los niveles RAID 3-6 proporcionan redundancia mediante el uso de discos de paridad, con diferentes estrategias de distribución de datos y paridad entre los discos. RAID 50 y RAID 10 son combinaciones de otros niveles RAID para lograr mayor rendimiento y tolerancia
Este documento explica los conceptos de potencia activa, reactiva y aparente en circuitos eléctricos. Define la potencia activa como la potencia consumida por resistencias y calculada como el producto de la tensión por la corriente y el coseno del ángulo de fase. Explica que solo elementos resistivos consumen potencia activa, mientras que elementos inductivos y capacitivos no consumen potencia. También introduce el triángulo de potencia y el factor de potencia.
Este documento presenta un resumen de los conceptos fundamentales relacionados con las guías de onda y líneas de transmisión. Introduce los diferentes tipos de modos electromagnéticos que pueden existir (TEM, TE, TM y HEM) y describe las ecuaciones generales que rigen las soluciones para cada modo. También explica cómo calcular las componentes de los campos eléctricos y magnéticos para modos TEM utilizando la ecuación de Laplace.
El documento presenta diferentes identidades trigonométricas, incluyendo identidades recíprocas, por cociente, y pitagóricas. También explica cómo resolver ecuaciones y ejercicios trigonométricos utilizando estas identidades.
Este documento describe los codificadores y decodificadores binarios, incluyendo cómo funcionan los decodificadores de N a 2N y ejemplos como el decodificador 74LS139. También explica los displays de 7 segmentos, incluyendo los displays de ánodo común y cátodo común, y cómo se pueden formar números activando diferentes segmentos. Por último, muestra circuitos con decodificadores 7447 y 7448 para implementar displays de 7 segmentos de ánodo común y cátodo común respectivamente.
Ejercicios de Multiplexores y decodificadoresBertha Vega
El documento contiene la solución a varios problemas relacionados con decodificadores y multiplexores. En el Problema 1, se implementa la función f(a,b,c)=Σm(0,3,6) utilizando decodificadores con diferentes configuraciones de salidas y puertas lógicas. Los Problemas 2-4 describen la implementación de funciones utilizando multiplexores de 1, 2 o 4 canales. El Problema 5 analiza circuitos propuestos en un boletín anterior.
El documento describe diferentes métodos de transmisión de datos, incluyendo banda ancha y banda base. Explica que la banda ancha permite la transmisión simultánea de múltiples señales a través de un medio compartido, mientras que la banda base se refiere a la transmisión de señales en su frecuencia original para cortas distancias. También describe varios códigos utilizados en la transmisión de banda base como NRZ, RZ, codificación diferencial y Manchester para proveer sincronización y detectar errores.
Esta monografia, trata de analizar el problema de las ocho reinas, para así dar solución al conflicto que se presenta en los Sistemas de Comunicaciones de banda estrecha y direccional.
La recursividad o recursión es una técnica de programación que consiste en expresar una solución en términos de sí misma. Se dice que los algoritmos recursivos aplican una técnica de "divide y vencerás", para reducir un problema complejo en subproblemas más pequeños y fáciles de resolver.
PDS Unidad 2 Sección 2.2: Representación de sistemas discretos con diagrama a...Juan Palacios
Sección 2.2 "Representación de sistemas discretos con diagrama a bloques" del curso Procesamiento Digital de Señales de la Universidad Autónoma de Nayarit
Este documento presenta los conceptos básicos de álgebra lineal relacionados con matrices, determinantes y sistemas lineales. Define diferentes tipos de matrices como matrices cuadradas, simétricas, antisimétricas y nulas. También introduce operaciones básicas con matrices como suma, multiplicación por un escalar y producto. El objetivo es resolver sistemas de ecuaciones lineales de hasta 4 ecuaciones usando estas herramientas.
1. El documento introduce conceptos básicos sobre señales y el análisis de Fourier en MATLAB. Explica cómo representar señales discretas en MATLAB y realizar operaciones como cálculo de coeficientes de Fourier y transformadas de Fourier rápidas.
2. Se presentan ejemplos numéricos para ilustrar el cálculo de coeficientes de Fourier de una señal cuadrada, la reconstrucción de señales a partir de su serie de Fourier, y el cálculo de transformadas de Fourier de señales exponenciales moduladas.
Estadistica trabajo frecuencia 14030368MariaLucena25
Este documento presenta dos ejercicios estadísticos. El primer ejercicio analiza los datos de espera en minutos de clientes en 80 entidades bancarias y construye una tabla de frecuencias. El segundo ejercicio presenta datos de diámetros de balines fabricados e incluye una tabla de frecuencias de los diámetros. Ambos ejercicios proporcionan tablas de frecuencias para analizar la distribución de datos.
Sección 2.7 Correlación de señales discretas en el tiempoJuan Palacios
El documento describe los conceptos básicos de la correlación de señales discretas en el tiempo. Explica que la correlación permite comparar cuán parecidas o distintas son dos señales mediante la medición de su similitud cuando una se desplaza respecto a la otra. Proporciona fórmulas matemáticas para calcular la correlación cruzada y la autocorrelación y ofrece ejemplos numéricos de su cálculo.
El documento describe los árboles como una estructura de datos, incluyendo definiciones de árboles binarios, recorridos en árboles binarios, árboles de búsqueda como árboles lexicográficos y árboles hilvanados, e implementaciones en lenguajes de programación. También cubre objetivos, introducción a árboles, y características y tipos de árboles.
El documento describe el uso del software Simulink para modelar y simular sistemas dinámicos. Simulink permite modelar tanto sistemas lineales como no lineales usando diferentes bloques. Se explican conceptos como bloques de entrada y salida, simulaciones, uso de gráficos y subsistemas. También se cubren temas como sistemas en tiempo continuo y discreto, ecuaciones diferenciales y de diferencias, y funciones de transferencia.
Este documento presenta el contenido de un libro de texto sobre topología general. Incluye 13 capítulos que cubren temas como conjuntos con topología, espacios métricos, funciones continuas, homeomorfismos, compacidad y axiomas de separación. El libro provee una introducción formal a la topología para estudiantes de primer curso en este campo.
Este documento describe un proyecto de electrónica para un sistema de alarma controlado manualmente. Incluye un objetivo, justificación y plan de trabajo dividido en varias etapas como el montaje del circuito y la programación. La programación explica cómo controlar componentes como la pantalla LCD, el teclado y el zumbador, y describe la programación completa dividida en funciones para los modos de inicio, verde, naranja y rojo.
The document discusses designing FIR filters using windowing techniques. It describes using a rectangular window to design a high pass FIR filter. The key steps are: 1) Obtaining the Fourier coefficients of the desired frequency response, 2) Multiplying the coefficients by a window function to reduce oscillations, 3) The windowed coefficients give the impulse response of the FIR filter. Designing a filter using a rectangular window results in significant sidelobes in the frequency response. The document then discusses using a Kaiser window to design a low pass FIR filter and analyzing the effect of different beta values on the filter characteristics.
Seccion 3.4 Inversión de la transformada ZJuan Palacios
Sección 3.4 "Inversión de la transformada Z" de la unidad Transformada Z y sus aplicaciones del curso de Procesamiento Digital de Señales de la Universidad Autónoma de Nayarit
Los sistemas combinacionales están formados por un conjunto de compuertas interconectadas cuya salida, en un momento dado, esta únicamente en función de la entrada, en ese mismo instante. Por esto se dice que los sistemas combinacionales no cuentan con memoria
En cambio los sistemas secuenciales, son capaces de tener salidas no solo en función a través de sus estados internos. Esto se debe a que los sistemas secuenciales tienen memoria y son capaces de almacenar información a través de sus estados internos.
El documento describe los diferentes niveles de RAID (Redundant Array of Independent Disks). RAID 0 distribuye los datos entre varios discos para aumentar el rendimiento pero no ofrece redundancia, mientras que RAID 1 duplica los datos en varios discos para proporcionar redundancia. Los niveles RAID 3-6 proporcionan redundancia mediante el uso de discos de paridad, con diferentes estrategias de distribución de datos y paridad entre los discos. RAID 50 y RAID 10 son combinaciones de otros niveles RAID para lograr mayor rendimiento y tolerancia
Este documento explica los conceptos de potencia activa, reactiva y aparente en circuitos eléctricos. Define la potencia activa como la potencia consumida por resistencias y calculada como el producto de la tensión por la corriente y el coseno del ángulo de fase. Explica que solo elementos resistivos consumen potencia activa, mientras que elementos inductivos y capacitivos no consumen potencia. También introduce el triángulo de potencia y el factor de potencia.
Analisis_Algoritmo_Ecuacion de recurrenciaVelmuz Buzz
Este documento explica cómo resolver una ecuación de recurrencia para el tiempo de ejecución de un algoritmo utilizando el método de sustitución. Se propuso que la solución era O(n lg n) y al sustituir este término en la ecuación de recurrencia se obtuvo la expresión x(n) ≤ 2n lg(n), que satisface la condición de borde modificada a x(2)=4. Por lo tanto, la forma propuesta O(n lg n) es correcta.
Este documento describe los métodos de análisis nodal y de malla para analizar circuitos eléctricos. Explica cómo aplicar el análisis nodal a diferentes tipos de circuitos que contienen fuentes independientes o controladas de corriente o voltaje. También proporciona ejemplos numéricos para ilustrar los pasos del método.
El documento trata sobre circuitos integrados MSI y sus aplicaciones. Explica el funcionamiento de sumadores de 4 bits, incluyendo la lógica para obtener la suma y la salida de carry. También presenta diagramas y ecuaciones para sumadores de más bits.
Este documento proporciona instrucciones sobre seguridad en el laboratorio, incluyendo reglas para el mantenimiento del área de trabajo, ropa y equipo de protección adecuados, uso seguro de herramientas y equipos de medición, y procedimientos en caso de incendios o emergencias médicas. También enumera materiales y equipos comúnmente utilizados en un laboratorio de redes eléctricas.
Este documento describe diferentes configuraciones de circuitos de polarización tipo H para transistores. Explica que la polarización tipo H busca hacer el punto de operación del transistor más independiente del parámetro beta. Luego, detalla que mediante el uso de parámetros adecuados en el circuito, es posible mantener los niveles de corriente de colector e Icq y voltaje Vceq fijos a pesar de los cambios en beta. Finalmente, presenta ejemplos para calcular los niveles de Ic y Vce en configuraciones de divisor de volta
Este documento presenta 15 preguntas de opción múltiple sobre conceptos de física como capacitancia, corriente eléctrica, campo eléctrico inducido y fuerzas magnéticas. Las preguntas involucran circuitos eléctricos, capacitores, solenoides y lazos de alambre expuestos a campos magnéticos. El estudiante debe seleccionar la respuesta correcta y mostrar los cálculos para cada problema físico.
Este documento presenta Javadoc, una herramienta para generar documentación automática de código Java. Explica cómo usar comentarios Javadoc para documentar clases, métodos y otros elementos, incluyendo etiquetas como @param, @return y @throws. También cubre temas como heredar documentación con {@inheritDoc} y enlazar partes de la documentación con {@link}.
El documento resume el método del Teorema Maestro para resolver ecuaciones de recurrencia. Explica que primero se debe verificar que la ecuación tenga cierta forma y luego identificar a qué caso pertenece dependiendo de cómo crezca la función f(n) en comparación con nlgb(a). Una vez identificado el caso, el Teorema Maestro indica la forma de la solución. Finalmente, se hicieron ejercicios para aplicar el método y uno que involucraba reconocer tres cartas secretas en un mazo.
El documento describe las tecnologías de almacenamiento óptico como CD-ROM, DVD y discos Blu-ray. Un CD-ROM puede almacenar 650 MB de datos y 70 minutos de audio usando una base de plástico con una capa reflectante. Los datos se almacenan como una serie de microscópicos agujeros que son leídos por un láser de baja potencia.
El documento presenta ejemplos de cómo reemplazar redes eléctricas equivalentes por una sola fuente de voltaje o corriente real mediante transformaciones y reducciones. Se explican conceptos como redundancia en serie y paralelo y cómo eliminar elementos redundantes reemplazándolos por un cortocircuito o circuito abierto.
1) Una barra conductora colocada sobre una varilla en forma de U en un campo magnético variable experimentará una fuerza que hará que se mueva hacia abajo.
2) La fem inducida en la barra es igual a la variación del flujo magnético a través de la barra debido al movimiento de la barra y la variación del campo magnético en el tiempo.
3) La fem inducida es igual a B0e-at(aA - Lv), donde B0 es la intensidad inicial del campo magnético, a es una constante, A es el á
Este documento presenta la resolución de dos ejercicios relacionados con ecuaciones diferenciales ordinarias de primer orden. En el primer ejercicio, se determina que una ecuación dada no es exacta y se encuentra su factor integrante y solución general implícita. En el segundo ejercicio, se multiplica la ecuación por una función para hacerla exacta y así hallar su solución general explícita.
Este documento explica el algoritmo quicksort, un método de ordenamiento por división y conquista. Se divide el vector a ordenar en dos segmentos usando una función de partición que usa un elemento pivote. Luego se ordenan recursivamente los segmentos resultantes hasta que contienen un solo elemento. El tiempo de ejecución promedio es O(n log n) pero en el peor caso es O(n2). Aunque el peor caso es ineficiente, el comportamiento promedio de quicksort es eficiente, haciéndolo popular.
Electronica modelaje de transitores bipolaresVelmuz Buzz
Este documento resume los modelos de circuitos equivalentes de transistores bipolares. Explica cómo reemplazar fuentes DC y capacitores por cortocircuitos equivalentes para obtener un modelo de AC. También describe parámetros importantes como impedancia de entrada y salida, ganancia de voltaje y corriente, y fase. Finalmente, analiza las configuraciones base común y emisor común, incluyendo sus corrientes y impedancias.
Este documento presenta una introducción al análisis de algoritmos de ordenamiento y búsqueda. Explica los objetivos de calcular los tiempos de ejecución de algoritmos en función del tamaño de las instancias y de comprender mejor los resultados a través de la interpretación. También introduce los métodos algebraico e iterativo y las notaciones asintóticas O, Ω y θ que se utilizarán. Luego presenta ejercicios resueltos sobre un algoritmo de ordenamiento por selección, búsqueda secuencial y búsqueda binaria, analiz
El documento describe la técnica "divide y vencerás" para resolver problemas de forma eficiente dividiéndolos en subproblemas más pequeños. Explica los requisitos para aplicarla, el esquema recursivo general y análisis de complejidad. Luego presenta ejemplos como búsqueda de máximo/mínimo, ordenación, selección, multiplicación de enteros y matrices.
1) El documento presenta un análisis del algoritmo de ordenamiento por inserción, incluyendo un loop invariante para probar su corrección y cálculos de su complejidad en los casos mejor, peor y promedio.
2) La complejidad en el caso mejor es O(n), mientras que en el peor caso es O(n2), debido a que el número de comparaciones en cada iteración puede variar dependiendo de la entrada.
3) El análisis incluye cálculos para determinar el número de operaciones básicas en función de parámetros como t_
El documento trata sobre la eficiencia de los algoritmos y métodos para analizarla. Explica conceptos como notaciones asintóticas, órdenes de eficiencia comunes como O(n), O(n2) y O(n log n) y cómo calcular la eficiencia de un algoritmo en función del tamaño de la entrada obviando factores constantes.
El documento trata sobre el análisis de algoritmos. Explica conceptos como la complejidad de algoritmos, órdenes de complejidad como O(n), Ω(n) y Θ(n), y la complejidad de instrucciones básicas como asignaciones, secuencialidad, bucles y condicionales. También menciona brevemente un problema clásico de análisis de algoritmos.
Este documento presenta conceptos sobre análisis de algoritmos como complejidad computacional, notación O, casos de complejidad (mejor, peor y promedio), comparación de algoritmos y más. Los objetivos son calcular la complejidad de algoritmos y determinar cuál es mejor en ciertas circunstancias basado en tiempos de corrida y complejidad asintótica.
El documento describe la relación Q entre funciones f y g donde f está en O(g). Explica que Q es reflexiva y transitiva pero no es un orden parcial ni una relación de equivalencia. También presenta 8 funciones {f1, f2, ..., f8} y pide dibujar el diagrama de la relación Q sobre estas funciones según la definición dada.
Este documento presenta la resolución de 66 problemas de análisis y diseño de algoritmos. Los problemas cubren temas como el orden temporal y espacial de algoritmos, búsquedas, ordenación, y estructuras de datos como montículos y árboles binarios. Se proporcionan algoritmos para resolver cada problema y un análisis de su complejidad en el caso promedio y peor caso. El documento busca ayudar a comprender mejor los conceptos fundamentales del diseño y análisis de algoritmos.
En la ciencia de la computación los algoritmos son más importantes que los LP o que las computadoras; la solución de un problema haciendo uso de las computadoras requiere por una parte un algoritmo o método de resolución y por otra un programa o codificación del algoritmo en un LP. Ambos componentes tienen importancia; pero la del algoritmo es absolutamente indispensable; sabemos que un algoritmo es una secuencia de pasos para resolver un problema.
Este documento describe el análisis de algoritmos y la complejidad algorítmica. Explica cómo calcular el tiempo de ejecución de diferentes algoritmos usando tablas de conteo y cómo determinar la complejidad algorítmica usando las funciones O. Proporciona ejemplos para ilustrar los conceptos.
Este documento describe el análisis de algoritmos y la complejidad algorítmica. Explica cómo calcular el tiempo de ejecución de diferentes algoritmos usando tablas de conteo y cómo determinar la complejidad algorítmica usando las funciones O. Proporciona ejemplos para ilustrar los conceptos.
1) El documento analiza la notación O para describir el orden de crecimiento de funciones. 2) Explica que c(n) es el número de comparaciones de la ordenación por selección para arreglos de tamaño n, que es del orden de n^2. 3) También explica que s(n) es el número de swaps del mismo algoritmo, que es del orden de n.
1) El documento habla sobre técnicas para resolver recurrencias, como sustitución, árboles de recurrencia y la ecuación característica. 2) Explica cómo usar la sustitución para adivinar la solución de una recurrencia y luego probarla con inducción matemática. 3) Introduce los árboles de recurrencia como una técnica general para resolver recurrencias de forma sistemática.
El documento introduce el análisis de algoritmos, explicando que estudia la eficiencia de los algoritmos desde un punto de vista teórico. Describe dos algoritmos de ordenamiento, el ordenamiento por mezcla (merge sort) y el ordenamiento Shell, detallando sus pasos y complejidad temporal.
El documento introduce el análisis de algoritmos, explicando que estudia la eficiencia de los algoritmos desde un punto de vista teórico. Describe dos algoritmos de ordenamiento, el ordenamiento por mezcla (merge sort) y el ordenamiento Shell, detallando sus pasos y complejidad temporal.
Este documento presenta la resolución de varios problemas relacionados con ecuaciones diferenciales. En el primer problema, se determina el orden y tipo de varias ecuaciones diferenciales. En el segundo, se verifica que ciertas funciones son soluciones de ecuaciones diferenciales dadas. El tercer problema determina valores de r para que funciones de la forma y=ert sean soluciones. El cuarto problema resuelve un caso similar. El quinto problema modela el movimiento de un péndulo usando la conservación de la energía. El sexto problema analiza la des
El documento habla sobre el análisis de algoritmos y la complejidad de tiempo. Explica conceptos como la notación O para describir el orden de complejidad asintótico de un algoritmo, así como reglas para calcular la complejidad de estructuras como secuencias, decisiones if/else, bucles anidados y llamadas a procedimientos. También incluye ejemplos de código y sus respectivos órdenes de complejidad como O(n3).
Este documento presenta un resumen de los conceptos fundamentales del análisis de algoritmos y la complejidad computacional. Introduce las medidas de tiempo de ejecución de algoritmos y las funciones asintóticas para analizar el comportamiento cuando el tamaño del problema tiende a infinito. Define las clases de órdenes de complejidad como O(1), O(log n), O(n), O(n log n), etc. y explica su impacto práctico al resolver problemas de diferentes tamaños. Finalmente, enumera propiedades matemáticas para calcular ór
1) El documento presenta un análisis de algoritmos que incluye conceptos como algoritmo, complejidad algorítmica y notación asintótica. 2) Explica los componentes de un algoritmo y características como precisión y finitud. 3) Detalla métodos para determinar la complejidad de algoritmos como reglas para ciclos, sentencias condicionales y más.
Este documento describe el algoritmo de criba cuadrática, un método para factorizar números enteros compuestos. Explica que intenta encontrar dos números x e y tales que x2 ≡ y2 (mod n), lo que implicaría que n divide a (x - y)(x + y). También presenta un ejemplo paso a paso de cómo aplicar el algoritmo para factorizar el número 24961 en sus factores primos 109 y 229.
Este documento presenta un capítulo sobre ecuaciones diferenciales de primer orden. Introduce conceptos clave como orden, grado y linealidad de ecuaciones diferenciales. Explica cómo encontrar soluciones generales y particulares para diferentes tipos de ecuaciones diferenciales de primer orden, incluyendo ecuaciones lineales, separables y exactas. Finalmente, incluye ejemplos resueltos para ilustrar los métodos.
El documento describe las características principales del lenguaje de programación Ruby. Ruby es un lenguaje interpretado, orientado a objetos y de tipado dinámico. No requiere declaraciones de variables y tiene una sintaxis simple. Todo en Ruby es un objeto y admite características como clases, herencia, métodos, bloques e iteradores.
Este documento presenta una introducción a los lenguajes de programación. Explica que los lenguajes de programación son fundamentales en ciencias de la computación ya que nos permiten comunicarnos con las máquinas y otras personas. Luego, describe brevemente los objetivos de estudiar lenguajes de programación, su historia, los principales paradigmas (imperativo, funcional, orientado a objetos y lógico) y algunos criterios para evaluar qué hace que un lenguaje sea bueno, como su facilidad de escritura, legibilidad y capacidad de abstracción
El documento trata sobre la capa de aplicación en redes. Explica conceptos como las arquitecturas cliente-servidor y punto a punto, los protocolos populares como HTTP, FTP y correo electrónico, y cómo los procesos se comunican a través de sockets utilizando direcciones IP y números de puerto. También describe los requisitos de servicios de transporte para diferentes aplicaciones y los protocolos TCP y UDP.
El documento describe los protocolos rdt2.2, rdt3.0 y rdt3.1 para la transferencia confiable de datos a través de una capa de transporte. Rdt2.2 utiliza solo ACK para confirmar la recepción de paquetes. Rdt3.0 introduce temporizadores para retransmitir paquetes si no se recibe un ACK dentro de un tiempo razonable, para manejar la pérdida de paquetes. Rdt3.1 introduce pipelining mediante el envío múltiple de paquetes sin esperar ACK, mejorando la utilización pero requiri
El documento trata sobre la capa de red. Explica los principios detrás de los servicios de la capa de red como los modelos de servicios, el enrutamiento y reenvío. También describe cómo funcionan los routers, incluyendo los algoritmos de enrutamiento y cómo se implementa el enrutamiento en Internet usando protocolos como RIP, OSPF y BGP.
Este documento describe los principios fundamentales de la capa de enlace de datos. Explica los servicios clave que brinda la capa de enlace, como detección y corrección de errores, acceso múltiple al canal compartido, direccionamiento de capa de enlace y transferencia confiable. También describe varias tecnologías comunes de capa de enlace como Ethernet, protocolos de acceso múltiple como TDMA y CSMA/CD, y métodos para detección y corrección de errores como checksums y CRC. El objetivo es comprender cómo la capa
La estructura organizacional se refiere a la división formal del trabajo y la coordinación de tareas para cumplir los objetivos de la organización. Esto incluye la asignación de tareas y responsabilidades a puestos individuales, el establecimiento de líneas de autoridad y la asignación de recursos. Algunas decisiones clave en la estructura organizacional son la especialización del trabajo, la departamentalización, la cadena de mando y el grado de centralización versus descentralización.
Inteligencia artificial sistema expertoVelmuz Buzz
El documento describe los objetivos y métodos de los sistemas expertos, incluyendo su estructura, componentes y usos potenciales. Explica que los sistemas expertos pueden utilizarse para la interpretación de datos, diagnóstico y reparación, monitoreo y control, predicción, planeación, diseño y configuración e instrucción o tutoría; sin embargo, también enfrentan limitaciones como la representación de conocimiento temporal o espacial.
El documento habla sobre los transistores bipolares de unión (BJT) y sus características. Explica que los BJT consisten en dos capas de material tipo "n" y una tipo "p", o viceversa. Describe la construcción básica del BJT y cómo funciona, incluyendo las regiones de operación (corte, lineal y saturación). También cubre las configuraciones básicas del BJT (base común, emisor común y colector común), y sus curvas características de entrada y salida.
El documento explica los diferentes tipos de rectificadores de media onda y onda completa, y cómo se usan junto con filtros y reguladores para crear fuentes de alimentación no reguladas. Incluye ejemplos de cálculos para diseñar tales fuentes, como encontrar el valor del capacitor de filtro requerido para obtener un voltaje de salida deseado.
Este documento describe diferentes circuitos de polarización de corriente continua (CC) para amplificadores y transistores. Explica cómo establecer un punto de operación a través de la corriente y el voltaje para definir la región de amplificación de la señal. También describe las regiones de corte y saturación, y cómo la polarización afecta el punto de operación y la variación de la señal de salida. Finalmente, analiza circuitos de polarización fija y estabilizada en el emisor.
El documento presenta varios circuitos electrónicos con transistores y diodos zener. Incluye problemas para hallar puntos de operación de transistores, demostrar que un diodo zener está funcionando correctamente y calcular potencia consumida. También contiene ejemplos de reguladores de voltaje con configuraciones serie, paralelo y Darlington.
El documento resume diferentes configuraciones de polarización para transistores JFET y MOSFET de canal N y P. Explica cómo calcular los puntos de operación mediante métodos matemáticos y gráficos para configuraciones de polarización fija, autopolarización y entrada común. Además, describe cómo determinar los valores de resistencias para configuraciones de divisor de voltaje y retroalimentación.
Electronica analisis a pequeña señal fetVelmuz Buzz
1) Los amplificadores con transistores de efecto de campo (FET) proporcionan una alta ganancia de voltaje y una alta impedancia de entrada. 2) Los dispositivos FET como los MOSFET decrecientes se pueden usar para diseñar amplificadores con ganancias similares de voltaje, aunque los MOSFET tienen una mayor impedancia de entrada. 3) El modelo equivalente de pequeña señal para los FET es más simple que para los BJT, usando el factor de transconductancia gm en lugar del factor de ganancia β.
Electronica transitores efecto de cambioVelmuz Buzz
Este documento describe los transistores de efecto de campo (FET), incluyendo sus características principales, tipos (JFET y MOSFET), y operación. Explica que los FET son dispositivos de tres terminales controlados por voltaje en lugar de corriente, y que los MOSFET se han vuelto muy populares debido a su pequeño tamaño y proceso de fabricación más simple en comparación con los BJT. También describe la construcción y operación básicas de los JFET y MOSFET.
Este documento describe circuitos secuenciales sincrónicos y sus clasificaciones. Explica la estructura básica de una máquina de estado finito sincrónica (MSS) y cómo usa flip-flops y circuitos combinacionales para cambiar entre estados basados en la entrada y la señal de reloj. También introduce diagramas de estados como una herramienta para representar visualmente las transiciones de estado de una MSS.
La replicación requiere que las características usadas sean compatibles entre el maestro y los esclavos. Si un comando falla en un esclavo, la replicación se detiene hasta que se corrija el problema y se reinicie. Los esclavos intentan reconectarse automáticamente con el maestro si se pierde la conexión. InnoDB es más adecuado para datos críticos que requieren transacciones, mientras que MyISAM tiene mejor rendimiento para aplicaciones que principalmente seleccionan datos.
Este documento explica las diferencias entre OLTP y OLAP. OLTP se refiere a sistemas de bases de datos orientados a transacciones, mientras que OLAP se refiere a sistemas orientados al análisis. También describe los componentes clave de un sistema OLAP como el almacén de datos, ETL, cubos multidimensionales y herramientas de análisis.
1. Análisis de
Algoritmos
Pablo Vargas Boccanedes
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
2. TAREA 2
Guayaquil, Julio de 2009
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
3. Introducción
En esta sección analizaremos algoritmos de ordenamiento y
búsqueda, determinísticos y aleatorios, para lo cual calcularemos sus
tiempos de ejecución en función del tamaño de las instancias.
Entre los objetivos tenemos como más importante la
interpretación de los resultados y la comprensión de una mejor
manera los mismos, conocer el funcionamiento del Teorema
Maestro para la obtención de los tiempos de ejecución.
Otro de los objetivos importantes es presentar los métodos que
nos ayudarán a elegir entre algoritmos de diferente implementación
en función de nuestro medio, mediante el análisis de los tiempos de
ejecución y utilización de memoria que son principalmente los
limitantes en los ordenadores y equipos donde correrán dichos
algoritmos.
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
4. Teoría
Para la resolución de los problemas propuestos utilizaremos los
métodos Algebraico, Iterativo y del Teorema Maestro que consiste
sencillamente en aplicar las fórmulas para los casos en que sean
aplicables.
Los tiempos de ejecución serán expresados con Notaciones
Asintóticas, con lo cual tendremos referencias de la función del
tiempo de ejecución con otra conocida y ésta estará dada por su
comportamiento asintótico. Además de esta forma podemos
generalizar el tiempo de ejecución que ahora tendrá el mismo
comportamiento sobre cualquier sistema de cómputo en función de
las instancias.
El Teorema Maestro es aplicable a las funciones del tipo,
t(n)=at( ) + f(n)
є>0 f(n) єӨ( ) t(n) є Ө( )
f(n) є Ω( ) t(n) є Ө(f(n) )
є>0 f(n) єΩ( ) ^ n0 n≥ n0 c af( )≤cf(n) t(n) є Ө(f(n))
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
5. EJERCICIOS
Problema 1.- Discuta cualitativamente la diferencia entre el tiempo promedio de ejecución
de un algoritmo determinístico (tal como quicksort) y el tiempo esperado de un algoritmo
aleatorio (tal como quicksort aleatorio).
Solución:
Quicksort toma el primer elemento del conjunto, mientras que Quicksort Aleatorio
toma un pivote aleatorio dando la opción de tomar el del centro como pivote, esto ayudará a
un ordenamiento más rápido. Además sus tiempos de ejecución en promedio son, quicksort
Ө(nlgn), mientras que quicksort aleatorio se comporta como O(nlgn) lo que nos da
implícitamente la respuesta. Quicksort Aleatorio es más rápido que Quicksort.
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
6. Problema 2.- La ecuación de recurrencia t(n) = 7 t(n/2) + n2 describe el tiempo de
ejecución de un algoritmo A. Otro algoritmo A’ que resuelve el mismo problema tiene en
cambio la ecuación t(n) = at(n/4) + n2. ¿Cuál es el valor entero mayor que a puede tomar
para que el tiempo de ejecución de A’ sea asintóticamente más rápido que el de A?
Solución:
Utilizando el Teorema Maestro en ambas partes,
t(n)=7t( + n2 de aquí tenemos que a=7, b=2 y f(n)=n2
Propuesta, є>0 n2 O( )
D! є=3 n2 O( )
n2 O( ) como sabemos, esta expresión es verdadera.
t(n) Ө( )
Para la segunda parte,
t(n) = at(n/4) + n2
Propuesta, є>0 n2 O( )
Supongamos que esta expresión es verdadera. t(n) Ө(
Lo que plantea el ejercicio es lo siguiente O( ) entonces,
c,n0 n≥ n0 ≤
≤
≤
lg7 ≤
lg7 ≤ lg
7≤ a≥72
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
7. Problema 3.- Resuelva las siguientes ecuaciones de recurrencia utilizando el teorema
maestro. Justifique con claridad el uso de los varios casos.
t(n) = 9 t(n/3) + n2 + n/2 + 1
t(n) 5 t(n/2) + n2
t(n) = 12 T(n/4) + n2
Solución:
t(n) = 9 t(n/3) + n2 + n/2 + 1
a=9 b=3
f(n)= n2 + n/2 + 1
n2 + n/2 + 1 Ө( )
n2 + n/2 + 1 Ө (n2)
Aunque ya sabemos que esto es verdadero, lo vamos a demostrar:
c1,c2,n0 n≥ n0 c1 n2 ≤ n2 + n/2 + 1 ≤c2 n2
de aquí sabemos que esta expresión es válida con: c1=1; c2=2 ; n0=2
Por lo tanto el tiempo de ejecución t(n) Ө ((n2 + n/2 + 1)lgn)
t(n) Ө (n2lgn)
t(n) 5 t(n/2) + n2
a=5 b=2
f(n)= n2
n2 Ө (nlg5-є) si є=1
n2 Ө (n2) Sabemos que esto es verdadero y no lo vamos a demostrar.
Entonces el tiempo de ejecución en función de las instancias es t(n) Ө (nlg5)
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
8. t(n) = 12 t(n/4) + n2
a=12 b=4
f(n)= n2
n2 Ω( ) si
n2 Ω(n2) Sabemos que es verdadero por ser la misma función.
Ahora tenemos que comprobar la otra parte del teorema:
n0 n≥ n0 c 12 ≤c n2
n2≤c n2
≤c c=1
Dado que se cumplen ambas condiciones, podemos asegurar que t(n) Ө (n2)
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
9. Problema 4.- El tiempo de ejecución de la operación PARTICION sobre una secuencia de
tamaño n es teta(n); justifique esta afirmación.
Solución:
Si la partición ocurre desde el elemento de la segunda posición, de uno en uno,
tendremos (n-1) particiones y la operación partición se ejecuta en un tiempo, tenemos la
ecuación,
t(n)=1+ t(n-1) n
t(n)=1+1+t(n-2)
……………… 1 n-1
t(n)=1(n-1 veces)
t(n)= n-1 1 n-2
t(n) Ө(n) .. ..
. ..
D! c1,c2,n0 n≥ n0 c1n≤n-1≤c2n 1 1
c1= c2=1 n0=2 d!
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
10. Problema 7.- Los bancos registran las transacciones de una cuenta según el tiempo en que
estas ocurrieron, pero a la mayoría de las personas les gusta recibir sus estados de cuenta
con las transacciones listadas según el numero de cheque. Las personas normalmente giran
sus cheques en orden según el número de cheque, mientras que los beneficiarios los cobran
sin ningún orden particular. El problema de convertir de uno a otro ordenamiento es un
problema de ordenar una entrada que ya está casi ordenada. Se dice que el tiempo necesario
para realizar esta conversión por inserción es mejor que el obtenido por quicksort. ¿Qué
piensa usted? Discuta su respuesta.
Solución:
Dado que el número de cheques cobrados es menor o igual que el número de
cheques girados, y como los cheques girados están en orden, representarán más de la mitad
de la lista o registro del banco, por lo que el problema se reducirá a ordenar la mitad o
menos de elementos del registro equivalentes a los cheques cobrados.
Este algoritmo es más rápido que quicksort en este caso, porque la lista está casi ordenada y
las operaciones de intercambio que habrá que hacer son con los cheques cobrados. Si
hacemos con el algoritmo quicksort, este buscará un pivote y analizará por partes, aunque el
arreglo está casi ordenado, se harán las mismas comparaciones pero con más operaciones
de intercambio.
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
11. Problema 8.- Demuestre que el tiempo esperado para el algoritmo quicksort aleatorio es
Ω(n lg n).
Solución:
Dado que el algoritmo es aleatorio, el tiempo de ejecución estará dado por la suma
de los casos por donde ocurra la partición. Cada caso tiene tu propio tiempo de ejecución
dependiendo del lugar por el cual ocurre la partición.
t(n)=
Caso (rango) Caso (partición)
t(n)= (tp(n) + 1 0
2
t(n)= (Ө(n ) + +t(n-k)+…+1)
2 1
t(n)= (Ө(n2) + 2
3 2
t(k) O(klgk)
... ...
t(n)≤ (Ө(n2) + 2
n n-1
≤lg1+2lg2+..+(n-1)lg(n-1)
≤ (n-1)nlg(n-1)
t(n)≤ (Ө(n2) + 2
t(n) ≤ Ө(n) +(n-1)lg(n-1)
para grandes valores de n:
t(n) ≤ Ө(n) +(n)lg(n)
t(n) O(nlgn)
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
12. EJERCICIOS PROPUESTOS
Problema 9.- El algoritmo o método de Strassen se utiliza para multiplicar dos matrices
cuadradas de nxn en tiempos teta(nlg7); lo que representa una mejora considerable con
respecto al método que se usa tradicionalmente y que requiere tiempos teta(n3).
(Brevemente, el método consiste en dividir las matrices de nxn en matrices de (n/2)x(n/2),
calcular 7 matrices auxiliares y a partir de ellas encontrar las submatrices de la matriz
resultante) En este ejercicio haga lo siguiente:
a) Describa en qué consiste el método de Strassen. Ilustre el método con un ejemplo.
b) Explique por qué se dice que este es un algoritmo diseñado por división y conquista.
c) Demuestre que el método de Strassen es correcto
d) Encuentre la ecuación de recurrencia para calcular el tiempo de ejecución del
algoritmo.
e) Resuelva la ecuación obtenida en c).
Compare este resultado con el obtenido por el método convencional.
Problema 10.- Se quiere multiplicar dos numeros enteros muy grandes, cuyas representaciones requieren, por
ejemplo, 512 bits; el sistema de computo que tenemos esta limitado en cuanto a que la representacion y las
operaciones con numeros enteros deben hacerse con palabras de 64 bits. Diseñe por division y conquista un
metodo o algoritmo que permita realizar la multiplicacion de enteros de 512 bits en terminos de
multiplicaciones de palabras de 64 bits. Suponga que el tiempo para realizar sumas y desplazamientos de
palabras de 64 bits es teta(1). Siga los mismos pasos que en el ejercicio anterior.
Problema 11.- Se tienen un naipe de n cartas y se le pide a un voluntario que escoja una de las n cartas, cuya
identidad se mantendrá en secreto. Diseñe un metodo -similar al visto en clase- para encontrar dicha carta
“secreta” en tiempos teta(lg n). Considere que el tiempo para que el voluntario señale en que pila se
encuentra la carta es teta(1).
Problema 12.- En la industria de la construccion de semiconductores VLSI (very large scale integration) se
requiere probar millones de chips para detectar cuales estan defectuosos. La idea basica del metodo consiste
en hacer que los chips se prueben unos a otros; para ello se construye un dispositivo que reporta el estado del
par de chips instalado. Los chips buenos siempre dicen la verdad, es decir, reportan con exactitud si el chip
bajo prueba es bueno o malo; los chips malos no son confiables, es decir, dicen cualquier cosa sobre el otro.
Diseñe un metodo para identificar todos los chips buenos. El problema debe resolverse en tiempos O(n).
Suponga que el numero de chips buenos es mayor que el de chips malos, y que para efectos de calcular el
tiempo por cada chip que se prueba se cuenta 1.
Note que basta encontrar un chip que sea bueno para encontrar todos los demas que sean buenos en tiempos
lineales; asi que hay que encontrar un chip que sea bueno en tiempos O(n).
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.
13. CONCLUSIÓN
En esta tarea hemos revisado principalmente el método iterativo y el
Teorema Maestro para calcular nuestros tiempos de ejecución.
Destacamos la utilización de las definiciones de las notaciones
asintóticas para obtener resultados.
El nivel de dificultad de los ejercicios es mayor para esta tarea con
respecto a la anterior. El ejercicio más complicado al resolver fue el
numero 8 y se complica por el tema de las sumatorias y el árbol
recursivo.
Los ejercicios que no fueron resueltos y que los propongo son del 8
al 12, éstos incluirán un análisis mayor al cálculo de los tiempos de
ejecucíon.
Análisis de Algoritmos. Término I 2009. Ing. Carlos Jordán Autor: Pablo Vargas B.