assignkbestsd

K-лучшее решение S-D, которое минимизирует общую стоимость назначения

Описание

[assignments,cost,solutionGap] = assignkbestsd(costmatrix) возвращает таблицу assignments обнаружения треков путем нахождения наилучшего решения S-D, которое минимизирует общую стоимость заданий. Алгоритм использует релаксацию Лагранжа, чтобы преобразовать задачу назначения S-D в соответствующую задачу назначения 2-D, а затем решает 2-D задачу. Стоимость каждого потенциального присвоения содержится в матрице затрат, costmatrix.

costmatrix - n-мерная матрица затрат, где costmatrix(i,j,k ...) определяет стоимость n-кортежа (i,j,k, ...) в назначении. Индекс ' 1 ' всех размерностей в costmatrix представляет фиктивное измерение или ложную дорожку и используется для выполнения задачи назначения. Индекс 1, являющийся манекеном, может быть частью нескольких n-кортежей. Индекс можно назначить более одного раза. Типичное значение затрат для costmatrix(1,1,1,1, ...) равен 0.

Функция также возвращает погрешность решения, solutionGap, и стоимости заданий, cost.

[assignments,cost,solutionGap] = assignkbestsd(costmatrix,k) также определяет число, k K S-D решений -best. Функция находит K оптимальные решения, которые минимизируют общую стоимость. Во-первых, функция находит лучшее решение. Затем функция использует алгоритм Мерти, чтобы сгенерировать секционированные матрицы затрат. Наконец, функция получает оставшиеся K - 1 решения минимальных затрат для каждой секционированной матрицы.

[assignments,cost,solutionGap] = assignkbestsd(costmatrix,k,desiredGap) также задает требуемый максимальный зазор, desiredGap, между двумя решениями и возможным решением. Зазор контролирует качество решения. Значения обычно варьируются от 0 до 1. Значение 0 означает, что двойственные и возможные решения одинаковы.

[assignments,cost,solutionGap] = assignkbestsd(costmatrix,k,desiredGap,maxIterations) также задает максимальное количество разрешенных итераций. The desiredGap и maxIterations аргументы определяют условия завершения для алгоритма S-D.

[assignments,cost,solutionGap] = assignkbestsd(costmatrix,k,desiredGap,maxIterations,algorithm) также задает algorithm для поиска заданий.

Примеры

свернуть все

Найдите первые 5 оптимальных назначений задачи назначения S-D. Установите требуемый зазор равным 0,01, а максимальное количество итераций равным 100.

Загрузите матрицу затрат.

load passiveAssociationCostMatrix.mat

Найдите 5 лучших решений.

[assignments,cost,solutionGap] = assignkbestsd(costMatrix,5,0.01,100)
assignments=5×1 cell array
    {2x3 uint32}
    {3x3 uint32}
    {3x3 uint32}
    {3x3 uint32}
    {3x3 uint32}

cost = 5×1

  -34.7000
  -31.7000
  -29.1000
  -28.6000
  -28.0000

solutionGap = 5×1

         0
    0.0552
    0.0884
    0.1075
    0.1964

Входные параметры

свернуть все

Матрица затрат, заданная как n-мерный массив, где costmatrix(i,j,k ...) определяет стоимость n-кортежа (i,j,k, ...) в назначении. Индекс ' 1 ' всех размерностей в costmatrix представляет фиктивное измерение или ложную дорожку и используется для выполнения задачи назначения. Индекс 1, являющийся манекеном, может быть частью нескольких n-кортежей. Индекс можно назначить более одного раза. Типичное значение затрат для costmatrix(1,1,1,1, ...) равен 0.

Типы данных: single | double

Количество лучших решений, заданное в виде положительного целого числа.

Типы данных: single | double

Желаемая максимальная погрешность между двойственным и возможными решениями, заданная как неотрицательный скаляр.

Пример: 0.05

Типы данных: single | double

Максимальное количество итераций, заданное как положительное целое число.

Пример: 50

Типы данных: single | double

Алгоритм назначения для решения задачи назначения 2-D, заданный как 'munkres' для алгоритма Мункреса, 'jv' для алгоритма Йонкера-Вольгенанта, или 'auction' для алгоритма аукциона.

Пример: 'jv'

Выходные аргументы

свернуть все

Назначения треков обнаружениям, возвращенные как K-element массив ячеек. Каждая камера является P -by - N списком назначений. Назначения типа [1 1 Q 1] из четырехмерной матрицы затрат можно рассматривать как Q-1 сущность из размерности 3, который был оставлен неназначенным. Стоимость, значение в (1,1,Q,1) определяет стоимость неприсоединения (Q -1)th сущность из размерности 3.

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

Типы данных: single | double

Погрешность решения, возвращенная как положительный массив K-element, где K - количество лучших решений. Каждый элемент является разрывом двойственности, достигнутым между допустимым и двойственным решением. Значение погрешности около нуля указывает на качество решения.

Типы данных: single | double

Алгоритмы

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

Ссылки

[1] Popp, R.L., Pattipati, K. и Bar Shalom, Y. «M-best S = D Algorithm with Application to Multitarget Tracking». Сделки IEEE по аэрокосмическим и электронным системам, 37 (1), 22-39. 2001.

[2] Deb, S., Yeddanapudi, M., Pattipati, K., & Bar-Shalom, Y. (1997). «Обобщенный алгоритм назначения SD для оценки состояния мультисенсор-мультитаргет». Транзакции IEEE по аэрокосмическим и электронным системам, 33 (2), 523-538.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2018b