Я храню индексы для базисных и неосновных переменных в двоичном векторе в 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. Каков наиболее эффективный способ сделать это? Я думал об использовании многомерного логического массива.