Ошибка линейного программирования (lpSolve) с использованием больших данных в R

Я пытался оптимизировать свою модель с 30000 переменными и 1700 ограничениями, но я получил эту ошибку, когда добавил еще несколько ограничений.

n<-lp ("max", f.obj, f.con, f.dir, f.rhs)$solution
Error: cannot allocate vector of size 129.9 Mb

Я работаю в Win 32 бит, 2 ГБ оперативной памяти. Что я могу сделать для работы и оптимизации моей модели с использованием большого набора данных?


person Forstools    schedule 29.08.2013    source источник
comment
В зависимости от того, откуда взялась ваша проблема, вы можете разделить ее (приблизительно) на набор более мелких проблем. Так обстоит дело, например, с линейными программами, возникающими из некоторых задач стохастической оптимизации (прогрессивное хеджирование).   -  person Vincent Zoonekynd    schedule 30.08.2013


Ответы (1)


По современным меркам это крошечная машина и немаленькая проблема. Короткий ответ: вы должны работать на машине с гораздо большим объемом оперативной памяти. Обратите внимание, что проблема не в том, что R не может выделить 130-мегабайтные векторы в целом - он может - а в том, что ему не хватает памяти на вашем конкретном компьютере.

Я бы посоветовал запустить 64-битный экземпляр R 3.0 на машине с 16 ГБ ОЗУ и посмотреть, поможет ли это.

Возможно, вы захотите развернуть машину в облаке и использовать RStudio удаленно, что будет намного дешевле, чем покупка нового компьютера.

person Harlan    schedule 29.08.2013