Использование двоичного вектора для хранения индексов для базиса и неосновы симплекс-методом. Проблема с перестановками. (MATLAB) - PullRequest
0 голосов
/ 10 ноября 2018

Я храню индексы для базисных и неосновных переменных в двоичном векторе в Matlab. Это для реализации симплекс-метода. Скажем, основа начинается с B = {3, 4, 5}, а неосновная - N = {1, 2}. Мой двоичный вектор выглядит так:

bas = [0 0 1 1 1]

Затем во второй итерации базисом является B = {1, 4, 5}, а неосновным является N = {3, 2}.

bas = [1 0 0 1 1]

Теперь, что если индекс входной переменной равен 2, то есть второе значение в небазисе (2), а индекс выходной переменной равен 2, то есть второе значение в базисе (4), так что обновленный массив будет

bas = [1 1 0 0 1]

с B = {1, 2, 5} и неосновной N = {3, 4}.

Единственная цель использования бинарного вектора для хранения индексов - уменьшить использование памяти. Я хочу знать, что элемент 2 в bas - это элемент 2 в N, а элемент 3 в bas - это элемент 1 в N. Каков наиболее эффективный способ сделать это? Я думал об использовании многомерного логического массива.

...