Cómo sentar a todos en la ciencia y no convertir la oficina en un hervidero de odio



Tarde o temprano en la vida de la mayoría de los equipos que viene, se muda. Te llevan a una habitación limpia y vacía, que se convertirá en un lugar donde pasarás la mayor parte de tu vida. Si es diseñador, lo primero que pensará es cómo colgar las imágenes y colocar las flores para que la habitación brille con nuevos colores. Si eres un samurai de oficina experimentado, entonces con un ojo entrenado, determina el mejor lugar y primero reclámalo. Si usted es el jefe del departamento, es probable que le duela la cabeza con respecto a los asientos de todos los empleados. Pero si al mismo tiempo está liderando un equipo de científicos de datos, entonces la moneda Python lo ayudará.

Por supuesto, todo determina su estilo de gestión. Si prefiere decisiones autoritarias, simplemente puede señalar con un dedo imperioso dónde deben ir todos. Y no importa si alguien se resiste a sentarse frente a la pared o el uno al otro. Sin embargo, desde la abolición de la servidumbre en 1861, este estilo ha perdido popularidad en nuestro país. Y si todavía le preocupa la comodidad de los empleados, entonces vale la pena recopilarlos y tener en cuenta sus preferencias. Pero aquí el diablo se arrastra, el que está en los detalles: cómo armar, cómo tener en cuenta, a quién dar preferencia, etc.

En vista de los muchos años de experiencia en la organización de concursos para escolares, donde la igualdad de condiciones es una de las principales prioridades, estaba decidida a crear mecanismos transparentes y comprensibles en los que los empleados más experimentados o más rápidos no obtengan ninguna ventaja.

No va a complacer a todos, o aún ...


Suponemos que los empleados pueden tener preferencias de asientos y que desean minimizar el descontento potencial. Es decir, es necesario organizar un sistema de distribución de asientos para que algunos empleados, actuando de manera óptima por sí mismos, no entren en un conflicto claro con otros. La estrategia de "quién se levantó primero y zapatillas" obviamente no conduce a este objetivo. Si se determina un cierto orden de elección (por ejemplo, sobre la base del mérito), la tarea aún no está resuelta: una persona que elige antes, pero que es relativamente indiferente, puede tomar accidentalmente el lugar elegido por otros. Sin mencionar que tal orden es una cosa controvertida en sí misma.

Elegimos el tipo de votación, en la que el voto de todos depende de cómo votaron los demás: si a una persona más o menos no le importa cuál de los dos lugares para sentarse, entonces la estrategia óptima es fingir que hay menos competidores.

Nuestro camino hacia asientos perfectos


El primer paso fue determinar dónde puede sentarse en general. Aquí la tarea era para todos, porque todos estaban interesados ​​en hacer tantos lugares convenientes como fuera posible, después de todo, en este caso, la competencia está disminuyendo. Hicimos un mapa y realizamos un trabajo explicativo "entre la población", promoviendo cada lugar como ideal.



En un mundo ideal, sería necesario que todos dieran puntos de preferencia a cada uno de los lugares, pero es difícil para una persona evaluar a centésimas la diferencia entre un lugar y otro.
Por lo tanto, a todos se les pidió que eligieran listas de prioridades, cuyo número no está limitado en absoluto: qué lugares le gustaría tomar en primer lugar, cuáles en el segundo y cuáles en el tercero.

Cabe señalar que la lógica de las preferencias entre los empleados era muy diferente: alguien quería estar más cerca de la ventana, alguien quería mirar por la ventana, alguien era importante por su proximidad al aire acondicionado e incluso por el color de las paredes. Es difícil tener en cuenta las preferencias en sí mismas, aquí solo puede dar a las personas la oportunidad de elegir un lugar.

Luego, fue necesario determinar la métrica del éxito del acuerdo. Cuanto más incómoda se sienta una persona, más se debe multar a dicho modelo. Decidí hacer una penalización cuadrada para evitar inconvenientes evidentes.

Resultó así: si se colocó a una persona de su lista TOP-1, entonces una multa de 2; si de la lista de TOP-2 - una multa de 4, TOP-3 - 8, TOP-4 - 16 y así sucesivamente. No pretendo que esta métrica sea óptima, pero parece razonable.

Escribí un programa simple de Python : se introducen las prioridades de los colegas y calcula las opciones de ubicación con una penalización mínima. El algoritmo se anunció a los colegas de antemano (¡qué ingenuo era!). Todas las listas se publicaron abiertamente, para poder acordar si se desea.

Sin embargo, después de ver los cálculos, algunos empleados se dieron cuenta de que puede intentar recoger su "solicitud" para obtener el lugar deseado. ¡Los datasientistas son tales datasientistas! :)

Como resultado, se organizó una segunda ronda de elecciones, cuando fue posible hacer cambios a sus prioridades cerradas. Por lo tanto, todos volvieron a estar en igualdad de condiciones: todos podían seleccionar y hacer cambios.

Habiendo recopilado las solicitudes de la segunda ronda, ya ejecuté el programa por última vez. Fufh! Parece que todos están felices.

En lugar de PS


Vale la pena señalar que no se tuvieron en cuenta los deseos con respecto a la proximidad de los empleados entre sí. Pero en este paradigma, también es bastante simple implementarlos creando listas de deseos (quién quiere sentarse junto a quién y qué lugares están cerca, según estos empleados), y luego multar el modelo por no cumplir estos deseos.

Por supuesto, la opción siempre es posible cuando dos arreglos tienen la misma penalización.
En este caso, ya he decidido confiar en una moneda: la optimización es aún más poderosa :).

Nikolay Knyazev, jefe del grupo de aprendizaje automático Jet Infosystems

Código Github

Source: https://habr.com/ru/post/448648/


All Articles