¿Cuál es el tema del proyecto de buena implementación para estudiantes junior que toman CSE 101 (Algoritmo)?

¿Por qué no pedirles que resuelvan el problema de TSP en tiempo polinómico? Nadie podrá buscar la solución en Google con seguridad 😛

Y si alguien logra eso, estoy seguro de que obtendrá más que una A en el cse 101 (premio Turing, ¿eh?).

Bromas aparte, los buenos problemas de la vida real cuando se resuelven a través de algoritmos harán que los estudiantes aprecien el valor de dichos algoritmos.

Como ejemplo, pídales que construyan un gráfico, donde
1. Los nodos son lugares de la vida real como varios departamentos, salas de conferencias, sus respectivos hogares, etc.
2. Los bordes representan la ruta entre dichos lugares, donde el peso se puede percibir como el tiempo requerido para moverse entre dichos nodos.

Ahora una pregunta interesante sobre tal gráfico puede ser,
Comienzas desde tu casa, asistes a conferencias en varios departamentos y vuelves a casa. ¿Qué tan rápido puedes terminar todas tus conferencias y volver? es decir, encontrar el orden óptimo de visita de los nodos.

Para darle vida, introduzca algún factor aleatorio en los pesos de los bordes (¿retrasos de tráfico?) De esa manera, es posible que necesiten pensar un poco fuera del cuadro “algoritmo estándar”.

Retengo intencionalmente el nombre de los algoritmos, necesarios para resolver el problema anterior, en esta respuesta, ya que las páginas de quora están indexadas por google 😀

Puede desarrollar un sistema inteligente de despacho de taxis, que enviará el vehículo más cercano disponible a la posición de la persona que llama. Perfecto para Dijkstra, con criterio codicioso. Deje que su imaginación haga su trabajo y podrá ampliar esta idea aún más. Por ejemplo, use el algoritmo de par más cercano para preseleccionar los posibles vehículos más cercanos.

Hace mucho tiempo, tuve una idea que nunca llegué a hacer: hacer una orden de pizza. Debe almacenar quién siente qué pasa con los ingredientes (amor, gusto, neutralidad, disgusto y odio), qué pizzerías están dónde, qué cobran por el tamaño de la pizza y qué ingredientes, y cuán * buena * es su pizza. Cuando necesite preparar un pedido de pizza, puede decirle quién está allí (agregando personas según sea necesario) y cuán hambrientos están. Debe averiguar cuántas pizzas de qué tamaños con qué ingredientes (se permiten medias) de dónde, para darles a todos suficiente pizza buena para satisfacer su hambre, con una mezcla de ingredientes que hagan la felicidad más total, y nadie tiene que hacerlo. aguantan comer una cobertura que odian. Debe haber algún mecanismo para ajustar las prioridades relativas de velocidad, precio, calidad y placer de los ingredientes.

Las respuestas anteriores tienen una gran sugerencia, también sugeriría construir un predictor de palabras usando un árbol de sufijos (probablemente más tarde en la clase). Sería una gran práctica. Como predecir palabras de un diccionario como tipos de usuario. Ejemplo Si el uso ha escrito ‘rat’, su programa puede predecir ‘rat’, ‘rate’, ‘ration’, etc.

More Interesting

¿Cuál es la diferencia entre: algoritmo, técnica y técnica algorítmica?

¿Por qué muchos elementos utilizados en la función objetivo de un algoritmo de aprendizaje asumen todas las características centradas en cero y tienen una varianza en el mismo orden?

¿Cómo construir un algoritmo hash? ¿Dónde puedo aprender más?

¿Soy solo yo o el algoritmo recursivo de Fibonacci es brillantemente complejo?

Cómo superar y comprender el algoritmo / código de otras personas

¿Cómo entiende Quora la relevancia entre los feeds?

¿Los ingenieros de software de Google, Amazon, etc. utilizan estructuras de datos y algoritmos en el desarrollo de aplicaciones en tiempo real?

¿Tenemos que implementar estructuras de datos?

¿Cuál es la lógica y la intuición detrás del algoritmo de optimización de momento y por qué se considera mejor que el descenso de gradiente?

¿Cuál es la solución a este décimo problema polinómico de clase?

Cómo encontrar el factorial de un número grande, como 100, en C

¿Cuáles son los mejores enfoques para aprender programación dinámica? ¿Y de dónde se puede aprender esto? ¿Qué tan útil es esto en la programación competitiva?

¿Cuál es el número esperado de movimientos necesarios para terminar un juego de serpientes y escaleras?

¿Vale la pena pagar 6 x $ 49 por una estructura de datos y especialización de algoritmos en Coursera?

¿Es posible construir un algoritmo (para ejecutar en una computadora con recursos de espacio finito) que tomará como entrada un flujo de lanzamientos de monedas al azar imparciales (probabilidad independiente de caras 1/2) y emitirá caras con probabilidad irracional esperada?