scieee AI-readable full text Open interactive document viewer

Evaluación de Proveedores Mediante Técnicas Multicriterio de Ayuda a la Toma de Decisiones en Python

Regidor Pérez, Celia

Abstract

La norma ISO 9001 establece que: “La organización debe evaluar y seleccionar los proveedores en función de su capacidad para suministrar productos de acuerdo con los requisitos de la organización. Deben establecerse criterios para la selección, evaluación y reevaluación”. La variedad de criterios que pueden ser tenidos en cuenta en la toma de decisiones, genera una creciente complejidad en la decisión, además en muchos casos los criterios contienen un carácter subjetivo, motivo que genera diferencias significativas en la calificación de los proveedores, dado que depende de quien realiza la evaluación. La gestión y evaluación de proveedores destaca por ser un paso fundamental de la logística y la gestión de la cadena de suministros, y por tanto el proceso de decisión debe mitigar y eliminar la subjetividad del proceso. El paradigma multicriterio destaca por ofrecer un conjunto de técnicas y métodos capaces de considerar las preferencias del decisor con una orientación más objetiva, en el proceso de selección de proveedores. La disciplina que aborda la ayuda a la toma de decisiones de criterios múltiples está creciendo rápidamente, y son exitosos sus resultados expuestos en numerosos estudios científicos. Sin embargo, estas técnicas no son siempre conocidas y explotadas por los profesionales, los cuales deben poder comprender completamente cada paso de las metodologías e implementarlas de manera fácil, coherente y, lo que es más importante, entender y utilizar correctamente estos métodos. El presente TFM tiene como objetivo desarrollar un conjunto de métodos de decisión multicriterio (TOPSIS, AHP y ponderación lineal) y comparar los resultados obtenidos por los diversos métodos mediante ejemplos e implementaciones en Python.

Full text

I Equation Chapter 1 Section 1 Trabajo Fin de Máster Ingeniería de Tecnologías Industriales Evaluación de Proveedores Mediante Técnicas Multicriterio de Ayuda a la Toma de Decisiones en Python Autor: Celia Regidor Pérez Tutor: Pablo Aparicio Ruiz Dpto. Organización Industrial y Gestión de Empresas II Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021 II III Trabajo Fin de Máster Ingeniería de Tecnologías Industriales Evaluación de Proveedores Mediante Técnicas Multicriterio de Ayuda a la Toma de Decisiones en Python Autor: Celia Regidor Pérez Tutor: Pablo Aparicio Ruiz Dpto. Organización Industrial y Gestión Industrial II Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021 IV V Proyecto Fin de Máster: Evaluación de Proveedores Mediante Técnicas Multicriterio de Ayuda a la Toma de Decisiones en Python Autor: Celia Regidor Pérez Tutor: Pablo Aparicio Ruiz El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2021 El Secretario del Tribunal VI VII Agradecimientos Quiero aprovechar este espacio para agradecer a mis padres la educación, los valores, el cariño y el apoyo incondicional que me han transmitido siempre y que me han convertido en la persona que soy. Mi agradecimiento lo hago extensivo a toda mi familia por todo el cariño que me ofrecen en todo momento y a mis amigos por acompañarme en este camino. Este trabajo no habría sido posible sin la ayuda, el ánimo y la dirección de mi tutor, Pablo Aparicio, al que expreso mi admiración y gratitud. ¡Gracias a todos de corazón! Celia Regidor Pérez Sevilla, 2021 VIII IX Resumen La norma ISO 9001 establece que: “La organización debe evaluar y seleccionar los proveedores en función de su capacidad para suministrar productos de acuerdo con los requisitos de la organización. Deben establecerse criterios para la selección, evaluación y reevaluación”. La variedad de criterios que pueden ser tenidos en cuenta en la toma de decisiones, genera una creciente complejidad en la decisión, además en muchos casos los criterios contienen un carácter subjetivo, motivo que genera diferencias significativas en la calificación de los proveedores, dado que depende de quien realiza la evaluación. La gestión y evaluación de proveedores destaca por ser un paso fundamental de la logística y la gestión de la cadena de suministros, y por tanto el proceso de decisión debe mitigar y eliminar la subjetividad del proceso. El paradigma multicriterio destaca por ofrecer un conjunto de técnicas y métodos capaces de considerar las preferencias del decisor con una orientación más objetiva, en el proceso de selección de proveedores. La disciplina que aborda la ayuda a la toma de decisiones de criterios múltiples está creciendo rápidamente, y son exitosos sus resultados expuestos en numerosos estudios científicos. Sin embargo, estas técnicas no son siempre conocidas y explotadas por los profesionales, los cuales deben poder comprender completamente cada paso de las metodologías e implementarlas de manera fácil, coherente y, lo que es más importante, entender y utilizar correctamente estos métodos. El presente TFM tiene como objetivo desarrollar un conjunto de métodos de decisión multicriterio (TOPSIS, AHP y ponderación lineal) y comparar los resultados obtenidos por los diversos métodos mediante ejemplos e implementaciones en Python. 1 1 OBJETIVOS Y ALCANCE El objetivo principal del presente trabajo es la presentación teórica y computacional de un conjunto de técnicas de decisión multicriterio con la intención de demostrar su capacidad y potencial como herramientas de ayuda a la toma de decisión de selección de proveedores, un paso esencial en la cadena de suministro y, por ende, en la logística. Los métodos de decisión multicriterio que se desarrollan en el proyecto son la ponderación lineal (Scoring), el método analítico jerárquico (AHP), y la teoría de ordenación de preferencias por similtud a la solución ideal (TOPSIS). Para cada uno de estos métodos el trabajo cubre tres aspectos: • El desarrollo y los antecedentes teóricos. • La implementación en Python. • Tres ejemplos numéricos completos. Las implementaciones en Python de los métodos que se incluyen en el trabajo son lo más sencillas posible, evitando funciones complejas con el objetivo de reflejar el paso a paso de las metodologías de una manera intuitiva. De este modo, el trabajo podrá utilizarse en un ámbito didáctico, para aprender sobre las técnicas de decisión multicriterio gracias a ejemplos ilustrativos y a los códigos. Este trabajo también pretende ser herramienta para cualquier individuo que necesite modelar primero y resolver después un problema concreto que necesite abordar utilizando un método de decisión multicriterio. 2 2 INTRODUCCIÓN La cadena de suministro es el conjunto de procesos que tiene lugar desde que se realiza un pedido hasta que este ha sido entregado y pagado. Esta cadena se compone de distintos proveedores y empresas que van abasteciendo al siguiente nivel desde el origen del producto hasta la entrega del producto final. La logística ha ido evolucionando a lo largo de la historia hasta llegar a convertirse en “la parte del proceso que gestiona la cadena de suministro que se encarga de la planificación, implementación y control eficiente del flujo de materiales o productos terminados y servicios, así como del flujo de información relacionada, desde el origen hasta su destino, cumpliendo las necesidades del cliente y con el mínimo coste operativo” (Center of Logistics). El primer nivel de la cadena de suministro es el abastecimiento de esta misma, los proveedores son los encargados de entregar la materia prima a través del proceso denominado compra. De manera que, cuando una empresa inicia un nuevo proyecto el primer paso que se debe realizar es la selección de los proveedores. Este proceso destaca por ser un paso fundamental de la logística y de la gestión de la cadena de suministro ya que afecta a los siguientes eslabones de la cadena además de a la calidad del producto final y por tanto a la satisfacción del cliente que como se exponía anteriormente, es el principal objetivo de la logística. Hoy en día, el elevado número de proveedores que pueden encontrarse para un mismo componente y la gran variedad de criterios y aspectos que pueden tenerse en cuenta para la evaluación de estos hace que crezca exponencialmente la dificultad de la tarea. Además, no son pocos los casos en los que los criterios contienen un carácter subjetivo, generando diferencias significativas en el resultado de la evaluación. Es cierto que no existe ninguna metodología globalmente aceptada para la selección de proveedores. Esto se debe a que las empresas tienen distintas necesidades, buscan satisfacer a clientes con diferentes enfoques y por tanto cada caso de selección y evaluación es único. Sin embargo, son varios los investigadores que proponen distintas soluciones para este problema. Existen numerosos documentos que facilitan una guía para la tarea, entre ellos se pueden encontrar el modelo de Ray Carter (Carter, 1995), la norma ISO 9001 (ISO 9001, 2015) o el estudio de De Boer (de Boer et al., 2001). El paradigma multicriterio destaca por ofrecer un conjunto de técnicas y métodos capaces de considerar las preferencias del decisor con una orientación más objetiva en el proceso de selección de proveedores ayudando a mitigar y eliminar la subjetividad de este mismo. La disciplina de decisión muticriterio, Multiple Criteria Decision Aid (MCDA), ha sufrido un rápido crecimiento en los últimos años. Esta disciplina se ha aplicado de manera exitosa en diferentes problemas científicos y cada vez existen más metodologías de decisión multicriterio y sus diversas variaciones disponibles. Algunas de las metodologías multicriterio más utilizadas son AHP, Promethee, ponderación lineal, TOPSIS, ELECTRE y la teoría de la utilidad multiatributo. 3 Por tanto, el objetivo del presente TFM es el desarrollo de un conjunto de métodos de decisión multicriterio para su aplicación a un problema real de selección de proveedores y comparar los resultados obtenidos a través de los distintos métodos mediante implementaciones en Python. En este caso se han escogido el método de ponderación lineal, el método analítico jerárquico y el método de ordenación de preferencias por similtud a la solución ideal. 4 3 ESTADO DEL ARTE 3.1 Norma Iso 9001 – Evaluación y Selección de Proveedores La norma ISO 9001 es un estándar internacional en cuanto a sistemas de gestión de la calidad desarrollada por la organización internacional para la estandarización, comúnmente conocida como ISO (International Standarization Organization). Esta organización es el mayor desarrollador de estándares internacionales que facilitan tanto el comercio mundial como la creación de productos y servicios seguros y de calidad. Permiten comparar los productos de distintos fabricantes directamente, facilitando que nuevas compañías entren en el mercado y ayudando al desarrollo de un comercio global. Además, ayudan a los negocios a aumentar la productividad y minimizar errores y gastos. Sirven para proteger a los consumidores y usuarios finales de productos y servicios ya que aseguran que los productos certificados se ajustan a estas normalizaciones internacionales. Entre los más de veinte mil estándares establecidos por la ISO, el certificado ISO 9001 es uno de los estándares más demandados y reconocidos en la industria. Esta norma está enfocada a la calidad en las organizaciones, en ella se determinan los requisitos de un sistema de gestión de calidad permitiendo a las empresas demostrar su capacidad de satisfacer con las exigencias de los clientes y acreditándola para cualquier parte interesada. La ISO 9001 se compone de ocho capítulos. En los tres primeros capítulos se incluyen guías y definiciones de conceptos generales; el capítulo cuatro, llamado sistema de gestión, contiene requisitos generales y para gestionar la documentación; el capítulo cinco trata sobre las responsabilidades de la gestión; el capítulo seis incluye los requisitos de gestión de los recursos; el siete, contiene los requisitos de realización del servicio y por último, el capítulo ocho, medición, análisis y mejora, donde se incluyen los requisitos de recopilación y análisis de información para conseguir la mejora contínua. La última revisión de la norma fue en 2015, en ella se incorporaron nuevos requisitos quedando la norma estructurada de la siguiente manera: 5 1. Objeto y campo de aplicación 2. Referencias Normativas 3. Términos y Definiciones 4. Contexto de la Organización 5. Liderazgo 6. Planificación 7. Apoyo 8. Operación 9. Evaluación del Desempeño 10. Mejora La gestión y evaluación de proveedores es un paso fundamental en la logística y la gestión de la cadena de suministros ya que el producto o servicio prestado puede involucrar numerosos procesos externalizados que afectan de manera directa a la calidad. Este aspecto se trata en la cláusula 8.4 de la ISO 9001:2015 que establece que “la organización debe determinar y aplicar criterios para la evaluación, supervisión del rendimiento y la reevaluación de proveedores externos, en función de su capacidad para proporcionar procesos o productos y servicios de acuerdo con las necesidades”. La norma describe un proceso que comienza por una primera selección, continúa con la supervisión del rendimiento del proveedor y termina con su reevaluación y clasificación, un proceso complejo que no se limita a evaluar la documentación. Se entiende como “proveedores externos” los socios que la empresa necesita para llevar a cabo sus distintos procesos y servicios y satisfacer los requisitos de calidad marcados por sus clientes. Como se mencionaba anteriormente, estos proveedores pueden generar grandes impactos en la organización ya que los productos o el servicio prestado pueden tener un alto componente de procesos externalizados que influyen directamente en la calidad. Para la evaluación inicial, es frecuente pedirle al proveedor que rellene un formulario de autoevaluación para conocer su historial de suministro y determinar su cumplimiento. Es también necesario determinar el impacto que tiene el proveedor sobre el producto o servicio, esto ayudará a identificar los puntos más importantes para su selección. En algunos casos, no basta con un análisis de la documentación para identificar problemas potenciales. En estos casos, una visita a las instalaciones del proveedor suele ser una buena opción. Por otro lado, trabajar con proveedores que tengan la certificación de las normas de sistemas de gestión puede facilitar esta tarea otorgando la seguridad de que estos han pasado las auditorías de los organismos de certificación. Este requisito es uno de los más tenidos en cuenta para la evaluación inicial de un proveedor y aconsejado por la norma. Sin embargo, la solución no debe ser desplazar a los proveedores no certificados por otros que sí lo estén. El objetivo de la empresa debe ser la mejora contínua y esto debe extenderse a los proveedores, por tanto, se aconseja desarrollar con ellos planes de acción para resolver problemas que se hayan identificado y de este modo fortalecer la asociación que tienen. 6 Otros requisitos deben ser monitoreados y evaluados de forma contínua, como pueden ser el cumplimiento de la fecha de entrega, la calidad de los materiales y del servicio o el precio. El incumplimiento de estos requisitos puede llegar a tener un gran impacto en el producto y en la producción llegando incluso a paralizarla y produciendo pérdidas financieras y de calidad, por eso es importante reevaluarlos para asegurarse que no se desvíen de los objetivos de la organización teniendo en cuenta el impacto que puedan tener en el producto y los costes que conllevan este tipo de gestiones. 3.2 Métodos de selección de proveedores La selección de proveedores es, como se mencionaba anteriormente, un paso fundamental en la cadena de suministro. Esta decisión tiene un gran impacto tanto en la calidad del producto final, como en la satisfacción del cliente y, se toma no solo para elegir los distribuidores favoritos que cumplan con los requisitos marcados por la empresa, si no también, para ordenar las cantidades de pedidos que se harán a cada uno de ellos para cumplir con el plan de producción. Como cualquier proceso de toma de decisiones, la secuencia lógica que debe seguir esta tarea es, en primer lugar, plantearse la decisión. Una vez se conoce el punto donde se encuentra la empresa es necesario saber a dónde se quiere llegar, cuáles son los objetivos. Por último, teniendo claros el punto de origen y el de destino debe definirse el camino para llegar de uno a otro, la decisión de como lograr el objetivo. Para tomar esta decisión se necesitarán herramientas o métodos. Esta decisión de alto impacto estratégico se ha estudiado y desarrollado por numerosos investigadores, no existe un método o herramienta globalmente aceptada pero sí existen distintas guías propuestas para realizar la tarea. Un ejemplo que se destaca es el estudio de de Boer (de Boer et al., 2001) dónde se proponen cuatro etapas que siguen la secuencia expuesta en el párrafo anterior: definición del problema, determinación de los atributos a evaluar, evaluación de los proveedores mediante una técnica y selección final de un proveedor. La primera etapa que propone De Boer es la definición del problema. Como se menciona anteriormente, el primer paso de cualquier decisión es conocer el punto en el que se encuentra la empresa. En esta etapa debe entenderse el problema en sí, realizarse un rastreo de todos los proveedores que puedan ser del interés de la empresa y para esto es necesario que desde el departamento de compras se realicen una serie de preguntas como ¿Cuál es la cantidad de producto que se desea?, ¿Cuál es el ciclo de vida del producto que se va a adquirir?, ¿Cuál es la madurez del producto en el cual se integra el componente y que se va a poner en venta?, ¿Cuántos de los proveedores identificados tienen influencia en el área geográfica de la empresa compradora?, ¿Por qué es necesario un nuevo proveedor?, etc. Algunas veces este primer paso tan importante se realiza de forma poco rigurosa por lo que no llega a definirse bien. Esto hace que sea de gran relevancia reflexionar y responder bien las cuestiones mencionadas anteriormente, ya que conducirán a tener una mayor claridad sobre el problema. La segunda etapa es la determinación de los atributos a evaluar. Los atributos o métricas pueden clasificarse en cuantitativas o cualitativas, y de coste o beneficio. Las métricas cuantitativas son aquellas que pueden medirse por una escala ya establecida, un ejemplo de un atributo cuantitativo es el tiempo de espera. Por otro lado, las métricas cualitativas son aquellas que no toman valores numéricos y necesitan del juicio de personal con experiencia y que conozca el problema de decisión y a los proveedores. Un ejemplo de atributo cualitativo es la similitud cultural. Las métircas de coste son aquellas que se desean minimizar, mientras que las de beneficio son las que se desean maximizar. 7 Las métricas a tener en cuenta para la evaluación y selección de proveedores son numerosas y dependerán de los objetivos y necesidades de cada empresa, las cuales priorizarán los atributos en base a los distintos problemas que presenten. Huang y Keskar (Huang, 2007) presentan un conjunto de métricas para evaluar el rendimiento de los proveedores que agrupan en siete categorías. Las tres primeras categorías están relacionadas con el producto, las dos consecutivas con el proveedor y las dos últimas con la sociedad. Las métricas de fiabilidad son aquellas que marcan un buen funcionamiento. Algunas de ellas se muestras en la tabla a continuación: Porcentaje de órdenes recibidas sin daños número de pedidos libres de daños dividido por el número total de órdenes procesadas en el período de medición. Porcentaje de pedidos completos recibidos número de órdenes recibidas completas dividida por el número total de órdenes procesadas en el período de medición. Porcentaje de pedidos recibidos en la fecha comprometida número de pedidos recibidos en la fecha acordada dividido por el número total de pedidos procesados en el período de medición. Porcentaje de pedidos recibidos con documentación de transporte correcta número de pedidos recibidos con documentación de transportes correcta dividido por el número total de pedidos procesados en el período de medición. Porcentaje de instalaciones perfecta número de instalaciones perfectas dividido por el numero total de unidades instaladas. Gastos de desechos gastos de material que no puede ser reelaborada y representan el porcentaje del coste total de producción. Nivel de servicio porcentaje de pedidos enviados a stock dentro de las 24 horas del recibo de la orden. Relación entre el tiempo de ciclo actual y el teórico relación entre el tiempo medido requerido para la finalización del proceso dividido por la suma del tiempo necesario para terminar cada tarea en función de la eficiencia nominal de la maquinaria y la mano de obra en las operaciones. Rendimientos de la fabricación proporción de la producción utilizable a partir de un proceso a su entrada. Exactitud del inventario valor absoluto de la suma de la varianza entre el inventario físico y el inventario permanente. 8 Control de la calidad del material entrante procedimientos de garantía de calidad, control de calidad de las materias recibidas en proveedor y perspectivas de mejoras de calidad hacia los proveedores. Tasa de fallos en los procesos porcentaje de trabajo en el momento del proceso que no se ha completado. Tabla 1. Métricas de fiabilidad. En la siguiente tabla se muestran algunas de las métricas de capacidad de respuesta. Tiempo de ciclo de entrega tiempo de espera estándar después de la recepción de la orden a los clientes emitida poe el departamento de ventas. Tiempo de espera de la orden de realización media de tiempo desde la firma del cliente o autorización a la orden de recepción. Velocidad de retorno de producto tiempo medio requerido para el proceso de devolución de los productos defectuosos, incompletos o dañados y el reenvío a la orden al cliente. Ciclo medio de emisión de cambios tiempo de ciclo para la implementación de avisos de cambio dividido por el número total de cambios. Tiempo total de ciclo de fabricación media de tiempo de fabricación a almacenamiento o de configuración a orden de producto desde que la producción comienza hasta que la unidad se considera entregable. Tiempo de ciclo del proceso de producto finalizado tiempo total requerido para realizar la documentación de postproducción, pruebas o certificación requerida antes de la entrega del producto acabado al cliente. Tiempo de ciclo de instalación tiempo total requerido para realizar la instalación del producto en el sitio del cliente para iniciar su funcionamiento. Tiempo de ciclo del procesado o servicio de un producto tiempo necesario para realizar la fabricación con un componente necesario o servicio desde el momento de la solicitud hasta el momento de la entrega. Tiempo decambio de producto o categoría tiempo medio necesario para cambiar de un producto o categoría a otro producto o categoría. 9 Tiempo de ciclo de replanificación de la producción interna tiempo entre la aceptación de un producto previsto y la producción del plan revisado en el programa de producción de todas las plantas afectadas, aquí se excluyen los proveedores externos. Tiempo de cuarentena o retención tiempo medio de anulación de los artículos de la disponibilidad para su uso o venta hasta que todas las pruebas de calidad se han realizado para cumplir la certificación. Tiempo de ciclo de ingeniería de producción tiempo medio necesario para la generación y entrega final de diseños, especificaciones, fórmulas. Trabajos generales de ingeniería preliminar que se realiza como parte del proceso presupuestado. Tabla 2. Métricas de capacidad de respuesta . Las métricas de flexibilidad se empiezan a tener en cuenta a finales de 1990. Se enumeran y explican en la siguiente tabla algunas métricas de esta categoría. Tiempo de expedición en el proceso de entrega o traspaso tiempo de ciclo para el proceso de entrega y traspaso en comparación con el tiempo de ciclo para proceso de entrega y traslado estándar. Coste de expedición en el proceso de entrega o traspaso coste adicional requerido por la expedición acelerada de un proceso de entrega y traslado. Ventaja en la flexibilidad de pedido número de días necesarios para lograr un aumento sostenible no planificado del 20% de los pedidos. Desventaja en la flexibilidad de pedido porcentaje de reducción de la producción de manera sostenible en los treinta días antes del envío y sin penalización o coste de inventario. Desventaja en la flexibilidad de entrega número de días necesarios para lograr un aumento sostenible no planificado del 20% de las entregas. Inconveniente en la flexibilidad de entrega porcentaje de reducción del suministro de manera sostenible en los treinta días antes del envío y sin penalización o coste de inventario. Ventaja en la flexibilidad de la instalación número de días necesarios para lograr un aumento sostenible no planificado del 20% de las instalaciones. Inconveniente en la flexibilidad de la instalación reducción sostenible y sin penalización del porcentaje de instalación treinta días antes de la instalación. 10 Ventaja en la entrega de envíos número de días necesarios para lograr un aumento sostenible no planificado del 20% en los envíos. Inconveniente en la entrega de envíos reducción sostenible y sin penalización del porcentaje de envíos treinta días antes de su envío. Tiempo de ciclo ECO (Engineering Change Order) tiempo total requerido desde la solicitud de cambio (del cliente, ingeniería, producción o control de calidad) para revisar un modelo o diseño hasta implementar el cambio en la operación. Tabla 3. Métricas de flexibilidad . En la siguiente tabla se muestran algunas de las métricas de coste y financiación. Rotación de inventario coste total de las ventas dividio por el valor del inventario realizado en el período de medición. Términos de pagos adecuación con los términos y condiciones relacionados con el pago de facturas, cuentas abiertas, giros a la vista, carta de crédito y calendario de pagos. Política de devolución idoneidad de las políticas en relación con el retorno de los pedidos defectuosos, dañados o incompletos. Costes de garantía coste incluye materiales, mano de obra y el diagnóstico de problemas para los productos defectuosos. Coste final coste final incluyendo el coste de los componentes, pedidos, el coste de envío, impuestos, honorarios del corredor, gastos de aduana, tasas de cualificación necesarios para el pago por componente o pedido. Tasa de descuento idoneidad del programa de descuentos aplicado en el pago de facturas dentro de los plazos. Estabilidad financiera indicador de la volatilidad excesiva de los precios de los activos, inusual pérdida de liquidez, interrupciones en el funcionamiento de los sistemas de pago, excesivo racionamiento del crédito, etc. Coste del embalaje coste de una serie de actividades que permiten tratar el producto para el almacenamiento o la venta a los usuarios finales. 17 𝑋= [ 1 𝑥12 ⋯ 𝑥1𝑛 1 𝑥12 1 ⋯ ⋮ ⋮ ⋮ 1 𝑥𝑖𝑛 1 𝑥1𝑛 1 𝑥𝑖𝑛 ⋯ 1 ] Siendo 𝑥𝑚1=1 𝑥1𝑛 y 𝑥𝑚𝑗=1 𝑥𝑖𝑛. Si la matriz X es perfectamente consistente, se cumplirá 𝑥𝑖𝑗=𝑥𝑖𝑘∙𝑥𝑘𝑗 para cada una de las comparaciones. Por ejemplo, si el tiempo de entrega de la opción 1 es dos veces mayor que el de la opción 2 y este a su vez 3 veces mayor que el de la opción 3, el tiempo de entrega de la opción 1 será 2∙3=6 veces mayor que el tiempo de entrega de la opción 3. Sin embargo, debido a que la matriz se rellena con juicios y subjetividad, esta regla no tiene por qué cumplirse siempre y pueden aparecer inconsistencias. Una de las ventajas de AHP es que permite calcular la consistencia de la matriz. Este proceso se explicará más adelante. El primer paso del método es crear la matriz de comparación por pares de criterios. Esta matriz es una matriz 𝑛×𝑛 que contiene la importancia relativa de un criterio de evaluación sobre otro. Para crear esta matriz es necesario hacer 𝑛2−𝑛 2 comparaciones. Una vez calculada la consistencia, a partir de la matriz de comparación de criterios se puede sacar el vector de prioridad de criterios. Existen diferentes métodos para la obtención de este vector como la media geométrica, el método del Eigenvector o el método de suma de columnas normalizadas. El método del Eigenvector es el método que propone Saaty (T. L. Saaty, 1977) para la obtención del vector de prioridad el cual se define como el Eigenvector de la matriz X . Teniendo la matriz X cuyos elementos se han obtenido como ratio de los pesos, se multiplica por W . 𝑋∙𝑤= [ 1𝑤1 𝑤2…𝑤1 𝑤𝑛 𝑤2 𝑤11 … 𝑤2 𝑤𝑛 ⋮ ⋮ 1 ⋮ 𝑤𝑛 𝑤1𝑤𝑛 𝑤2… 1 ] [𝑤1 𝑤2 𝑤𝑛]=[𝑛∙𝑤1 𝑛∙𝑤2 𝑛∙𝑤𝑛]=𝑛∙𝑤 Este tipo de igualdad implica que n y w son valores y vectores propios de X . El vector W se puede obtener gracias a la matriz X resolviendo el siguiente sistema de ecuaciones. {𝑋∙𝑤=𝜆𝑚𝑎𝑥 𝑤𝑇∙[1,1,…,1]𝑇=1 (2) El método de suma de columnas normalizadas calcula el vector de prioridad de criterios W como la suma de elementos en una fila dividido por la suma de elementos de toda la matriz. De esta manera: 𝑤𝑖=∑𝑥𝑖𝑗 𝑛𝑗=1 ∑ ∑ 𝑥𝑖𝑗 𝑛𝑗=1 𝑛𝑖=1 (3) 18 Por último, se explica el método de la media geométrica. Este método propuesto por Crawford and Williams (Crawford & Williams, 1985), consiste en obtener el vector de prioridad como la media geométrica de los elementos de una fila dividido por un término de normalización para hacer la suma de w igual a 1. 𝑤𝑖=(∏𝑥𝑖𝑗 𝑛𝑗=1 )1𝑛 ∑(∏𝑥𝑖𝑗 𝑛𝑗=1 )1𝑛 𝑛𝑖=1 (4) Además de estos tres métodos, en la literatura existen diversas propuestas que también podrían utilizarse para el cálculo del vector de prioridad (Cook & Kress, 1988; Fichtner, 1986) . El siguiente paso del método es la creación de la matriz de comparación por pares de las alternativas para cada uno de los atributos. Este paso es muy parecido al primero, en este caso el sujeto encargado de tomar la decisión expresará la importancia relativa de cada una de las alternativas en los diferentes criterios dando lugar a n matrices de tamaño 𝑚×𝑚. Una vez obtenidas estas matrices se calculará, de manera análoga a la del segundo paso, la consistecia de las mismas. Para el cálculo de los vectores de prioridad de las alternativas sirve cualquiera de los tres métodos mencionados anteriormente. La única diferencia es que en este caso n se sustituye por m y W por Sj . Donde j se corresponde los criterios asociados a cada una de las matrices de comparación por pares de las alternativas. A continuación, se muestra la matriz de puntos S donde cada columna se corresponde con el vector Sj . 𝑆=[𝑠1𝑠2…𝑠𝑛] Por último, las prioridades de las alternativas para cada criterio y las prioridades de criterios se combinan para dar lugar a las prioridades globales de las distintas alternativas v . 𝑣=𝑆∙𝑤 (5) Las prioridades se ordenan en orden decreciente obteniendo de este modo el resultado del problema de decisión. Es conveniente que una vez creadas las matrices de comparación se compruebe su consistencia. Para cada fila de la matriz de comparación se determina una suma ponderada en base a la suma del producto de cada celda por la prioridad de cada alternativa correspondiente. Esta suma ponderada para cada fila se divide por la prioridad de su alternativa correspondiente y se hace la media de los resultados obtenidos dando lugar a 𝜆max. El índice de consistencia ( CI ) se calcula como se muestra a continuación: 𝐶𝐼=𝜆𝑚𝑎𝑥−𝑛 𝑛−1 (6) Dependiendo del número de alternativas se tiene un valor para el índice aleatorio ( RI ) (T. L. Saaty, 1977). 19 Figura 3. Índices aleatorios (Papathanasiou & Ploskas, 2018) El cociente de consistencia ( CR) se calcula como la división del índice de consistencia y el índice aleatorio, cuanto más cercano a 0 sea el valor de CR más consistente será la matriz. 𝐶𝑅=𝐶𝐼 𝑅𝐼 (7) 3.3.3 TOPSIS La técnica de ordenación de prefencias por similitud a la solución ideal, más conocida como TOPSIS (Technique for Order of Preference by Similarity to Ideal Solution), es un método de decisión multicriterio bastante sencillo desarrollado por Hwang y Yoon (Hwang & Yoon, 1981). Como indica su nombre, el método se basa en encontrar una solución ideal y una solución anti-ideal y comparar las distiancias de cada una de las alternativas a estas dos soluciones. Este método se puede considerar uno de los métodos de decisión multicriterio clásicos que se ha aplicado a lo largo del tiempo de manera exitosa en diversos problemas. La metodología inicial ya era lo suficientemente versátil, permitía distintos experimentos y modificaciones. Sin embargo, los estudios se han centrado en la determinación de la solución ideal y anti-ideal y como calcular las distancias a estas soluciones. TOPSIS considera tres tipos de criterios: los de beneficio cualitativo, los de beneficio cuantitativo y los atributos de coste. Además, se formulas dos hipótesis sobre alternativas artificiales: la solución ideal o ideal positiva que es la alternativa que presenta los mejores valores nominales en los atributos y la alternativa anti-ideal o ideal negativa que es aquella que integra los peores valores nominales en los atributos. Es importante recalcar que estas alternativas ideal positiva e ideal negativa en realidad no existen, se generan a partir de los datos que se tienen en una matriz de decisión final. TOPSIS asume m alternativas y n criterios o métricas. Existe la matriz de decisión Xmxn donde xij es la puntuación de la alternativa i respecto al criterio j . Además, existe el vector de pesos de los criterios, W que cumple ∑𝑤𝑗=1 𝑛𝑗=1 . A continuación, se explican detalladamente los pasos del método (Papathanasiou & Ploskas, 2018). El primer paso consiste en normalizar la matriz de decisión. Para poder comparar los distintos tipos de criterios y atributos es necesario hacerlos adimensionales, dicho de otro modo, eliminar sus unidades. El valor normalizado de cada puntuación xij se calcula por el método de normalización vectorial: 𝑟𝑖𝑗=𝑥𝑖𝑗 √∑𝑥𝑖𝑗 2 𝑚 𝑖=1 , 𝑖=1,…,𝑚, 𝑗=1,…,𝑛 (8) 20 Existen otros métodos para obtener la matriz normalizada Rmxn como la normalización linear, o el método de normalización no monótona. Este paso es importante ya que puede tener un gran efecto sobre el ranking final. El segundo paso es la construcción de la matriz de decisión normalizada ponderada Vmxn donde vij se calcula de la siguiente manera: 𝑣𝑖𝑗=𝑤𝑗𝑟𝑖𝑗, 𝑖=1,…,𝑚, 𝑗=1,…,𝑛 (9) El siguiente paso del método es la determinación de las soluciones ideal y anti-ideal. Lo más sencillo es que estas soluciones las determine el sujeto que se encarga de tomar la decisión. Sin embargo, esto debe evitarse debido a la subjetividad que le añadirá al problema. Se muestra a continuación, la propuesta para determinar la solución ideal positiva A* e ideal negativa A- . 𝐴∗={𝑣1∗,…,𝑣𝑛∗}={ (𝑚𝑎𝑥𝑗𝑣𝑖𝑗| 𝑖∈𝐼´),(𝑚𝑖𝑛𝑗𝑣𝑖𝑗| 𝑖∈𝐼´´)}, 𝑖=1,…,𝑚, 𝑗=1,…,𝑛 (10) 𝐴−={𝑣1−,…,𝑣𝑛−}={ (𝑚𝑖𝑛𝑗𝑣𝑖𝑗| 𝑖∈𝐼´),(𝑚𝑎𝑥𝑗𝑣𝑖𝑗| 𝑖∈𝐼´´)}, 𝑖=1,…,𝑚, 𝑗=1,…,𝑛 (11) La solución ideal se obtiene de las mejores puntuaciones de la matriz de decisión normalizada ponderada y la anti-ideal de las peores puntuaciones. Por otro lado, los elementos pertenecientes al conjunto 𝐼´ son aquellos relacionados con atributos de beneficio y los pertenecientes al conjunto 𝐼´´ los relacionados con atributos de coste. Una vez se tienen la solución ideal y la anti-ideal, el siguiente paso es el cálculo de la distancia de cada alternativa a la solución ideal positiva y negativa ( Si * y Si - respectivamente). 𝑆𝑖∗=√∑(𝑣𝑖𝑗−𝑣𝑗∗)2 𝑛 𝑗=1 , 𝑖=1,…,𝑚, 𝑗=1,…,𝑛 (12) 𝑆𝑖−=√∑(𝑣𝑖𝑗−𝑣𝑗−)2 𝑛 𝑗=1 , 𝑖=1,…,𝑚, 𝑗=1,…,𝑛 (13) Esta es una de las formas de calcular las distancias más extendidas, la distancia euclídea. Podría calcularse de otras formas como, por ejemplo, la distancia Manhattan o la distancia Hamming. El paso cinco es el cálculo de la cercanía relativa a la solución ideal ( Ci * ) que se calcula como sigue: 𝐶𝑖∗=𝑆𝑖− 𝑆𝑖∗+𝑆𝑖− , 0<𝐶𝑖∗<1 (14) Por último, el paso final es ordenar las alternativas en un rankin con Ci * decreciente, siendo la mejor alternativa y la solución del problema la primera de esta lista. 21 4 DESARROLLO 4.1 Herramientas e implementación Para el desarrollo de este proyecto se ha utilizado el lenguaje de programación Python. Este es un lenguaje similar al Perl que fue creado por Guido Van Rossum en los años 90. Destaca por la limpieza de su sintaxis, lo que facilita la lectura del código. Este lenguaje se ejecuta utilizando un intérprete, un entorno de desarrollo integrado (IDE) llamado Pycharm. Esto hace que su ejecución sea más rápida que la compilación directa desde una computadora. Sin embargo, Python comparte muchas características con los lenguajes compilados por lo que podría decirse que es semi interpretado. Además, Python se caracteriza por no tener que declarar el tipo de dato que contendrá una variable, a esto se la llama tipado dinámico. El tipo de dato de la variable se determinará en el tiempo de ejecución dependiento el tipo de valor al que se le asigne. Este lenguaje no permite tratar una variable como si tuviera un tipo distinto al que se le ha asignado. Habría que hacer la conversión previamente. Esta característica define a Python como “fuertemente tipado”. Otra de las características básicas de este lenguaje es que permite la programación orientada a objetos. Esto es un paradigma de programación donde los conceptos de la realidad necesarios para el problema en cuestión se trasladan a clases y objetos en el programa. La ejecución del programa no es más que un conjunto de interacciones entre los objetos. Para la realización de este proyecto se ha elegido este lenguaje debido a su sencillez, claridad y simplicidad de su sintaxis, la gran variedad de librerías disponibles ofrece la posibilidad de usarlo en diferentes dispositivos y sistemas operativos y, sobre todo, por su creciente popularidad a nivel mundial hoy en día. Se ha intentado mantener el código lo más simple y claro posible para que sea intuintivo y pueda utilizarse por personas cuyo conocimiento en Python sea muy básico. Por lo que, no se hará uso de muchas de las ventajas de este lenguaje ya que estas quedan fuera del alcance del proyecto. Uno de los objetivos de este proyecto es que el código sirva como herramienta para personas que estudien estas técnicas o para personas que quieran aplicarlas para resolver un problema de decisión real. 4.2 Implementación de metodologías multicriterio En este apartado se aborda la implementación en Python de las técnicas de decisión multicriterio explicadas en el presente trabajo. El objetivo de este proyecto no es tanto hacer uso de las funciones más complejas de Python, si no que la metodología paso a paso de cada técnica quede visible en su implementación de manera que estas puedan utilizarse en un ámbito académico. 22 4.2.1 Ponderación lineal El archivo Scoring.py contiene la implementación de este método. La implementación de este método es sencilla, las variables de entrada son la matriz del grado de satisfacción de alternativas para cada criterio ( s) y el vector que contiene el peso de cada criterio ( w). A continuación, se calculan el número de alternativas m como el número de columnas de la matriz s y el número de criterios n como el número de posiciones del vector w. Por último, se obtienen las puntuaciones globales de cada alternativa como la suma de la aportación de cada criterio para esta alternativa, como se explicaba detalladamente en el paso a paso de la metodología. De esta manera se construye el vector p. La mejor alternativa será aquella con mayor puntuación global. from numpy import * s=[[8, 6, 7], [3, 7, 8], [5, 6, 7], [7, 5, 4]] w=[5,3,4,2] # m alternativas y n criterios m=len(s[0]) n=len(w) p=zeros(m) for i in range (m): P=0 for j in range (n): P+=s[j][i]*w[j] p[i]=P print("puntuaciones globales:", p) 4.2.2 AHP El archivo AHP.py contiene la implementación de la metodología AHP. Las variables de entrada son las matrices de comparación de alternativas para cada criterio que se han nombrado como MCAi para cada uno de los criterios, la matriz de comparación de criterios que se ha nombrado como MCcriterios , la matriz Matrices_alternativas que no es más que una lista que contiene las matrices de comparación de alternativas y los índices aleatorios RI para la comprobación de la consistencia. from numpy import * #En MCcriterios introducir la matriz de comparación entre criterios MCcriterios=[[1, 2, 5, 1/3], [1/2, 1, 2, 1/5],[1/5, 1/2, 1, 1/7], [3, 5, 7, 1]] #En MCAi introducir las matrices de comparación de alternativas para cada criterio i MCA1=[[1, 5, 1, 1, 1/3, 3], [1/5, 1, 1/3, 1/5, 1/7, 1], [1, 3, 1, 1/3, 1/5, 1],[1, 5, 3, 1, 1/3, 3], [3, 7, 5, 3, 1, 7], [1/3, 1, 1, 1/3, 1/7, 1]] MCA2=[[1, 7, 3, 1/3, 1/3, 1/3], [1/7, 1, 1/3, 1/7, 1/9, 1/7], [1/3, 3, 1, 1/5, 1/5, 1/5], [3, 7, 5, 1, 1, 1], [3, 9, 5, 1, 1, 1], [3, 7, 5, 1, 1, 1]] MCA3=[[1, 1/9, 1/7, 1/9, 1, 1/5],[9, 1, 1, 1, 5, 3],[7, 1, 1, 1, 5, 1],[9, 1, 1, 1, 7, 3],[1, 1/5, 1/5, 1/7, 1, 1/3],[5, 1/3, 1, 1/3, 3, 1]] MCA4=[[1, 1/5, 1/5, 1/3, 1/7, 1/5],[5, 1, 1, 3, 1/3, 1],[5, 1, 1, 1, 1/3, 1],[3, 1/3, 1, 1, 1/7, 1],[7, 3, 3, 7, 1, 5],[5, 1, 1, 1, 1/5, 1]] #En Matrices_alternativas introducir todas las matrices de comparación de alternativas: 23 #Matrices_alternativas=[MCA1, ..., MCAi, ..., MCAn] Matrices_alternativas=[MCA1, MCA2,MCA3, MCA4] RI=[0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49] Siguiendo el código, se obtienen n y m que serán el número de criterios y de alternativas del problema que se desee implementar respectivamente. #Cálculo de número de alternativas m y de criterios n n=len(MCcriterios) m=len(MCA1) A continuación, se definen las funciones que van a utilizarse. La función crear_matriz devuelve una matriz de ceros con las dimensiones que se introduzcan como argumento, introduciendo el número de filas en el lugar de m y el de columnas en el de n. def crear_matriz (m, n): return[[0 for j in range(n)] for i in range (m)] Las funciones norm y norm2 son similares, la primera de estas recibe como argumento una matriz y devuelve el vector de prioridad utilizando el método de columnas normalizadas, se utilizará para la matriz de comparación de criterios. Nótese que podría haberse utilizado otro de los métodos mencionados en el desarrollo de la metodología para la normalización de la matriz. Sin embargo, en este caso se ha optado por elegir el método de columnas normalizadas. #Función que calcula el vector de prefencia a través del método "columnas normalizadas" para la matriz de alternativas def norm2 (x): dim=len(x) dim2=len(x[0]) dim3=len(x[0][0]) s=crear_matriz(dim,dim2) sum=zeros(dim) sum_columna=crear_matriz(dim,dim2) for i in range (dim): for j in range (dim2): for k in range (dim3): sum[i]+=x[i][j][k] for i in range (dim): for j in range (dim2): for k in range (dim3): sum_columna[i][j]+=x[i][j][k] s[i][j]=sum_columna[i][j]/sum[i] return(s) La diferencia con norm2 es que esta última recibe una lista de matrices y devuelve una lista de vectores de prioridad utilizando el mismo método que norm, el método de columnas normalizadas. La función norm2 se utilizará para obtener la matriz que contiene los vectores de prioridad de todas las matrices de comparación de alternativas, contenidas en la lista Matrices_alternativas. 24 #Función que calcula el vector de prefencia a través del método "columnas normalizadas" para la matriz de criterios def norm (x): dim=len(x) w=zeros(dim) sum=0 sum_columna=zeros(dim) for i in range (dim): for j in range (dim): sum+=x[i][j] for i in range(dim): for j in range (dim): sum_columna[i]+=x[i][j] w[i]=sum_columna[i]/sum return (w) La función consistencia recibe como argumento una matriz de comparación y devuelve su coeficiente de consistencia ( CR) . def consistencia(x): dim=len(x) w=zeros(dim) sum=0 sum_columna=zeros(dim) R=zeros(dim) lambdaa=0 for i in range (dim): for j in range (dim): sum+=x[i][j] for i in range(dim): for j in range (dim): sum_columna[i]+=x[i][j] w[i]=sum_columna[i]/sum print(w) for i in range (dim): r=0 for j in range (dim): r+=x[i][j]*w[j] R[i]=r for i in range (dim): lambdaa+=R[i]/w[i] lambdamax=lambdaa/dim CI=(lambdamax-dim)/(dim-1) CR=CI/RI[dim-1] return(CR) Haciendo uso de estas funciones se desarrolla el método como se muestra a continuación. En primer lugar, se llama a la función norm para calcular el vector de prioridad w y norm2 para obtener la matriz con los vectores de prioridad de de las matrices de comparación de alternativas. 25 Trasponiendo la matriz s , se obtiene el vector de prioridades globales como la multiplicación de esta por el vector de prioridades de la matriz de criterios, w. Siendo la mejor alternativa aquella con la prioridad global mayor. #Llamada a la función para calcular el vector de prioridad de criterios w w=norm(MCcriterios) print("El vector de prioridad de criterios es = ", w) #Llamada a la función para calcular la matriz de prioridad de alternativas s s=norm2(Matrices_alternativas) print("La matriz de prioridad de alternativas es = ", s) #Cálculo del vector de prioridad global S=transpose(s) V=zeros(m) for i in range (m): sum=0 for j in range (n): sum+=w[j]*S[i][j] V[i]=sum #Llamada para comprobar consistencia Matrices CR=consistencia(MCcriterios) print(CR) if CR>0.1: print("La matriz de comparación introdicda es incosistente") print("Las prioridades globales son = ", V) 4.2.3 TOPSIS El archivo TOPSIS.py contiene la implementación de la metodología TOPSIS. Las variables de entrada son la matriz de puntuación de las alternativas i frente al criterio j ( x), el vector de pesos de los criterios j ( w) y el vector tipo que contiene en cada posición el tipo del criterio j. Este vector contendrá un uno si el atributo es de beneficio y un dos si el atributo es de coste. Esto será necesario a la hora de determinar la solución ideal y anti-ideal. from numpy import * x=[[8, 7, 2, 1], [5, 3, 7, 5], [7, 5, 6, 4], [9, 9, 7, 3], [11, 10, 3, 7], [6, 9, 5, 4]] pesos=[0.4,0.3,0.1,0.2] #Tipo de atributo: los atributos de beneficio son de tipo 1 y los de coste tipo 2 tipo=[1,1,1,1] Las funciones que se han definido para la implementación de la metodología TOPSIS se explican a continuación. En primer lugar, se define la función crear_matriz que recibe como argumentos m y n , el número de filas y columnas de la matriz que se desea crear y construye una matriz de ceros de las dimensiones indicadas. def crear_matriz (m, n): return[[0 for j in range(n)] for i in range (m)] 26 La función norm_matriz recibe como argumento una matriz que será la matriz de puntuación de y devuelve la matriz normalizada norm_x utilizando el método de normalización vectorial descrito anteriormente. def norm_matriz(x): filas=len(x) columnas=len(x[0]) sum_col=zeros(columnas) #Sumatorio de los elementos de cada columna para crear matriz normalizada for j in range(columnas): suma_columna=0 for i in range (filas): suma_columna+=x[i][j]**2 sum_col[j]=suma_columna norm_x=crear_matriz(filas, columnas) for j in range(columnas): for i in range (filas): norm_x[i][j]=(round(x[i][j]/sqrt(sum_col[j]),3)) return(norm_x) La función matriz_pond recibe como argumento una matriz, en este caso será la matriz normalizada, y devuelve la matriz de decisión normalizada ponderada wnx. def matriz_pond(norm_x, pesos): wnx=crear_matriz(filas,columnas) for i in range (filas): for j in range (columnas): wnx[i][j]=round(pesos[j]*norm_x[i][j],3) return (wnx) Las funciones solución_id y solución_anti reciben como argumento la matriz de decisión normalizada ponderada wnx y devuelven la solución ideal, sol_ id y la solución anti-ideal, sol_anti respectivamente. def solucion_id(wnx): sol_id=zeros(columnas) maxmin=zeros(filas) for j in range (columnas): for i in range (filas): maxmin[i]=wnx[i][j] sol_id[j]=max(maxmin) if (tipo[j]==1) else min(maxmin) return (sol_id) def solucion_anti(wnx): sol_anti=zeros(columnas) maxmin=zeros(filas) for j in range (columnas): for i in range (filas): maxmin[i]=wnx[i][j] sol_anti[j]=min(maxmin) if (tipo[j]==1) else max(maxmin) return (sol_anti) La función distancias recibe como argumento una solución, ya sea la ideal o la anti-ideal y la matriz de decisión normalizada ponderada wnx y devuelve la distancia a esta solución dist. 33 La matriz que se obtiene se muestra a continuación. MCA1 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 0,33 3 Prov. 2 3 1 7 Prov. 3 0,33 0,14 1 Tabla 12. Matriz de comparación de alternativas para el coste unitario. Para el coste del porte las consideraciones por parte del grupo de decisión fueron: • El proveedor 2 tiene una importancia muy fuerte sobre el proveedor 1, 𝑥21=7 y 𝑥12=1/7. • El proveedor 2 es ligeramente más importante que el proveedor 3, 𝑥23=2 y 𝑥32=1/2. • El proveedor 3 es más importante que el proveedor 1, 𝑥31=5 𝑦 𝑥13=1/5. De esta manera, resulta la matriz de comparación de alternativas en cuanto al coste del porte. MCA2 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 0,14 0,2 Prov. 2 7 1 2 Prov. 3 5 0,5 1 Tabla 13. Matriz de comparación de alternativas para el coste del porte. Para la matriz de comparación de alternativas en cuanto al servicio se considera: • El proveedor 1 y el proveedor 2 con la misma importancia, 𝑥12=𝑥21=1. • El proveedor 3 con una importancia ligeramente mayor al proveedor 2 y al 1, 𝑥31=𝑥32= 3 y 𝑥13=𝑥23=1/3. Resultando la siguiente matriz MCA3 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 1 0,33 Prov. 2 1 1 0,33 Prov. 3 3 3 1 Tabla 14. Matriz de comparación de alternativas para el servicio. Por último, para la matriz de comparación de alternativas en cuanto al plazo de entrega se considera: • El proveedor 1 igual de importante que el proveedor 3, 𝑥13=𝑥31=1. • El proveedor 1 y el proveedor 3 tienen los dos, al ser de lla misma importancia, una importancia fuerte sobre el proveedor 3, 𝑥12=𝑥32=5 y 𝑥21=𝑥23=1/5. 34 Obteniéndose la siguiente matriz. MCA4 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 5 1 Prov. 2 0,2 1 0,2 Prov. 3 1 5 1 Tabla 15. Matriz de comparación de alternativas para el plazo de entrega. Para verificar la consistencia se siguen los mismos pasos que para la matriz de comparación de criterios y se obtienen los siguientes resultados: Matriz de comparación de alternativas para: 𝜆 max CI CR Coste unitario 3,011 0,005 0,01 Coste del porte 3,025 0,012 0,024 Servicio 3 0 0 Plazo 3 0 0 Tabla 16. Coeficientes de consistencias de las matrices de comparación de alternativas. Se comprueba que todas las matrices son consistentes puesto que para cada uno de los atributos 𝐶𝑅≤0,1. Por lo que, para este problema, se parte de unas variables de entrada consistentes. 5.1.1.5.2.2 Implementación del ejemplo Para la implementación de esta técnica se utiliza el archivo AHP.py. Como variables de entrada se introducen MCcriterios, MCA1, MCA2, MCA3 y MCA4 y los valores de los índices aleatorios RI como sigue: from numpy import * #En MCcriterios introducir la matriz de comparación entre criterios MCcriterios=[[1, 1, 1/3, 1/5], [1, 1, 1/3, 1/5],[3, 3, 1, 1/3], [5, 5, 3, 1]] #En MCAi introducir las matrices de comparación de alternativas para cada criterio i MCA1=[[1, 1/3, 3], [3, 1, 7], [1/3, 1/7, 1]] MCA2=[[1, 1/7, 1/5], [7, 1, 2], [5, 1/2, 1]] MCA3=[[1, 1, 1/3],[1, 1, 1/3],[3, 3, 1]] MCA4=[[1, 5, 1],[1/5, 1, 1/5],[1, 5, 1]] #En Matrices_alternativas introducir todas las matrices de comparación de alternativas: #Matrices_alternativas=[MCA1, ..., MCAi, ..., MCAn] Matrices_alternativas=[MCA1, MCA2,MCA3, MCA4] RI=[0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49] La comprobación de la consistencia de las matrices se llama a la función consistencia. #Llamada para comprobar consistencia Matrices CR=consistencia(MCcriterios) print(CR) if CR>0.1: print("La matriz de comparación introdicda es incosistente") Obteniéndose para cada matriz los resultados de consistencias expuestos anteriormente. 35 Para obtener el resultado del problema con este método, se hacen las llamadas a las funciones definidas y explicadas en el anterior apartado de este documento. #Llamada a la función para calcular el vector de prioridad de criterios w w=norm(MCcriterios) print("El vector de prioridad de criterios es = ", w) #Llamada a la función para calcular la matriz de prioridad de alternativas s s=norm2(Matrices_alternativas) print("La matriz de prioridad de alternativas es = ", s) #Cálculo del vector de prioridad global S=transpose(s) V=zeros(m) for i in range (m): sum=0 for j in range (n): sum+=w[j]*S[i][j] V[i]=sum print("Las prioridades globales son = ", V) El vector de prioridad de criterios w y la matriz de vectores de prioridades de las alternativas s que se obtienen son los siguientes: Coste unitario Coste porte Servicio Plazo w 0,1 0,1 0,28 0,53 Tabla 17. Vector de prioridad para criterios . s Coste unitario Coste porte Servicio Plazo Prov. 1 0,26 0,08 0,2 0,46 Prov. 2 0,65 0,56 0,2 0,09 Prov. 3 0,09 0,36 0,6 0,46 Tabla 18. Matriz de prioridades para alternativas. Las prioridades globales que resultan son: Prov. 1 Prov. 2 Prov. 3 V 0,33 0,22 0,45 Tabla 19. Vector de prioridades gloables para alternativas. 5.1.1.5.2.3 Resultados Por último, se llega a la cuarta etapa: la selección final de un proveedor. Esta tarea la lleva a cabo el panel de expertos, basándose en los resultados obtenidos en la implementación de la técnica. En la Tabla 20 se muestra el ranking de proveedores. Para la técnica analítica jerárquica, las prioridades globales se ordenan de manera decreciente. El proveedor seleccionado es el proveedor 3, como segunda opción se elegiría al proveedor 1 y por último al proveedor 2. 36 Prov. 3 Prov. 1 Prov. 2 V 0,45 0,33 0,22 Tabla 20. Ranking de resultados para AHP. 5.1.1.5.3 TOPSIS 5.1.1.5.3.1 Descripción del caso para TOPSIS La última técnica que se utilizará para resolver este caso es la metodología de ordenación de preferencias por similtud a la solución ideal, TOPSIS. Esta técnica se basa en encontrar una solución ideal y una solución anti-ideal y seleccionar la alternativa cuya distancia relativa a la solución ideal sea menor. Se deben diferenciar los tipos de atributos seleccionados para evaluar a los proveedores. Por un lado, se encuentran los atributos de beneficio, son aquellos que se quieren maximizar como sería el caso del servicio. Por otro lado, se encuentran los atributos de coste que son aquellos que se desean minimizar como es el caso del plazo de entrega, el coste unitario y el coste del porte. Esta clasificación de los atributos en dos grupos, atributos de beneficio y atributos de coste es útil a la hora de seleccionar la solución ideal y la anti-ideal tal y como se expresa en las ecuaciones (10) y (11). El servicio es un atributo cualitativo y para hacerlo cuantificable se utiliza una escala de puntuación de 1 a 10 basada en comentarios y feedback de anteriores clientes que el departamento de compras se ha encargado de recopilar. El tipo de atributo queda recogido en el vector tipo. Este vector contiene un 1 en la posición j si el atributo j es de beneficio y un 2 si es de coste. Coste unitario Coste Porte Servicio Plazo de entrega Tipo 2 2 1 2 Tabla 21. Vector de tipo de atributo . A continuación, se construye la matriz de decisión x que contiene la puntuación de cada alternativa para cada criterio. Para construirla además de la información existente de cada proveedor se utiliza la escala de 9 puntos. x Coste unitario Coste Porte Servicio Plazo de entrega Prov. 1 7 9 7 5 Prov. 2 4 5 7 9 Prov. 3 9 3 9 5 Tabla 22. Matriz de decisión. También se construye el vector de pesos que contiene los pesos de los atributos considerados para el problema. Coste unitario Coste Porte Servicio Plazo de entrega Pesos 0,21 0,21 0,31 0,27 Tabla 23. Vector de pesos de criterios. 37 5.1.1.5.3.2 Implementación del ejemplo Para la resolución del caso con esta técnica se ha utilizado el archivo TOPSIS.py . El código de este archivo está explicado en el apartado 4.2.3 de este trabajo. Las variables de entrada son la matriz de decisión x , el vector de pesos, pesos y el vector tipo. from numpy import * x=[[7, 9, 7, 5], [4, 5, 7, 9], [9, 3, 9, 5]] pesos=[0.21,0.21,0.31,0.27] #Tipo de atributo: los atributos de beneficio son de tipo 1 y los de coste tipo 2 tipo=[2,2,1,2] A continuación, se llama a las funciones definidas y explicadas en el punto 4.2.3 para desarrollar esta metodología. #Paso 1: creación matriz normalizada norm_x=norm_matriz(x) print("La matriz normalizada es = ", norm_x) #Paso 2: creación matriz normalizada ponderada wnx=matriz_pond(norm_x, pesos) print("La matriz normalizada ponderada es = ", wnx) #Paso 3: Determinación de la solución ideal y la anti-ideal sol_id=solucion_id(wnx) sol_anti=solucion_anti(wnx) #Paso 4: determinar distancias a la solución ideal y anti-ideal dist_sol_id=distancias (wnx, sol_id) dist_sol_anti=distancias (wnx, sol_anti) #Paso 5: calcular distancia relativa final_sol=zeros(filas) for i in range (filas): final_sol[i]=(dist_sol_anti[i])/(dist_sol_anti[i]+dist_sol_id[i]) solucion=final_sol print ("La cercanía de las alternativas es = ", solucion) Del primer paso se obtiene la matriz normalizada por el método de normalización vectorial, norm_x. norm_x Coste unitario Coste porte Servicio Plazo Prov. 1 0,58 0,84 0,33 0,44 Prov. 2 0,33 0,47 0,58 0,79 Prov. 3 0,74 0,28 0,74 0,44 Tabla 24. Matriz normalizada. En el segundo paso, se llama a la función matriz_pond que devuelve la matriz normalizada ponderada por los pesos de cada atributo, wnx. wnx Coste unitario Coste porte Servicio Plazo Prov. 1 0,12 0,18 0,10 0,12 Prov. 2 0,07 0,1 0,18 0,21 Prov. 3 0,16 0,06 0,23 0,12 Tabla 25. Matriz normalizada ponderada. 38 Es en el siguiente paso cuando se obtiene la solución ideal A* y la anti-ideal A’ , que servirán para el cálculo de las distancias. Coste unitario Coste porte Servicio Plazo A* 0,07 0,06 0,23 0,12 A´ 0,16 0,18 0,10 0,21 Tabla 26. Soluciones ideal y anti-ideal. Se obtiene la distancia de cada alternativa a la solución ideal S* y a la anti-ideal S’ y con estas se calcula la cercanía relativa a la solución ideal C*. S* Prov. 1 0,18 Prov. 2 0,11 Prov. 3 0,09 Tabla 27. Distancias a la solución ideal de las alternativas. S´ Prov. 1 0,11 Prov. 2 0,14 Prov. 3 0,2 Tabla 28. Distancias a la solución anti-ideal de las alternativas. Finalmente, se obtienen las cercanías relativas a la solución ideal de cada una de las alternativas. C* Prov. 1 0,36 Prov. 2 0,55 Prov. 3 0,69 Tabla 29. Cercanía relativa a la solución ideal de las alternativas. 5.1.1.5.3.3 Resultados El último paso de la metodología propuesta es la selección final de un proveedor basada en los resultados obtenidos con la técnica de selección multicriterio escogida en este caso. El panel de expertos se encarga de realizar esta tarea. TOPSIS encuentra la alternativa más cercana a la solución ideal, esta es la que tiene una mayor cercanía relativa C* a la solución ideal. Se muestra en la Tabla 30 el ranking de alternativas que se obtiene ordenando las cercanías relativas en orden decreciente. Prov. 3 Prov. 2 Prov. 1 C* 0,69 0,55 0,36 Tabla 30. Ranking de alternativas para TOPSIS La primera alternativa es el proveedor 3, seguido del proveedor 2 y como última opción el proveedor 1. 39 5.1.1.5.4 Comparativa de resultados entre los métodos Como se ha comentado anteriormente, no hay una técnica que sea mejor que el resto. Todas las técnicas proporcionan un índice, que como se ha visto, permite ordenar los proveedores. Se trata por tanto de encontrar la técnica que resulte más fácil aplicar y que permita tener en cuenta atributos objetivos y subjetivos representando la realidad de la empresa. Una vez el grupo de decisión ha seleccionado el proveedor, es conveniente que se le comunique a la gerencia de la empresa para que esta corrobore que se alinea con la estrategia de la empresa o, que siendo de otro modo, lo desestime. En este caso se han obtenido resultados idénticos utilizando las técnicas TOPSIS y de ponderación lineal, mientras que para la técnica analítica jerárquica el segundo y tercer puestos son distintos que para las anteriores. Ponderación lineal AHP TOPSIS 1º Proveedor 3 Proveedor 3 Proveedor 3 2º Proveedor 2 Proveedor 1 Proveedor 2 3º Proveedor 1 Proveedor 2 Proveedor 1 Tabla 31. Comparación de resultados para distintos métodos. 5.1.2 Selección de un proveedor de mascarillas El segundo caso de estudio trata de una asociación que necesita abastecerse de mascarillas. Esta asociación trabaja con niños con discapacidad, trabajan juntos para que estos lleven una vida lo más activa y normalizada posible. Estas asociaciones proporcionan no solo la posibilidad de relacionarse con otras personas, sino también la comprensión, estabilidad, integración y sentimiento de pertenencia a un grupo, repercutiendo además en su entorno más cercano. 5.1.2.1 Planteamiento de la decisión En una asociación de este tipo tanto los trabajadores como las personas que acudan pasarán un elevado número de horas, siendo por ello necesario considerar que se requerirá poseer mascarillas de repuesto para poder cambiarlas una vez cumplidas sus horas establecidas de uso. La posibilidad de rotura o extravío de la mascarilla se tendrá esto en cuenta a la hora de prever la necesidad de stock. La asociación cuenta con unos 100 afiliados aproximadamente, siendo la afluencia diaria de un 60% y trabaja los 7 días de la semana. Por tanto, se estipula que mínimo cada día debe haber un stock del mismo número que los afluentes previstos, es decir 60. A la asociación se acudirá con la mascarilla ya puesta, pero por los problemas planteados en el párrafo anterior (el tiempo de uso, la pérdida o el deterioro) se considera necesario contar cada día con este stock. Esto no implica que se vaya a usar entero todos los días y por tanto se necesiten a la semana 420 mascarillas, sino que se trata de una primera aproximación. No obstante, tras observarse el histórico de este último año, los días en los que más mascarillas se consumieron nunca se superaron las 60. En este histórico se determina que la máxima cantidad semanal usada fue de aproximadamente 300, dato que proviene del inicio de pandemia cuando no se estaba acostumbrado a la mascarilla. Actualmente se consume menos, pero aún así se quiere estipular en 300 la demanda semanal para contar con un margen de seguridad. 40 Las mascarillas se han adquirido hasta el momento de diferentes proveedores tales como farmacias, comercios, supermercados, panaderías o tiendas de tipo bazar. Esta forma de aprovisionamiento ha implicado la imposibilidad de llevar un control del coste en este producto, que la capacidad de filtrado no haya sido la misma dependiendo del establecimiento proveedor y que los asistentes hayan manifestado mayor incomodidad por no poder acostumbrarse a un tipo de mascarillas. 5.1.2.2 Objetivo Para poner solución a todos estos problemas, en la asociación se quiere llevar a partir de ahora un control exhaustivo del producto comprado y los proveedores con los que se mantenga relación. Los objetivos principales perseguidos serán asegurar la capacidad de filtrado de las mascarillas (preocupación creciente de los militantes) para lo que se establece el uso de mascarillas FFP2, controlar el coste para poder planificar el presupuesto y mantener un grado elevado de confianza en que el producto estará disponible cuando sea requerido, para lo que se realiza un estudio de los potenciales proveedores. 5.1.2.3 Modelización En un principio se valoraron los proveedores que se usaban hasta entonces, descartándose en primer lugar las tiendas minoristas tipo bazar, por la poca confianza que transmitían a la militancia, lo cual no significa que sus mascarillas o productos no sean de calidad, sino que, en este caso concreto, se optó por no confiar en sus productos. También se descartó comprar las mascarillas en establecimientos dedicados a otros menesteres y que con la expansión del uso de la mascarilla se decidieron por incorporarlas, como era el caso de las ferreterías o panaderías en las que anteriormente se adquirían mascarillas. Esto se ha debido a dos factores clave: en primer lugar, a la poca fiabilidad de entrega que ofrecían, ya que en varias ocasiones no contaban con ninguna mascarilla disponible cuando se requirieron; y en segundo lugar, ya que su negocio principal no es el mercado de las mascarillas, puede ocurrir que no le sea rentable o que le suponga un esfuerzo muy grande en comparación con el beneficio que le saquen. Esto último puede llevar a que decidan cortar la venta sin previo aviso, lo cual obligaría a la asociación a buscar un nuevo proveedor, con un nuevo precio establecido y por tanto errar con mucha desviación en el presupuesto establecido, lo cual es una de las cosas que se quieren evitar. Otra alternativa que se valoró fue comprar a comerciales, amigos de la militancia o personas individuales que vendieran mascarillas, sin embargo, la poca fiabilidad de que vayan a tener suficientes existencias (se necesita mínimo 300 a la semana) hizo que esta opción se descartara. La última opción que se descartó fue la de mascarillas de tela realizadas por costureros, porque se buscaba mascarillas desechables e intransferibles, no reutilizables que hubiera que lavar y adquirir el filtro independiente, lo cual causaría sobrecostes y un esfuerzo demasiado grande. Además, como se indica en párrafos anteriores se establece el uso de mascarillas de tipo FFP2 que aseguran un nivel de filtrado y unos controles sanitarios de mayor exigencia. Por tanto, de los vendedores que usualmente se contrataban, se decidió continuar evaluando la farmacia y el supermercado. En ambos casos se confía en que existe una fiabilidad suficiente en la calidad del producto y en la entrega, con un coste más o menos fijo que permitía llevar el control. 41 Al estipularse que con una demanda semanal de 300 mascarillas podría ser suficiente, se pensó que algún proveedor de internet podría ser válido. En este caso se pensó en Amazon y Aliexpress, los dos gigantes del comercio por internet. El caso de Aliexpress fue finalmente aceptado por la militancia por su mejora en la estipulación de tiempos de entrega y por su competitividad en el resto de los criterios que se valoran, aunque se especificó que, en el caso de ser elegida, les gustaría tener contemplada una segunda opción física de soporte. Definitivamente, los cuatro proveedores que se decidieron estudiar fueron: • Amazon • Farmacia • Supermercado • Aliexpress Teniendo en cuenta la metodología de selección de proveedores propuesta, una vez claro el objetivo del problema, es necesario acordar qué criterios se evaluarán para elegir la mejor alternativa. En primer lugar, como se comentó anteriormente, el coste es uno de los aspectos que se quieren tener en cuenta. Se pretende que sea barato para ajustar el coste, así como que sea más o menos fijo, cosa que los cuatro cumplen, por tanto, solo se evaluó el coste con el objetivo de reducirlo en la medida de lo posible. Un criterio que se buscaba era la confianza en el filtrado, sin embargo, al seleccionar esas grandes superficies y mascarillas FFP2 se tiene confianza en que todos los proveedores ofrezcan un producto con todas las garantías, por lo que se descartó este criterio de evaluación. De igual modo, se propuso evaluar la seguridad de entrega de cada proveedor, pero al presentar todos ellos una seguridad muy alta se descartó como criterio de evaluación. Los usuarios forman parte de un colectivo con gran variedad de edades, siendo algunos de ellos niños. Por ello, para algunos serán importantes detalles superficiales tales como los colores de las mascarillas o los estampados, razón por la que el diseño de las mascarillas es un criterio que se tendrá en cuenta y al que se le otorga un peso relevante. Con ello, se busca que haya mascarillas de distintos colores y con diferentes estampados para que sean atractivas para los más pequeños y los usuarios que las requieran, promoviendo así su uso. Es necesario conocer el tipo de persona que se va a poner la mascarilla, y al igual que se ha considerado un factor fundamental el diseño, la comodidad debe ser otro factor para estudiar. Este se evaluó usando el grupo de decisión mascarillas de los diferentes proveedores y puntuando del 1 al 10 las preferencias en cuanto al confort y la comodidad. Por último, aunque sea semanal el plazo de entrega, se necesita tener cierta fiabilidad y aunque todos los proveedores seleccionados son seguros a la hora de entregar el material, no se le escapa a nadie que algunos son más estrictos que otros en los plazos de entrega. De esta manera se selecciona esta fiabilidad como el último criterio, de nuevo concediendo una nota del 1 al 10 a cada proveedor, esta vez basada en las opiniones de otros compradores. Finalmente, los criterios que se han decidido estudiar han sido los siguientes: • El coste: es uno de los aspectos que se quieren tener en cuenta. Se pretende que sea barato. Es un atributo cuantitativo que se desea minimizar. 42 • Diseño mascarilla: el número de diseños distintos que cada proveedor ofrece es un criterio que se tendrá en cuenta y al que se le otorga un peso relevante. Este atributo es cuantitavo y se desea maximizar. • Comodidad: Es fundamental la comodidad de las mascarillas para que los usuarios sean capaces de llevarla sin problemas durante la estancia, por ello la comodidad debe ser otro factor para estudiar. Este atributo es cualitativo y se desea maximizar. • Fiabilidad entrega: se necesita tener cierta fiabilidad y aunque todos los proveedores seleccionados son seguros a la hora de entregar el material, algunos son más estrictos que otros con su entrega. Este atributo se desea maximizar y es cualitativo y al igual que para la comodidad, al basarse en comentarios para poder cuantificar se puntua del uno al diez. Por último, se desea aclarar que el plazo de entrega puede variar dependiendo del proveedor seleccionado, por lo que también podría hacerlo la estrategia de pedidos. En este sentido, se considera que no existe un coste de lanzamiento de pedido ni un gran coste de almacenaje por tratarse de bienes pequeños cuyos envases no ocupan gran espacio y no se requerirá inversión extraordinaria por realizar pedidos algo superiores. Sin embargo, sí se ha establecido, en caso de escoger Aliexpress como proveedor, que será necesario mantener contacto con un proveedor como la farmacia o el supermercado que aseguran la entrega en caso de que se produzca algún problema de entrega. 5.1.2.4 Método de selección de proveedores El siguiente paso es utilizar una de las técnicas multicriterio que sirva como herramienta al panel de expertos para tomar la decisión. Para ello el departamento de compras recopila la información necesaria sobre los atributos que se van a evaluar en los proveedores preseleccionados: Amazon: coste unitario de 1€, 18 diseños distintos de mascarillas, comodidad de 7 puntos sobre 10 y fiabilidad de entrega de 8 sobre 10. Aliexpress: coste unitario de 0,6€, 30 diseños distintos de mascarillas, comodidad de 3 puntos sobre 10 y fiabilidad de entrega de 4 sobre 10. Farmacia: coste unitario de 2,5€, 4 diseños distintos de mascarillas, comodidad de 9 puntos sobre 10 y fiabilidad de entrega de 9 sobre 10. Supermercado: coste unitario de 1,5€, 2 diseños distintos de mascarillas, comodidad de 7 puntos sobre 10 y fiabilidad de entrega de 8 sobre 10. 5.1.2.4.1 Ponderación lineal 5.1.2.4.1.1 Descripción del caso para ponderación lineal La primera técnica multicriterio que se escoge para la resolución del problema mediante una técnica es la Ponderación Lineal. Se hará uso de la información relativa a cada proveedor recopilada por el departamento de compras y de las escalas de cinco (Tabla 5) y nueve puntos (Tabla 6) para construir el vector de pesos de los criterios y la matriz del grado de satisfacción de las alternativas respectivamente. En primer lugar, se obtiene el vector de pesos de los criterios. Las consideraciones fueron las siguientes: 49 Para el caso de estudio se encuentran tres atributos de beneficio: la fiabilidad de entrega, la comodidad y el número de diseños disponibles, son atributos que se desean maximizar. El único atributo de coste es el coste, este atributo se desea minimizarlo. Tanto el número de diseños disponibles de cada proveedor, como el precio de sus mascarillas son atributos que pueden medirse, son cuantitativos. La comodidad y la fiabilidad de entrega son atributos cualitativos que, como se explicaba anteriormente, el grupo de decisión puntuó del uno al diez para hacerlos cuantificables. El vector tipo es el vector que contiene en cada posición j el tipo del atributo j. Este vector contendrá un 1 en caso de referirse a un atributo de beneficio y un 2 para el caso de un atributo de coste. El vector tipo para este caso es el que se muestra a continuación. Coste Diseño Comodidad Fiabilidad entrega Tipo 2 1 1 1 Tabla 45. Vector de tipo de atributo. De esta manera se obtiene la matriz de decisión x, donde xij es la puntuación de la alternativa i sobre el criterio j . x Coste Diseño Comodidad Fiabilidad entrega Farmacia 9 2 9 9 Amazon 3 6 7 8 Supermercado 5 3 7 8 Aliexpress 1 9 3 4 Tabla 46. Matriz de decisión. Para la construcción de esta matriz, además de los datos de partida se ha hecho uso de la tabla de nueve puntos para determinar la importancia de cada alternativa. También se determinan los pesos de cada uno de los atributos que se han tenido en cuenta. Coste Diseño Comodidad Fiabilidad entrega Pesos 0,2 0,3 0,17 0,33 Tabla 47. Vector de pesos de criterios. 5.1.2.4.3.2 Implementación del ejemplo Para la implementación se hace uso del archivo TOPSIS.py , se introducen como variables de entrada la matriz de decisión x , el vector de pesos pesos y el vector que contiene el tipo de atributo tipo. from numpy import * x=[[9, 2, 9, 9], [3, 6, 7, 8], [5, 3, 7, 8], [1, 9, 3, 4]] pesos=[0.2,0.3,0.17,0.33] #Tipo de atributo: los atributos de beneficio son de tipo 1 y los de coste tipo 2 tipo=[2,1,1,1] El vector tipo contiene un 1 en la posición del atributo si este es de beneficio y un dos si se trata de un atrbuto de coste. De esta manera, el tipo del coste, primer atributo, es de coste y por tanto tipo[1]=2 y el resto de atributos son de beneficio. 50 Haciendo uso de las funciones definidas en el apartado anterior, se obtiene el resultado final llamándolas como sigue: #Paso 1: creación matriz normalizada norm_x=norm_matriz(x) print ("La matriz normalizada es =", norm_x) #Paso 2: creación matriz normalizada ponderada wnx=matriz_pond(norm_x, pesos) print ("La matriz normalizada ponderada es =", wnx) #Paso 3: Determinación de la solución ideal y la anti-ideal sol_id=solucion_id(wnx) sol_anti=solucion_anti(wnx) #Paso 4: determinar distancias a la solución ideal y anti-ideal dist_sol_id=distancias (wnx, sol_id) dist_sol_anti=distancias (wnx, sol_anti) #Paso 5: calcular distancia relativa final_sol=zeros(filas) for i in range (filas): final_sol[i]=(dist_sol_anti[i])/(dist_sol_anti[i]+dist_sol_id[i]) solucion=final_sol print ("La cercanía de las alternativas es", solucion) Con la llamada a la función norm_matriz se obtiene la matriz de decisión normalizada, para poder comparar atribuutos medidos en distintas escalas. En este caso se ha utilizado el método de normalización vectorial, aunque existen otros métodos que también podrían haberse utilizado siendo igual de válidos. norm_x Coste Diseño Comodidad Fiabilidad entrega Farmacia 0,84 0,18 0,66 0,6 Amazon 0,28 0,53 0,51 0,53 Supermercado 0,46 0,26 0,51 0,53 Aliexpress 0,09 0,79 0,22 0,27 Tabla 48. Matriz normalizada. En el segundo paso, se llama a la función matriz_pond que devuelve la matriz normalizada ponderada con los pesos de cada atributo. wnx Coste Diseño Comodidad Fiabilidad entrega Farmacia 0,17 0,05 0,11 0,2 Amazon 0,06 0,16 0,09 0,18 Supermercado 0,09 0,08 0,09 0,18 Aliexpress 0,02 0,23 0,04 0,09 Tabla 49. Matriz normalizada ponderada. En el siguiente paso, se llama a las funciones solución_id y solución_anti que devuelven la solución ideal A* y anti-ideal A´ respectivamente. 51 Coste Diseño Comodidad Fiab. Entrega A* 0,02 0,24 0,11 0,2 A´ 0,18 0,05 0,04 0,09 Tabla 50. Soluciones ideal y anti-ideal. La función distancias calcula la distancia de cada una de las alternativas a la solución ideal y anti-ideal y por último se calcula la solución final, la cercanía relativa a la solución ideal. S* Farmacia 0,24 Amazon 0,09 Supermercado 0,18 Aliexpress 0,13 Tabla 51. Distancias de las alternativas a la solución ideal. S' Farmacia 0,13 Amazon 0,18 Supermercado 0,13 Aliexpress 0,24 Tabla 52. Distancias de las alternativas a la solución anti-ideal. Gracias a estas distancias se obtiene finalmene la cercanía relativa a la solución ideal C* que será el resultado que se obtiene de la implementación de esta técnica. 5.1.2.4.3.3 Resultados El último paso de la metodología propuesta es la elección final de un proveedor haciendo uso de una técnica de decisión multicriterio que, en este caso, ha sido la técnica de ordenación de preferencias por similitud a la solución ideal. El grupo de decisión es el que se encarga de hacer la lectura de los resultados obtenido y elegir el proveedor final. Se muestra en la Tabla 53 el ranking que se obtiene de ordenar por orden decreciente la cercanía relativa a la solución ideal es en primer lugar Amazon, con poca diferencia le sigue Aliexpress y después el supermercado y la farmacia. Amazon Aliexpress Supermercado Farmacia C* 0,66 0,64 0,42 0,36 Tabla 53. Ranking de alternativas para TOPSIS. 5.1.2.4.4 Comparativa de resultados entre los métodos Resolviendo el problema con la misma metodología, pero utilizando distintas técnicas de decisión multicriterio se obtienen distintos rankings de proveedores para este caso. Lo que vuelve a demostrar que estas metodologías no son mejores ni peores, son herramientas de diagnóstico que sirven para una comprensión de la decisión, pero el proceso solo identifica, valora y selecciona las mejores soluciones para la alternitavas evaluadas para así dar solución a un problema complejo, por lo que simplemente son una herramienta que ayudará al grupo de decisión a tomar una decisión. Como se comentó anteriormente esta decisión debe ser trasladada a la alta gerencia de la empresa quién debe tener la última palabra. 52 Los resultados obtenidos fueron de gran sorpresa para algunos de los miembros del grupo de decisión, ya que dejados guiar por la subjetividad, compraban estas mismas mascarillas para su propio uso en Amazon pensando que este sería sin duda el mejor proveedor. Sin embargo Aliexpress, el que por prejuicios pensaban que no sería tan buena opción, presenta puntuaciones muy similares llegando incluso a estar por encima utilizando la técnica AHP. Ponderación lineal AHP TOPSIS 1º Amazon Aliexpress Amazon 2º Aliexpress Amazon Aliexpress 3º Farmacia Supermercado Supermercado 4º Supermercado Farmacia Farmacia Tabla 54. Comparación de resultados para distintos métodos. 5.1.3 Selección de un proveedor de materiales para fabricar calzado El último caso de estudio se trata de una empresa de calzado. Esta empresa se dedica a la fabricación y venta de calzado clásico y de calidad desde los años 50. 5.1.3.1 Planteamiento de la decisión Habiendo superado el medio siglo de existencia, la empresa creada por un matrimonio y hoy en día en manos de sus hijos, es una de las empresas de calzado más exitosas y con más renombre del país. En el proceso forman parte diseñadores y modelistas, cada temporada fabrican más de 300 modelos llegando a formar parte de la colección solo los más pretendidos por los clientes. Una vez creada la colección cada zapato pasa por más de 80 manos expertas hasta llegar a su correspondiente packaging. Una de las claves de las marcas es el material con el que están hechos sus zapatos, gracias a el cual la calidad del producto final es exquisita y la comodidad uno de los grandes diferenciadores de esta marca. Sin embargo, surge la motivación de ampliar horizontes y seguir creciendo. 5.1.3.2 Objetivo La compañía quiere seguir evolucionando en el mercado, manteniendo los que hasta ahora han sido sus valores e ideales, los cuales le han permitido estabilizarse en el mercado como una de las empresas de calzado tradicional más importantes, pero ampliando horizontes y creando nuevas oportunidades de mejora. 5.1.3.3 Decisión Para ello la empresa decide aumentar la línea de productos que ofrece a sus clientes creando una línea eco para conseguir otorgarle a la marca un aire fresco y novedoso y así ampliar también el segmento de clientes con el que ha contado hasta ahora sin dejar de lado la que durante décadas ha sido su filosofía. Esta se basa sobre todo en una buena y equilibrada relación calidad-precio, una exquisita atención al cliente y comodidad absoluta en cada uno de los modelos de calzado que ofrecen. La compañía lleva trabajando años con los mismos proveedores y el grado de satisfacción en cuanto a estos es muy alto. Sin embargo, la empresa necesita encontrar nuevos proveedores que la abastezcan con tejidos diferentes y materiales novedosos para la nueva línea que desean abrir. 53 5.1.3.4 Modelización Esta empresa crea un grupo de decisión formado por expertos pertenecientes a los distintos procesos de fabricación y venta de los zapatos. Estos provienen de la alta gerencia de departamentos de calidad, producción, ventas, ambiental, e.t.c. El grupo a través de un sondeo rápido facilitado por el departamento de ventas obtiene una lista con posibles proveedores. De esta lista se hace un primer cribado del que se eliminan aquellos proveedores que no cuentan con procesos sostenibles y materiales ecológicos y aquellos proveedores que solo permiten el pago al contado por la liquidez de la empresa. Finalmente, el grupo de decisión preselecciona los 3 proveedores más influyentes que quedan de este primer cribado. Siguiendo la metodología, el siguiente paso es la selección de los atributos con los que se va a evaluar a los proveedores. En un primer momento, se valoró tener en cuenta la sostenibilidad del proceso de producción de los distintos proveedores. Sin embargo, este atributo no añadía valor al problema ya que la sostenibilidad de los procesos de los proveedores preseleccionados era muy alta y similar. Como se explicaba anteriormente la filosofía de la empresa, con la que desea continuar, es una buena relación calidad-precio y, sobre todo, una calidad exquisita. Por lo que estos dos atributos deben estar presentes en el estudio. También se pensó en estudiar el plazo y la fiabilidad de entrega ya que otro aspecto fundamental para la empresa es el servicio al cliente y esto conlleva además de calidad y comodidad de calzado, disponer del producto cuándo el cliente así lo desee, pero se descartó el plazo de entrega ya que se considera que siempre que el proveedor sea fiel al plazo acordado la empresa planificará su producción teniéndolo en cuenta y así tener el producto a tiempo para el cliente. Otro atributo esencial es la estética de los tejidos y el acabado final que pueda resultar de la materia prima. No debe perderse de vista este atractivo de la marca que destaca por diseños de gran elegancia y singularidad. Pese que la comodidad es un factor muy importante en los calzados que vende esta empresa, el departamento de diseño asegura que la comodidad que se consigue en los calzados no reside tanto en la materia prima como en el diseño. Finalmente, los atributos que el grupo de decisión decide tener en cuenta para el estudio son: • Calidad: Este atributo tiene una importancia alta, idéntica a la del coste. Es un atributo cualitativo que el grupo de decisión gracias visitas, pruebas y reseñas ha cuantificado puntuando del 1 al 10 los productos de los distintos proveedores. Este atributo se desea maximizar. • Coste: el coste es un atributo cuantitativo que desea minimizarse y, como se acaba de mencionar, es igual de importante que la calidad. • Fiabilidad de entrega: este atributo es importante ya que de ello dependerá que la empresa pueda darles un buen servicio a sus clientes, es un atributo cualitativo que al igual que la calidad, el grupo dedecisión ha cuantificado gracias a experiencias anteriores de otros compradores puntuando del 1 al 10. Este atributo se desea maximizar. • Estética: este atributo es cualitativo. Para cuantificarlo expertos pertenecientes al departamento de diseño han estudiado las posibilidades de cada uno de los materiales que ofrecían los distintos proveedores, puntuándolos del 1 al 10. Se desea maximizar. 54 5.1.3.5 Método de selección de proveedores Una vez seleccionados los atributos y los proveedores, el siguiente paso es la selección de un proveedor utilizando una técnica de decisión multicriterio como herramienta de ayuda a la toma de decisión. El departamento de compras se encarga de recopilar la información necesaria sobre los atributos seleccionados para cada uno de los proveedores preseleccionados. Proveedor 1: calidad de 9 puntos sobre 10, coste de 260€ el km, fiabilidad de entrega de 7 sobre 10 y estética de 8 sobre 10. Proveedor 2: calidad de 7 puntos sobre 10, coste de 100€ el km, fiabilidad de entrega de 8 sobre 10 y estética de 6 sobre 10. Proveedor 3: calidad de 8 puntos sobre 10, coste de 270€ el km, fiabilidad de entrega de 9 sobre 10 y estética de 10 sobre 10. 5.1.3.5.1 Ponderación lineal 5.1.3.5.1.1 Descripción del caso para ponderación lineal Para el desarrollo de esta técnica el grupo de decisión crea el vector de pesos de los criterios, w y la matriz de grado de satisfacción, s de las alternativas utilizando las escalas de cinco (Tabla 5) y nueve puntos (Tabla 6) respectivamente y la información de cada uno de los proveedores recopilada por el departamento de compras. Para crear el vector de pesos hacen las siguientes consideraciones: • La calidad y el coste son muy importantes ya que forman parte de la base de la filosofía de la compañía. • La fiabilidad de entrega tiene una importancia media. Después de la buena relación calidadprecio, el servicio a los clientes es el siguiente pilar de la filosofía de empresa por lo que, estar seguros de tener la materia prima a tiempo para satisfacer la necesidad de cel cliente es importante también. • La estética tiene poca importancia, si bien es cierto que hay que considerarla no es el requisito más imprescindible. Calidad Coste Fiabilidad entrega Estética w 5 5 3 2 Tabla 55. Vector de pesos de criterios. Por otro lado, se obtiene la matriz del grado de satisfacción de las alternativas en base a las consideraciones que se mencionan a continuación: • En cuánto a la calidad, el proveedor 1 tiene un grado de satisfacción extra alto, el proveedor 2, un grado de satisfacción alto y el proveedor 3, muy alto. • En cuánto al coste, el que mayor grado de satisfacción tiene es el proveedor 2, con un grado extra alto, le sigue el proveedor 1 con un grado medio y por último, el proveedor 3 con un grado poco bajo. • Para la fiabilidad de entrega el grado de satisfacción del proveedor 1 es alto, el del proveedor 2, muy alto y el del proveedore 3, extra alto. 55 • En cuánto a estética, el proveedor con mayor de grado de satisfacción es el 3, seguido del 1 con un grado muy alto y por último el 2, con un grado poco alto. Criterios Prov. 1 Prov. 2 Prov. 3 Calidad 9 7 8 Coste 5 9 4 Fiabilidad entrega 7 8 9 Estética 8 6 9 Tabla 56. Matriz de grado de satisfacción de alternativas. 5.1.3.5.1.2 Implementación del ejemplo Para la implementación de este caso se hace uso del archivo Scoring.py. Utilizando como variables de entrada la matriz de grado de satisfacción, s y el vector de pesos, w como sigue: from numpy import * s=[[9, 7, 8], [5, 9, 4], [7, 8, 9], [8, 6, 9]] w=[5,5,3,2] Se obtienen las siguientes preferencias globales: Criterios w Prov. 1 Prov. 2 Prov. 3 Calidad 5 9 7 8 Coste 5 5 9 4 Fiabilidad entrega 3 7 8 9 Estética 2 8 6 9 P 107 116 105 Tabla 57. Preferencias globales de alternativas 5.1.3.5.1.3 Resultados El siguiente y último paso de la metodología es la selección final de un proveedor en base a los resultados obtenidos con la técnica de decisión multicriterio escogida. El grupo de descisión se reúne para valorar las preferencias globales obtenidas al implementar esta técnica. Las preferencias globales se ordenan de manera decreciente, se obtiene el ranking que se muestras en la Tabla 58 como primera opción se encuentra el proveedor 2, seguido del proveedor 1 y en último lugar el proveedor 3. Prov. 2 Prov. 1 Prov. 3 P 116 107 105 Tabla 58. Ranking de alternativas 56 5.1.3.5.2 AHP 5.1.3.5.2.1 Descripción del caso para AHP A continuación, se describirá el caso para resolverlo con la técnica analítica jerárquica, AHP. Esta técnica basada en mediciones relativas y comparaciones de una alternativa sobre otra tiene como primer paso la construcción de la matriz de comparación de criterios MCcriterios y de las matrices de comparación de alternativas MCAi. Para ello, el grupo de decisión utilizando la información recopilada por el departamento de compras y la escala de Saaty (Figura 2) comparará la diferencia reativa de una alternativa sobre otra. Comenzando por la matriz de comparación de criterios MCcriterios, el grupo de decisión hace las siguientes consideraciones: • La calidad y el coste son igual de importantes, 𝑥12=𝑥21=1. • El coste y la calidad tienen una importancia moderada sobre la fiabilidad de entrega 𝑥13= 𝑥23=3 y 𝑥31=𝑥32=1/3. • El coste y la calidad tienen una importancia fuerte sobre la estética, 𝑥14=𝑥24=4 y 𝑥42= 𝑥41=1/4. MCcriterios Calidad Coste Fiabilidad entrega Estética Calidad 1 1 3 4 Coste 1 1 3 4 Fiabilidad entrega 0,33 0,33 1 2 Estética 0,25 0,25 0,5 1 Tabla 59. Matriz de comparación de criterios Como en el caso anterior, es conveniente verificar la consistencia de las matrices con el coeficiente de consistencia para iniciar con datos de partida consistentes. Para ello se hace uso de las ecuaciones (6) y (7) teniendo 𝜆max= 4,029 y n =4. 𝐶𝐼=4,029−4 4−1 =0,0096 Para un valor de n= 4 el índice aletarorio que se obtiene de la tabla de índices aleatorios (figura 2) es RI=0,89. 𝐶𝑅=0,0096 0,89 =0,011 CR≤0,1 por lo que la matriz es consistente. A continuación, se construyen las matrices de comparaciones de alternativas respecto a los diferentes criterios, el proceso que se sigue es análogo al seguido para la construcción de la matriz de comparación de criterios. Respecto a la calidad, se considera: • El proveedor 1 tiene una importancia moderada sobre el proveedor 2, 𝑥12=3 y 𝑥21=1/3. • El proveedor 1 tiene una importancia débil sobre el proveedor 3, 𝑥13=2 y 𝑥31=1/2. • El proveedor 3 tiene una importancia débil frente al 2, 𝑥32=2 y 𝑥23=1/2. 57 MCA1 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 3 2 Prov. 2 0,33 1 0,5 Prov. 3 0,5 2 1 Tabla 60. Matriz de comparación de alternativas para la calidad Para construir la matriz de comparación de alternativas respecto al coste se considera: • El proveedor 1 tiene una importancia débil frente al proveedor 3, 𝑥13=2 y 𝑥31=1/2. • El proveedor 2 tiene una importancia fuerte sobre el proveedor 1 y el 3, 𝑥21=𝑥23=4 y 𝑥12= 𝑥13=1/4. MCA2 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 0,25 2 Prov. 2 4 1 4 Prov. 3 0,5 0,25 1 Tabla 61. Matriz de comparación de alternativas para el coste En cuanto al atributo 3, la fiabilidad de entrega, las consideraciones que se hacen para construir la matriz de comparación de alternativas son las siguientes: • El proveedor 2 tiene una importancia débil sobre el el proveedor 1, 𝑥21=2 y 𝑥12=1/2. • El proveedor 3 tiene una importancia débil sobre el proveedor 2, 𝑥32=2 y 𝑥23=1/2. • El proveedor 3 tiene una importancia fuerte sobre el proveedor 1, 𝑥31=4 y 𝑥13=1/4. MCA3 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 0,5 0,25 Prov. 2 2 1 0,5 Prov. 3 4 2 1 Tabla 62. Matriz de comparación de alternativas para el servicio Por último, para el atributo 4, la estética, se considera: • El proveedor 1 tiene una importancia moderada sobre el proveedor 2, 𝑥12=3 y 𝑥21=1/3. • El proveedor 3 tiene una importancia débil sobre el proveedor 1, 𝑥31=2 y 𝑥13=1/2. • El proveedor 3 tiene una importancia fuerte sobre el proveedor 2, 𝑥32=5 y 𝑥13=1/5. MCA4 Prov. 1 Prov. 2 Prov. 3 Prov. 1 1 3 0,5 Prov. 2 0,33 1 0,2 Prov. 3 2 5 1 Tabla 63. Matriz de comparación de alternativas para el plazo de entrega. De la misma manera que se obtiene el índice de consistencia para la matriz de comparación de criterios, se obtienen los índices de consistencias de las matrices de comparaciones de alternativas para cada uno de los atributos, obteniéndose los resultados que se muestran en la siguiente tabla. 58 Matriz de comparación de alternativas para: 𝜆 max CI CR Calidad 3,011 0,006 0,011 Coste 3,069 0,034 0,066 Fiabilidad entrega 3 0 0 Estética 3,005 0,003 0,005 Tabla 64. Coeficientes de consistencias de las matrices de comparación de alternativas. Se comprueba que todas las matrices son consistentes puesto que para cada uno de los atributos 𝐶𝑅≤0,1. Por lo que, para este problema, se parte de unas variables de entrada consistentes. 5.1.3.5.2.2 Implementación del ejemplo Para la implementación del caso mediante esta técnica se utiliza el archivo AHP.py. Las variables de entrada son MCcriterios, MCA1, MCA2, MCA3 y MCA4 y los valores de los índices aleatorios RI . from numpy import * #En MCcriterios introducir la matriz de comparación entre criterios #En MCAi introducir las matrices de comparación de alternativas para cada criterio i MCcriterios=[[1, 1, 3, 4], [1, 1, 3, 4],[1/3, 1/3, 1, 2], [1/4, 1/4, 1/2, 1]] MCA1=[[1, 3, 2], [1/3, 1, 1/2], [1/2, 2, 1]] MCA2=[[1, 1/4, 2], [4, 1, 4], [1/2, 1/4, 1]] MCA3=[[1, 1/2, 1/4],[2, 1, 1/2],[4, 2, 1]] MCA4=[[1, 3, 1/2],[1/3, 1, 1/5],[2, 5, 1]] #En Matrices_alternativas introducir todas las matrices de comparación de alternativas: #Matrices_alternativas=[MCA1, ..., MCAi, ..., MCAn] Matrices_alternativas=[MCA1, MCA2,MCA3, MCA4] Haciendo una llamada a la función consistencia se obtienen los índices de consistencia de la matriz que se introduzca como argumento. Los resultados son los que se muestran en la tabla 63. #llamada para comprobar consistencia Matrices CR=consistencia(MCcriterios) print(CR) if CR>0.1: print("La matriz de comparación introdicda es incosistente") El problema se resuelve llamando a las funciones que se muestran a continuación y que se han explicado anteriormente. #Llamada a la función para calcular el vector de prioridad de criterios w w=norm(MCcriterios) print ("El vector de prioridad de criterios es = ",w) #Llamada a la función para calcular la matriz de prioridad de alternativas s s=norm2(Matrices_alternativas) print("La matriz de prioridad de alternativas es = ",s) #Cálculo del vector de prioridad global S=transpose(s) V=zeros(m) for i in range (m): sum=0 for j in range (n): sum+=w[j]*S[i][j] V[i]=sum print("Las prioridades globales son = ", V) 65 REFERENCIAS Amid, A., & Ghodsypour, S. H. (2006). Fuzzy multiobjective linear model for supplier selection in a supply chain. International Journal of Production Economics , 104 , 394–407. Bárbara-Romero, S., & Pomerol, J.-C. (1997). Decisiones multicriterio: Fundamentos teóricos y utilización práctica . Berumen, S. A., & Llamazares, F. (2007). Redalyc_importancia metodos multicriterio. Cuad. Adm. Bogotá (Colombia) , 20 (34) , 65–87. Carter, R. (1995). Método de las 10C . Center of Logistics. (n.d.). Definition of logistics . Chan, F. T. S., & Kumar, N. (2007). Global supplier development considering risk factors using fuzzy extended AHP-based approach. Omega , 35 , 417–431. Chen, C.-T. (2000). Extensions of the TOPSIS for group decision-making under fuzzy environment. Fuzzy Sets and Systems , 114 (1), 1–9. Chen, K., & Li, R. (2005). Suppliers capability and price analysis chart. Journal of Production Economics , 98 (3) , 301–315. Cook, W. D., & Kress, M. (1988). Deriving weights from pairwise comparison ratio matrices: An axiomatic approach. European Journal of Operational Research , 37 (3) , 355–362. Crawford, G., & Williams, C. (1985). A note on the analysis of subjective judgement matrices. Journal of Mathematical Psychology , 29 (4) , 387–405. de Boer, L., Labro, E., & Morlacchi, P. (2001). A review of methods supporting supplier selection. In European Journal of Purchasing & Supply Management (Vol. 7, Issue 2). Fichtner, J. (1986). On deriving priority vectors from matrices of pairwise comparisons. Socio- Economic Planning Sciences , 20 (6) , 341–345. Huang, S. and K. H. (2007). Comprehensive and configurable metrics for supplier selection . Hwang, C. L., & Yoon, K. (1981). Multiple attribute decision making: Methods and applications. Berlin: Springer . ISO 9001. (2015). ISO 9001: Sistemas de gestión de calidad . Luis García-Alcaraz, J. (2012). Atributos Considerados al Seleccionar Proveedores System dynamics model to assess and simulate the water footprint of bioethanol supply chain View project Design of Experiments and Statistical Optimization in Manufacturing View project . https://www.researchgate.net/publication/230802981 Papathanasiou, J., & Ploskas, N. (2018). Springer Optimization and Its Applications 136 Multiple Criteria Decision Aid Methods, Examples and Python Implementations . http://www.springer.com/series/7393 66 Saaty, T. (2004). The Analytic Hierarchy Process (AHP) for Decision Making . Saaty, T. L. (1977). A scaling method for priorities in hierarchical structures. Journal of Mathematical Psychology , 15 (3) , 234–281.