2018-12-04 14:40:14 -03:00
\author { }
\date { \today }
\documentclass [12pt] { article}
\usepackage [utf8] { inputenc} %\ This allows spanish tildes
\usepackage [spanish] { babel}
\usepackage { array}
\usepackage { adjustbox}
\usepackage { titling}
\usepackage [left=2cm,right=2cm,top=2cm,bottom=2cm,a4paper] { geometry}
\usepackage { amsmath}
\title { Tarea 2: Encontrar el par de puntos más cercano}
\usepackage { listings}
\lstset {
basicstyle=\small \ttfamily ,
columns=flexible,
breaklines=true,
inputencoding=utf8,
extendedchars=true,
literate={ á} { { \' a} } 1 { é} { { \' e} } 1 { í} { { \' i} } 1 { ó} { { \' o} } 1 { ú} { { \' u} } 1 { ñ} { { \~ n} } 1 { Á} { { \' A} } 1 { É} { { \' E} } 1 { Í} { { \' I} } 1 { Ó} { { \' O} } 1 { Ú} { { \' U} } 1 { Ñ} { { \~ N} } 1
}
\usepackage { hyperref}
\hypersetup { colorlinks=true,allcolors=black,pdftitle={ Tarea 1: Ordenamiento} }
\usepackage { hypcap}
\pretitle { %
\begin { center}
\LARGE
\includegraphics [width=4cm] { ubblogo.png} \\ [\bigskipamount]
\Large
\textbf { Análisis y Diseño de Algoritmos} \\ [\smallskipamount]
}
\posttitle { \end { center} }
\begin { document}
\hypersetup { pageanchor=false}
\clearpage \maketitle
\thispagestyle { empty}
\begin { flushright}
\textbf { Integrantes:} \\
Christopher Cromer\\
Rodolfo Cuevas
\end { flushright}
\begin { flushright}
\textbf { Profesor:} \\
Pedro Rodríguez
\end { flushright}
\begin { flushright}
\textbf { Ayudantes:} \\
Carlos Faúndez\\
Xavier Canales
\end { flushright}
\newpage
\clearpage
\thispagestyle { empty}
\tableofcontents
\newpage
\hypersetup { pageanchor=true}
\pagenumbering { arabic}
\section { Pseudo código}
\subsection { Brute Force}
2018-12-14 19:08:48 -03:00
\lstinputlisting { pseudo/brute_ force.txt}
2018-12-04 14:40:14 -03:00
\newpage
\subsection { Divide and Conquer}
2018-12-14 20:05:31 -03:00
\lstinputlisting { pseudo/divide_ and_ conquer.txt}
2018-12-04 14:40:14 -03:00
\newpage
\section { Resultados}
\subsection { Análisis temporal}
\subsubsection { Brute Force}
\underline { Caso Promedio:} $ \Theta ( n log n ) ) $ \\
2018-12-14 20:29:29 -03:00
Para el algoritmo de fuerza bruta el tiempo de respuesta es igual en todos los casos de $ n ^ 2 $ , esto se debe a que este donde este los puntos mas cercanos este recorrerá todo de igual forma. Esto es netamente debido a el cómo se programó las funciones con ciclos for anidados que son altamente costosos en tiempo.\bigskip
2018-12-04 14:40:14 -03:00
\underline { Peor Caso:} $ O ( n log n ) $ \\
2018-12-14 20:28:04 -03:00
El peor caso es similar al caso promedio.\bigskip
2018-12-14 20:20:59 -03:00
2018-12-04 14:40:14 -03:00
\underline { Mejor Caso:} $ \Omega ( n log n ) $ \\
2018-12-14 20:28:04 -03:00
El mejor caso es similar al caso promedio.\bigskip
2018-12-14 20:20:59 -03:00
2018-12-04 14:40:14 -03:00
\subsubsection { Divide and Conquer}
\underline { Caso Promedio:} $ \Theta ( n log n ) ) $ \\
2018-12-14 20:28:04 -03:00
Para el algoritmo de dividir y conquistar se repite lo del análisis anterior que es la misma complejidad en todos los casos, de nuevo producto de que tiene que recorrer todo el mapa de puntos para llegar a saber cuales son los mas cercanos. Aquí es $ n log ( n ) $ , ya que este algoritmo divide el mapa para y compara las mitades separadamente lo cual es mucho mas eficiente que el caso anterior.\bigskip
2018-12-04 14:40:14 -03:00
\underline { Peor Caso:} $ O ( n log n ) $ \\
2018-12-14 20:28:04 -03:00
El peor caso es similar al caso promedio.\bigskip
2018-12-04 14:40:14 -03:00
\underline { Mejor Caso:} $ \Omega ( n log n ) $ \\
2018-12-14 20:28:04 -03:00
El mejor caso es similar al caso promedio.\bigskip
2018-12-04 14:40:14 -03:00
\newpage
\subsection { Datos}
La siguiente tabla contiene los resultados de las pruebas de los 2 algoritmos medidos en segundos. Para las pruebas usábamos un computador que tiene 4 núcleos de 3.2GHz y 16GB de memoria RAM.
\begin { center}
\begin { tabular} { |c|c|c|}
\hline
\multicolumn { 3} { |c|} { Algoritmos para encontrar los 2 puntos más cercano} \\
\hline
\rule [-1ex] { 0pt} { 3.5ex} & Brute Force & Divide and Conquer \\
\hline
2018-12-14 18:57:15 -03:00
\rule [-1ex] { 0pt} { 3.5ex} 1.000.000 & 15403.951[s] & 3[s] \\
2018-12-04 14:40:14 -03:00
\hline
2018-12-14 20:28:04 -03:00
\rule [-1ex] { 0pt} { 3.5ex} 5.000.000 & 372984[s] & 11.210[s] \\
2018-12-04 14:40:14 -03:00
\hline
\end { tabular}
\end { center}
\newpage
\subsection { Gráfico}
2018-12-14 19:38:53 -03:00
\begin { center}
\includegraphics [width=0.96\textwidth,height=0.96\textheight,keepaspectratio] { graph.png}
\end { center}
2018-12-04 14:40:14 -03:00
\newpage
\section { Conclusiones}
2018-12-08 20:36:29 -03:00
Para encontrar el par de puntos más cercano la ecuación es\\ $ d = \sqrt { ( x _ 1 - x _ 2 ) ^ 2 + ( y _ 1 - y _ 2 ) ^ 2 } $
2018-12-04 14:40:14 -03:00
\end { document}