(He agregado un poco más de historia cerca del final en respuesta a un comentario preguntando cómo este invento avanzó mi carrera).
Ah, nostalgia! Aquí hay una oportunidad para ejercitar mi historia. A ver cómo me va. Hay algo de informática en esta historia descrita a un nivel intuitivo. Si no omite esas partes, será útil comprender qué es un “gráfico” en informática.
A mediados de los 90, mientras enseñaba B-trees a una clase sobre algoritmos, me preguntaba cómo indexar datos geográficos. Eso me puso en camino a trabajar en el negocio de navegación de automóviles en la época en que el GPS se estaba volviendo de uso común. Aprendí sobre los árboles R y las curvas de Hilbert. Escribí algunos artículos de revistas sobre algoritmos relacionados con mapas y navegación, incluidos algunos que inventé. Pero esos artículos no eran importantes.
- ¿Cuál es la aplicación del problema N-Queens en el mundo real? ¿Es aplicable en problemas de localización o enrutamiento?
- ¿Cuál es el enfoque algorítmico para encontrar el primer entero positivo que falta si se proporciona una matriz entera sin clasificar en O (n) complejidad de tiempo y espacio constante?
- Cómo escribir un algoritmo que tome una muestra aleatoria de tamaño k de una secuencia de n elementos
- ¿Cuál es la última actualización en el algoritmo SEO de Google en 2017 para un rango de sitio web?
- ¿Qué sitio web / tutorial / video puedo usar para comprender muy bien la programación dinámica en un día?
En mi trabajo en Etak, una de las primeras compañías que utilizó algoritmos y GPS para ayudar a los conductores a encontrar su camino en las carreteras, aprendí sobre el problema del cálculo de la ruta. Unos años más tarde, en una startup que creó una de las primeras aplicaciones de navegación para ejecutar en teléfonos celulares, trabajé en los algoritmos de cálculo de ruta yo mismo. Esa compañía fue comprada por otra en 2001, así que seguí adelante, y en 2002, me encontré en una compañía llamada Wavemarket. Wavemarket quería calcular rutas muy rápidamente para admitir una aplicación para rastrear teléfonos celulares. Querían saber qué tan pronto el teléfono podría cruzar un límite usando las carreteras. Un profesor universitario de ciencias de la computación, el Dr. Klein, trabajó en el problema de Wavemarket y aprendí sobre su trabajo.
En Wavemarket, me encontré en medio de dos mundos.
El Dr. Klein, por supuesto, conocía el trabajo académico sobre el problema del cálculo de la ruta. Esa historia se remonta al algoritmo de Dijkstra, un algoritmo de ruta más corto para gráficos, porque a eso se reduce este problema de cálculo de ruta. El gráfico representa la red de carreteras. Para simplificar en exceso, para aquellos interesados, piense en los nodos del gráfico como intersecciones, y los bordes del gráfico como una carretera entre intersecciones, y los pesos en los bordes como el tiempo promedio para conducir la longitud del borde. Me encontré leyendo algo del trabajo académico. El Dr. Klein tenía un nuevo enfoque diseñado para las necesidades particulares de Wavemarket y publicó artículos relacionados.
Por otro lado, en los 4 años anteriores había aprendido cómo la industria de navegación / GPS abordaba el problema, y era diferente. Si bien el trabajo académico se centró en demostrar que el resultado de un algoritmo era óptimo y se calculó dentro de ciertos límites (gran O), el trabajo de la industria había sido más práctico y utilizó lo que podemos llamar métodos heurísticos, es decir, métodos cuyas propiedades no son demostrables como teoremas, pero pueden verificarse empíricamente con pruebas.
Sin embargo, lo más importante fue cómo pensaba la industria sobre el gráfico que representa las carreteras. El gráfico tenía ciertas propiedades que otros gráficos, por ejemplo, gráficos sociales, no tienen. El gráfico de carreteras tiene un tipo particular de jerarquía. Algunas carreteras son más importantes que otras para los conductores que viajan más que distancias muy cortas. Los conductores comienzan en caminos menos importantes, van a caminos importantes como autopistas que los llevan a largas distancias rápidamente, luego regresan a los caminos menos importantes cerca de su destino. Tales rutas suelen ser las rutas más rápidas. Para citarme a mí mismo:
“La otra estrategia, utilizada a menudo en la industria para rutas en redes de carreteras, explota la jerarquía natural en una red de carreteras para podar una búsqueda en Dijkstra. Esto es mucho menos difícil de manejar, pero también menos confiable. La poda se basa en una heurística en este sentido. de una manera que no se puede garantizar la optimización de la ruta calculada. En el peor de los casos, el algoritmo no podrá encontrar una ruta aunque exista “.
Dado que la mayoría de las carreteras en la jerarquía son carreteras secundarias, los algoritmos de cálculo de ruta utilizados en la industria se hicieron mucho más rápidos al no considerar la mayoría de esas carreteras en el cálculo.
Cuando el Dr. Klein dejó Wavemarket, todo el asunto estaba en mis manos. ¿Qué haría con mi conocimiento de los enfoques de la industria y la influencia del pensamiento académico en mi mente? Los combiné
Comencé a inventar un nuevo enfoque que utilizaba la jerarquía de carreteras y podía demostrarse matemáticamente que producía la ruta más rápida dado el gráfico, el origen y el destino. Decidí que cada nodo tendría un atributo, que decidí llamar “alcance”, para indicar lo importante que es en la red de carreteras. Definí el alcance del nodo de una manera rigurosa en función de cuán lejos podría estar de los orígenes y destinos en una ruta óptima. Los nodos de bajo alcance lejos de los orígenes y destinos podrían omitirse para acelerar el cálculo de forma similar a cómo los algoritmos de la industria omitieron carreteras secundarias. La definición rigurosa hizo posible una prueba rigurosa de que el resultado del cálculo fue una ruta óptima (más rápida).
Pero había un problema. ¿Cómo podría calcularse eficientemente el alcance de cada nodo? Podría calcularse calculando rutas óptimas para cada posible par de orígenes y destinos para cada versión de una hoja de ruta, pero para el mantenimiento de una hoja de ruta de los Estados Unidos, eso sería demasiado costoso.
Resolví el problema en Mission Peak, donde fui a correr. En mi régimen de ejercicio, subí a Mission Peak con un enfoque intenso en el ejercicio. Cuando regresé cuesta abajo, me gustaba caminar y dejar que mi mente fuera a donde iría. Esa fue mi recompensa por el arduo trabajo previo. Un día, mientras caminaba por Mission Peak, se me ocurrió la solución. A veces señalo a mis amigos que caminan conmigo en Mission Peak, donde en el camino se me ocurrió la idea. La idea era que la mayoría de los nodos tenían valores de alcance pequeños que podían estimarse calculando solo rutas cortas a su alrededor utilizando el algoritmo Dijkstra. Luego, los nodos con valores bajos de alcance podrían descartarse al calcular los valores más altos de alcance de otros nodos. Para respaldar esta nueva idea, inventé un concepto llamado límites de alcance, límites superiores en valores de alcance, que aún respaldaba la prueba rigurosa de la optimización.
Mission Peak:
Así que lo codifiqué, el cálculo de los límites de alcance y los cálculos de ruta usando los límites de alcance. Mis pruebas me convencieron de que funcionaría bien. Luego me convencí de que tenía algo interesante tanto en el mundo académico como en la industria. Nunca había enviado un trabajo académico a una revista académica o conferencia, pero decidí que lo intentaría. Encontré una conferencia sobre algoritmos llamada Alenex, aprendí los procedimientos para preparar una publicación académica, la escribí cuidadosamente siguiendo las normas y convenciones académicas lo mejor que pude con pruebas y algunos pseudocódigos, hice que un compañero de trabajo la revisara y la entregué. a Alenex para su revisión formal. Fue aceptado y volé a Nueva Orleans en enero de 2004 para presentarlo. El enrutamiento basado en el alcance se había inventado y presentado al mundo, y reunió métodos de la industria y la academia.
Las diapositivas de power point en esta historia son de mi charla en Alenex.
http://www.siam.org/meetings/ale…
Entre mis logros profesionales, estoy muy orgulloso de eso.
¿Por qué hay más historia que contar? Por un lado, ¿cómo se recibió el artículo publicado en la industria y la academia? En segundo lugar, ¿cómo fue ser un efecto no académico su recepción? En general, diría que mi experiencia muestra qué tan bien funciona el sistema académico con su revisión por pares y todo. Como completamente desconocido en la academia, pude hacer una contribución importante a la informática.
Por otro lado, siempre puedo quejarme de algo.
Uno de los asistentes a mi charla en Nueva Orleans fue Andrew Goldberg de Microsoft. Andrew y su equipo posteriormente escribieron un artículo de seguimiento cuyo título me encantó “Alcance para A *: Algoritmos de ruta más cortos eficientes de punto a punto”. Eso se pronuncia “Alcanzar una estrella”. Para aquellos que no lo saben, A * es un algoritmo gráfico de los primeros días de la inteligencia artificial cuando la inteligencia significaba resolver problemas como los problemas gráficos. El artículo de Andrew combinó el enrutamiento basado en el alcance con otros métodos para acelerar el cálculo. Mencioné dos de ellos en mi trabajo porque la industria los usó: A * y computación bidireccional. “Bidireccional” significa ejecutar el algoritmo desde el origen hacia adelante y el destino hacia atrás, y ejecutar alternativamente las dos búsquedas hasta que se encuentren. A * enfoca la búsqueda utilizando una estimación de la longitud del resto de la ruta. La búsqueda bidireccional acelera significativamente el cálculo de la ruta al reducir el área buscada. A * no funciona tan bien en gráficos para redes de carreteras como en otros tipos de gráficos, pero las implementaciones de la industria generalmente también lo incluyen. Estaba muy feliz de leer el artículo de Andrew porque avanzó la ciencia del enrutamiento basado en el alcance y me dio crédito por la idea central.
https://www.microsoft.com/en-us/…
Andrew también agregó otra técnica llamada atajos que también se usan en la industria porque, como sabía, proporcionaban una mejora significativa en la velocidad computacional. Los atajos evitan mirar muchos nodos donde las carreteras menos importantes cruzan carreteras importantes. Lo único que lamentaba de mi trabajo era, dadas las limitaciones en su longitud, no exprimir una mención de atajos.
Andrew era un buen tipo, así que todavía no estás leyendo sobre ningún villano o incluso una gran queja mía. Bueno, está bien, si realmente quieres uno, avancemos unos años. Las Jerarquías de Carreteras fueron inventadas por Sanders y Schultes en la Universidad de Karlsruhe en Alemania. Observe la palabra “Jerarquía”. Sin embargo, aunque el documento sobre Jerarquías de autopistas citó mi artículo, no observó la relación obvia entre su concepto de jerarquía y el concepto de jerarquía en el enrutamiento basado en el alcance. El documento afirmaba basar su trabajo en otro trabajo académico anterior.
http://algo2.iti.kit.edu/schulte…
En 2009, mi esposa y yo planeamos un viaje por Alemania, así que programé una visita con el profesor Peter Sanders. Condujimos a Karlsruhe. Hablé con Peter en su oficina y señalé una conexión obvia entre su trabajo y el mío. Recuerdo sus palabras exactas en inglés: “Has empezado todo esto”. Solo desearía tener eso por escrito. 🙁
Instituto de Tecnología de Karlsruhe:
Más tarde me di cuenta de que, por pura que sea la academia, ser académico le da una pequeña ventaja, ser un poco más inteligente sobre la comercialización del propio trabajo.
Aunque escuché rumores sobre el enrutamiento basado en el alcance que se usa en compañías como Microsoft y Google, las jerarquías de autopistas probablemente recibieron más atención en la industria. Finalmente, la gente de Karlsruhe inventó las Jerarquías de contracción, que se convirtieron en el método más popular para el cálculo de rutas y, para mí, el enrutamiento basado en el alcance se convirtió en una nostalgia agradable y simplemente disfruté de la influencia que mi trabajo tuvo tanto en la academia como en la industria, aunque indirecta, y la cantidad de citas que tiene mi artículo, no enorme, pero más que la mayoría de los artículos en informática: https://scholar.google.com/schol…
Dmitry preguntó en un comentario (abajo) cómo este invento avanzó mi carrera. No hay una respuesta clara, pero es una pregunta tan buena que ampliaré mi historia aquí mismo.
Recientemente me había unido a un equipo en Yahoo cuando hice la presentación en Alenex. En mis cuatro años en Yahoo, diré que la respuesta es no, mi trabajo no avanzó mi carrera en Yahoo.
En Yahoo, trabajé en el equipo responsable de mapas y navegación, pero por razones prácticas de negocios, no era el principal responsable del cálculo de la ruta, y dado que mi artículo acababa de ser publicado, no podía esperar que la gerencia de ingeniería entendiera su importancia. En general, descubrí que los colegas y la gerencia no pueden evaluar fácilmente la importancia de mi trabajo, ya sea porque les faltaba tiempo o la experiencia o porque no lo vendí bien.
Campus de Yahoo en Sunnyvale:
Después de unos años en Yahoo, tuve la oportunidad de mover mi carrera en una nueva dirección y creí que mi periódico me ayudaría. Me pusieron en contacto con un científico senior en una organización de investigación con Yahoo. Pensé que pasar a la investigación podría ser una buena carrera para mí. Pensé que mi trabajo podría compensar mi falta de un doctorado (solo tengo una maestría en ciencias de la computación de la Universidad de Berkeley) para obtener la admisión a la investigación.
Pero en el almuerzo conmigo, el científico principal expresó un problema diferente. Dijo que mi falta de un doctorado no era tan importante. Su estándar de aceptación en la investigación fue una historia más larga de publicación de trabajos académicos mucho más numerosos que los míos, no solo un solo trabajo sino varios trabajos. Por supuesto, entendí cuán diferente sería la historia de un doctorado de la mía. El nombre de un estudiante de doctorado generalmente aparecerá en varios documentos con su profesor y otros colegas.
Me he preguntado si mi trabajo tiene otra desventaja. Ser el único autor en un artículo podría tener la implicación positiva de demostrar una variedad de habilidades, incluyendo pensamiento creativo, algoritmos, codificación, prueba, escritura y toma de decisiones no técnicas. Sin embargo, también parece mostrar que soy menos jugador de equipo.
Un antiguo colega mío también es el único autor de su único artículo, el documento original sobre R-trees. Su papel fue muchas veces más importante que el mío. Y su carrera ha sido similar.
Después de Yahoo, mi próximo empleador era Telenav, y pensé que mi trabajo, para entonces bien citado, podría haberme ayudado a ponerme en una posición más interesante, como arquitecto de software. Y tal vez lo hizo. Sin embargo, ese papel podría haberme seducido a algunos problemas. Me encantó mi papel durante los primeros dos años, incluido el viaje a Shanghai para trabajar con ingenieros allí para construir el núcleo de una plataforma de navegación que se ejecute en teléfonos celulares.
YC Chao, Telenav, fundador, CTO y mi supervisor durante gran parte de mi tiempo en Telenav:
Sin embargo, ser arquitecto no es un papel fácil, más responsabilidad que autoridad, por lo que se necesita un talento para la persuasión. A veces me culpo por cometer otro error, algo así como un sesgo de confirmación. Sentí que el enrutamiento basado en el alcance debería usarse para resolver un problema más difícil en el que los datos del mapa son muy dinámicos. Ciertamente, fue muy difícil resistirse a la construcción de inversiones anteriores basadas en mi comprensión única de los conceptos en el enrutamiento basado en el alcance. Me dieron la oportunidad de probarlo con el equipo de investigación de Telenav en Beijing. Los resultados de esa investigación no se consideraron lo suficientemente buenos como para seguir adelante. El diagnóstico de la deficiencia técnica no fue simple, pero he pensado en mi propuesta como un error porque creo que perdí credibilidad. No debería haber propuesto algo tan especulativo como eso.
Ubicación de la oficina de Telenav que visité en Beijing:
Entonces, aunque la respuesta es mixta, puedo resumir diciendo que mi trabajo avanzó mi carrera solo un poco y no siempre en direcciones útiles, algo de lo cual es mi culpa.
Pocas carreras son perfectas.
Siempre quiero agradecer a mi jefe en Wavemarket, Scott Hotes, por darme la oportunidad de inventar rutas basadas en el alcance.