Find the key for vector transformation

6 vues (au cours des 30 derniers jours)
Ali
Ali le 27 Sep 2022
Commenté : Ali le 27 Nov 2022
Hello friends, Below is the optimization work. Even though I woked with fminsearch and similar tools, I cannot figure this out. Any help? Thank you very much. A & B & KEY are vectors of same length. the KEY is unknown. find the KEY such that minimize the function B-A(KEY).
clc;clear
A= [25 21.2 0.4 3.5 15 60 14 8.1 16.9 1.1];
KEY= [3 5 8 1 10 9 7 6 2 4];
B= A(KEY) + rand(1,10);

Réponse acceptée

Walter Roberson
Walter Roberson le 27 Sep 2022
You do not want to minimize B-A(KEY): those are vectors and you cannot minimize a vector.
A= [25 21.2 0.4 3.5 15 60 14 8.1 16.9 1.1];
KEY= [3 5 8 1 10 9 7 6 2 4];
B= A(KEY) + rand(1,10);
Kp = perms(KEY);
values = sum((B - A(Kp)).^2,2);
[bestresult, idx] = min(values);
bestresult
bestresult = 3.4348
Kp(idx,:)
ans = 1×10
3 5 8 1 10 9 7 6 2 4
  5 commentaires
Walter Roberson
Walter Roberson le 28 Sep 2022
That's why I was talking about custom functions to enforce integer permutation.
Ali
Ali le 28 Sep 2022
Thank you so much, I will try ga.

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 28 Sep 2022
  1 commentaire
Ali
Ali le 27 Nov 2022
Thank you for late reply. I saw your comment now, I appreciate and take a look.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Surrogate Optimization dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by