[SER222] Asymptotics (1/5): Bounding Functions

Ruben Acuna
30 Sept 201703:39

Summary

TLDREste video introduce la idea de 'enmarcar' una función, esencial en análisis asintóticos. Se explica cómo crear funciones que sean siempre mayores o menores que la función original, proporcionando límites superior e inferior. Estas 'funciones de enmarcado' son útiles para entender el comportamiento a largo plazo de una función, ignorando detalles a corto plazo. Se enfatiza la importancia de examinar el límite cuando las entradas son grandes, evitando casos especiales y centrándose en el comportamiento general.

Takeaways

  • 📐 La idea de 'bounding a function' es crear una función que está siempre por encima o por debajo de otra función original.
  • 🔼 Una 'upper bound' es una función que siempre es más grande que la función original para valores suficientemente grandes de n.
  • 🔽 Una 'lower bound' es una función que siempre es más pequeña que la función original.
  • 🌐 La boundedness ayuda a entender el comportamiento de una función sin tener que conocerla directamente.
  • 📉 La aproximación asintótica se enfoca en el comportamiento de las funciones cuando n se hace muy grande, ignorando el comportamiento inicial.
  • 🚫 La asintótica evita preocuparse por casos especiales que ocurren con entradas pequeñas a programas.
  • 📈 Las funciones de crecimiento (growth functions) se utilizan para modelar el número de operaciones necesarias para resolver problemas de diferentes tamaños.
  • 🔍 La derivación de una función de crecimiento es un tema que se explorará más adelante en el video.
  • 📊 La visualización gráfica de funciones ayuda a comprender las relaciones entre ellas y a identificar bounds.
  • 🔑 La capacidad de limitar una función nos da una forma de predecir su comportamiento en términos de sus bounds.

Q & A

  • ¿Qué es la idea principal de este video?

    -El video busca introducir la idea de limitar o 'bounding' una función, concepto que puede parecer abstracto pero que resulta útil para entender el comportamiento de las funciones, especialmente en términos asintóticos.

  • ¿Qué significa 'bounding' una función?

    -El 'bounding' de una función implica crear otra función que esté siempre por encima (upper bound) o por debajo (lower bound) de la función original, proporcionando así una especie de límite para el comportamiento de esta.

  • ¿Cuál es la importancia de los upper bounds y lower bounds en la análisis de funciones?

    -Los upper bounds y lower bounds son importantes porque nos permiten entender el comportamiento general de una función sin tener que conocer su fórmula exacta, dándonos una idea de su comportamiento en límites extremos.

  • ¿Por qué es útil examinar el límite de una función?

    -Examinar el límite de una función es útil para comprender su comportamiento a largo plazo, especialmente cuando las entradas a programas son muy grandes, y para evitarnos tener que lidiar con casos especiales que pueden ocurrir con entradas pequeñas.

  • ¿Qué es un upper bound en el contexto del video?

    -Un upper bound es una función que siempre es mayor o igual que la función original para valores suficientemente grandes de n, sirviendo como un límite superior para el comportamiento de la función.

  • ¿Qué representa un lower bound en relación a una función?

    -Un lower bound es una función que siempre es menor o igual que la función original, estableciendo un límite inferior para el comportamiento de la función.

  • ¿Cuál es la relación entre el bounding de una función y su comportamiento asintótico?

    -El bounding de una función es una herramienta para analizar su comportamiento asintótico, es decir, cómo se comporta la función cuando el tamaño del problema (n) se hace muy grande.

  • ¿Por qué es importante entender el comportamiento de las funciones para el análisis de programas?

    -Entender el comportamiento de las funciones es crucial para el análisis de programas porque nos permite predecir el rendimiento y el tiempo de ejecución que requerirá un programa para diferentes tamaños de entrada.

  • ¿Cómo se relaciona el concepto de 'bounding' con el análisis de la eficiencia de algoritmos?

    -El 'bounding' es una técnica utilizada en el análisis de la eficiencia de algoritmos para proporcionar límites que nos indican cuán eficiente o ineficiente puede ser un algoritmo en el peor o mejor de los casos.

  • ¿Qué es un growth function y cómo se relaciona con el bounding de funciones?

    -Un growth function es una función que representa el número de operaciones necesarias para resolver un problema de un tamaño dado. Se relaciona con el bounding porque se usa para establecer upper bounds y lower bounds para entender el comportamiento de los algoritmos a medida que el tamaño del problema crece.

  • ¿Qué se entiende por 't of n' en el contexto del video?

    -'t of n' se refiere a la función que resulta de un análisis empírico, que representa el tiempo que toma un algoritmo para procesar una entrada de tamaño n. Es una forma de medir el rendimiento del algoritmo.

Outlines

00:00

📈 Introducción al concepto de limitación de funciones

El vídeo comienza explicando la idea de limitar una función, que puede parecer abstrata al principio pero que resulta útil más adelante. Se presenta un gráfico con tres funciones y se enfatiza en una de ellas, llamada f(m). La limitación de una función implica encontrar otra función que sea siempre mayor que la original, lo cual se denomina un límite superior. Se ejemplifica con una función que crece rápidamente y siempre es mayor que f(n). La idea es analizar cómo se comporta la función en el límite, es decir, para valores de n muy grandes, ignorando los comportamientos iniciales y centrándose en el comportamiento a largo plazo. Esto se relaciona con el análisis asintótico y cómo se puede usar para entender mejor el comportamiento de las funciones de crecimiento en programas informáticos, evitando casos especiales con entradas pequeñas.

Mindmap

Keywords

💡Bounding a function

La idea de 'Bounding a function' se refiere a la creación de una nueva función que esté relacionada con la función que se está analizando, usualmente con el propósito de limitar o definir límites a su comportamiento. En el vídeo, se usa para explicar cómo se puede usar otra función, que siempre sea mayor o menor, para entender mejor el comportamiento de la función original. Esto se relaciona con el tema central del vídeo, que es el análisis de la complejidad computacional y cómo las funciones de crecimiento pueden ser limitadas por otras funciones.

💡Upper bound

Un 'Upper bound' es una función que es siempre mayor o igual que otra función dada. Se utiliza para establecer un límite superior para el comportamiento de una función. En el guion, se menciona que si la función f(n) siempre está debajo de la función A(n) para valores de n suficientemente grandes, entonces A(n) es un upper bound de f(n). Esto es útil para entender el comportamiento a largo plazo de f(n) sin preocuparse por comportamientos atípicos en valores pequeños de n.

💡Lower bound

Un 'Lower bound' es una función que es siempre menor o igual que otra función dada. Se utiliza para establecer un límite inferior para el comportamiento de una función. En el vídeo, se habla de b(n) como un ejemplo de lower bound, que siempre es menor que la función que se está analizando. Esto ayuda a entender los límites inferiores del comportamiento de la función y a proporcionar una visión más completa de su comportamiento general.

💡Asymptotic approach

El enfoque asintótico se refiere a la manera de analizar el comportamiento de funciones a medida que sus entradas se hacen muy grandes, ignorando detalles a corto plazo. En el vídeo, se destaca que este enfoque se centra en el comportamiento de las funciones cuando n se hace muy grande, en lugar de en los detalles iniciales. Esto es crucial para entender la eficiencia de los algoritmos y cómo se comportan en grandes escalas.

💡Limit

El 'limit' en matemáticas se refiere a la tendencia de una función a un cierto valor cuando su argumento se acerca a un punto específico. En el contexto del vídeo, el límite se utiliza para describir cómo las funciones de crecimiento se comportan a medida que el tamaño del problema se acerca a valores muy grandes, lo cual es fundamental para la comprensión de la eficiencia de los algoritmos.

💡Growth functions

Las 'growth functions' son funciones matemáticas que representan cómo el número de operaciones o pasos necesarios para resolver un problema crece con el tamaño del problema. En el vídeo, se menciona que estas funciones son útiles para modelar el comportamiento de los programas y para entender cómo se escala su eficiencia con diferentes tamaños de datos.

💡Problem size

El 'problem size' hace referencia al tamaño de la entrada de datos que se le da a un programa o algoritmo. En el vídeo, se discute cómo las funciones de crecimiento toman el tamaño del problema como entrada y producen el número de operaciones necesarias, lo que es crucial para entender la eficiencia del programa en diferentes escalas.

💡Operations

Las 'operations' son las acciones o pasos que un programa o algoritmo realiza para procesar una entrada y producir una salida. En el vídeo, se habla de cómo las funciones de crecimiento pueden predecir el número de operaciones que serán necesarias para resolver un problema de un tamaño específico, lo que es esencial para el análisis de la complejidad de los algoritmos.

💡Empirical analysis

El 'empirical analysis' se refiere al estudio basado en observaciones o datos experimentados. En el vídeo, se menciona que antes de asumir la existencia de una función de crecimiento, se podría haber realizado un análisis empírico para determinar la relación entre el tamaño del problema y el tiempo de ejecución del programa.

💡Special cases

Los 'special cases' son situaciones o condiciones particulares que pueden ocurrir en ciertos contextos y que pueden afectar el comportamiento general de una función o programa. En el vídeo, se indica que el enfoque asintótico ayuda a evitar preocuparse por estos casos especiales y se centra en el comportamiento típico de las funciones para grandes valores de n.

Highlights

Introduction to the concept of bounding a function

Utility of bounding functions in practical applications

Visual representation of bounding with a graph

Definition of an upper bound for a function

Explanation of how an upper bound functions

Importance of asymptotic analysis in bounding

Concept of looking at limits to understand function behavior

Avoidance of small input special cases in asymptotics

Definition of a lower bound for a function

Explanation of how a lower bound functions

Understanding a function through its bounds

Concept of boundedness and its implications

Practical use of bounding in analyzing growth functions

Avoidance of small input anomalies through asymptotics

Assumption of the existence of a growth function

Importance of growth functions in program analysis

Future discussion on deriving growth functions

Transcripts

play00:05

In this video, I want to introduce

play00:06

the idea of bounding a function.

play00:08

So this will seem to be kind of

play00:09

a very vague thing or maybe mathematical thing,

play00:13

but later on you'll see that this is actually

play00:14

gonna be useful to us.

play00:16

So consider the following, let's maybe

play00:17

look at the graph on the right hand side.

play00:19

The graph on the right hand side

play00:20

actually has three functions.

play00:21

And let me maybe highlight one of them.

play00:22

So let's say this middle one called f of m.

play00:27

The idea of bounding a function is

play00:28

to say okay,

play00:29

I could come up with another function

play00:31

that maybe is always going to be larger

play00:33

than the original function.

play00:35

So let's pretend that's an A there

play00:38

and this is an N.

play00:41

This function here, right?

play00:42

This left hand side one, you can see

play00:44

it's shooting up.

play00:45

If we project forward in our mind,

play00:47

that function is probably gonna grow

play00:48

pretty fast and is always gonna be larger

play00:49

than f of n.

play00:50

That is what we call an upper bound.

play00:52

It's a function, right, that somehow

play00:54

at the ending is telling us a little bit

play00:55

about f of n, right?

play00:56

F of n always lives below a of n.

play01:00

For sufficiently larger values of n.

play01:03

Part of the idea of boundedness is

play01:04

to say okay, hey, we're going to

play01:06

look at things in the limit.

play01:07

Right, this is an asymptotic approach

play01:09

where we basically say that we

play01:09

don't care about the little behavior here, right?

play01:12

Kind of the beginning of times,

play01:13

it doesn't matter all that much.

play01:15

And really what we care about is how

play01:17

things behave right when n gets really large.

play01:19

In journal, I used a phrase in the limit, right,

play01:22

because some of the things you'll be looking

play01:23

at, right, basically will be saying okay,

play01:25

I need to take the limit on this function

play01:27

and figure out how it behaves, you know,

play01:28

very long term.

play01:30

So that's what we'll be doing.

play01:31

Again, right, the idea of bounding a function

play01:33

is basically to create a new function

play01:34

which has some relationship to the one

play01:36

we're initially analyzing, right?

play01:37

So A is an upper bounding of f of n.

play01:39

We could also have, for example, b of n.

play01:41

B of n appears to be what's called a lower bounding, right?

play01:44

So it's something that's lower than,

play01:46

pretend that's an n there that I just wrote.

play01:47

It's always lower than the other function

play01:49

that I'm looking at.

play01:51

And again, this tells me a little bit about f, right?

play01:54

So if I have a and b, I know a little bit

play01:56

about f, even if I don't have f directly.

play01:58

And that'll be useful later on.

play02:00

For now, just think about the idea

play02:01

that I have functions, basically, that can

play02:02

sit on either side of another function

play02:04

to kind of close in on it.

play02:06

All right, to kind of give me this kind of

play02:07

limit or this kind of region, right,

play02:09

where you know, I know that f of n

play02:10

is gonna be between these two values, perhaps.

play02:14

So that's the idea of boundedness.

play02:15

I'm putting a bound that says the function

play02:17

can only go this far in either the upward

play02:19

or the downward direction.

play02:24

A little actually on the outside,

play02:25

a little question there on the other side,

play02:26

what makes asymptotics useful?

play02:27

What is the point of examining the limit?

play02:29

The idea is if I'm using this technique

play02:33

or this idea, right, in terms of growth functions,

play02:35

growth functions are in for programs.

play02:36

Sometimes when the inputs to programs

play02:38

are really small, strange things happen, right?

play02:40

There's kind of special cases maybe that occur.

play02:43

We're going to avoid that and basically say,

play02:44

okay, for particularly large inputs

play02:46

or particularly large data sets, what happens, right?

play02:49

Asymptotics avoids, right, how we deal with

play02:52

our little special cases there, right?

play02:53

Now the little region that I've

play02:57

denoted and here, I'm just gonna cross it out.

play02:58

Right, you wanna just skip all of that stuff.

play03:02

All right, so that's the basic idea of bounding

play03:04

a function and we're gonna really explore

play03:05

this idea of an upper and a lower bound.

play03:07

So up until now, we've been using t of n, right?

play03:09

That was the result of the function we got

play03:11

from our empirical analysis.

play03:13

The units on that was basically just time, right?

play03:15

Problem size in, time out.

play03:17

Here we're going to do is we're going to assume

play03:19

that we have an actual proper growth function, right?

play03:21

And the growth function's gonna take in

play03:23

the problem size in, but then its result

play03:25

is going to be the number of operations, right?

play03:26

The number of steps needed to occur

play03:28

to solve a problem of that particular size.

play03:30

So for now what we're going to do

play03:31

is we're actually going to assume

play03:33

that our growth function f of n exists.

play03:34

Later on we'll talk about how exactly to derive it.

play03:36

For now we'll just assume that it exists.

Rate This

5.0 / 5 (0 votes)

Étiquettes Connexes
FuncionesAsymptoticAnálisisEnmarcadoCotasAprendizajeProgramaciónMatemáticasOptimizaciónEficiencia
Besoin d'un résumé en anglais ?