Пакеты оптимизации для R
18792 просмотра
7 ответа
7328 Репутация автора
Кто-нибудь знает какие-либо пакеты оптимизации для R (аналогично NUOPT для S +)?
Автор: wcm Источник Размещён: 11.12.2008 02:02Ответы (7)
3 плюса
37928 Репутация автора
5 плюса
37417 Репутация автора
Linprog, упомянутый Галвегианом, фокусируется на линейном программировании с помощью симплексного алгоритма. Кроме того, вас может заинтересовать fPortfolio, если вы занимаетесь оптимизацией портфеля.
Автор: JD Long Размещён: 12.01.2009 04:2016 плюса
5589 Репутация автора
R имеет много-много пакетов для оптимизации; проверьте представление задачи CRAN по оптимизации: http://cran.r-project.org/web/views/Optimization.html . Конечно, для нелинейных программ существует optim()
стандарт, включающий алгоритм Бройдена-Флетчера-Голдфарба-Шанно и Нелдера-Мида. Это хорошее первое начало.
4 плюса
639 Репутация автора
Попробуйте lpSolve с R.
Простой пример:
# Maximize
# x1 + 9 x2 + x3
# Subject to:
# x1 + 2 x2 + 3 x3 <= 9
# 3 x1 + 2 x2 + 2 x3 <= 15
f.obj <- c(1, 9, 3)
f.con <- matrix(c(1, 2, 3, 3, 2, 2), nrow = 2, byrow = TRUE)
f.dir <- c("<=", "<=")
f.rhs <- c(9, 15)
lp("max", f.obj, f.con, f.dir, f.rhs)
lp("max", f.obj, f.con, f.dir, f.rhs)$solution
Автор: dwstu
Размещён: 06.01.2013 04:55
6 плюса
639 Репутация автора
Вам также следует попробовать пакет Rglpk решить проблемы LP с GLPK (GNU Linear Programming Kit) .
Пример:
## Simple linear program.
## maximize: 2 x_1 + 4 x_2 + 3 x_3
## subject to: 3 x_1 + 4 x_2 + 2 x_3 <= 60
## 2 x_1 + x_2 + x_3 <= 40
## x_1 + 3 x_2 + 2 x_3 <= 80
## x_1, x_2, x_3 are non-negative real numbers
obj <- c(2, 4, 3)
mat <- matrix(c(3, 2, 1, 4, 1, 3, 2, 2, 2), nrow = 3)
dir <- c("<=", "<=", "<=")
rhs <- c(60, 40, 80)
max <- TRUE
Rglpk_solve_LP(obj, mat, dir, rhs, max = max)
R output:
(Обратите внимание, что $status
возвращено целое число с информацией о состоянии решения. Если задан параметр управления canonicalize_status (по умолчанию), то он вернет 0 для найденного оптимального решения и ненулевое значение в противном случае. Если параметр управления равен при значении FALSE будут возвращены коды состояния GLPK).
$optimum
[1] 76.66667
$solution
[1] 0.000000 6.666667 16.666667
$status
[1] 0
Автор: dwstu
Размещён: 06.01.2013 05:13
1 плюс
101 Репутация автора
Мне нравится Гуроби. Это очень дорого для лицензии, но ее можно получить во многих университетах. Смотрите здесь http://www.gurobi.com/products/modeling-languages/r
Автор: beddotcom Размещён: 11.01.2017 01:470 плюса
69 Репутация автора
Посмотрите на пакет NLoptr . Он имеет довольно обширную документацию с примерами и множеством алгоритмов на выбор, в зависимости от того, какую проблему вы пытаетесь решить (и т. Д. Линейный, нелинейный, ограничение)
Автор: nba2020 Размещён: 20.06.2019 01:44Вопросы из категории :
- r Как получить доступ к последнему значению в векторе?
- r Пакеты оптимизации для R
- r Есть ли у R такие операторские операции, как Perl qw ()?
- r Библиотека / инструмент для рисования тройных / треугольных графиков
- r Участки без заголовков / надписей в R
- r Расчет скользящей средней
- r Режим Emacs ESS - вкладка для области комментариев
- r Преобразование данных из многих строк во многие столбцы
- r Проверить, содержит ли вектор данный элемент
- r Поиск всех позиций для нескольких элементов в векторе
- mathematical-optimization What is an NP-complete in computer science?
- mathematical-optimization Алгоритм, чтобы определить, находится ли данная дата / время между двумя парами дата / время
- mathematical-optimization Нейронная сеть Оптимизация с генетическим алгоритмом
- mathematical-optimization Использование Python Pulp с матрицами
- mathematical-optimization Ограниченная линейная регрессия в Python
- mathematical-optimization Что такое интуитивное объяснение техники максимизации ожиданий?
- mathematical-optimization Нахождение максимальной суммарной суммы в Java
- mathematical-optimization Ограничения на регрессию NLME?
- mathematical-optimization Как объединить два целых числа в C