FR2933839A1 - Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants. - Google Patents

Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants. Download PDF

Info

Publication number
FR2933839A1
FR2933839A1 FR0854785A FR0854785A FR2933839A1 FR 2933839 A1 FR2933839 A1 FR 2933839A1 FR 0854785 A FR0854785 A FR 0854785A FR 0854785 A FR0854785 A FR 0854785A FR 2933839 A1 FR2933839 A1 FR 2933839A1
Authority
FR
France
Prior art keywords
source nodes
source
nodes
coherent
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0854785A
Other languages
English (en)
Other versions
FR2933839B1 (fr
Inventor
Lionel Tocze
Julien Sevin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0854785A priority Critical patent/FR2933839B1/fr
Publication of FR2933839A1 publication Critical patent/FR2933839A1/fr
Application granted granted Critical
Publication of FR2933839B1 publication Critical patent/FR2933839B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Il est proposé un procédé de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé comprenant M noeuds sources. Le procédé comprend les étapes suivantes : a) détermination (410) d'un ensemble L de groupes de noeuds sources cohérents relativement au noeud destination, un groupe de noeuds sources cohérent relativement au noeud destination étant un groupe dont tous les noeuds sources peuvent envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination ; b) détermination (435) d'au moins un sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant les N noeuds sources ; c) pour un sous-ensemble minimal déterminé, détermination (440) d'une séquence de transmission comprenant les groupes de noeuds sources cohérents compris dans le sous-ensemble minimal déterminé, la séquence de transmission déterminée permettant la transmission de paquets de données depuis les N noeuds sources vers le noeud destination.

Description

Procédé et dispositif de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des réseaux de communication maillés. Plus précisément, l'invention concerne une technique de gestion de ressources pour la transmission, via des noeuds relais, de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé comprenant M noeuds sources, avec N inférieur ou égal à M.
L'invention s'applique notamment, mais non exclusivement, dans le contexte d'un réseau maillé sans fil. Un réseau maillé pouvant être vu comme un graphe, la présente invention utilise des techniques issues de la théorie des graphes. 2. ARRIÈRE-PLAN TECHNOLOGIQUE 2.1 Théorie des graphes Le réseau est modélisé par un graphe G=(V,E), V étant un ensemble fini de K noeuds (appelés vertices en anglais), V= {x,, . . . , xK}, et E Ç V x V un ensemble fini d'arêtes qui connectent les noeuds. L'ensemble E est un ensemble ordonné de couples (xi, xi), avec x; et xi appartenant à v, ces couples étant appelés arêtes connectées, arcs ou liens (appelés edges en anglais). Un noeud de V modélise une entité communicante dans le réseau (par exemple un ordinateur, un haut-parleur, un amplificateur...) tandis qu'un arc (xi, xi) indique un lien de communication (par exemple une communication radio suffisamment bonne , c'est-à-dire au dessus d'un certain seuil de puissance radio reçue) entre les deux entités communicantes x; et x~.
Remarque d'implémentation : un graphe G peut être représenté par sa matrice d'adjacence A = (a;) qui correspond à une matrice carrée d'ordre K. Un élément a; a une valeur de : - 0 s'il n'existe pas d'arc de x; vers xi, - 1 s'il existe un arc de x; vers xi, Donc la condition (xi,xx) E E (condition utilisée dans la figure 11) peut s'écrire en terme d'implémentation a;j=1. Et respectivement (xi,xx) E peut s'écrire en terme d'implémentation a; 0. Un élément appartenant à l'ensemble Suc(x) = {y 1 (x, y) E E} est considéré 5 comme un successeur de x. De même, un élément appartenant à l'ensemble Pred(x) = {y I (y, x) E E} est considéré comme un prédécesseur de x. Le réseau étudié est constitué d'un ensemble S={S,,S2,...SM} de M noeuds sources et d'un noeud destination D. D'un point de vue du graphe, ceci signifie que : - V i =1..M, Pred(Si) = 0 10 - Suc(D) = 0 On appelle chemin entre un noeud x, et un noeud xp un ensemble ordonné de noeuds {x,,x2,..,xp} tel que (xi, x;+,) E E pour i = 1, . . . , (pùl). Un chemin peut aussi s'écrire {(x1,x2),..,(x;,x;+,),...,(xp_,,xp)} avec (xk,xk+,) EE pour k = 1, . . . , (pùl). On appelle k chemins disjoints, k ensembles qui n'ont pas deux noeuds 15 consécutifs en commun, soit d'un point de vue graphique , deux arcs en commun. Notons T un ensemble de k chemins disjoints. On définit alors : 1. Soit (x, y) E E (un lien du graphe), (x, y) E T si et seulement s'il existe un chemin de T qui contient (x,y) 2. Soit x E V (un sommet du graphe), x E T si et seulement s'il existe un chemin 20 de T qui contient x. Définition importante : On appelle deux chemins disjoints entre un ensemble S et un noeud D, deux ensembles ordonnés de noeuds {xäx2,..,xp,D} et {y,,y2,..,yq,D} tels que : - (xi,x;+,)EEpour i=1,...,(pù1) et(xp,D)EE 25 - (yj, yj+,) E E pour j = 1, ... , (qù1) et (yq, D) E E - x,ES,y,ESetx,=y, - Vi =1..(p -1), `dj =1..(q -1), (x;, x1+1) ~ (y;, y;+,) et (xp, D) ~ (yq,D) On définit alors que les noeuds sources associés à un ensemble de deux chemins disjoints entre S et D sont les deux noeuds sources de S : x, et y, (les points de 30 départ des chemins disjoints).
La définition se généralise très facilement pour un ensemble de k chemins disjoints. Les noeuds sources associés à un ensemble de k chemins disjoints entre S et D sont les k noeuds sources de S, points de départ des k chemins disjoints. Une remarque clé est la suivante : un ensemble S de k noeuds sources est dit capable d'envoyer simultanément un paquet (différent pour chaque noeud source) à un noeud destination D si et seulement si il existe k chemins disjoints entre S et D dans le graphe. L'ensemble S est alors qualifié de cohérent relativement au noeud destination D. 2.2 Problème technique On s'attache plus particulièrement dans la suite de ce document à décrire la problématique existant dans le contexte d'un réseau maillé sans fil, à laquelle ont été confrontés les inventeurs de la présente demande de brevet. L'invention ne se limite bien sûr pas à ce contexte particulier d'application, mais présente un intérêt dans tous les cas de transmission, via des noeuds relais, de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé. On considère un réseau de communication maillé sans fil constitué d'un ensemble de M noeuds sources (Si à SM) et d'un noeud destination (D). Les autres noeuds sont des noeuds relais, utilisés pour retransmettre les messages envoyés par les noeuds sources. La topologie du réseau est supposée connue, c'est-à-dire l'ensemble des qualités radio entre deux noeuds communicants est connu, basé par exemple sur le RSSI (pour Radio Signal Strength Indication en anglais, ou mesure de la puissance d'un signal reçu en français) ou le SNR (pour Signal Noise Ratio en anglais, ou rapport signal à bruit en français). Sur le réseau maillé sans fil considéré, l'accès au médium de communication est basé sur un protocole TDMA ( Time Division Multiple Access en anglais, ou accès multiple par répartition dans le temps en français), selon lequel chaque noeud peut accéder au médium à tour de rôle, de manière cyclique. Chaque cycle de transmission comprend des intervalles de temps ( Time Slots en anglais) permettant chacun à un noeud du réseau l'envoi d'informations. Par la suite, on dira que P noeuds sources peuvent parler simultanément , dans le cadre d'un protocole TDMA, si lors d'un cycle de transmission (permettant l'accès au médium successivement par des noeuds sources, puis des noeuds relais et enfin le noeud destination), les P noeuds sources disposent chacun d'un intervalle de temps. Au cours de l'utilisation d'un tel réseau maillé, un utilisateur peut sélectionner un sous-ensemble de N noeuds sources, avec N compris entre 1 et M (dans la suite du document, on parle de requête utilisateur comprenant N noeuds sources ), dont les données doivent parvenir au noeud destination D, avec une latence la plus courte possible et une qualité minimale à assurer. Le problème majeur technique qui se pose est celui d'optimiser la gestion des ressources du réseau de communication maillé, pour permettre de satisfaire la requête utilisateur. Cette gestion de ressources inclut la notion de partage de ressources, dans les contextes de médium partagé selon un protocole TDMA (tels que des réseaux sans fil dont tous les noeuds utilisent une même bande de fréquences ou bien des réseaux filaires dont tous les noeuds partagent un même bus). Dans l'état de l'art, une technique connue permet de déterminer la borne supérieure C sur le nombre maximal de noeuds sources capables d'envoyer simultanément un paquet à une destination D, par détermination du nombre maximal de noeuds sources capables d'atteindre le noeud D par des chemins disjoints. Cette technique connue permet également de déterminer une (et une seule) solution de C noeuds sources, permettant d'utiliser la capacité optimale du réseau. Cette technique connue utilise un cas particulier de l'algorithme de Ford & Fulkerson (se reporter à "Maximum Flow through a Network" Canadian Journal of Mathematics, 8 , pp 399-404, 1956) qui donne une solution itérative pour trouver un nombre maximal de chemins disjoints en temps polynomial entre une source s et une destination d. La solution est itérative car l'algorithme part d'un ensemble vide T et détermine à chaque itération un nouveau chemin disjoint à ajouter par un algorithme de marquage (plus précisément, une itération peut remettre en cause plusieurs chemins de T tant qu'à la fin de l'itération le cardinal de T a augmenté). Cependant, cette technique connue ne permet pas d'utiliser la capacité du réseau répondant au mieux à une requête utilisateur comprenant N noeuds sources (c'est-à-dire une requête de transmission par N noeuds sources sélectionnés par l'utilisateur). En effet, comme indiqué ci-dessus, la technique connue ne donne qu'une sélection de C noeuds sources (permettant d'utiliser la capacité C du réseau), qui n'est donc pas forcément adaptée aux besoins d'un utilisateur. La requête de l'utilisateur peut comporter une sélection de C noeuds sources différente de la sélection de C noeuds sources obtenue avec la technique connue. Egalement, la requête de l'utilisateur peut comporter une sélection de plus ou moins de C noeuds sources. Par exemple, appliqué à un exemple de système de visioconférence sans-fil interconnectant six caméras et un dispositif de distribution centrale, la capacité d'un réseau pourrait ne permettre la transmission simultanée au dispositif de distribution centrale que de trois caméras sur les six. La technique connue précitée ne donne alors qu'une sélection de trois caméras, ne correspondant pas forcément aux besoins de l'utilisateur. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.
Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé, en utilisant au mieux la capacité maximale du réseau, quelle que soit la valeur du nombre N de noeuds sources devant transmettre.
Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique permettant de satisfaire le besoin utilisateur avec la meilleure qualité et la meilleure réactivité. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique pouvant s'appliquer à un réseau de communication comprenant un 25 médium partagé. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse en ressources de calcul. 4. EXPOSÉ DE L'INVENTION 30 Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé comprenant M noeuds sources, ledit procédé comprenant les étapes suivantes : a) détermination d'un ensemble L de groupes de noeuds sources cohérents relativement au noeud destination, un groupe de noeuds sources cohérent relativement au noeud destination étant un groupe dont tous les noeuds sources peuvent envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination ; b) détermination d'au moins un sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant lesdits N noeuds sources ; c) pour un sous-ensemble minimal déterminé, détermination d'une séquence de transmission comprenant les groupes de noeuds sources cohérents compris dans ledit sous-ensemble minimal déterminé, ladite séquence de transmission déterminée permettant ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination.
Ainsi, dans ce mode de réalisation particulier, l'invention repose sur une approche tout à fait nouvelle et inventive consistant à déterminer et utiliser une séquence de transmission (éventuellement choisie parmi plusieurs) comprenant des groupes de noeuds sources cohérents, ces groupes étant eux-mêmes compris dans un sous-ensemble minimal préalablement déterminé et comprenant les N noeuds sources (requête utilisateur). Ceci permet de répondre aux besoins d'une requête utilisateur tout en réduisant le temps nécessaire aux N noeuds sources (de cette requête) pour émettre, puisque la séquence de transmission comprend un sous-ensemble minimal de groupes de noeuds sources cohérents (c'est-à-dire un nombre minimal de cycles de transmission, dans le cas détaillé ci-après d'un médium partagé). Ceci permet également de recevoir avec une latence minimale des paquets de données provenant d'une sélection de N noeuds sources, même lorsque ce nombre N de noeuds sources est plus faible ou plus grand que le nombre de noeuds sources permettant d'utiliser la capacité maximale du réseau (c'est-à-dire capables de transmettre simultanément).
Dans un mode de réalisation particulier, ladite étape b) permet de déterminer au moins deux sous-ensembles minimaux de groupes de noeuds sources cohérents, comprenant lesdits N noeuds sources. En outre, l'étape c) comprend les étapes suivantes : - pour chacun desdits au moins deux sous-ensembles minimaux déterminés, détermination d'une séquence de transmission comprenant les groupes de noeuds sources cohérents compris dans ledit sous-ensemble minimal déterminé, chaque séquence de transmission déterminée permettant ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination ; - sélection, pour ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination, d'une séquence de transmission parmi les séquences de transmission déterminées. Dans ce mode de réalisation particulier, on détermine donc plusieurs séquences de transmission (par exemple, une première séquence de transmission (à partir d'un premier sous-ensemble minimal, répondant à un critère de qualité, en terme de débit) et une seconde séquence de transmission (à partir d'un second sous-ensemble minimal, répondant à un critère de diversité de noeuds sources)), et on sélectionne l'une de ces séquences de transmission en fonction d'un critère de sélection prédéterminé. Ceci permet d'anticiper l'allocation des ressources du réseau de communication en fonction des besoins potentiels des noeuds sources ne faisant pas partie des N noeuds sources (de la requête utilisateur).
Par exemple, le critère de sélection prédéterminé peut-être la détection de mouvement dans un système de visioconférence : ^ en absence de mouvement, la sélection du premier sous-ensemble (et donc de la première séquence de transmission) permet de maximiser la bande passante utilisée par les N noeuds sources ; lors de la détection de mouvement, la sélection du second sous-ensemble (et donc de la seconde séquence de transmission) permet de réduire le temps d'introduction de noeuds sources compris dans les N noeuds sources d'une nouvelle requête utilisateur mais ne faisant pas partie des N noeuds sources d'une requête utilisateur courante.
De façon avantageuse, ladite étape b) permet de déterminer un premier sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant un nombre maximal d'occurrences de noeuds sources faisant partie des N noeuds sources. Ceci permet d'augmenter le débit de la pluralité des noeuds sources. Dans le cas détaillé ci-après d'un médium partagé, cette caractéristique permet de trouver les meilleures combinaisons de cycles qui optimisent la qualité des noeuds sources, en terme de débit. Le débit correspond ici à : DS = nombre d'intervalles de temps du noeud source S (dans la séquence) * Taille de l'intervalle de temps / Durée de la séquence. Avantageusement, ladite étape b) permet de déterminer un second sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant un nombre maximal de noeuds sources différents. Ceci permet d'augmenter la diversité du nombre de noeuds sources qui transmettent. Cela peut permettre de satisfaire à une nouvelle requête utilisateur dans un délai très court. Il est à noter que l'ajout de noeuds sources ne se fait pas au détriment des N noeuds sources de la requête utilisateur et se fait dans la limite de la capacité du réseau. On utilise ici le fait que la requête utilisateur ne peut être satisfaite avec la capacité existante qu'en introduisant de la latence. Cette latence permet alors l'introduction de noeuds sources supplémentaires, afin d'être plus réactif à une nouvelle demande utilisateur. Pour cela, il est intéressant de rechercher le maximum de noeuds sources différents. De façon avantageuse, dans l'étape a), les groupes de noeuds sources cohérents de l'ensemble L sont choisis uniquement parmi les groupes dont le cardinal est égal à une borne supérieure C définie comme le nombre maximal de noeuds sources capables d'envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination. Ceci permet de trouver rapidement le ou les sous-ensemble(s) minimal(ux) lors de l'étape b), en réduisant le nombre de combinaisons possibles. On utilise ainsi toute la capacité du réseau et ceci permet de déterminer la taille optimale de la séquence de transmission (celle où toute transmission de noeud source est potentiellement utile) et ce de manière indépendante de la sélection des noeuds sources, minimisant alors la latence pour les applications sources.
Avantageusement, dans l'étape a), l'ensemble L comprend tous les groupes de noeuds sources cohérents dont le cardinal est égal à ladite borne supérieure C. Cela permet de garantir la détermination du ou des plus petit(s) sous-ensemble(s) minimal(ux) lors de l'étape b), permettant ainsi d'optimiser le procédé.
De façon avantageuse, l'étape a) de détermination de l'ensemble L comprend les étapes suivantes : i- détermination d'un premier ensemble cohérent ST de noeuds sources de cardinal C et d'un premier ensemble T de C chemins disjoints correspondant ; ii- initialisation de l'ensemble L avec ledit premier ensemble cohérent ST de noeuds sources de cardinal C ; iii- sélection dudit premier ensemble cohérent ST de noeuds sources de cardinal C et dudit premier ensemble T de C chemins disjoints correspondant ; iv- à partir de l'ensemble cohérent STse1 de noeuds sources de cardinal C sélectionné lors de l'étape iii ou vi, et de l'ensemble TSe, de C chemins disjoints correspondant, détermination, s'il en existe au moins un, d'un autre ensemble cohérent ST' de noeuds sources de cardinal C et d'un autre ensemble T' de C chemins disjoints correspondant ; v- ajout à l'ensemble L dudit autre ensemble cohérent ST' de noeuds sources de cardinal C ; vi- sélection dudit autre ensemble cohérent ST' de noeuds sources de cardinal C et dudit autre ensemble T' de C chemins disjoints correspondant, puis réitération des étapes iv à vi. Ainsi, il est mis en oeuvre un algorithme rapide nécessitant un faible nombre d'opérations pour la détermination de l'ensemble L de groupes. En effet, on réduit le 25 temps de traitement puisqu'on trouve les groupes de noeuds sources cohérents de la liste L sans tester tous les groupes possibles de noeuds sources. Avantageusement, ladite étape iv comprend les étapes suivantes : - sélection des noeuds sources n'appartenant pas à TSe,, formant un ensemble Sc de noeuds sources candidats initiaux à la création d'un nouveau chemin disjoint non 30 compris dans Tse, ; - à partir de chaque noeud source de l'ensemble Sc, et de manière itérative de noeud en noeud, marquage : * avec une première valeur de marquage, de noeuds candidats à la création d'un nouveau chemin disjoint non compris dans TSe,, et * avec une deuxième valeur de marquage, de noeuds candidats à se retirer afin de supprimer un chemin disjoint compris dans TSe, ; - en fonction du résultat dudit marquage, détermination du chemin disjoint à supprimer de TSe, et du nouveau chemin disjoint à ajouter dans Tse,, pour obtenir ledit autre ensemble T' ; - détermination des noeuds sources appartenant audit autre ensemble T' et formant ledit autre ensemble cohérent ST'. Ainsi, on réduit le temps de traitement puisque la liste L est construite de manière itérative : chaque nouvel autre ensemble cohérent de noeuds sources de la liste L est obtenu à partir d'un ensemble cohérent de noeuds sources déjà présent dans la liste L.
Donc, on ne teste pas tous les ensembles possibles de noeuds sources. Avantageusement, l'étape iv est réitérée, pour l'ensemble cohérent STSe, de noeuds sources de cardinal C sélectionné et l'ensemble TSe, de C chemins disjoints correspondant, sur un nouveau graphe de réseau G' obtenu en ôtant d'un graphe de réseau courant : - le noeud source, appelé noeud source supprimé, qui appartient à l'ensemble Tse, mais pas à l'autre ensemble T' ; - les liens dont une extrémité est ledit noeud source supprimé. Ainsi, on réduit le temps de traitement puisque chaque nouvel ensemble cohérent obtenu est forcément un ensemble qui n'est pas dans la liste L, ce qui nous garantit l'étude de tous les ensembles possibles sans nécessité de vérifier qu'un ensemble a déjà été testé lors d'une itération précédente. Avantageusement, ladite étape b) comprend les étapes suivantes : - identification d'un ou plusieurs groupes de noeuds sources cohérents, s'il(s) existe(nt), qui comprend(nent) au moins un noeud source parmi lesdits N noeuds 30 sources; - création d'un ou plusieurs sous-ensemble(s) minimal(ux) de groupes de noeuds sources cohérents, comprenant chacun un nombre prédéterminé (NE,t_Comb) de groupes identifiés ; - sélection, parmi le ou les sous-ensemble(s) créé(s), d'au moins un sous-ensemble 5 comprenant lesdits N noeuds sources. Ainsi, on réduit le temps de traitement puisqu'on n'étudie que des combinaisons pertinentes de groupes (combinaisons utilisant seulement des groupes susceptibles de répondre au moins partiellement à la requête, du fait qu'ils comprennent au moins un des N noeuds sources). 10 Dans une première mise en oeuvre de l'invention, pour chaque groupe de noeuds sources cohérent relativement au noeud destination, l'envoi simultané de paquets différents par les noeuds sources dudit groupe est réalisé par une transmission sur un médium partagé dudit réseau, dans un cycle comprenant un intervalle de temps différent pour chaque noeud source dudit groupe. Chaque séquence de transmission comprend un 15 cycle différent pour chaque groupe compris dans ladite séquence de transmission. Ainsi, dans cette première mise en oeuvre, l'invention s'applique dans un contexte de transmission sur médium partagé, selon un protocole TDMA. Dans une seconde mise en oeuvre de l'invention, pour chaque groupe de noeuds sources cohérent relativement au noeud destination, l'envoi simultané de paquets 20 différents par les noeuds sources dudit groupe est réalisé par une transmission sur différents média dudit réseau, avec un médium différent pour chaque noeud source, dans un intervalle de temps commun à tous les noeuds sources dudit groupe. Chaque séquence de transmission comprend un intervalle de temps différent pour chaque groupe compris dans ladite séquence de transmission. 25 Ainsi, dans cette seconde mise en oeuvre, l'invention s'applique dans un contexte de transmission sur médias séparés. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur. Ce produit programme 30 d'ordinateur comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un moyen de stockage lisible par ordinateur, éventuellement totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Dans un autre mode de réalisation, il est proposé un dispositif de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé comprenant M noeuds sources. Ledit dispositif comprend : - des moyens de détermination d'un ensemble L de groupes de noeuds sources cohérents relativement au noeud destination, un groupe de noeuds sources cohérent relativement au noeud destination étant un groupe dont tous les noeuds sources peuvent envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination ; - des moyens de détermination d'au moins un sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant lesdits N noeuds sources ; - des moyens de détermination, pour un sous-ensemble minimal déterminé, d'une séquence de transmission comprenant les groupes de noeuds sources cohérents compris dans ledit sous-ensemble minimal déterminé, ladite séquence de transmission déterminée permettant ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : la figure 1 représente un exemple de réseau maillé sans fil dans lequel peut être mis en oeuvre le procédé selon l'invention ; la figure 2 représente l'architecture d'un dispositif selon un mode de réalisation particulier de l'invention ; la figure 3 représente un exemple de structure de données selon un mode de réalisation particulier de l'invention ; la figure 4 présente un organigramme d'un mode de réalisation particulier du procédé de gestion de ressources selon l'invention ; la figure 5 décrit un algorithme de détermination de la capacité du réseau C et de la liste L des groupes de noeuds sources, correspondant à l'étape 410 de la figure 4 ; la figure 6 décrit un algorithme de détermination de nouveaux groupes de sources, correspondant à l'étape 510 de la figure 5 ; la figure 7 décrit un algorithme effectuant la recherche d'un ensemble minimal de groupes permettant de répondre à la requête utilisateur , correspondant à l'étape 435 de la figure 4 ; la figure 8 décrit un algorithme de recherche de combinaison de groupes de sources, correspondant à l'étape 730 de la figure 7 ; la figure 9 présente la structure d'une séquence de transmission, dans un mode de réalisation particulier de l'invention ; la figure 10 décrit un algorithme d'utilisation et de sélection d'une parmi deux séquences de transmission déterminées possibles, selon un mode de réalisation particulier de l'invention ; la figure 11 décrit un algorithme de marquage du graphe réseau, correspondant à l'étape 600 de la figure 6 ; la figure 12 décrit un algorithme de détermination, à partir d'un ensemble de chemins disjoints, d'un autre ensemble de chemins disjoints, correspondant à l'étape 625 de la figure 6 ; et la figure 13 présente la structure d'une séquence de transmission, dans une variante de réalisation de l'invention. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. 6.1 Exemple de réseau maillé La figure 1 représente un exemple de réseau maillé sans fil dans lequel peut être mis en oeuvre le procédé selon l'invention Les noeuds 101 à 106 (aussi notés S1 à S6) sont des entités désirant envoyer des paquets d'information de taille fixe. Ils sont appelés noeuds sources (ou sources, dans la suite de la description) et l'ensemble de ces M (=6) noeuds sources est noté S. Les noeuds 107 à 111 (aussi notés R1 à R5) sont des entités qui ont pour fonction de relayer les paquets reçus. Ils ne produisent aucune information. Ces noeuds sont appelés noeuds relais. Le noeud 112 (aussi noté D) est une entité destinataire, qui attend les paquets d'information envoyés par les noeuds sources. Ce noeud est appelé noeud destination. Dans un mode de réalisation particulier de l'invention, le noeud destination D est amené à utiliser les différents paquets d'information provenant des noeuds sources, pour par exemple les transmettre à un système distant (non représenté). Par exemple, les noeuds sources peuvent être des caméras et le noeud destination D une base centrale de communication d'un système de visioconférence. A partir d'une interface homme-machine, un utilisateur peut alors déterminer une sélection des caméras dont les images doivent être diffusées vers le site distant de visioconférence. Une communication 115 entre deux noeuds est soit de type filaire soit de type sans-fil. Dans le cadre du mode de réalisation particulier, les communications sont de type sans-fil. Une communication a deux états : valide ou invalide. Une communication entre deux noeuds s et d est considérée valide s'il n'existe aucun obstacle entre s et d et si la distance entre s et d n'est pas trop grande. On suppose alors que la transmission est sans erreur, c'est-à-dire que l'information reçue par d est identique à l'information envoyée par s. Pour cela, l'homme de l'art peut utiliser un code de blocs linéaires type Reed-Solomon pour encoder l'information. La taille du code est alors fixée par rapport à un taux d'erreur prédéterminé du canal radio. 6.2 Dispositif de communication implémentant l'invention La figure 2 illustre un mode de réalisation non limitatif d'un dispositif de communication (200) selon un mode de réalisation particulier de l'invention.
L'invention se réalise indifféremment comme un programme exécuté sur une machine de calcul reprogrammable (un PC, un DSP, ou un microcontrôleur) ou sur une machine de calcul dédiée (un ensemble de portes logiques comme un FPGA ou un ASIC). L'invention est intégrée de manière préférentielle dans le noeud destination de la figure 1. Ce dispositif est classiquement composé d'une unité centrale de calcul (CPU) 210, une mémoire vive (RAM) 205, une mémoire de stockage de masse 220, une mémoire morte (ROM) 215. De plus, il comprend au moins une interface réseau 235 afin de communiquer (selon un protocole TDMA) avec d'autres dispositifs de communication distants 245, à travers un réseau 240 filaire ou non. Une interface homme-machine 225 est utilisée afin que l'utilisateur entre les paramètres d'entrée nécessaires à l'invention (requête de sélection des noeuds sources, qualité des liens du réseau entre deux dispositifs de communication). Une interface donnée 230, qui est en relation avec l'application, reçoit soit les données de l'application à destination du dispositif distant (noeuds sources S,,..,SM vers noeud destination D), soit des données de dispositifs distants destinées à l'application (ici le noeud destination D recevant par exemple plusieurs vidéos à transmettre vers un second réseau). L'ensemble de ces blocs est relié par un bus 250. Le CPU 210 exécute le programme qui déroule le procédé de l'invention. Les diverses variables sont mémorisées en mémoire vive. Les moyens algorithmiques nécessaires sont détaillés dans les parties suivantes. 6.3 Structure de données La figure 3 représente un exemple de structure de données, utilisée lors de la recherche d'un ensemble minimal de groupes répondant à la requête utilisateur (algorithme décrit plus précisément par les figures 7 et 8).
La table 300 représente la description des groupes de noeuds sources Gré trouvés lors de la phase de détermination de la capacité C du réseau et de détermination de la liste complète (de cardinal L) des groupes de noeud sources (voir étape 410 de la figure 4). Chaque ligne de la table 300 décrit l'appartenance ou non des sources {S,,..,SM} 30 au groupe Gré. Si la valeur à l'intersection de la ligne du groupe GRC et de la colonne de la source Si est nulle, alors la source n'appartient pas au groupe, sinon (valeur à 1) la source fait partie des sources constituant le groupe.
Pour cette table 300, le calcul de la somme des L lignes de la colonne de la source S;, correspond à un indicateur de la présence de la source Si dans au moins un des 5 groupes Gré. Cet indicateur, noté ci-après Pr; (i index relatif à la source Si) et défini donc j=L Par :Prs v , prend donc deux valeurs significatives intéressantes : i=i ^ soit une valeur nulle, indiquant l'absence de la source dans tous les groupes ;
^ soit une valeur strictement positive, indiquant qu'au moins un groupe contient la source Si.
10 De même, le calcul de la somme de N colonnes de la ligne du groupe GRC, où N correspond au nombre d'éléments d'une requête utilisateur {Srl,..,SrN} (N<=M et Srk E{S,,..,SM}), définit un indicateur de qualité du groupe à répondre à la requête. Cet indicateur, noté ci-après IQ~ (j index relatif au groupe GR) est donc défini par : k=N IQQ= (V ) tel que S;=Srk. k=t 15 La valeur IQj calculée permet de connaître le nombre de sources différentes de la requête faisant partie du groupe considéré.
La table 305 représente la description des combinaisons de Z (=2 ici) éléments, chaque élément étant un groupe de sources.
Pour chaque combinaison {Gr,,Gr2}, {Gr,,GrL},..., {GrL_,,GrL}, la valeur de la
20 colonne correspondant à la source Si est obtenue à partir des valeurs de la table 300, en additionnant les Z valeurs correspondantes de chaque V1 de la table 300, avec i l'indice de la source Si et j l'indice des Z groupes faisant partie de la combinaison. Ainsi, par exemple, la valeur de l'élément {{Gr,,GrL},S;} correspond à la valeur (dans la table 300) de {Gr,,S;} plus la valeur (dans la table 300) de {GrL,S;}.
25 Pour chaque combinaison, on définit deux indicateurs utiles lors de la recherche d'un ensemble minimal de groupes répondant à la requête utilisateur.
Le premier est un indicateur de la qualité de la combinaison, en terme de nombre d'occurrences des sources de la requête. Cet indicateur sera noté BQi (j indice de la combinaison) et correspond à la somme des N colonnes de la ligne de la combinaison j, où N correspond au nombre d'éléments d'une requête utilisateur {Sr,,..,SrN}. Le second est un indicateur de la diversité de la combinaison, en terme de nombre maximal de sources disponibles dans la combinaison. Cet indicateur sera noté BDD (j indice de la combinaison) et correspond pour une ligne de combinaison j, au nombre de colonnes Si de valeurs non nulles. L'usage de ces indicateurs apparaîtra plus clairement lors de la description des figures 7 et 8. 6.4 Algorithme général d'un mode de réalisation particulier de l'invention La figure 4 présente un organigramme d'un mode de réalisation particulier du procédé selon l'invention. L'étape 400 a pour but de récupérer la topologie du réseau, c'est-à-dire de récupérer l'état des communications entre les noeuds, ainsi que la liste des noeuds sources et relais. Cette topologie peut être connue des noeuds du réseau par construction, si le réseau est fixe et si le nombre de noeuds est constant. Ces informations peuvent être également introduites par l'utilisateur après l'installation d'un système, par l'intermédiaire du module 225. L'étape 405 construit le graphe de réseau à partir de la topologie du réseau. Chaque entité communicante est modélisée par un noeud du graphe et chaque communication considérée valide entre deux entités est modélisée par un lien entre deux noeuds (et donc chaque communication considérée non valide n'est pas modélisée dans le graphe). Dans le graphe, plusieurs liens existent entre un premier noeud et plusieurs seconds noeuds lorsque le premier noeud est capable d'envoyer simultanément, dans le réseau réel auquel correspond le graphe, des paquets différents vers les seconds noeuds (chacun des seconds noeuds reçoit un paquet différent). Par exemple, sur la figure 1, il existe un premier lien entre le noeud S5 et le noeud R2 et un second lien entre le noeud S5 et le noeud R5. En outre, dans le graphe, plusieurs liens existent entre plusieurs premiers noeuds et un second noeud lorsque les premiers noeuds sont capables d'envoyer simultanément, dans le réseau réel auquel correspond le graphe, des paquets différents vers le second noeud (chacun des premiers noeuds envoie un paquet différent au second noeud). Par exemple, sur la figure 1, il existe un premier lien entre le noeud R4 et le noeud D et un second lien entre le noeud R5 et le noeud D.
Dans le réseau réel auquel correspond le graphe, l'envoi simultané de paquets différents peut être réalisé par exemple : ^ soit par une transmission réellement simultanée sur différents média, avec un médium différent pour la transmission de chaque paquet ; ^ soit par une transmission sur un médium partagé en accès multiple par répartition dans le temps (TDMA, pour Time Division Multiple Access en anglais), avec un intervalle de temps différent pour la transmission de chaque paquet (voir description détaillée ci-après de la figure 9). L'étape 410 détermine à partir du graphe de réseau : premièrement la capacité C du réseau, c'est-à-dire le nombre maximal de noeuds sources capables d'envoyer simultanément un paquet à la destination D, et deuxièmement la liste complète L des groupes (de cardinal C) de noeuds sources {Gr,,..,GrL}. Cet algorithme est décrit plus précisément dans les figures 5 et 6. Puis, lors de l'étape 415, un test est effectué pour vérifier si l'utilisateur du système a choisi une nouvelle sélection de sources, appelée Requête utilisateur .
Lors de l'initialisation, aucune requête précédente n'est connue, aussi toute première sélection est considérée comme nouvelle sélection et entraîne l'exécution de l'étape suivante 420. Cette requête est dès lors mémorisée en tant que Requête Courante et servira lors des prochains tests de l'étape 415. Après la première requête, le test 415 consistera donc à vérifier que la nouvelle sélection utilisateur est différente de la Requête Courante , en comparant par exemple le nombre de sources différentes incluses dans chaque requête (test positif si le nombre est différent) et si celui-ci est identique en comparant les identifiants des sources requises (test positif si au moins une des sources incluses dans la nouvelle requête est différente de la Requête Courante ). De même que lors de l'initialisation, la nouvelle requête est mémorisée en tant que Requête Courante lorsque le test est positif.
Lors de l'étape 420, l'algorithme détermine si une séquence de transmission courante (précédemment déterminée par l'algorithme) permet de satisfaire la demande de l'utilisateur de manière immédiate. Lors de l'initialisation, aucune séquence de transmission n'est connue, aussi 5 l'algorithme effectue directement le test 425. Au contraire, après un premier succès de l'algorithme à satisfaire une Requête Utilisateur (étapes 425, 435, 440 et 445), au moins une séquence de transmission est connue et une séquence est établie permettant de disposer des sources incluses dans la requête précédente. Il est alors possible que l'une des séquences connues (et non 10 établie), permettent provisoirement de répondre à la Requête Courante , même si celle-ci ne correspond pas forcément à la séquence la meilleure en terme de débit et/ou de diversité que l'algorithme est à même de déterminer. Cependant, celle-ci peut-être utilisée permettant une réponse rapide du système, en attendant une optimisation effectuée par les étapes suivantes. L'étape 420 consiste alors à vérifier si l'ensemble des 15 sources de la Requête Courante est incluse dans une des séquences connues, et si oui, à diffuser aux noeuds du réseau l'ordre d'utilisation de cette séquence (si elle n'est pas déjà utilisée). Le test 425 consiste à vérifier si à partir de l'ensemble L des groupes de sources {Gr,,..,GrL}, déterminé lors de l'étape 410, il est possible de trouver un sous-ensemble 20 minimal contenant l'ensemble des sources de la Requête Courante . Ce test consiste à vérifier que chaque source de la Requête Courante appartient à au moins un groupe Gré de l'ensemble L. En utilisant les notations de la figure 3 (table 300), ceci revient à vérifier que pour chacun des N éléments de la requête utilisateur {Sr,,..,SrN}, la valeur de Pr; (où i est tel que Si correspond à une source Srk) est non 25 nulle. Si tel est le cas (test 425 positif), la liste L des groupes permet de garantir qu'il existe une combinaison de groupes permettant d'englober tous les éléments de la requête. Cependant, il est à noter que cette combinaison ne satisfera pas nécessairement les critères utilisés pour la recherche de l'ensemble minimal. L'étape 435 de 30 l'algorithme est exécutée.
Si le test 425 est négatif, alors cela signifie qu'au moins une des sources de la requête n'apparaît dans aucune combinaison (Pr;=O). De plus, cette source ne peut être contenue dans aucune liste L de capacité inférieure à c, sinon l'algorithme de l'étape 410 aurait trouvé au moins un groupe de taille C, incluant cette source. Dans ce cas, l'utilisateur est averti lors de l'étape 430, que la (au moins) une source d'indice i ne peut être rendue disponible à la destination D. Ceci peut-être dû à la présence d'obstacles empêchant tout chemin de communication avec les autres noeuds du système. Suite à cette étape 430, l'utilisateur peut continuer d'utiliser le système en n'effectuant que des requêtes omettant les sources pour lesquelles il a été averti de la non-disponibilité (retour à l'étape 415 comme indiqué figure 4). Une autre alternative serait de modifier la topologie du système (exemple : bouger la source ou enlever les obstacles), puis redémarrer le processus à partir de l'étape 400. Lors de l'étape 435, une recherche d'un ensemble minimal de groupes permettant de répondre à la requête utilisateur est effectuée.
Celle-ci permet d'établir l'existence ou non d'un groupe ou de combinaisons de groupes permettant la transmission des sources de la requête vers la destination D, selon différents critères comme la qualité de la combinaison à répondre à la requête (nombres d'occurrence maximal des sources requises dans la combinaison), la diversité de la combinaison (nombres de sources maximal incluant au moins les sources de la requête) ou la garantie minimale d'émission de chaque source tous les N cycles d'émission (Nc,teria = 3 par exemple, signifiant que chaque source doit émettre au moins une fois tous les 3 cycles d'émission). Cette étape est plus amplement détaillée par la description des figures 7 et 8. Suite à l'étape 435, l'étape 440 consiste à déterminer la(les) séquence(s) de transmission utilisant le(les) résultat(s) précédemment trouvé(s). Ceci va consister à définir l'accès au médium TDMA pour les noeuds sources et les noeuds relais afin de permettre à la destination D de recevoir les données provenant des sources de la requête utilisateur . La figure 9 présente la structure d'une telle séquence de transmission 900, dans 30 un mode de réalisation particulier de l'invention. Elle est composée de plusieurs cycles de transmission (référencés 901 et 907), pendant chacun desquels chaque noeud du réseau dispose d'un seul intervalle de temps de transmission (ou time slot en anglais). Plus précisément, le nombre de cycles compris dans la séquence de transmission 900 correspond au nombre de groupes (de noeuds sources) du sous-ensemble minimal (obtenu à l'étape 435, figure 4) auquel correspond cette séquence de transmission. Ainsi, dans l'exemple de la figure 9, la séquence de transmission 900 comprend deux cycles (901, 907) correspondant aux groupes Gr, et Gr3. Chaque cycle de transmission (901 ou 907) se décompose lui-même en : ^ un cycle d'émission des sources (902 ou 908), composés au maximum de C intervalles de temps (904 ou 910) ; ^ suivi d'un cycle d'émission des noeuds relais et du noeud destination D (903 ou 909), composés d'intervalles de temps pour les noeuds relais (905 ou 911) et d'un intervalle de temps pour le noeud destination (906 ou 912).
La figure 13 présente la structure d'une séquence de transmission 1300, dans une variante de réalisation de l'invention. La séquence de transmission 1300 est composée de plusieurs intervalles de temps (référencés 1302 et 1304), pendant chacun desquels tous les noeuds du réseau peuvent transmettre simultanément (pour chaque groupe de noeuds sources cohérent relativement au noeud destination, l'envoi simultané de paquets différents par les noeuds sources de ce groupe est réalisé par une transmission sur différents média dudit réseau, avec un médium différent pour chaque noeud source, dans un intervalle de temps commun à tous les noeuds sources de ce groupe). Le nombre d'intervalles de temps compris dans la séquence de transmission 1300 correspond au nombre de groupes (de noeuds sources) du sous-ensemble minimal (obtenu à l'étape 435, figure 4) auquel correspond cette séquence de transmission. Ainsi, dans l'exemple de la figure 13, la séquence de transmission 1300 comprend deux intervalles de temps (1302, 1304) correspondant respectivement aux groupes Gr, et Gr3. Nous revenons maintenant à la description de la figure 4. Plusieurs séquences de transmission peuvent être déterminées, à l'étape 440, en fonction des critères utilisées lors de la recherche du sous-ensemble minimal de l'étape 435 (une séquence de transmission est déterminée pour chaque sous-ensemble minimal obtenu). Dans le mode de réalisation particulier décrit ci-après, au maximum deux séquences sont établies. L'étape 445 consiste alors à la diffusion de la (des) séquence(s) de transmission à l'ensemble des noeuds du réseau. Lors de cette même étape, le noeud D diffuse le schéma de relais correspondant à chaque groupe de sources utilisées. Celui-ci correspond aux différents chemins disjoints obtenus lors de la détermination des groupes de capacité C, et permet aux noeuds relais de déterminer la donnée à relayer lors de chaque cycle de transmission. Plusieurs techniques de diffusion sont connues de l'homme de l'art pour diffuser des informations dans un réseau maillé (de type inondation de données dans un protocole maillé, en anglais flooding protocol ). A la fin de cette diffusion, la séquence de transmission correspondante est utilisée pour permettre la diffusion des sources de la requête utilisateur . Dans le mode de réalisation préféré, à la fin de diffusion de la (des) séquence(s) de transmission, celle correspondant au critère de qualité est la première utilisée. 6.5 Algorithme de détermination de la capacité C et de la liste L La figure 5 (dont une des étapes est détaillée sur la figure 6) décrit un mode de réalisation particulier de l'algorithme de détermination de la capacité du réseau C et de la liste L des groupes de noeuds sources {Gr,,..,GrL}, correspondant à l'étape 410 de la figure 4.
On appelle capacité du réseau le nombre maximal de noeuds sources capables d'envoyer simultanément un paquet (différent pour chaque noeud source) à un noeud destination. L'étape 500 détermine la capacité du réseau C vers le noeud destination D. Cela revient à déterminer un ensemble maximal de chemins disjoints entre l'ensemble des sources du réseau S (S, à SM) et le noeud destination D, et à déterminer les noeuds sources associés à ces chemins disjoints. En effet, chaque paquet envoyé par un noeud source associé S; suit le chemin disjoint entre S; et D. Pour calculer ce nombre maximal de chemins disjoints, il suffit d'utiliser un algorithme de max-flot comme le Ford-Fulkerson (selon une méthode connue par l'homme de l'art).
Cependant, il faut noter que l'algorithme doit être appliqué sur un graphe de réseau qui contient une unique source et non un ensemble de sources S. Le graphe décrit en figure 1 doit être modifié lors de cette étape. Pour cela, on ajoute au graphe de réseau une super-source Sv qui relie chaque noeud source de S, c'est-à-dire qu'un lien est ajouté entre le nouveau sommet Sv et chaque noeud de S. L'algorithme de Ford-Fulkerson détermine alors le nombre maximal de chemins disjoints entre Sv et D, tout en déterminant les chemins disjoints associés (TGr,). Vu la construction de notre graphe, à chaque chemin disjoint est associé un unique noeud source. Donc, le nombre maximal de chemins disjoints entre Sv et D est égal au nombre maximal de chemins disjoints entre l'ensemble S et D et correspond alors à la capacité C recherchée. L'ensemble des noeuds sources associés à ces chemins constitue alors un premier groupe de sources Gr,. L'étape 505 initialise la liste L avec l'élément Gr,, premier groupe de sources de capacité C trouvé lors de l'étape 500. Le but est de trouver tous les autres groupes de sources, de manière optimale, sans tester toutes les combinaisons possibles d'ensemble de sources. L'étape 510 construit la liste complète, l'algorithme étant expliqué dans la figure 6. La figure 6 étant un algorithme récursif, pour lequel il faut initialiser trois paramètres d'entrée correspondant respectivement au graphe étudié (noté Gour ), à l'ensemble initial de chemins disjoints (noté T) et à l'ensemble initial de noeuds sources associés (noté ST). Cette étape 510 est lancée avec les valeurs de paramètres suivants : G, TGr, et Gr,. On présente maintenant la figure 6, qui détaille l'étape 510 de la figure 5 (algorithme de détermination de nouveaux groupes de sources). L'étape 600 effectue un marquage sur le graphe. Ce marquage, expliqué dans la 25 figure 11, consiste à parcourir itérativement les noeuds du graphe et à déterminer : ^ des noeuds du graphe candidats à la création d'un nouveau chemin disjoint, non compris dans le chemin initial T ; ^ des noeuds, initialement présents dans le chemin T, candidats à se retirer afin de supprimer un chemin de T.
A partir de ce marquage, l'algorithme va chercher à déterminer s'il existe des solutions alternatives de sources à la solution courante ST. Pour ce faire, l'étape 605 vérifie, suite au marquage des noeuds de l'étape 600, si au moins un noeud source de ST a été marqué. Si aucun noeud source n'a été marqué, ceci signifie que pour le graphe courant Gcur, il n'y a pas d'autre ensemble de chemins disjoints que T, et donc pas d'autre ensemble de noeuds sources que ST. L'algorithme est alors terminé (610). Sinon il existe d'autres chemins disjoints et on passe à l'étape 615. Dans l'étape 615, le premier noeud source marqué est sélectionné (noté S,).
L'étape 625 détermine alors un autre ensemble de chemins disjoints T' à partir de T comprenant un ensemble de sources ST' différent de ST. Cet algorithme est décrit dans la figure 12. La source marquée S, ne fera alors plus partie de l'ensemble ST' et est remplacée par une source initialement non présente dans l'ensemble ST. L'étape 630 ajoute ce nouvel ensemble de source ST' dans la liste L. Ceci correspond, dans le cadre de l'invention, à la mémorisation d'un nouveau groupe de sources Gré. L'étape 635 consiste alors à réitérer le processus de l'étape 510 (l'algorithme de la figure 6 est donc récursif), sur un graphe réduit du graphe initiale G. Les trois paramètres d'entrées sont alors les suivants : 1. Gour (Gour S,), c'est-à-dire le graphe courant étudié moins le noeud source S, et moins les liens associés à ce noeud ; 2. T=T'; 3. ST = ST'. La modification des paramètres d'entrées T et ST permet de trouver d'autres ensembles de noeuds sources. La modification du premier paramètre (réduction du graphe) permet de ne pas retomber sur des ensembles déjà trouvés et garantit que l'algorithme récursif ne bouclera pas. L'étape 640 vérifie ensuite si tous les noeuds sources marqués par l'algorithme de marquage ont été étudiés. Si oui, l'algorithme se termine (610), sinon, l'étape 620 est exécutée. Celle-ci consiste à passer à l'étude du noeud source marqué suivant, et permet de garantir que l'algorithme trouvera toutes les solutions alternatives à la solution initiale ST. A l'issue de toute les itérations des étapes (625-635), l'algorithme permet donc de déterminer la liste L de tous les groupes de sources {Gr,,..,GrL}.
Une optimisation de l'algorithme est possible au niveau de l'étape 635. En effet, celle-ci peut être exécutée uniquement si le nombre de noeuds sources restant dans le graphe est strictement supérieur à la capacité C étudiée (le cardinal des ensembles de chemins disjoints et des noeuds sources). En effet, si celui-ci est inférieur ou égal, ceci ne sert à rien de relancer l'étape 635 car on est sûr que l'algorithme de marquage ne trouvera pas d'autres ensembles de noeuds sources. La figure 11 décrit l'algorithme de marquage du graphe réseau, correspondant à l'étape 600 de la figure 6. Les paramètres d'entrée sont les suivants : ^ un graphe de réseau G, avec un ensemble S de noeuds sources et D le noeud destination étudié ; ^ un ensemble maximal T de C chemins disjoints ; ^ ST l'ensemble des noeuds sources associé à T. Rappelons que le but du marquage est de trouver d'autres ensembles maximaux de C chemins disjoints impliquant d'autres ensembles de noeuds sources. L'idée principale est de remplacer un chemin disjoint de T par un autre chemin disjoint contenant un noeud source (ce nouveau chemin doit être disjoint de tous les chemins de T). Ainsi, on construit un autre ensemble T' qui diffère de T d'un chemin. D'un point de vue ensemble, on construit un ensemble de noeuds sources ST' différent de ST par un noeud source. Pour construire ce nouveau chemin, les noeuds non compris dans T et qui se portent candidats à la création d'un chemin disjoint sont marqués positivement. Pour supprimer un nouveau chemin de T, des noeuds compris dans T qui se portent candidats à se retirer afin de supprimer le chemin, sont marqués négativement. L'étape 1100 sélectionne les noeuds sources non compris dans ST (l'ensemble de ces noeuds est noté Sc) et ajoute ces noeuds dans un bloc mémoire noté FIFO_cand_à_tester. De plus, tous ces noeuds sont marqués positivement car ils sont candidats par définition à faire partie d'un nouveau chemin disjoint. Le bloc mémoire FIFO_cand_à_tester permet de stocker au fur et à mesure les noeuds marqués et de trouver d'autres noeuds candidats à partir de ceux-ci. En effet l'algorithme de marquage est itératif et est similaire à un algorithme de parcours complet d'un graphe. Dit d'une autre manière, partant de Sc, itérativement l'algorithme va marquer positivement les noeuds atteignables jusqu'à trouver un noeud de T, appelé noeud d'accroche. Ce marquage positif va lui permettre de créer le nouveau chemin appelée la partie de chemin remplaçante. Puis à partir de ce noeud d'accroche, l'algorithme va marquer négativement (alternativement négativement et positivement) les noeuds atteignables de T jusqu'à trouver (au moins) un autre noeud de S compris dans ST. Ce marquage négatif va lui permettre de créer la partie du chemin dit partie de chemin à remplacer (l'étape 625 effectuera le remplacement de la partie de chemin à remplacer par la partie de chemin remplaçante). L'étape 1105 initialise tous les noeuds du graphe à non marqué . L'étape 1110 extrait un noeud u du bloc mémoire FIFO_cand_à_tester (qui est 15 géré suivant le principe : premier élément entré, premier élément sorti). L'étape 1115 sélectionne un premier noeud v du réseau (on suppose que tous les noeuds du réseau ont un identifiant). L'étape 1120 vérifie si un noeud v peut être candidat pour faire partie d'un nouveau chemin disjoint, ou plus précisément d'incrémenter le chemin, c'est-à-dire lui 20 ajouter le lien (u,v) tout en gardant la notion de disjoint. Le lien (u,v) est alors candidat pour faire partie de la partie de chemin remplaçante. Trois contraintes doivent être vérifiées : 1. v non marqué ; 2. (u,v) EE : il faut un lien entre u et v pour continuer le chemin de u vers v ; 25 3. (u,v) eT : Il ne faut pas que lien soit dans T sinon le chemin ne sera pas disjoint. Si v vérifie ces trois contraintes, alors v est marqué positivement et fait partie des candidats à continuer le chemin provenant de u, étape 1125. Le marqueur de v, soit u, est gardé en mémoire. Attention, dans la terminologie courante (et dans la suite de l'invention), u est appelé le prédécesseur de v, noté II(v). Ceci signifie que u sera traité 30 avant v par la suite (figure 12). Ne pas confondre avec le terme appelé aussi prédécesseur utilisé dans la théorie des graphes. Ceci est nécessaire pour l'étape 625 qui permet de construire le nouveau chemin disjoint. De plus, le noeud v est mis dans le bloc mémoire FIFO_cand_a_tester pour continuer itérativement l'algorithme de marquage. Puis l'étape 1150, décrite ultérieurement, est effectuée. Si au moins une des trois contraintes de l'étape 1120 n'est pas respectée, alors étape 1130.
L'étape 1130 vérifie si un noeud v de T peut être candidat pour se retirer afin de supprimer un chemin de T, c'est-à dire supprimer le lien (v,u) d'un chemin disjoint de T. Le lien (v,u) est alors candidat pour faire partie de la partie de chemin à remplacer. Trois contraintes doivent être vérifiées : 1. v non marqué. 2. (v,u) EE : il faut un lien entre u et v pour continuer le chemin de u vers v 3. (v,u) ET : Il faut que le lien appartienne à T. Si v vérifie ces trois contraintes, alors étape 1135 sinon étape 1150. L'étape 1135 vérifie si v est un noeud source. Si oui, v est stocké (étape 1145) dans Smazk, ensemble contenant les noeuds source de S pouvant remplacer les sources initiales du groupe ST . On a remonté tout l'ensemble T jusqu'au noeud source et on a trouvé notre partie de chemin à remplacer. Sinon, v est marqué négativement et fait partie des candidats à se retirer (étape 1140). Le marqueur de v, soit u, est gardé en mémoire. De plus, le noeud v est mis dans le bloc mémoire FIFO_cand_à_tester pour continuer itérativement l'algorithme de marquage. Puis étape 1150.
L'étape 1150 vérifie que tous les noeuds du réseau ont été testés. Si oui, on passe à l'étape 1160, sinon le noeud suivant v est étudié (étape 1155) , puis retour à l'étape 1120. L'étape 1160 vérifie que tous les noeuds marqués ont été testés, afin de vérifier que tous les chemins de remplacement ont été étudiés. Si oui, fin de l'algorithme (étape 1165), sinon on retourne à l'étape 1110. La figure 12 décrit l'algorithme de détermination, à partir d'un ensemble de chemins disjoints T, d'un autre ensemble de chemins disjoints T', qui diffère d'un chemin, correspondant à l'étape 625 de la figure 6. L'algorithme se fonde sur le marquage effectué par le bloc 600 et sur le noeud source de départ S, sélectionné soit à l'étape 615 soit à l'étape 620. Pour construire le nouveau chemin de T', premièrement, ce procédé sélectionne le chemin de T partant de S,. Puis, il supprime une partie de ce chemin, précédemment identifiée comme partie de chemin à remplacer, c'est-à-dire les noeuds et liens rencontrés marqués négativement partant de S,. Puis, une fois sorti de l'ensemble T par un noeud d'accroche, l'algorithme ajoutera une partie de chemin remplaçante, c'est-à-dire les noeuds et liens rencontrés marqués positivement partant du noeud d'accroche. rencontrés se base sur les prédécesseurs des noeuds stockés par l'algorithme de marquage (étape 600). De plus, Sc, l'ensemble des noeuds sources non compris dans T est utilisé dans le procédé pour déterminer la fin de l'algorithme. C'est-à-dire que lorsqu'en recréant un nouveau chemin, on trouve un chemin issu d'un noeud source précédemment non utilisé, on a trouvé une nouvelle solution d'ensemble de noeuds sources de capacité maximale. Dans un premier temps, T' est initialisé à T (étape 1200), le concept de l'algorithme étant de supprimer des liens de T et d'en ajouter d'autres (pour remplacer un chemin par un autre). L'étape 1205 initialise le noeud t à s, et l'étape 1210 initialise le noeud u au prédécesseur de S. Puis l'étape 1215 regarde si t est marqué négativement. Si oui, le lien (t,u) est supprimé de T' (étape 1220). Sinon (u,t) est ajouté à T' (étape 1225). Puis étape 1235. L'étape 1235 vérifie si u est égal à un élément de Sc. Si oui, fin de l'algorithme (étape 1240), le nouveau chemin est construit entièrement. Si lors de l'étape 1235, u n'est pas un élément de Sc ou suite à l'étape de suppression de chemin (étape 1220), l'étape 1230 est effectuée. Cette étape se base sur les prédécesseurs stockés pour avancer dans la construction du nouveau chemin. t est initialisé à u et u au prédécesseur de u. Puis, on retourne à l'étape 1215. 6.6 Algorithme de recherche d'un ensemble minimal de groupes répondant à la requête La figure 7 (dont une des étapes est détaillée sur la figure 8) décrit un mode de réalisation particulier de l'algorithme effectuant la recherche d'un ensemble minimal de groupes permettant de répondre à la requête utilisateur , correspondant à l'étape 435 de la figure 4. Cette recherche va s'effectuer en privilégiant la recherche de l'ensemble de 30 groupes permettant d'obtenir la meilleure qualité par rapport aux sources de la requête, c'est-à-dire de trouver l'ensemble de groupes permettant d'obtenir le nombre d'occurrences maximal des sources de la requête. L'étape 700 consiste à identifier parmi les groupes obtenues {Gr,,..,GrL}, ceux qui contiennent au moins une source de la requête utilisateur . Pour ce faire, il suffit de vérifier que l'indicateur IQi du groupe Gré de la table 300 est positif. Tout groupe Grj dont l'indicateur est de valeur nulle, est un groupe ne permettant pas de répondre à la requête. Le compteur Nu est alors initialisé au nombre de groupes respectant cette condition. Ceci permet de réduire par la suite le nombre de combinaisons à étudier, en 10 utilisant seulement les groupes susceptibles de répondre à la requête. Suite à cette étape, un premier test (étape 705) consiste à vérifier si un (et un seul) des groupes Gré ne contient pas toutes les sources incluses dans la requête. Ceci peut arriver lorsque le nombre de sources de la requête est inférieur ou égal au nombre (correspondant à c) de sources maximal de chaque groupe. Ce test consiste à vérifier 15 qu'un et un seul indicateur IQi est égal au nombre de sources de la requête. Le groupe respectant cette condition (test de l'étape 705 positif) est alors choisi en étape 710, comme le groupe minimal permettant d'obtenir la meilleure qualité. En effet, pour un groupe unique, l'occurrence maximale de chaque source d'une requête est que chaque source apparaisse une fois. Suite à l'étape 710, l'algorithme est terminé et 20 l'étape 440 de l'algorithme général peut-être exécutée. Dans le cas d'une solution unique, l'algorithme privilégie ici la qualité à la diversité. Dans une variante de réalisation de l'étape 710, lorsque la requête utilisateur est de taille inférieure à la solution unique Gré, une solution alternative, permettant d'optimiser la latence introduite par la séquence de transmission, est de supprimer de 25 Gré les sources non utiles pour la requête utilisateur. En contrepartie, cela ne permet alors plus d'adaptation rapide à une autre requête. Si le test de l'étape 705 est négatif, lors d'un second test (étape 715), on vérifie si plusieurs des groupes Gré ne contiennent pas toutes les sources incluses dans la requête. Ceci peut arriver lorsque le nombre de sources de la requête est strictement 30 inférieur au nombre (correspondant à c) de sources maximal de chaque groupe. Ce test consiste à vérifier qu'au moins deux indicateurs IQQ sont égaux au nombre de sources de la requête.
Le nombre de groupes respectant cette condition est alors stocké dans la variable N1ep.
Si le test de l'étape 715 est positif, lors de l'étape 720, on crée une combinaison de K éléments distincts des groupes Gré. Ceci permet d'apporter un degré de diversité (en essayant de rajouter d'autres sources non incluses dans la requête), tout en sachant que la qualité est garantie optimale pour les sources de la requête. Pour ce faire, l'opération de l'étape 720 va consister en un choix aléatoire de K groupes distincts, où
K est choisi de manière à assurer la garantie minimale d'émission de chaque source tous les N cycles d'émission (fourni par Ncriteria(voir la description de l'étape 435 de la figure 4). La valeur de K maximale permettant de satisfaire le choix de K est alors connue par : Kmax = Min(Ncriteria, Nrep). Suite à l'étape 720, l'algorithme est terminé et l'étape 440 de l'algorithme 15 général peut-être exécutée.
Remarque pour l'optimisation de la diversité : un choix aléatoire de K groupes ne permet pas toujours d'apporter la diversité maximale (c'est-à-dire incluant toutes les sources du réseau). Un algorithme recherchant la combinaison de K groupes apportant (en plus de la qualité) la diversité maximale peut être effectué, dans une variante de
20 réalisation de l'étape 720. Cet algorithme permet une meilleure anticipation de toute nouvelle requête utilisateur .
Si le test de l'étape 715 est négatif, aucun groupe unique Gré ne permet de répondre à la requête. Il est alors nécessaire de tester les combinaisons de groupes, en commençant par la combinaison de taille minimale 2. On passe à l'étape 725 qui
25 initialise un compteur de taille de la combinaison de groupes NE,t_Comb à 2. Cette étape effectue la création des combinaisons (de taille NE,tcomb) parmi les Ngr groupes pouvant satisfaire à la requête (Ngr> NE,tComb). Soit un total de Ncomb combinaisons à étudier, où : ù CNF. _ Ngr ! N comb ù Nea c~,.,,v ù / ((Ngr ù NE(t_Cornb )!NEIt_Comb !) On comprend ici l'utilité de l'étape 700, qui permet de réduire le nombre de combinaisons à étudier au strict nécessaire. L'étape 730 (décrite plus précisément par la figure 8) est alors exécutée et effectue la détermination de combinaisons de groupes Gré de taille Nu,comb, en cherchant au plus deux combinaisons répondant respectivement soit à un critère de qualité optimale, soit à un critère de diversité optimale. La figure 8 décrit l'algorithme de recherche de combinaison de groupes de sources, correspondant à l'étape 730 de la figure 7. De manière générale, la philosophie de cet algorithme est d'effectuer si possible 10 le minimum d'itération. Pour ce faire, les étapes (700 et 725, puis ultérieurement 897) permettent une première réduction du nombre d'itération en limitant l'étude des combinaisons de groupe, aux seuls groupes utiles à répondre à la requête. Une autre amélioration va consister en la définition de critères maximaux 15 atteignables (étape 805) et en une suite de tests (étapes 840, 860 et 885) permettant de terminer l'algorithme dès que ces critères sont atteints. Dans l'exemple présenté, ces deux critères sont un critère de qualité (BQ_Criteria) et un critère de diversité (obtention, dans la combinaison, du nombre maximal de sources M). L'étape 800 effectue l'initialisation de plusieurs variables nécessaires à 20 l'algorithme. Ainsi, deux variables de mémorisation de la combinaison de groupes, correspondant chacune à un des critères de la recherche, sont initialisées à un ensemble vide : ^ la variable Seq_BQ correspond à la combinaison optimale en terme de qualité 25 (maximum d'occurrences des sources de la requête utilisateur) ; ^ la variable Seq_D correspond à la combinaison optimale en terme de diversité du nombre de sources (incluant la requête utilisateur). Trois variables (Found_RQ, Found BD, Found_BQ) permettent de statuer si une combinaison de groupes a été trouvée permettant respectivement de : ^ satisfaire à la requête utilisateur (la combinaison contient toutes les sources de la requête) ; ^ satisfaire de manière optimale le critère de diversité (la combinaison contient toutes les sources du réseau) ; ^ satisfaire de manière optimale le critère de qualité (la combinaison contient le maximum d'occurrences possibles des sources de la requête utilisateur). Initialement, ces trois variables prennent une valeur logique FALSE (faux). L'étape 805 initialise alors des variables permettant de déterminer qu'une combinaison répond de manière optimale au critère de qualité (variable notée BQ_Criteria) ou de mémoriser le niveau courant obtenu à l'aide de la combinaison sélectionnée (variables notées Nb_Diversity et Nb_Quality, respectivement pour chaque critère). Les variables Nb_Diversity et Nb_Quality sont initialisées à la valeur du nombre de sources de la requête. Il est en effet nécessaire que le groupe contienne au moins une fois chaque source de la requête. La variable BQ_Criteria est initialisée à l'aide des indicateurs IQj obtenus à partir des tables de la figure 3. Ces indicateurs sont dans un premier temps ordonnés selon leur valeurs, résultant en une table de j éléments IQmax = {1Qmaxl> ••,IQmax]}, où IQmax, est la plus grande valeur et IQmj la valeur la plus petite. Dans le cas de la table 300, par exemple en supposant IQj<IQ,, on aura IQmax = { • • •> IQmaxi, IQmax;+,,. >IQmaxL} _ {..., IQL, IQ,,
Remarque : on suppose ici que tous les groupes sont utiles pour la requête, sinon la table IQm contient Nu éléments.
La variable BQ_Criteria est alors initialisée à la somme des N premiers éléments i-NFI, Combù1 /~ (N= NEII_Comb) de IQmax• (BQ_Criteria = IQmax, ). i=0 En effet, toute combinaison de NEIt Comb groupes aura au maximum comme valeur d'indicateur BQj, la valeur de la somme des NE,1_Comb premiers éléments de valeur maximale.
Suite à ces initialisations, un premier test (étape 810) est effectué permettant de vérifier que chaque source présente dans la combinaison de groupes étudiée satisfait à la garantie minimale d'émission. Ceci revient à vérifier ici que le nombre d'éléments de la combinaison satisfait au critère minimale d'émission, c'est-à-dire à vérifier que : NEIt comb =< Ncriceria• Si tel n'est pas le cas (test de l'étape 810 négatif), alors il n'existe pas de combinaison de groupes répondant à la requête utilisateur permettant de garantir une qualité minimale d'émission. L'algorithme est en échec (étape 815) et le système peut notifier l'utilisateur que le système ne peut dans les conditions actuelles satisfaire correctement sa demande. Si le test de l'étape 810 est positif, l'étape 820 effectue l'initialisation d'un compteur j destiné à parcourir les différentes combinaisons susceptibles de répondre à la requête. Un test (étape 825) est alors effectué pour vérifier si toutes les combinaisons de groupe constituées de NEtt_comb ont été testées. Cela revient à comparer si le compteur j est inférieur au nombre de combinaisons Ncomb calculé lors de l'étape 725 (ou lors de l'étape 897). Si le test de l'étape 825 est positif, l'étape 830 effectue un test de la combinaison étudiée à satisfaire la requête courante . Ce test consiste à vérifier que pour la combinaison d'indice j (ligne j de la table 305), toute les colonnes des N sources de la requête utilisateur {Sr,,..,SrN} contiennent une valeur non nulle. Si une de ces valeurs est nulle (test de l'étape 830 négatif), alors la combinaison ne peut satisfaire la requête et l'on passe à l'étude de la combinaison suivante par incrémentation du compteur j (étape 890).
Si le test de l'étape 830 est positif, alors il existe une combinaison de groupe constituée de NEIt comb éléments permettant de satisfaire la requête. La variable Found RQ prend alors la valeur TRUE (vrai) (étape 835). L'étape de test 840 est alors effectuée pour essayer de déterminer si la combinaison satisfait le critère de diversité maximale. Ce test consiste alors à tester l'égalité entre l'indicateur BDD (de la table 305) et le nombre maximal de sources M du réseau. Si ces valeurs sont égales (test de l'étape 840 positif), alors la combinaison étudiée correspond à une combinaison maximale pour la diversité. Lors de l'étape 845, la combinaison étudiée j est sauvegardée dans la variable Seq_D ; la variable Found_BD est mise à la valeur TRUE et la variable Nb_Diversity est mise à la valeur M (nombre de sources du réseau). Par cette étape 845, la dernière séquence satisfaisant à la diversité maximale est mémorisée. L'algorithme exécute alors l'étape 860. Si les valeurs sont différentes (test de l'étape 840 négatif), alors un nouveau test (étape 850) vérifie si la combinaison courante est meilleure pour la diversité, qu'une précédente combinaison étudiée. Ce test consiste à vérifier si l'indicateur BDD est supérieur à la valeur mémorisée dans la variable Nb_Diversity. Si le test de l'étape 850 est positif, la combinaison étudiée correspond à une combinaison offrant un degré de diversité supérieur (mais non maximal) aux combinaisons précédentes et on effectue l'étape 855, sinon l'étape 860 est la prochaine étape réalisée par l'algorithme. Lors de l'étape 855, la combinaison étudiée j est sauvegardée dans la variable Seq_D et la variable Nb_Diversity est mise à la valeur BDi. Par cette étape, la première séquence satisfaisant à la meilleure diversité (non maximale) est mémorisée. Lors de l'étape de test 860, l'algorithme essaye de déterminer si la combinaison satisfait le critère de qualité maximale. Ce test consiste à tester l'égalité entre la valeur de BQ_Criteria et l'indicateur BQi (de la table 305) de la combinaison étudiée. Si ces valeurs sont égales (test de l'étape 860 positif), alors la combinaison étudiée correspond à une combinaison maximale pour la qualité. Lors de l'étape 875, un nouveau test est effectué. Ce test permet de mémoriser comme séquence unique optimisant simultanément les deux critères (qualité et diversité) la combinaison étudiée, lorsque celle-ci satisfait ces deux critères avant que deux combinaisons différentes ne soient trouvées. Ce test consiste à vérifier qu'au moins une des deux conditions suivantes est exacte : soit la variable Found_BQ est égale à la valeur FALSE, soit la variable Found_BD est égale à la valeur TRUE.
Si le test de l'étape 875 est positif, alors lors de l'étape 880, la combinaison étudiée j est sauvegardée dans la variable Seq_BQ ; la variable Found_BQ est mise à la valeur TRUE et la variable Nb_Quality est mise à la valeur BQ_Criteria. Par cette étape 880, la dernière séquence satisfaisant à la qualité maximale est mémorisée.
L'algorithme exécute alors l'étape 885. (Remarque : le cas où le test de l'étape 875 est négatif, bien que représenté, ne sera jamais vérifié car l'étape 885 achève l'algorithme avant un tel cas). Si les valeurs sont différentes (test de l'étape 860 négatif), alors un nouveau test (étape 865) vérifie si la combinaison courante est meilleure pour la qualité, qu'une précédente combinaison étudiée. Ce test consiste à vérifier si l'indicateur BQi est supérieur à la valeur mémorisée dans la variable Nb_Quality. Si ce test de l'étape 865 est positif, la combinaison étudiée correspond à une combinaison offrant un degré de qualité supérieur (mais non maximal) aux combinaisons précédentes et on effectue l'étape 870, sinon l'étape 885 est la prochaine étape réalisée par l'algorithme.
Lors de l'étape 870, la combinaison étudiée j est sauvegardée dans la variable Seq_BQ et la variable Nb_Quality est mise à la valeur BQQ. Par cette étape 870, la première séquence satisfaisant à la meilleure qualité (non maximale) est mémorisée. L'étape 885 est une étape permettant d'interrompre l'étude des combinaisons de groupes restantes, dès lors qu'un ensemble de combinaison satisfait aux deux critères maximaux. En effet, même si d'autres combinaisons existent, elles ne pourront faire mieux. Cet ensemble est soit constitué de deux combinaisons différentes ou d'une combinaison unique. L'algorithme tel que décrit ne permet cependant pas de garantir que si il existe une combinaison unique, on la trouvera (cela dépendra de l'ordre des combinaisons). Cependant, l'algorithme permet de garantir que s'il existe un ensemble de combinaisons optimales de même nombre d'éléments, on les trouvera. Le test de l'étape 885 consiste à vérifier que les deux conditions suivantes sont exactes : la variable Found_BQ est égale à la valeur TRUE et la variable Found BD est égale à la valeur TRUE.
Si le test de l'étape 885 est positif, l'algorithme est terminé (étape 899), sinon il n'existe pas d'ensemble de combinaison satisfaisant les deux critères maximaux et l'on passe à l'étude de la combinaison suivante (étape 890). Reprenant à l'étape 825, si le test est négatif, indiquant que toutes les combinaisons de groupes composées de NE,t_comb ont été étudiées, l'étape 895 vérifie alors si une combinaison a permis de répondre à la requête utilisateur . Ce test consiste alors à vérifier que la variable Found_RQ est égale à la valeur TRUE. Si le test de l'étape 895 est positif, alors fin de l'algorithme (étape 899) : l'algorithme a alors trouvé un ensemble de combinaison (une ou deux combinaisons de groupes) satisfaisant la requête avec la meilleure qualité et la meilleure diversité possibles (avec au moins une des deux, non maximale). Si le test de l'étape 895 est négatif, alors l'algorithme va essayer d'utiliser des combinaisons de groupes plus grandes pour satisfaire la requête utilisateur . L'étape 897 incrémente alors le nombre d'éléments à combiner NEIL comb et effectue la création des combinaisons (de taille NE,t_comb) parmi les Ngr groupes pouvant satisfaire à la requête (Ngu> NE,t_Comb)• L'algorithme reprend alors à partir de l'étape 805. 6.7 Exemple d'utilisation et de sélection des séquences de transmission La figure 10 décrit un mode de réalisation particulier d'un algorithme d'utilisation et de sélection d'une parmi deux séquences de transmission déterminées possibles, selon un critère de sélection lié à la détection de mouvement. Comme les algorithmes présentés ci-dessus, cet algorithme est mis en oeuvre par un dispositif de communication (voir figure 2), aussi appelé système ci-dessous et qui correspond, dans un mode de réalisation particulier, au noeud destination D. Lors d'une première étape 1000, après détermination et diffusion de(s) séquence(s) de transmission par l'algorithme général de la figure 4, le système utilise la séquence correspondant au critère de meilleure qualité (Seq_BQ). La variable Config_Mouv, permettant de mémoriser l'état de la configuration utilisée par rapport au mouvement dans le système, prend la valeur Inactif . Ceci signifie alors que la séquence de transmission est celle correspondant à une absence de mouvement, permettant alors d'obtenir la meilleure qualité au détriment de la diversité.
Dans cette même étape, une temporisation ( timer en anglais) Tdétection est dans un état initial inactif. Cette temporisation a pour but de déterminer une durée minimale d'absence de mouvement, après laquelle on considère nécessaire de modifier la séquence de transmission utilisée pour revenir à celle assurant la meilleure qualité.
L'étape 1005 détermine alors de manière régulière si un mouvement a été détecté dans le système. Cette détection s'appuie par exemple sur des capteurs volumétriques (ou infrarouges), connus de l'homme de l'art et connectés, dans le cadre d'un mode de réalisation particulier de l'invention, de manière centralisée au noeud destination D.
L'étude (ou la notification) des variations de ces capteurs permet alors de détecter les mouvements dans la zone d'utilisation du système. Lors de la détection de mouvement (test de l'étape 1005 positif), l'étape 1025 détermine alors si ce mouvement a déjà été pris en compte ou non. Ce test consiste ici à vérifier si la valeur de la variable Config_Mouv est à la valeur Actif .
Si ce n'est pas le cas (test de l'étape 1025 négatif), alors on vient de détecter un mouvement consécutif à une période d'absence de mouvement. Le système décide alors d'utiliser une séquence de transmission dans laquelle le nombre de sources est plus diversifié afin d'anticiper une modification de la requête utilisateur. Dans le cadre d'une visioconférence, en utilisant par exemple des capteurs sur des zones d'intérêts (tableau, zone de présence de personnes), ceci peut correspondre à un déplacement vers ces zones à des fins d'explications plus détaillées et il est fort probable que l'on modifiera les sources diffusées initialement pour inclure celle permettant de voir le contenu des explications (ici le tableau). L'étape 1030 réalise alors les opérations nécessaires à cette adaptation de la séquence de transmission, en diffusant l'ordre d'utilisation de la séquence de diversité de sources (Seq_BD) et en mémorisant son utilisation par mise à la valeur Actif de la variable Config_Mouv. Suite à toute détection de mouvement (déjà ou non prise en compte), l'étape 1035 démarre la temporisation Tdétection, afin de déterminer l'instant de retour à une séquence correspondant à une absence de mouvement.
En cas d'absence de mouvement (test négatif de l'étape 1005), on passe à l'étape 1010 consistant à vérifier que la séquence de transmission utilisée ne correspond pas déjà à celle adaptée à une absence de mouvement. On vérifie ici l'état mémorisée dans la variable Config_Mouv.
Si cet état est différent de la valeur Actif (test de l'étape 1010 négatif), alors il n'est pas nécessaire d'effectuer de modification de la séquence utilisée, l'algorithme retourne à l'étape 1005 de détection de mouvement. Si cet état est celui de la valeur Actif (test de l'étape 1010 positif), alors le système est dans une phase de transition entre une phase de mouvement et une phase d'absence de mouvement. L'étape 1015 vérifie alors si la durée de cette phase est considérée suffisante pour effectuer la sélection de la séquence de transmission la plus adaptée à l'absence de mouvement. Ce test consiste à vérifier si la durée de la temporisation Tdétection est supérieure à une valeur minimale à partir de laquelle on considère cette durée de détection écoulée.
Lorsque cette durée est écoulée (test de l'étape 1015 positif), l'étape 1020 réalise alors les opérations nécessaires à l'adaptation de la séquence de transmission à cette période d'absence de mouvement, en diffusant l'ordre d'utilisation de la séquence de meilleure qualité de sources (Seq_BQ) et en mémorisant son utilisation par mise à la valeur Inactif de la variable Config_Mouv. Dans cette même étape, la temporisation Tdétection est de nouveau rendu inactive, comme lors de l'étape initiale 1000. Suite à un test négatif à l'étape 1015 ou suite à l'étape 1020, l'algorithme revient à l'étape 1005 de test de détection de mouvement.

Claims (8)

  1. REVENDICATIONS1. Procédé de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau de communication maillé comprenant M noeuds sources, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes : a) détermination (410) d'un ensemble L de groupes de noeuds sources cohérents relativement au noeud destination, un groupe de noeuds sources cohérent relativement au noeud destination étant un groupe dont tous les noeuds sources peuvent envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination ; b) détermination (435) d'au moins un sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant lesdits N noeuds sources ; c) pour un sous-ensemble minimal déterminé, détermination (440) d'une séquence de transmission (900 ; 1300) comprenant les groupes de noeuds sources cohérents compris dans ledit sous-ensemble minimal déterminé, ladite séquence de transmission déterminée permettant ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape b) permet de déterminer (710, 720, 870, 880) un premier sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant un nombre maximal d'occurrences de noeuds sources faisant partie des N noeuds sources.
  3. 3. Procédé selon la revendication 1, caractérisé en ce que ladite étape b) permet de déterminer (720, 845, 855) un second sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant un nombre maximal de noeuds sources différents.
  4. 4. Procédé selon les revendications 2 et 3, caractérisé en ce que l'étape c) comprend les étapes suivantes : - pour chacun desdits premier et second sous-ensembles minimaux déterminés, détermination (440) d'une séquence de transmission (900 ; 1300) comprenant les groupes de noeuds sources cohérents compris dans ledit sous-ensemble minimal déterminé, chaque séquence de transmission déterminée permettant laditetransmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination ; - sélection (1000, 1020, 1030), pour ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination, d'une séquence de transmission parmi les séquences de transmission déterminées.
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, dans l'étape a), les groupes de noeuds sources cohérents de l'ensemble L sont choisis uniquement parmi les groupes dont le cardinal est égal à une borne supérieure C définie comme le nombre maximal de noeuds sources capables d'envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination.
  6. 6. Procédé selon la revendication 5, caractérisé en ce que, dans l'étape a), l'ensemble L comprend tous les groupes de noeuds sources cohérents dont le cardinal est égal à ladite borne supérieure C.
  7. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que l'étape a) de détermination de l'ensemble L comprend les étapes suivantes : i- détermination d'un premier ensemble cohérent ST de noeuds sources de cardinal C et d'un premier ensemble T de C chemins disjoints correspondant ; ii- initialisation (505) de l'ensemble L avec ledit premier ensemble cohérent ST de noeuds sources de cardinal C ; iii- sélection dudit premier ensemble cohérent ST de noeuds sources de cardinal C et dudit premier ensemble T de C chemins disjoints correspondant ; iv- à partir de l'ensemble cohérent STSe, de noeuds sources de cardinal C sélectionné lors de l'étape iii ou vi, et de l'ensemble TSe1 de C chemins disjoints correspondant, détermination (625), s'il en existe au moins un, d'un autre ensemble cohérent ST' de noeuds sources de cardinal C et d'un autre ensemble T' de C chemins disjoints correspondant ; v- ajout (630) à l'ensemble L dudit autre ensemble cohérent ST' de noeuds sources de cardinal C ; vi- sélection dudit autre ensemble cohérent ST' de noeuds sources de cardinal C et dudit autre ensemble T' de C chemins disjoints correspondant, puis réitération (635) des étapes iv à vi.
  8. 8. Procédé selon la revendication 7, caractérisé en ce que ladite étape iv (625) comprend les étapes suivantes : sélection (1100) des noeuds sources n'appartenant pas à Tse,, formant un ensemble Sc de noeuds sources candidats initiaux à la création d'un nouveau chemin disjoint non compris dans Tse, ; à partir de chaque noeud source de l'ensemble Sc, et de manière itérative de noeud en noeud, marquage (1105 à 1160) : * avec une première valeur de marquage, de noeuds candidats à la création d'un nouveau chemin disjoint non compris dans Tse,, et * avec une deuxième valeur de marquage, de noeuds candidats à se retirer afin de supprimer un chemin disjoint compris dans Tse, ; en fonction du résultat dudit marquage, détermination (1200 à 1235) du chemin disjoint à supprimer de Tse1 et du nouveau chemin disjoint à ajouter dans Tse,, pour obtenir ledit autre ensemble T' ; détermination des noeuds sources appartenant audit autre ensemble T' et formant ledit autre ensemble cohérent ST'. Procédé selon l'une quelconque des revendications 7 et 8, caractérisé en ce que l'étape iv est réitérée, pour l'ensemble cohérent STSe, de noeuds sources de cardinal C sélectionné et l'ensemble TSe, de C chemins disjoints correspondant, sur un nouveau 20 graphe de réseau G' obtenu en ôtant (635) d'un graphe de réseau courant : - le noeud source, appelé noeud source supprimé, qui appartient à l'ensemble Tse, mais pas à l'autre ensemble T' ; - les liens dont une extrémité est ledit noeud source supprimé. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que 25 ladite étape b) comprend les étapes suivantes : - identification (700) d'un ou plusieurs groupes de noeuds sources cohérents, s'il(s) existe(nt), qui comprend(nent) au moins un noeud source parmi lesdits N noeuds sources ; - création (725) d'un ou plusieurs sous-ensemble(s) minimal(ux) de groupes de 30 noeuds sources cohérents, comprenant chacun un nombre prédéterminé (NEäComb) de groupes identifiés ; - - - -9.- sélection (730), parmi le ou les sous-ensemble(s) créé(s), d'au moins un sous-ensemble comprenant lesdits N noeuds sources. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que, pour chaque groupe de noeuds sources cohérent relativement au noeud destination, l'envoi simultané de paquets différents par les noeuds sources dudit groupe est réalisé par une transmission sur un médium partagé dudit réseau, dans un cycle (901, 907) comprenant un intervalle de temps différent (904, 910) pour chaque noeud source dudit groupe, et en ce que chaque séquence de transmission (900) comprend un cycle différent (901, 907) pour chaque groupe compris dans ladite séquence de transmission. 12. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que, pour chaque groupe de noeuds sources cohérent relativement au noeud destination, l'envoi simultané de paquets différents par les noeuds sources dudit groupe est réalisé par une transmission sur différents média dudit réseau, avec un médium différent pour chaque noeud source, dans un intervalle de temps commun (1302, 1304) à tous les noeuds sources dudit groupe, et en ce que chaque séquence de transmission (1300) comprend un intervalle de temps différent (1302, 1304) pour chaque groupe compris dans ladite séquence de transmission. 13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 12, lorsque ledit programme est exécuté sur un ordinateur. 14. Moyen de stockage lisible par ordinateur, éventuellement totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 12. 15. Dispositif (200) de gestion de ressources pour la transmission de paquets de données depuis N noeuds sources vers un noeud destination, dans un réseau decommunication maillé comprenant M noeuds sources, ledit dispositif étant caractérisé en ce qu'il comprend : - des moyens de détermination d'un ensemble L de groupes de noeuds sources cohérents relativement au noeud destination, un groupe de noeuds sources cohérent relativement au noeud destination étant un groupe dont tous les noeuds sources peuvent envoyer simultanément, via des noeuds relais, un paquet, différent pour chaque noeud source, au noeud destination ; - des moyens de détermination d'au moins un sous-ensemble minimal de groupes de noeuds sources cohérents, comprenant lesdits N noeuds sources ; - des moyens de détermination, pour un sous-ensemble minimal déterminé, d'une séquence de transmission (900 ; 1300) comprenant les groupes de noeuds sources cohérents compris dans ledit sous-ensemble minimal déterminé, ladite séquence de transmission déterminée permettant ladite transmission de paquets de données depuis lesdits N noeuds sources vers ledit noeud destination.15
FR0854785A 2008-07-11 2008-07-11 Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants. Expired - Fee Related FR2933839B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0854785A FR2933839B1 (fr) 2008-07-11 2008-07-11 Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0854785A FR2933839B1 (fr) 2008-07-11 2008-07-11 Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants.

Publications (2)

Publication Number Publication Date
FR2933839A1 true FR2933839A1 (fr) 2010-01-15
FR2933839B1 FR2933839B1 (fr) 2010-08-20

Family

ID=40342976

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0854785A Expired - Fee Related FR2933839B1 (fr) 2008-07-11 2008-07-11 Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d'ordinateur et moyen de stockage correspondants.

Country Status (1)

Country Link
FR (1) FR2933839B1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010675A1 (en) * 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010675A1 (en) * 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIH-CHUN WANG ET AL: "On wireless network scheduling with intersession network coding", INFORMATION SCIENCES AND SYSTEMS, 2008. CISS 2008. 42ND ANNUAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 19 March 2008 (2008-03-19), pages 30 - 35, XP031282834, ISBN: 978-1-4244-2246-3 *
YOMO H ET AL: "Opportunistic Scheduling for Wireless Network Coding", COMMUNICATIONS, 2007. ICC '07. IEEE INTERNATIONAL CONFERENCE ON, IEEE, PI, 1 June 2007 (2007-06-01), pages 5610 - 5615, XP031126563, ISBN: 978-1-4244-0353-0 *

Also Published As

Publication number Publication date
FR2933839B1 (fr) 2010-08-20

Similar Documents

Publication Publication Date Title
FR2702859A1 (fr) Dispositif de recherche d&#39;un plus court chemin dans un réseau.
FR2973981A1 (fr) Procede pour optimiser les capacites d&#34;un reseau de telecommunication de type ad-hoc
CA2819848A1 (fr) Train et procede de determination de la composition d&#39;un tel train en securite
FR2878674A1 (fr) Procede et systeme d&#39;adaptation dynamique de metrique de qualite de service dans un reseau ad hoc
WO2009007658A2 (fr) Procede de determination d &#39; un group de pairs situes dans le voisinage d &#39; un autre pair, et serveur, dispositifs d &#39; analyse associes
EP2800319B1 (fr) Noeud, réseau maillé de communication et procédé de reconfiguration du routage
EP2008410B1 (fr) Procede d&#39;identification d&#39;au moins une route satisfaisant au moins une contrainte entre un noeud source et un noeud destinataire dans un reseau de telecommunications
FR2933839A1 (fr) Procede et dispositif de gestion de ressources pour la transmission de paquets de donnees depuis n noeuds sources vers un noeud destination, produit programme d&#39;ordinateur et moyen de stockage correspondants.
FR2932630A1 (fr) Procede et dispositif de construction d&#39;un codage reseau pour la transmission de paquets de donnees, produit programme d&#39;ordinateur et moyen de stockage et support d&#39;enregistrement correspondants
EP3675435A1 (fr) Procédé de routage dynamique dans un réseau d&#39;objets connectés
EP3545631B1 (fr) Détermination de noeuds relais régénérateurs compris dans une ligne de transmission d&#39;un réseau optique
WO2009047440A2 (fr) Selection de canaux et routage dans un reseau ad hoc en fonction de l&#39;alternance des canaux
FR3095914A1 (fr) Procédé de routage dynamique dans un réseau d’objets connectés
WO2012131280A1 (fr) Communication de données dans un réseau de capteurs
EP2746977B1 (fr) Procédé de génération d&#39;une version d&#39;un modele de supervision d&#39;un système d&#39;information
EP3471346B1 (fr) Procede de generation de requetes pour la segmentation de la surveillance d&#39;un reseau d&#39;interconnexion et materiel associe
FR2923971A1 (fr) Determination des coordonnees d&#39;un noeud dans un reseau de noeuds.
EP3046368B1 (fr) Procede de collecte d&#39;informations de routage dans un reseau ad-hoc et procede de selection de route a partir des informations collectees
FR3139964A1 (fr) Procédé de gestion d’un réseau de communication, réseau de communication et entité associés
FR3126576A1 (fr) Procédé de détermination d’une topologie d’interconnexion entre commutateurs d’un réseau de communication, produit programme d’ordinateur et dispositif correspondants.
FR3095917A1 (fr) Procédé de routage dynamique dans des réseaux interconnectés d’objets connectés
FR3105680A1 (fr) Procédé et dispositif de routage de flux de données
FR3059184A1 (fr) Procede de routage d&#39;au moins un flux de donnees dans un reseau de communication sans fil
WO2024079309A1 (fr) Procédé de retransmission coopérative dans un système omamrc avec allocation de ressources et sélections des sources à aider conjointes
FR3135850A1 (fr) Procédé pour détecter des anomalies de routage entre systèmes autonomes

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140331