Table des Matières

64: 21'A XXIV FONCTION SIMPLE DE RECHERCHE APPROCHÉE


Article de cette rubrique en cours de rédaction!

 © "Tous droits réservés" - 2019 par Cédric Christian Bernard Gagneux né le 19/07/64.

XVI) LA FONCTION DE RECHERCHE D'UNE VALEUR OU PLUSIEURS VALEURS EXACTEMENT OU APPROXIMATIVEMENT ÉGALE À UNE OU PLUSIEURS VALEURS DANS L’ENSEMBLE DES VALEURS D'UNE SUITE DE NOMBRES

Nous continuerons donc à développer les définitions afférentes à notre nouvelle fonction suivante dans cette troisième partie, IV), toujours en utilisant la fonction indicatrice dans diverses formulations de cette nouvelle fonction N°3 de recherche exacte ou N°3' de recherche approximative d’une valeur donnée unique et exclusivement appartenant à la suite de nombres notée SeqA, soit nous considérons tout d'abord la fonction représentée par la notation Rchexct(x)(SeqA=ad’un élément xₙ=a ∈ S={Seq A}. La définition de la fonction caractéristique de cette nouvelle fonction de recherche exacte est la suivante:

1A: S→ {0,1}

1A(xₙ ∧ a∈ S={SeqA})=1, si xₙ=a ;

et 1A(xₙ ∧ a∈ S={SeqA})=0, si x≠a,

et dont l’expression de cette fonction caractéristique ou indicatrice 1A(Rchexct(x)(SeqA=a)) est:

∀ n ∈ N*, ∀ xₙ ∧ a ∈ R, ∀ a ∈ S: 1A(Rchexct(x)(SeqA=a))=1-⌈|xₙ-a|/(|xₙ|)+a+1)⌉ (70)

Maintenant considérons une autre fonction de recherche exact d'une valeur xₑ donnée seulement par le rang exacte et qui correspond à la valeur e ∈ N* donc correspondant à la valeur indicielle de la valeur exacte recherchée de xₙ=aₑ appartenant à la suite de nombres SeqA, que l'on a donc indexé par les entiers naturels N, comme dans l'expression précédente (70), avec l'indice n de la valeur xₙ, et dans ce cas de l'indice e de la valeur aₑ avec e ∈ N*, qui correspond à la valeur du rang e donné correspondant à la valeur recherchée aₑ; cette fonction de rang notée, Rngₙ(Rchexct(xₙ)(SeqA=aₑ)) s'obtient en considérant que la formule précédente de la fonction caractéristique de la fonction de recherche exacte appliquée au cas de xₙ=aₑ soit donc, Rchexct(xₙ)(SeqA=aₑest équivalente à la fonction caractéristique de rang de aₑ égal à la valeur e ∈ N*, soit, Rngₙ(Rchexct(xₙ)⊆(SeqA=aₑ))=e et dont la formule générale est cette fonction caractéristique multipliée par n, soit:

∀ n ∈ N*, ∀ xₙ ∧ a ∈ R, ∀ xₙ ∧ a ∈ S: Rngₙ(Rchexct(xₙ)⊆(SeqA=a))=(1-⌈|xₙ-a|/(|xₙ|)+a+1)⌉)*n (71).

En particulier pour le cas ou le rang est égal à la valeur e, la fonction de rang à pour expression: Rngₙ(Rchexct(xₙ)⊆(SeqA=aₑ))=(1-⌈|xₙ-aₑ|/(|xₙ|)+aₑ+1)⌉)*n (71'). (Cette nouvelle expression n'est plus celle d'une fonction caractéristique ou indicatrice dont les valeurs sont strictement égales à 0 ou 1, mais à une seule valeur appartenant à l'ensemble des entiers N*).

Il existe une autre expression plus "sui generis" correspondant à cette fonction caractéristique de recherche de rang donné pour une valeur recherchée correspondante à ce rang de la suite de nombres de SeqA et qui est définie comme suit:

1A: S→ {0,1}

1A(x ∧ aₑ ∈ S={SeqA})=1, si n=e ∧ xₙ=aₑ;

et 1A(xₙ ∧ aₑ ∈ S={SeqA})=0, si n≠e ∧ x≠aₑ, dont l’expression de cette fonction caractéristique ou indicatrice est:

∀ n ∈ N*, ∀ e∈ N*∀ aₑ∧ xₙ ∈ R, ∀ aₑ ∧ xₙ ∈ S={SeqA}:

1A(Rchexct(Rngₙ(x))(SeqA=aₑ))= ⌈|n/(e+1)-1|⌉-⌈|n/e-1|⌉+⌈n/e⌉-⌈n/(e+1)⌉ (72)

Dans le cas ou la valeur exacte recherchée xₑ correspondant au rang e=(1-⌈|xₙ-aₑ|/(|xₙ|)+aₑ+1)⌉)*n (71) nous obtenons l'équation de la fonction caractéristique du rang e ∈ N* de la valeur exacte recherchée soit:

∀ n ∈ N*, ∀ e∈ N*∀ aₑ∧ xₙ ∈ R, ∀ aₑ ∧ xₙ ∈ S={SeqA}:

1A(Rchexct(Rngₙ(x))(SeqA=aₑ))=⌈|n/((1-⌈|xₙ-a|/(|xₙ|)+a+1)⌉)*n+1)-1|⌉-⌈|n/((1-⌈|xₙ-a|/(|xₙ|)+a+1)⌉)*n)-1|⌉+⌈n/((1-⌈|xₙ-a|/(|xₙ|)+a+1)⌉)*n)⌉-⌈n/((1-⌈|xₙ-a|/(|xₙ|)+a+1)⌉)*n+1)⌉ (73)

Sachant que si une valeur exacte recherchée donnée n'appartient pas à la suite de nombres SeqA dans toutes les expressions précédentes de la fonction caractéristique de recherche exacte soit par la valeur donnée soit par le rang, seront égales à 0, est une des raisons pour laquelle il donc il nous faut développer une expression correspondant à la fonction de recherche d'une valeur approximative donnée appartenant donc approximativement à l'ensemble des valeurs de la suite de nombres SeqA, nouvelle fonction N° 3', de recherche d'une valeur approximative notée, Rchapp(x)(SeqAb), nous avons donc comme précédemment une formule de son expression qui nécessite des itérations, c'est-à-dire l'action de répéter un processus, soit dans le cas de la première fonction précédente répéter le processus de la recherche de la valeur exacte en changeant la valeur donnée. Donc cette deuxième fonction de recherche approximative, peut sembler rendre redondante la première puisque en fait toute recherche exacte si elle comprend un processus d'itération n'est en fait qu'une recherche approximative, mais ce qui est inexact, car les valeurs de cette première fonction sont nulles tant que le résultat de la valeur exacte appartenant à la suite de nombres SeqA n'a pas été trouvé, tandis que dans le cas de la fonction approximative de recherche, un ensemble de valeurs approximatives de cette même valeur exacte est toujours trouvé donc il pourrait manquer l'information essentielle de savoir quand une valeur exacte a été trouvée parmi l'ensemble des valeurs approximatives toujours trouvées; mais ce qui rend redondant cette première fonction n'est encore qu'une impression qui vient du fait du nombre d'itérations nécessaires beaucoup plus important pour trouver une valeur exacte résultat de la première fonction qu'une valeur approximative, résultat de la deuxième fonction. Donc il nous faut différencier strictement ces deux fonctions de manière telle que le résultat de la deuxième fonction ne soit jamais celui de la première, soit que le résultat de la fonction de recherche approximative soit toujours une valeur approximative. La définition de la fonction caractéristique de cette nouvelle fonction de recherche approximative telle que nous venons de la décrire est la suivante:

1A: S→ {0,1}

1A(xₙ +c∧ a∈ S={SeqA})=1, si xₙ+c=b ;

et 1A(xₙ +c∧ a∈ S={SeqA})=0, si xₙ+c≠b,

et dont l’expression de cette fonction caractéristique ou indicatrice 1A(Rchapp(x)(SeqAb)) est:

∀ n ∧ c ∈ N*, ∀ xₙ ∧ b ∈ R, ∀ xₙ ∧ b ∈ S: 1A(Rchapp(x)(SeqA≈b))=1-⌈|(|xₙ|-b+c)|/(|(|xₙ|-b+c)|+1)⌉ (74). La valeur approximative recherchée appartenant à la suite des nombres de SeqA et correspondante à cette fonction caractéristique et plus exactement à sa valeur non nulle, s'obtient en multipliant son expression par les valeurs xₙ de la suite de nombres SeqA, soit:

∀ n ∧ c ∈ N*, ∀ xₙ ∧ b ∈ R, ∀ xₙ ∧ b ∈ S: Rchapp(x)(SeqA≈b)=(1-⌈|(|xₙ|-b+c)|/(|(|xₙ|-b+c)|+1)⌉ )*xₙ (75).

Précisons que la valeur de c correspond à la valeur de la différence recherchée entre la valeur xₙ et la valeur approximative recherchée b, donc à la précision de l'approximation recherchée, soit c=1 étant la plus grande précision possible. Mais si la valeur de c=0 est exclue seulement par la restriction de la définition de l'expression précédente, c ∈ N*, en réalité, et il est toujours possible d'obtenir le résultat de la fonction caractéristique correspondant à la valeur exacte de xₙ appartenant à la suite de nombres de la SeqA, pour c=0.

Il nous faut donc maintenant envisager d'abord la possibilité de réduire le nombre d'itérations à une ou à aucune itération et de combiner les deux fonctions de recherche exacte et approximative en une seule et la fonction caractéristique d'un ensemble minimum de valeurs approximatives, ou un ensemble dont le nombre peut être réduit celons une valeur déterminée dont le minimum d'élément de ce sous-ensemble serait un seul élément dont la différence avec la valeur approximative serait la plus petite possible.

Une première réduction possible à 2 itérations est le processus utilisant la fonction Tri₁(SeqA ∈[b-c; b[sélectionnant les valeurs inférieures à b qui est précédemment définie comme la valeur donnée dont on recherche la valeur approximative correspondante dans la suite de nombres SeqA , et c la valeur donnée de la différence entre b et les valeurs approximatives de la suite de nombres SeqA, dont l'expression de la fonction caractéristique est:

1A: S→ {0,1}

1A(x ∧ a∈ S={SeqA})=1, si xₙ<=b;

et 1A(xₙ ∧ a∈ S={SeqA})=0, si xₙ>b,

et dont l’expression de cette fonction caractéristique ou indicatrice 1A(Tri₁(SeqA<=b)) est:

∀ n ∧ c ∈ N*, ∀ xₙ ∧ b ∈ R, ∀ xₙ ∈ S: 1A(Tri₁(SeqA<=b))=1A(Rchapp(x)(SeqAb))=(1-(⌈|(⌈|xₙ-b)|/(xₙ-b+2-⌈(|xₙ-(b-1)|)/(|xₙ|+(b-1)+1)⌉|⌉+1)/2-1+⌈|xₙ-b+1)|/(|xₙ|+(b-1)+1)⌉+1/2-⌈|xₙ-b)|/(|xₙ|+b+1)⌉/2)|/((|(⌈|xₙ-b)|/(xₙ-b+2-⌈(|xₙ-(b-1)|)/(|xₙ|+(b-1)+1)⌉|⌉+1)/2-1+⌈|xₙ-b+1)|/(|xₙ|+(b-1)+1)⌉+1/2-⌈|xₙ-b)|/(|xₙ|+b+1)⌉/2)|+1)⌉)) (76);

Pour pouvoir ensuite diminuer le nombre de valeurs approximatives à l'ensemble des valeurs approximatives de SeqA à b telle que b>xₙ>=b-c il est nécessaire de considérer l'ensemble des valeurs de SeqA correspondant à cette fonction caractéristique correspondant à l’expression de la fonction Tri₁(SeqA<=b)=Rchapp(x)(SeqAb) et dont l'expression est:

∀ n ∧ c ∈ N*, ∀ xₙ ∧ b ∈ R, ∀ xₙ ∈ S: Tri₁(SeqA<=b)=Rchapp(x)(SeqAb)=(1-(⌈|(⌈|xₙ-b)|/(xₙ-b+2-⌈(|xₙ-(b-1)|)/(|xₙ|+(b-1)+1)⌉|⌉+1)/2-1+⌈|xₙ-b+1)|/(|xₙ|+(b-1)+1)⌉+1/2-⌈|xₙ-b)|/(|xₙ|+b+1)⌉/2)|/((|(⌈|xₙ-b)|/(xₙ-b+2-⌈(|xₙ-(b-1)|)/(|xₙ|+(b-1)+1)⌉|⌉+1)/2-1+⌈|xₙ-b+1)|/(|xₙ|+(b-1)+1)⌉+1/2-⌈|xₙ-b)|/(|xₙ|+b+1)⌉/2)|+1)⌉))*xₙ (77).

Ensuite il nous faut donc écrire l'expression de la fonction caractéristique de la fonction Tri₁((Tri₁(SeqA<=b)∈ [b-c; b[ ) qui est la suivante:

1A: S→ {0,1}

1A(E ∧ a∈ S={SeqA})=1, si b>Eₙ>=b-c;

et 1A(Eₙ ∧ a∈ S={SeqA})=0, si b<Eₙ<b-c,

avec E=(1-(⌈|(⌈|xₙ-b)|/(xₙ-b+2-⌈(|xₙ-(b-1)|)/(|xₙ|+(b-1)+1)⌉|⌉+1)/2-1+⌈|xₙ-b+1)|/(|xₙ|+(b-1)+1)⌉+1/2-⌈|xₙ-b)|/(|xₙ|+b+1)⌉/2)|/((|(⌈|xₙ-b)|/(xₙ-b+2-⌈(|xₙ-(b-1)|)/(|xₙ|+(b-1)+1)⌉|⌉+1)/2-1+⌈|xₙ-b+1)|/(|xₙ|+(b-1)+1)⌉+1/2-⌈|xₙ-b)|/(|xₙ|+b+1)⌉/2)|+1)⌉))*xₙ (78),

et dont l’expression de cette fonction caractéristique ou indicatrice 1A(Tri₁((Tri₁(SeqA<=b)) ∈ [b-c; b[))=1A(Rchapp(x)(SeqAb))) est:

∀ n ∧ c ∈ N*, ∀ xₙ ∧ b ∈ R, ∀ xₙ ∧ Eₙ ∈ S: 1A(Tri₁((Tri₁(SeqA <=b))∈[b-c; b[ ))=⌈|(⌈|Eₙ-(b-c))|/(Eₙ-(b-c)+2-⌈(|Eₙ-((b-c)-1)|)/(|Eₙ|+((b-c)-1)+1)⌉|⌉+1)/2-1+⌈|Eₙ-(b-c)+1)|/(|Eₙ|+((b-c)-1)+1)⌉+1/2-⌈|Eₙ-(b-c))|/(|Eₙ|+(b-c)+1)⌉/2)|/((|(⌈|Eₙ-(b-c))|/(Eₙ-(b-c)+2-⌈(|Eₙ-((b-c)-1)|)/(|Eₙ|+((b-c)-1)+1)⌉|⌉+1)/2-1+⌈|Eₙ-(b-c)+1)|/(|Eₙ|+((b-c)-1)+1)⌉+1/2-⌈|Eₙ-(b-c))|/(|Eₙ|+(b-c)+1)⌉/2)|+1)⌉ (79).

En fait le nombre d'itérations réduit à 2 est en fait seulement le résultat d'une volonté de lisibilité de la formule de l'expression précédente puisque remplacer directement Eₙ par l'expression (78) est parfaitement possible donc réduisant le nombre d'itérations à 1.

Une autre méthode possible est de rechercher plusieurs valeurs exactes simultanément, soit en considérant 5 valeurs données a, b, c, d et e, recherchées dans la suite de nombres SeqA, nous obtenons l'expression de la fonction caractéristique suivante:

1A: S→ {0,1}

1A(x ∧ a ∧ b ∧ c ∧ d ∧ e ∈ S={SeqA})=1, si xₙ=a ∨ xₙ=a ∨ xₙ=b ∨ xₙ=c ∨ xₙ=d ∨ xₙ=e;

et 1A(x ∧ a ∧ b ∧ c ∧ d ∧ e ∈ S={SeqA})=0, si xₙ≠a ∨ xₙ≠b ∨ xₙ≠c ∨ xₙ≠d ∨ xₙ≠e,

et dont l’expression de cette fonction caractéristique ou indicatrice 1A(Tri₁(SeqA={a; b; c; d; e})) est:

∀ n ∧ c ∈ N*, ∀ a ∧ b ∧ c ∧ d ∧ e ∧ x ∈ S ∈ R:

1A(Tri₁(SeqA={a; b; c; d; e}))=1A(Rchexct(x)(SeqA={a; b; c; d; e}))= 1-⌈(|(xₙ-a)|*|(xₙ-b)|*|(xₙ-c)|*|(xₙ-d)|*|(xₙ-e)|)/(|(xₙ-a)|*|(xₙ-b)|*|(xₙ-c)|*|(xₙ-d)|*|(xₙ-e)|+1)⌉ (79). Multiplier cette dernière expression par xₙ, donne la suite de nombres S={a; b; c; d; e} ⊂ SeqA ou n'importe quelle combinaison des éléments de l'ensemble S={a; b; c; d; e} dont les valeurs correspondent exactement aux éléments de la suite de nombres de SeqA.