Документация верна. Я согласен с вами, что это может показаться странным, когда говорится, что если вы запутываете свой код, вы должны добавить такое правило ProGuard, чтобы сохранить классы vending.billing.
Чтобы прояснить его значение, если вы используете в своем проекте запутывание, затем , чтобы НЕ сломать библиотеку биллинга, тогда такую запись необходимо добавить в правила ProGuard .
Это необходимо, потому что хотя com.android.vending.billing не является частью библиотеки биллинга, так как она принадлежит Сервисам Google Play, доступ к ней осуществляется через AIDL, и запутывание проекта может привести к удалению / переименованию вендинга. ссылки.
Это - Минимальное Соответствие проблеме, и Вы корректны, что это - тяжелая проблема в целом. Однако для 2D Евклидова Двустороннего Минимального Соответствия случаю это разрешимо в близко к O (n ²) (см. ссылку).
Для быстрых приближений FryGuy на правильном пути с Моделируемым Отжигом. Это - один подход.
Также смотрите на Алгоритмы аппроксимации для двустороннего и недвустороннего соответствия в плоскости для O ((n/ε)^1.5*log^5 (n)) (1 +ε)-randomized схема приближения.
Вы могли бы рассмотреть моделируемый отжиг для этого. Начнитесь путем присвоения [x]-> B [y] для каждого пикселя, случайным образом, и вычислите сумму квадратов расстояний. Затем подкачайте пару x <-> y отображения, случайным образом. Затем примите решение принять это с вероятностью Q, где Q выше, если новое отображение лучше, и склоняется по направлению к нулю со временем. См. статью Википедии для лучшего объяснения.
Пиксели карты в том же индексе: в отсортированном списке первый пиксель в A отобразится на первый пиксель в B. Разве это не отображение, Вы ищете?