Рекомендуемая библиотека для линейного программирования в .NET? [закрытый]

10
задан tbone 4 June 2010 в 05:22
поделиться

2 ответа

Вы можете попробовать Microsoft Solver Foundation. Это библиотека математического программирования, которая поддерживает решение задач линейного программирования, смешанного целочисленного программирования, стохастического программирования и других задач оптимизации и моделирования.

Она доступна в редакциях Express (бесплатная), Standard и Enterprise (подписка MSDN).

8
ответ дан 4 December 2019 в 00:23
поделиться

Во-первых, я предполагаю, что вам может понадобиться что-то более сложное, чем простой решатель LP. У большинства услуг сотовой связи есть точки останова, в которых вы можете переключиться с одной услуги на другую в зависимости от продолжительности звонка, частоты, времени суток и т. Д.Это переключение подразумевает необходимость в целочисленных переменных, что означает, что вам может потребоваться решатель MILP (смешанное целочисленное линейное программирование). (Если все ваши функции затрат и ограничения являются выпуклыми, вы можете обойтись решателем LP, но это немного забегает вперед). Хорошей новостью является то, что существуют также доступные решатели MILP с открытым исходным кодом.

Я бы начал с LP SOLVE или SYMPHONY. Посетите сайт COIN-OR здесь для получения полезной справочной информации.

В ответ на ваше расширенное описание проблемы, я думаю, вы могли бы просто взять каждого из 50 пользователей и рассчитать стоимость каждого плана, а затем применить каждый из вариантов индивидуально. Имея n пользователей и m возможных планов и p возможных вариантов, вам нужно просмотреть m * p вариантов для каждого пользователя, но это довольно скучно.

Более интересный вопрос с точки зрения пользователя: где точки разрыва между планами? Можете ли вы определить кривые безразличия - комбинации использования, при которых пользователю будет безразлично два плана? Этот вопрос можно было бы решить математически, возможно, используя некоторые методы линейной алгебры, но на самом деле нет целевой функции, поэтому это не похоже на MILP.

Еще один интересный вопрос с точки зрения провайдера - как составить план по увеличению прибыли? Здесь вы можете применить некоторую оптимизацию, если вы возьмете своих 50 пользователей, которые будут репрезентативными для населения. Вам нужно будет ограничить общую стоимость для пользователя и добавить затраты, чтобы получить прибыль, но я думаю, что формулировка возможна.

3
ответ дан 4 December 2019 в 00:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: