Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Programas que calculan la complejidad operacional (https://www.clubdelphi.com/foros/showthread.php?t=39288)

Delphius 16-01-2007 10:05:43

Programas que calculan la complejidad operacional
 
Buenas foristas, escribo este hilo para preguntar si alguien conoce de algún software que permita calcular la complejidad operacional. Por ejemplo: 0(n^2), O(n log n), etc.

Claro, obvio, que sea para Delphi.

Veran, estoy documentando mis librerias, unidades, ... todo... y entre la info tengo pensando poner la complejidad ya que es un buen dato para mi. Hasta ahora llevo los cálculos a mano... y analizar un módlo me lleva tiempo... si se podría automatizar... estaría muy bueno (y por supuesto contento:D)

Desde ya muchas gracias
Saludos,

Neftali [Germán.Estévez] 16-01-2007 11:28:33

Creo que te refieres a esto, y hace un tiempo que estuvimos hablando de ello.

Delphius 17-01-2007 05:14:15

Lo siento Neftali pero eso no es lo que necesito
 
Cita:

Empezado por Neftali
Creo que te refieres a esto, y hace un tiempo que estuvimos hablando de ello.

Lo siento, pero no. El modelo COCOMO se utiliza para estimar el esfuerzo necesario para implementar y desarrollar un proyecto. Se como manejar ese modelo empírico.

A ver si me explico mejor. La complejidad operacional se lleva a cabo sobre un ALGORITMO. Y es una representación matemática de la dificultad y uso de operaciones que se llevan a cabo en dicho algoritmo. Por poner un ejemplo: una ordenación en burbuja tiene una complejidad O(n^2). Es decir que a medida que n (el tamaño) del vector aumenta, se requiere el cuadrado de operaciones para llevar a cabo el propósito.

Calcular la complejidad O() no es algo sencillo, si bien puede resultar mecánico en algunas ocasiones... en otras es muy tedioso. ¡A mi me toma 1 o 2 horas analizar un módulo con apenas unas 4 o 5 funciones/procedimientos! Por eso me estaba preguntando si alguien conoce alguna herramienta que me facilite la tarea.

Muchas gracias Neftali por ofrecer tu ayuda.

Saludos,

Neftali [Germán.Estévez] 17-01-2007 11:07:11

Lo siento, había entendido mal el mensaje inicial... :(

Delphius 18-01-2007 05:21:11

Cita:

Empezado por Neftali
Lo siento, había entendido mal el mensaje inicial...

No hay problema. No tienes porque pedir disculpas. Si uno lee bien lo que inicialmente puse:
Cita:

Empezado por Delphius
Buenas foristas, escribo este hilo para preguntar si alguien conoce de algún software que permita calcular la complejidad operacional. Por ejemplo: 0(n^2), O(n log n), etc.

Se dará cuenta de que falta algo en el medio: ¿Complejidad operacional de qué? ¿Gatos? ¿De donde saca esa función? Si, es cierto que un entendido del tema puede deducir bien de lo que pretendía hablar... pero por la manera en que fue redactado el mensaje, deja mucho que desear. Admito que no me di a explicar bien, estaba demasiado ocupado y no me tome mucho tiempo para pensar bien mi pregunta.

He estado buscando algun soft que me permita simplificar la tarea pero no encuentro nada. Por ahora a solo papel y lapiz y GANAS me estoy valiendo. Eso si, en cuanto llegue el turno de hacer los calculos para mis siguientes avances ¡Me muero!:(

Desde ya muchas gracias a todos los que dedicaron un tiempo para leer este hilo.

Saludos,

Delphius 19-01-2007 10:34:34

Bueno, despues de tanto divagar... y de exprimir mi cerebro. He visto que hay una manera sencilla de obtener la complejidad operacional de un algoritmo:D Lástima que sea a mano:(. Expongo de manera simple en que consiste por si alguno les sirve:

1. Cada sentencia se asignación o de operación tiene complejidad O(1)
2. La complejidad de una sentencia IF depende si se está evaluando el mejor o el peor caso. Si es el peor se busca la parte que maximice la cantidad de complejidad. Por ejemplo si la parte THEN es 0(n) y la parte ELSE es 0(n^2). La complejidad total del IF es 0(n^2). Si se está evualando el mejor caso, la que minimice. La complejidad de la condición es 0(1) por lo cual se busca: max(0(1) //IF, 0() //sentencia) o min(0(1),0()).
3. De un grupo de secuencia de operaciones. Se debe buscar la suma de dichas complejidades. Es decir la que maximice (independiente si es el peor o mejor caso). Algo como: max(01(),02()) Donde 01 es la complejidad de la sentencia 1 y 2... bueno... de la 2.
4. Para un bucle: se debe multiplicar la cantidad de veces que se realiza por la complejidad de sus secuencias. Por ejemplo n * 0(n^2) = 0(n^3)

La regla básica a seguir es que se analice desde el interior hacia el exterior. Es decir, desde la sentencias mas internas a las externas.
Lo que debe entenderse desde el comienzo del análisis es que factor se analiza. Generalmente se impone a "n" como el tamaño de los vectores, de una matriz, de una cadena, etc. Si no puede determinarse el factor de estudio, deberá emplearse otro factor a estudiar.

Saludos,

¡Y yo que me mataba haciendo operaciones matemáticas...!


La franja horaria es GMT +2. Ahora son las 00:24:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi