Galería de mapas mentales Conocimientos generales de algoritmos.
¡Comparta la versión completa de Algorithm General Knowledge! El contenido incluye comprensión de algoritmos, diseño de algoritmos, estrategias de algoritmos e introducción a algoritmos. El mapa es rico y detallado, amigos, comencemos a aprender ~
Editado a las 2023-03-14 21:49:53,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Conocimientos generales de algoritmos.
Comprender los algoritmos
Naturaleza
Los algoritmos tienen requisitos de claridad extremadamente estrictos
por ejemplo, la experiencia de Matchmaker: vivir cerca: ¿qué tan cerca se considera cerca? ¿cerca de casa? ¿Cerca del trabajo? Priorización entre múltiples ubicaciones...
Los algoritmos resuelven problemas con garantías deterministas.
El modelado es la esencia de la ventaja del algoritmo.
por ejemplo, cuando se compra un termo en línea, siempre se recomienda el termo; cuando se busca "The Wind", se recomiendan varias películas de espías.
Modelado: tratar diferentes problemas de la misma manera y resolverlos con el mismo conjunto de algoritmos
Los algoritmos no son buenos ni malos, son todos pensamientos humanos detrás de ellos.
la complejidad
Dificultades para evaluar la eficiencia del algoritmo: el uso del tiempo absoluto para evaluar la eficiencia no es aplicable
Dependencias de hardware
gigantesco
complejidad del tiempo
"Relación funcional" en la que el "número total de operaciones básicas" crece con el "tamaño de entrada" del algoritmo
Por ejemplo, para construir una pirámide de 10 metros de altura, el dibujo de diseño determina si se deben construir 100.000 piedras o 500.000 piedras: Base de piedra = operación básica; 10 metros = escala de entrada; dibujo = cantidad total de base de piedra la relación funcional entre la cantidad total de base de piedra y la altura de la pirámide es la complejidad del tiempo;
Formas de reducir la complejidad del tiempo
espacio para el tiempo
Complejidad espacial: una relación funcional en la que los recursos espaciales ocupados por el algoritmo aumentan a medida que aumenta el tamaño de entrada.
Es muy rentable sacrificar algo de espacio de almacenamiento (disco duro/memoria) a cambio de una velocidad de búsqueda más rápida.
divide y vencerás pensando
por ejemplo, desde la transformada de Fourier hasta la transformada rápida de Fourier, comprimir audio lleva de 1 día a 1 segundo.
Inspirar
Modelo de elección de utilidad: aproximarse a la realidad manteniendo la solubilidad
Utilidad: Satisfacción
por ejemplo, el hecho de que los votantes estadounidenses voten o no se ve afectado por muchos factores, como el género, el origen étnico, el nivel educativo, la ocupación, etc. Hay demasiados factores que afectan la utilidad y algunos factores incluso tienen correlaciones complejas.
Si el modelo es demasiado complejo, no se puede obtener la solución; en este caso, se debe simplificar el modelo; se supone que la relación entre todos los factores es solo una superposición lineal sin interacciones complejas;
Texas Hold'em Poker: reducción del tamaño del problema
La escala es demasiado grande para que la manejen las computadoras, por lo que hay que encontrar una manera de desechar cierta información.
por ejemplo, Texas Hold'em: fusionar estados similares
Explorar y explotar: iterar para obtener resultados
Por ejemplo, el sitio web de vídeos inicialmente le recomendará varios contenidos y, después de un tiempo, comenzará a recomendar los contenidos que ve con más frecuencia.
Reflexión: Los algoritmos sólo se pueden ejecutar y no se les puede responsabilizar; si hay un problema con el algoritmo, tenemos que recurrir a los humanos para encontrar la respuesta.
Los algoritmos no se hacen responsables de los problemas.
por ejemplo, ambas librerías fijan sus propios precios en múltiplos de los precios de la otra, lo que resulta en precios inusualmente altos.
Los algoritmos no pueden ser responsables de los datos.
por ejemplo, tome té negro helado para un análisis de orina, el nivel de azúcar excede el límite y se sospecha diabetes.
Los algoritmos no pueden ser considerados responsables de la interpretación.
por ejemplo, IBM construye el sistema de diagnóstico médico Watson, pero el algoritmo no puede proporcionar explicaciones.
algoritmo de diseño
Plano de algoritmo
aclarar el problema
propósito claro
por ejemplo, hacer coincidir todos los pasajeros del taxi o hacer coincidir tantos pasajeros como sea posible lo más rápido posible.
Restricciones claras
ej., el tiempo de espera de los pasajeros en zonas urbanas no puede exceder de 1 minuto.
Aclarar los criterios de evaluación
ej. beneficio de tiempo o costo
Modelado
Es el proceso de convertir problemas reales en problemas algorítmicos, y también es el proceso de abstraer muchos detalles.
Antes de diseñar un algoritmo, se debe establecer un modelo matemático.
La iteración del modelo es muy importante.
Selección de algoritmo
Determinado por el nivel de logro del objetivo y la complejidad del tiempo.
Iterar
algoritmos, hardware
Modelado
Determinar la hipótesis
Determine los requisitos de precisión para los resultados de predicción, descarte detalles sin importancia y aclare y cuantifique problemas confusos.
Validar modelo
Utilice el sentido común para verificar; utilice datos históricos para verificar;
Pesar la viabilidad
Debe ser cercano a la realidad y fácil de resolver.
Selección de algoritmo
Relación: los modelos y algoritmos no son correspondencia uno a uno
ej. problema de mochila
Elección: el equilibrio entre calidad y eficiencia
por ejemplo, la decisión de colocar anuncios en línea debe tomarse al instante y utiliza un algoritmo codicioso;
por ejemplo, cuando planeamos proteger a los animales salvajes, debemos encontrar la solución óptima tanto como sea posible y utilizar el algoritmo de ramificación y vinculación.
Avanzado: más consideraciones para los ingenieros de algoritmos
Prefiere algoritmos con baja sensibilidad de datos, pocas restricciones y poca dependencia de los datos.
estrategia algorítmica
Iterar
Algoritmo iterativo: un algoritmo que repite una operación fija a través de un bucle, y cada paso comienza desde el resultado del paso anterior y se acerca gradualmente a la respuesta.
Las condiciones para que el algoritmo iterativo sea efectivo: primero, el algoritmo debe converger; segundo, el punto fijo debe ser único;
La estrategia iterativa permite errores en el proceso de encontrar la solución, y este error disminuye muy rápidamente, por lo que el algoritmo iterativo también es muy rápido.
por ejemplo, buscar en Chicago para encontrar un automóvil es muy lento. Esto se llama algoritmo de fuerza bruta.
por ejemplo, use el algoritmo iterativo para encontrar un automóvil. En el primer paso, la distancia desde el automóvil es de 10 kilómetros. Cuando gira en la primera vuelta y ingresa a la segunda iteración, la distancia se convierte en 1 kilómetro. Después de otra iteración, se convierte en 100. Metros Esta distancia se llama "residual".
divide y conquistaras
Algoritmo de divide y vencerás: un algoritmo de retroceso que divide los problemas grandes en pequeños mediante el retroceso, y el mismo problema se descompone continuamente hasta que el problema es lo suficientemente pequeño como para resolverlo directamente, y luego las soluciones de los problemas pequeños se fusionan en el; solución original del problema.
Por ejemplo, el árbitro principal de un partido de tenis subcontrata el trabajo de arbitraje en diferentes niveles.
Rastreo: el bucle anidado llama a su propio procedimiento
Condiciones para la eficacia del algoritmo divide y vencerás.
¿Se puede utilizar? Asegúrese de que el problema se pueda descomponer en subproblemas que sean similares al problema original y que estos subproblemas sean independientes entre sí.
¿La solución es rápida o no?
Las dos operaciones importantes de divide y vencerás, la descomposición y la fusión, no son gratuitas
ej. Detección de colisiones: Para calcular cuáles de las 100 bolas en movimiento en el espacio han chocado entre sí, se calcula la distancia entre las dos, un total de 4950 veces dividiendo el espacio en dos partes y detectándolas de forma independiente, el número; se reduce a 2450 veces. Encontrar posiciones de división adecuadas al dividir el espacio requiere costos computacionales adicionales. Al fusionar, se descubre que algunas bolas se cortan por la mitad. Para determinar si se ha producido una colisión, se requieren cálculos adicionales. Este es el costo del resultado de la fusión.
Si el problema de descomposición y el cálculo de los resultados combinados no son complejos, la estrategia de divide y vencerás puede reducir la complejidad del algoritmo.
El algoritmo de divide y vencerás se puede calcular en paralelo con varias CPU, mientras que el algoritmo iterativo requiere que cada paso se base en el resultado del paso anterior y se calcule en secuencia, por lo que no se puede calcular en paralelo con varias CPU.
programación dinámica
Solución: comience con el fin en mente, construya desde lo pequeño hasta lo grande
Por ejemplo, juego de toma de dulces: quien se enfrente a 4 dulces al final pierde.
Por ejemplo, aterrizaje suave vertical del cohete: la posición final debe estar muy cerca de la posición designada, el ángulo entre el cohete y el suelo debe ser muy cercano a 90 grados y la velocidad de aterrizaje debe ser muy cercana a 0.
Cuando se enfrenta a un problema de toma de decisiones de varios pasos, la decisión óptima de un determinado paso incluye y depende de la estrategia óptima para problemas de menor escala. Esta es la subestructura óptima.
Por ejemplo, juego de tomar dulces: la estrategia óptima debería ser tomar dos dulces al principio, pero si no sigues la estrategia óptima cuando te enfrentes a menos dulces en el futuro, no ganarás si tomas dos dulces ahora.
La eficiencia de la programación dinámica se ve afectada por la explosión de la circunferencia. En este momento, es posible que el ingeniero de algoritmos no necesariamente resuelva todos los subproblemas con precisión, sino que solo resuelva una parte de ellos, y es una solución inexacta. Solo se hace una estimación para la solución de otros subproblemas.
rama y atado
Optimización de cartera
No es difícil encontrar una solución factible, pero sí es particularmente difícil encontrar la solución óptima.
Por ejemplo, encuentre la manzana más grande del árbol: corte las ramas que obviamente son más pequeñas que las manzanas, dejando una pequeña cantidad de ramas para comparar.
rama y atado
por ejemplo, encontrar el estudiante más alto en la escuela secundaria
Rama: Escuela Secundaria/Escuela Secundaria
Delimitación: la cueva de excursión de primavera de la escuela secundaria tiene 1,8 metros de altura, nadie necesita agacharse; "1,8 metros" es el límite superior de esta rama de la escuela secundaria
Poda: Si hay un árbol en la escuela secundaria que mide más de 1,8 metros de altura, se puede eliminar toda la escuela secundaria.
Cuando el objetivo que se puede obtener en un determinado subespacio de búsqueda no es tan bueno como una solución factible conocida, este subespacio se eliminará directamente.
Cómo hacer que el método de ramificación y enlace sea eficiente
Depende de la eficacia con la que puedas podar, si solo ramificas sin podar, no hay diferencia con contarlas todas.
Estrategia de "detención anticipada": si la disociación óptima temporal obtenida está muy cerca de la solución óptima real, la detención anticipada puede ahorrar mucho tiempo.
heurístico
Cuando se encuentra con un problema de optimización combinatoria particularmente complejo, si no puede encontrar la solución óptima, puede recurrir a algoritmos heurísticos para encontrar una buena solución factible.
Algoritmos heurísticos: consistentes con la intuición humana o con leyes naturales
Monte Carlo
Aplicable: Demasiadas posibilidades para contar
Monte Carlo: muestreo de eventos aleatorios en el problema, realización de cálculos independientes para un número limitado de muestras y, finalmente, estadísticas de los resultados de la muestra.
Depende en gran medida de la exactitud de los parámetros y no es muy útil para revelar la naturaleza del problema.
Frontera del algoritmo
aprendizaje automático
Los algoritmos de aprendizaje automático son una serie de algoritmos que permiten a las computadoras aprender de forma autónoma. Son más adecuados para problemas que los humanos no pueden resolver utilizando reglas claras.
El aprendizaje automático ha aprendido muchos detalles que a los humanos no se les ha enseñado ni comprenden.
El aprendizaje automático aprende las complejas relaciones entre las cosas.
Estrategia de aprendizaje: cómo aprenden los algoritmos de aprendizaje automático
El algoritmo vecino K, basado en la memoria, finalmente expresa un montón de datos históricos
ej., jurisprudencia en el sistema de derecho consuetudinario.
El modelo de árbol de decisión resume los juicios condicionales mediante la inducción de datos y finalmente expresa algunos juicios condicionales complejos.
El modelo de red neuronal simula la transmisión de señales nerviosas y el proceso de respuesta nerviosa a diferente información externa y finalmente expresa una serie de valores de parámetros.