Как я могу использовать MatLab для оптимизации на основе относительного ранга?
Это проблема, которую я ранее рассматривал в Excel, но хотел бы перейти на MatLab для более качественных решений.
Там, где я работаю, происходит полугодовой процесс ранжирования новых инициатив. Они оцениваются по ряду критериев и получают оценку критерия в диапазоне [0,1]. Каждому критерию присваивается вес, и этот вес нормализуется таким образом, что он составляет 1. Общий результат для данной инициативы представляет собой сумму произведений каждого критерия и его вес.
Выполнение этого процесса генерирует оценки для каждой рассматриваемой инициативы, и, таким образом, инициативы могут быть ранжированы 1-n на основе их оценок. Все идет нормально...
Но этот список затем предоставляется органу принятия управленческих решений, который "применяет суждения" и перетасовывает этот рейтинг на основе своих собственных обсуждений.
То, что я хотел бы сделать, это выяснить, существует ли набор критериев весов, который приводит к 1-n списку ближе к конечному продукту обсуждений. В прошлом я делал это в Excel, где я мог использовать функцию rank() как часть моих вычислений. Я настроил это примерно так
В этом случае я говорю Excel Solver, чтобы изменить значения в красном, с учетом ограничений, что они [0,1] и сумма до 1, чтобы минимизировать сумму в зеленом.
Идея состоит в том, чтобы выделить вопросы в духе "Вы говорите, что критерии X являются наиболее важными, но ваше применение суждения, кажется, показывает, что Y на самом деле является определяющим фактором".
Я действительно не знаю, как подходить к формулировке этого для fmincon (или любого другого решения, отличного от Excel), и буду признателен за любые рекомендации. Мой опыт работы с Excel состоял в том, что а) по мере увеличения количества инициатив время выполнения становится довольно продолжительным и б) я могу выполнить одну и ту же оптимизацию 10 раз и получить 10 совершенно разных решений...