У меня маленькая проблема. Мне нужно сравнить один двумерный массив, заполненный единицами и нулями (давайте назовем это Матрица A - нули фактически представляют собой пустые места, а единицы - позиции футболистов на поле) с множеством других матриц, заполненных по-разному (но опять же, только единицы и нулями) и в результате должно быть указано, какая из матриц наиболее похожа на Матрицу А. Под сходством я подразумеваю сходство в распределении (или позиционировании) игроков на поле, поэтому матрица с расстановкой игроков наиболее похожа на Матрица А будет выбрана для дальнейшего материала.
Может ли кто-нибудь помочь с этой алгоритмической проблемой?
Я пишу это на с ++, но достаточно псевдокода. Проблема только в алгоритме сравнения. Лучше всего, если выходные данные функции сравнения будут выглядеть примерно так: similarity coefficient
, которые я могу сохранить в массиве, а затем выбрать наиболее похожую матрицу, используя ее. Но я просто не могу придумать какой-то алгоритм для сравнения подобия.
РЕДАКТИРОВАТЬ: некоторые пояснения о сходстве и алгоритме скопированы из моих комментариев ниже -
Матрица A - Матрица A , Матрица 1 - Матрица1 , Матрица 2 - Матрица2 , У обоих есть 1 изменение по сравнению с Матрицей A, но для меня - матрица 2 должна быть «более похожей» - потому что игрок стоит ближе к своей позиции в матрице A
Матрицы считаются размером около 8х6 или что-то в этом роде, они должны быть достаточно быстрыми - они будут вычисляться каждый игровой цикл (то есть каждые 20 мс или около того), и на каждой стороне будет по 5 игроков.