¿Cuál es la importancia o los beneficios de un algoritmo informático para una persona normal que no es un programador informático?

Todos usamos algoritmos (en sentido amplio) en nuestra vida diaria. Lo primero que hacemos al despertar en el día es en realidad un algoritmo:

  1. Ojos abiertos
  2. Mirar el reloj
  3. Decide cómo nos sentimos
  4. Si todavía tiene sueño, apague la alarma y vuelva a comenzar
  5. De lo contrario, retire la cubierta
  6. Deslice las piernas fuera de la cama
  7. etcétera etcétera.

Eso es literalmente un algoritmo. Sin embargo, generalmente no pensamos en cada paso. Se vuelve “automático” para nosotros, ya que alguna otra parte de nuestro cerebro maneja las minucias, simplemente pensamos: “¿Levántate o no?”

Sin embargo, eso es solo un nivel profundo en el algoritmo. Por ejemplo, solo el primer paso (abrir los ojos) se puede dividir en muchos puntos menores. Cosas como enviar una señal a los músculos para mover los párpados. El punto 4 sobre decidir levantarse o posponer es en realidad bastante complejo, involucrando todo tipo de decisiones sobre lo importante que es levantarnos en un momento determinado e inspeccionar nuestros cuerpos para saber si hemos dormido lo suficiente y luego pesar los factores y la elección de un resultado diferente, en la programación que se llama una rama condicional.

En las computadoras, esos algoritmos son una de las partes más importantes de cualquier programa (si no la mayoría). Esto se debe a que la computadora no tiene las capacidades que nuestros cerebros tienen para descifrar el conjunto completo de pasos para el algoritmo a partir de una idea general.

En su mayoría, los no programadores no necesitan considerar estas cosas con ese nivel de detalle. Por lo general, es una buena idea obtener al menos un nivel más profundo en el algoritmo que solo pensar “Quiero ver qué personas han seguido en FaceBook han escrito”. Por ejemplo, esa puede ser una situación de Abrir un navegador, y conectarme a mi cuenta de FB, luego hacer clic en los enlaces y / o desplazarme hacia abajo para leer lo que despierta mi interés, aún un algoritmo.

Un algoritmo es un solucionador de problemas repetible metódico.
Un ejemplo:

Si usted es un vendedor ambulante y tiene tres ciudades distintas que debe visitar, y está tratando de encontrar la ruta más rápida entre las tres ciudades. Hay muchos factores o variables a tener en cuenta:

1. Distancia entre pueblos
Así, por ejemplo, tenemos a Dunmurry, Craigavon ​​y Dromore (las tres ciudades locales de Irlanda del Norte) y a mí como vendedor ambulante en Belfast. ¿Cuál es la cantidad mínima de viaje en millas que necesito para llegar desde las 3 ciudades y regresar a Belfast?

2. Tiempo tomado
Nuevamente usando mi ejemplo anterior, podemos tener rutas más largas que toman un tiempo más corto (por ejemplo, carreteras secundarias o carreteras B)

3. Tráfico

Una vez más, utilizando los pueblos de arriba, puede haber mucho tráfico en la carretera entre Dunmurry y Dromore, pero no tanto entre Dunmurry y Craigavon. ¿Eso hace una diferencia entre la ruta que tomo?

La solución más directa sería probar todas las permutaciones (combinaciones ordenadas) y ver cuál es la más barata (mediante una búsqueda de fuerza bruta). El tiempo de ejecución para este enfoque se encuentra dentro de un factor polinómico de [math] O (n!) [/ ​​Math], el factorial del número de ciudades, por lo que esta solución se vuelve poco práctica incluso para solo 20 ciudades.

Como puede ver, usar solo 3 ciudades en un país relativamente pequeño (Irlanda del Norte) para probar todas las permutaciones para descubrir cuál es la ruta más corta / mejor tomaría más de 24 rutas individuales para encontrar la mejor. Esto puede llevar mucho tiempo dado que en tráfico pesado un solo viaje entre cualquiera de las ciudades podría tomar hasta 1 hora. Eso es literalmente 3 días para resolver este problema por medios prácticos.

Lo que sería más rápido sería usar un algoritmo para encontrar la mejor ruta, algo así como el algoritmo de Christofides para el problema del vendedor ambulante.

Hay muchas otras soluciones a este problema con distancias más grandes y más ciudades involucradas.

Es por eso que los algoritmos son útiles para los no programadores.

Problema del vendedor ambulante – Wikipedia

Todos dependemos de algoritmos informáticos si usamos una computadora de cualquier manera en cualquier momento del día. Entonces, independientemente de quién sea, si usa una computadora, los algoritmos son importantes para usted.

Si te refieres a los beneficios en términos de conocer o comprender los algoritmos informáticos, entonces diría que los beneficios estarían en el desarrollo de la fortaleza mental y la claridad de la forma en que aprender matemáticas o resolver acertijos agudiza y fortalece la mente. Básicamente, los algoritmos son soluciones a los problemas.

Además, aprender sobre algoritmos y computadoras proporcionaría información sobre cómo se ha construido y opera nuestra sociedad tecnológica. Comprender cómo funcionan las computadoras es muy enriquecedor dada la dependencia que tenemos de las computadoras en nuestra vida diaria. Es lo mismo que saber cómo funcionan la electricidad, la plomería, las neveras o los automóviles. No tiene que saberlo, pero si lo hace, el conocimiento es poder.

Un algoritmo es solo una herramienta utilizada por el programador para proporcionar una solución a un problema. No creo que un programador que no sea de computadora deba preocuparse particularmente por los detalles de un algoritmo. Es un “detalle de implementación”. Es más importante entender lo que puede hacer con el software (y lo que no puede o es difícil).

xkcd: tareas

More Interesting

¿Cuál es el futuro del hardware de la computadora? ¿Qué tan poderosas serán nuestras computadoras? ¿Cuánta RAM, potencia de CPU y memoria estarán disponibles en 10, 20 o 30 años para el consumidor promedio?

Cómo aprobar un examen sobre la teoría de los autómatas y los idiomas formales

En el aprendizaje automático, ¿debería concentrarme más en las matemáticas o está bien entender cómo funcionan los algoritmos y omitir algunas matemáticas complicadas?

¿Es posible una computadora biológica cuántica Lisp?

¿Soy el único que piensa que la carga diferida de módulos / código de AngularJS es increíblemente estúpida?

Si quisiera crear mi propia wiki que eventualmente podría monetizar a través de anuncios, ¿cuál sería la mejor / más rápida forma de hacerlo?

¿Cuáles son algunos proyectos que implementan Machine Learning e Ingeniería Eléctrica?

Excepto la arquitectura Lambda, ¿qué otras arquitecturas de big data existen?

¿Cuál es la función objetivo en el aprendizaje automático?

¿Aplicaciones de inteligencia artificial para finanzas?

Clasificación (aprendizaje automático): ¿Cuándo debo usar un clasificador K-NN sobre un clasificador Naive Bayes?

¿Qué puedo hacer para aumentar mis posibilidades de transferirme a otra universidad mejor después de mi primer año?

¿Cuál será el trabajo de un programador en un mundo donde la computadora está controlada por voz?

¿Cómo optimiza Nvidia juegos específicos a través de actualizaciones de controladores?

¿Cómo es útil una computadora?