FR 2897229 A1 20070810 FR 0601078 A 20060207 PROCEDE DISTRIBUE D'ALLOCATION DYNAMIQUE DE RESSOURCES TEMPS FREQUENCE La présente invention concerne notamment un procédé et un sys-5 tème d'allocation dynamique de ressources temps fréquence dans un réseau radio et aussi dans des réseaux ad-hoc. Elle peut s'appliquer dans des systèmes à accès multiple spatial et temporel de type STDMA (Spatial Time Division Multiple Access). La figure 1 représente un ensemble de stations Si interconnectées io par un réseau radio où les ressources sont organisées en créneaux temps/fréquence comme représenté à la figure 2. Sur un créneau temporel donné et une fréquence donnée, certaines des stations vont transmettre vers certaines de leurs voisines destinatrices. Pour un cycle donné, on alloue un canal logique C pour un créneau temporel K. 15 Le problème posé est d'allouer de façon distribuée, les créneaux et les fréquences à des stations émettrices (et à un sous ensemble de leurs voisines dit destinatrices) en utilisant au mieux les ressources disponibles, c'est-à-dire en permettant à un maximum d'émetteurs d'utiliser un même créneau tout en respectant les règles suivantes : 20 • Une station est soit émettrice, soit réceptrice, • Si la station est émettrice, alors les destinataires sont récepteurs sur le créneau et la fréquence de l'émetteur, et une station ne peut être réceptrice que pour un seul canal et un seul émetteur, • Si une station est réceptrice d'un émetteur sur un canal, il n'y a pas 25 d'autres stations voisines de cette station, qui soit émettrice sur le même canal, autre que l'émetteur écouté. Il est également connu d'utiliser une orthogonalisation des transmissions sur un créneau en utilisant d'autres types de transmission que la transmission sur une fréquence donnée, par exemple, des sauts de fréquences orthogonalisées, des codes CDMA (Code Division Multiple Access). L'organisation en créneaux des transmissions demande une fonction de synchronisation que l'on suppose exister, par exemple, le système GPS ou tout autre système de distribution horaire. Différentes solutions sont actuellement proposées pour le problème d'allocation dans la littérature ou dans des systèmes existants. io La situation à allocation la plus classique est celle où l'attribution des allocations temps-fréquence est faite par une station centrale; la topologie du réseau n'est pas nécessairement en étoile. Cette station centrale gère les attributions, au travers des demandes et des priorités des caractéristiques des stations. 15 Cette solution est adoptée (partiellement ou totalement) par une majorité des protocoles civils utilisant des accès de type à accès multiple temporel ou TDMA (abrégé anglo-saxon de time division multiple access 802.16, 802.11 en mode dirigé ...). Pour des raisons de réactivité et de robustesse, elle ne peut être envisagée pour des réseaux multibonds 20 d'étendue un peu importante. Dans les familles de solutions pour réseau Ad Hoc, on trouve différentes méthodes pouvant s'adapter plus ou moins à la topologie et au besoin en trafic. Les systèmes les plus simples ont une allocation de premier ni- 25 veau prédéfinie et attribuée à des groupes de stations en fonction des carac- téristiques prévisibles de besoin et de déploiement. Une fois cette allocation attribuée, il existe des règles pour utiliser cette allocation dans le groupe, règles qui peuvent accepter les collisions ou disposer de signalisation pour régler les conflits. Pour résoudre les situations dans les réseaux à nombre de bonds important, de nombreuses solutions décentralisées ont été proposées, dont 5 certaines seulement sont mentionnées ci-après. Une première famille organise la transmission en une phase de réservation, qui peut être à contention, suivi d'une phase de transmission. Le cycle réservation transmission se répète, cycliquement. Une autre famille de solutions, consiste à échanger de la signalisation sur une ressource particulière dite canal de signalisation pré allouée ou allouée dynamiquement. Cette signalisation permet de connaître les ressources utilisées par une station et donc, de détecter les conflits, de vérifier si une ressource est allouable, sans souvent indiquer comment arbitrer ces conflits ni comment attribuer les allocations (sauf partiellement ou dans le is cadre d'une pré allocation). Une autre famille de solutions permet de garantir, l'absence de conflit sans pour autant déterminer une allocation aux stations. Elle est basée sur une signalisation qui permet à une station d'identifier, quelles stations sont en conflit (ceci dépendant du type de transmissions envisagé, 20 point à point (une station vers une voisine ou link activation), diffusion ou broadcast (une station vers toutes ses voisines ou node activation). Un procédé pseudo aléatoire permet alors, pour un créneau donné à une station, de savoir si elle gagne le droit d'utiliser le créneau vis à vis des stations en compétition. La procédure garantit l'absence de conflit, mais ne donne 25 pas aux stations une connaissance déterministe des créneaux qu'elle peut utiliser. De plus, en un sens elle est sous optimale, certains créneaux pouvant ne pas être utilisés, du fait du caractère multibonds du réseau et de contraintes différentes entre stations. Cette procédure est utilisée dans la norme 802.16 et dans les protocoles HAMA, LAMA NAMA de Lichun Bao et 30 J.J. Garcia-Luna-Aceves décrits dans les publications Channel Access Scheduling for Ad-Hoc Networks" Journal of Parallel and Distributed Computing, Special Issue on Wireless and Mobile Ad Hoc Networking and Computing, 2002 et Distributed Channel Access Scheduling for Ad Hoc Networks ou encore dans la demande de brevet US 2002/0167960 . Une autre famille de solutions opère sur une structure préalable du réseau en deux niveaux. Par exemple, il existe une procédure distribuée pour structurer le réseau en groupe ou clusters . Ces clusters reçoivent une allocation famille (de créneaux) et cette allocation est gérée dynamiquement dans ce cluster (on est ramené à une gestion de type station centrale) et se ramènent à une allocation centralisée. Pour l'allocation des clusters on utilise des règles générales, par exemple, attribuer une fréquence (un canal, un code CDMA) à un cluster de façon à ce que des clusters interférents aient des fréquences différentes. (Par exemple M Gerla and C.R Lin ln IEEE Commun. Sept 97 Adaptative clustering for mobile Wireless 15 networks ). Une telle solution a cependant quelques limites. D'abord, il faut pré-structurer les allocations en groupes indépendants pour pouvoir allouer les clusters (ici un groupe est l'ensemble des allocations sur une fréquence, mais lorsqu'il y a peu de fréquences, il faut utiliser le partage temporel). Or le nombre de groupes nécessaires dépend de la topologie. Il y a là 20 une difficulté. De plus, les besoins entre les clusters ne sont pas forcé-ment équivalents. La pré-allocation par groupe peut conduire à des insuffisances dans un groupe, et un manque dans d'autres. Enfin, en cas de modification de la clusterisation , c'est l'ensemble des allocations qui sont impactées, et demande alors une réallocation. 25 La dernière famille d'allocation citée, est l'allocation SDTMA de J. Grdnkvist Distributed STDMA in Ad hoc network et Interference-Based Scheduling in Spatial Reuse TDMA J. Grônkvist Doctoral Thesis Stockholm, Sweden 2005. Dans cette thèse, l'auteur décrit une méthode décentralisée pour allouer des noeuds ou des liens, par négociation et arbitrage des 30 conflits entre les stations. L'arbitrage tient compte du trafic par une fonction de priorité. Par ailleurs, les conditions de brouillage entre émetteurs et récepteurs visent à prendre en compte un modèle d'interférence plus détaillé que le voisinage simple utilisé dans l'invention décrite ci-après, connu de l'Homme du métier. s L'invention concerne un procédé distribué pour attribuer de manière dynamique des ressources temps fréquence dans un réseau comprenant plusieurs stations, les stations étant organisées en groupes (ou inter-face) de plusieurs stations, chaque groupe comprenant une table d'allocation Tsi, chaque groupe échange au moyen d'un protocole de signalisation cette to table d'allocation avec les groupes qui sont définis comme étant en conflit avec lui par un graphe de contraintes, le procédé utilisant une fonction d'arbitrage pour régler les conflits et les attributions des allocations entre les groupes en conflit selon le graphe de contrainte, et est caractérisé en ce qu'il comporte au moins les étapes suivantes : 15 chaque interface Ji émet vers les interfaces K indiquées en conflit dans le graphe de contrainte, le tableau d'allocations TJi qui lui est associé, - une interface Ji regarde pour chaque allocation AJi qu'elle a inscrite dans son tableau TJi si l'allocation AJi est utilisée dans la table reçue d'une inter-face K qui est en conflit, 20 -l'interface Ji utilise la fonction d'arbitrage pour modifier l'allocation AJi dans le tableau TJi. Le groupe de stations peut former un ensemble radio électrique-ment connexe et le graphe de contrainte est déterminé par le voisinage radio électrique des stations de chaque groupe et des caractéristiques de trans25 mission potentielle associés aux stations des groupes. Si une allocation est utilisée selon les tables d'allocation par une interface K et une interface J, et si J constate que l'interface K est gagnante selon la fonction d'arbitrage, en supprimant dans les deux tables l'allocation, et si le conflit est de première espèce, alors J supprime, par exemple, l'allocation Aji dans le tableau d'allocations de l'interface J. Si une allocation est utilisée selon les tables d'allocation par une interface K et une interface J, et si J constate que l'interface K est gagnante selon la fonction d'arbitrage, en supprimant dans les deux tables l'allocation et si le conflit est de seconde espèce, alors on conserve l'allocation temporelle AJi dans le tableau TJi et l'on change de canal de transmission, s'il existe un canal ou cette allocation est sans conflit de seconde espèce. L'interface J examine, par exemple, s'il existe des allocations libres Ai non annoncées par les interfaces en conflit et elle s'attribue ses allocations. Si une interface J détermine une allocation An qu'elle n'utilise pas et que J évalue selon la fonction d'arbitrage qu'elle est gagnante vis à vis de toute interface en conflit utilisant cette allocation (en ajoutant l'interface dans 15 sa table et en la supprimant dans les tables des interfaces en conflit), la nouvelle interface s'attribue l'allocation An. On peut utiliser une famille d'allocations comprenant les étapes suivantes si l'interface J s'attribue, récupère, ou supprime une allocation, elle cherche avant d'examiner d'autres allocations à s'attribuer, à récupérer, 20 ou à supprimer les allocations K+n*DNSj où NDSj est un paramètre de l'interface J. On utilise, par exemple, une fonction d'arbitrage définie de la manière suivante : une interface étant caractérisée par une demande de type C1j, C2j, Cmj, où Cmj représente un nombre d'allocation demandée par 25 l'interface J avec la priorité m (les priorités les plus fortes étant d'indice le plus faible),on pose SL, j= E:_iCi, jet Lmax la plus petite des priorités considérées, avec L l'indice correspondant à la priorité et J gagne sur K, NJ étant le nombre d'allocations de J et NK le nombre d'allocations de K si : 5 - Soit on a Sl,j 1 ou NK > Slmax,k - Soit on a (Sl,j Slmax,k et NJ > Slmax,j) et (NJ-Sl,j)/CI+1,j La solution proposée permet de disposer d'une allocation dynamique des groupes, et de réaliser ainsi une allocation à deux niveaux. La séparation d'une technique d'allocation en deux niveaux permet d'avoir une réactivité plus grande, l'allocation à l'intérieur d'un groupe pouvant être centrali-sée et s'appuyer sur des techniques classiques. Ce procédé peut être avantageusement exploité dans des équipements radio pour constituer des systèmes de communications en réseau qui ne nécessitent pas (cas ad hoc) ou qui minimisent les actions de préallocation/configuration pour attribuer les ressources. io D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description donnée à titre illustratif et nullement limitatif annexé des figures qui représentent ce n'est qu'une phrase pour dire que la description est donnée pour illustrer l'invention, sans la limiter : 15 • La figure 1 un ensemble de stations interconnectées par un réseau radio ou réseau Ad Hoc, • La figure 2 un schéma symbolique des ressources temps fréquences, • La figure 3 un exemple de structure d'un canal de transmission comprenant des créneaux réservés à la transmission et des créneaux al-20 louables aux interfaces, • La figure 4 un réseau structuré en interfaces dont deux clusters et un lien bidirectif, • La figure 5 une allocation valide pour le réseau et les interfaces de la figure, et 25 • La figure 6 une fonction d'arbitrage possible pour permettre la conver- gence du procédé selon l'invention. Le procédé selon l'invention a notamment pour fonction d'allouer des ressources temps fréquence entre plusieurs stations d'un réseau Ad Hoc mobile, multibonds, de façon décentralisée, en proposant une méthode pour régler les conflits évoqués précédemment de façon distribuée. Par distribuée on entend le fait, qu'il n'existe pas, en fonctionnement normal, de station prédéfinie chargée de cette allocation, et que les allocations et le règlement des conflits doit se faire localement. Par ailleurs, les ressources des systèmes considérés sont limitées et il est probable qu'en cas de charge du ré-seau de nombreuses demandes d'allocations contradictoires sont à arbitrer. io La solution proposée permet l'allocation de ressources temps/fréquence aux stations Si d'un réseau Ad Hoc mobile tel que schématisé à la figure 1. Le temps est supposé divisé en intervalles, et suppose une synchronisation du réseau par une méthode quelconque de type GPS (an anglo- is saxon Global Positionning System) ou autre, la synchronisation pouvant être aussi assurée par signalisation interne au réseau. Par ailleurs, on dispose de plusieurs fréquences (canaux). Une station donnée peut émettre ou recevoir sur un de ces créneaux de temps, mais l'émission et la réception ne peuvent se faire simulta- 20 nément. Dans sa transmission ou sa réception sur un créneau donné, la station utilise un et un seul canal, ce canal pouvant être une fréquence, une séquence à évasion de fréquence EVF, un code à accès multiple CDMA (Code Division Multiple Acess) ou d'autres techniques d'orthogonalisation des transmissions. 25 Il est supposé que l'émission d'un émetteur hors de portée d'une station A (qualité de liens insuffisante) ne peut être reçue par A, mais de plus, ne peut pas brouiller une réception de cette station A (émission d'un autre émetteur en portée). io Le procédé selon l'invention s'inscrit dans une architecture qui suppose l'existence préalable de différentes fonctions dont une fonction de définition des groupes de stations appelés par la suite interfaces, dont certains exemples sont donnés, à titre non limitatif, dans la suite de la descrip- tion. L'un des objectifs du procédé est d'allouer ces interfaces compte tenu des contraintes. Une fois ces interfaces allouées, le procédé peut mettre en oeuvre un second niveau d'allocation, dépendant, de la nature de l'interface, par exemple un cluster ou un lien non orienté, qui détermine to pour les allocations attribuées à l'interface qui l'utilise. L'allocation interne est connue de l'Homme du métier. La nature de l'interface à prendre en compte est décrite par la connaissance des stations participant à l'interface, si elles sont toujours émettrices ou toujours réceptrices, ou tantôt l'un ou l'autre. La fonction in- 15 terne d'allocation n'a pas à être pris en compte, ce qui signifie que l'allocation aux groupes devra être valide quelle que soit l'allocation interne faite pour un créneau donné. Le procédé suppose l'existence d'une capacité de signalisation entre stations voisines, de façon à que les allocations d'une interface soient 20 connues des interfaces en conflit potentiel (la notion de conflit est explicitée ci-après). La façon d'attribuer des ressources à cette signalisation est supposée préexister et exempte de conflit. Ce peut être une pré-allocation ou une allocation dynamique d'une partie de la capacité destinée à la signalisation telle que schématisée à la figure 3. 25 II est cependant nécessaire de savoir propager la signalisation vers les stations des interfaces concernées. A titre d'illustration mais de façon non exclusive, une méthode est décrite, dans le cas où la signalisation est de type diffusion ou broadcast , et les interfaces constituées par une station et certaines de ses voisines (voire toutes). Notion d'interface et graphe de contraintes Une interface dispose d'un mécanisme interne permettant aux stations de communiquer entre elles pourvu qu'un ensemble de créneaux temps/canal ait été attribué à cette interface. L'un des objectifs de la solution proposée est d'attribuer ces créneaux temps/canal à ces interfaces de façon à ce qu'il y ait absence de contention entre les transmissions d'interfaces différentes. Bien que l'on puisse appliquer la solution à des interfaces de nature quelconque, l'exemple donné utilise des interfaces ayant une station dite lo centrale et des stations dites subordonnées, voisines au sens radioélectrique de la station centrale. Parmi ce type d'interface on trouve, donné à titre nullement limita-tif, par exemple : - Un lien orienté (A vers B), A étant la station centrale, 15 - Un lien non orienté (A B), la station centrale étant par convention celle de plus grande adresse, - Une station et une partie de ses voisines, voire la totalité. Pour caractériser les émissions de l'interface, on définit quelles stations peuvent être émettrices et lesquelles sont réceptrices. 20 Bien que l'on puisse, a priori, envisager différentes situations, sur un plan pratique on se limitera à un comportement identique des stations subordonnées. On aura par exemple les deux configurations suivantes : - Station centrale émettrice, stations subordonnées réceptrices, - Station centrale émettrice et réceptrice et stations subordonnées émettrices 25 et réceptrices. Les contraintes sont alors celles du modèle adopté du réseau Ad Hoc: - Deux interfaces ayant des stations communes ne peuvent recevoir des créneaux temporels identiques quel que soit le canal utilisé. On dira que deux telles interfaces sont en conflit de première espèce. - Deux interfaces qui ne sont pas en conflit de première espèce et qui ont pour l'une une station potentiellement émettrice voisine radio électrique d'une station potentiellement réceptrice dans l'autre interface sont dites en conflit de seconde espèce. Dans ce cas elles ne peuvent avoir des créneaux identiques que si elles utilisent des canaux différents sur ces créneaux. On représente ces contraintes par un graphe tracé à la figure 4 io dont les sommets correspondant aux interfaces et, les arêtes en trait plein, correspondent à un conflit de première espèce et les arêtes en pointillé à un conflit de seconde espèce. Ce graphe est obtenu, par exemple, par la connaissance des stations de l'interface, des caractéristiques de transmission de ces interfaces et 15 du voisinage des stations. Les possibilités d'allocation ne dépendent que de ce graphe et non de la nature des interfaces. Pour obtenir cette connaissance, on peut utiliser le schéma suivant : chaque station annonce à ses voisines sur le canal de signalisation : - Les interfaces auxquelles elle appartient, chaque interface est annoncée 20 avec son type et la nature de la station annonçant : subordonnée, ou centrale, - Les interfaces auxquelles appartiennent les voisines, - La nature du voisinage de l'interface, c'est à dire si une station k a des stations voisines qui annoncent une interface B à laquelle elles appartiennent, 25 (et à laquelle k n'appartient pas), k annonce si elle a un voisinage de type subordonné (une voisine au moins est subordonnée dans B), centrale (une voisine est station centrale), ou les deux. Ce premier niveau de signalisation déclaratif, peut être réalisé de différentes façons. Il permet à chaque station centrale de construire le gra- phe de contrainte. En effet, pour une station centrale donnée, les conflits de première espèce, sont déterminés par les annonces des stations subordonnées et des interfaces auxquelles elles participent, et les conflits de secondes espèce par les annonces des interfaces voisines des stations subor- données. Allocation physique et allocation logique. Fonction d'arbitrage L'un des objectifs du procédé selon l'invention consiste à attribuer de façon décentralisée, à chaque interface, des créneaux et des canaux sur ces créneaux, de façon à obtenir une solution sans conflit telle que schématisée à la figure 5. Cette attribution est représentée logiquement comme un tableau de NSLOT colonnes pour un cycle par C lignes (cf. figure 2). Chaque colonne représente un créneau logique temporel et chaque ligne un canal. Une allocation pour une interface sera représentée par une valeur 1 dans la colonne du créneau et la ligne du canal, et sinon une valeur 0. 1s Ces allocations sont ensuite mises en correspondance avec la totalité ou une partie des créneaux physique (par exemple, on supprime les slots de signalisation dans cette correspondance). Si on change l'organisation de la trame physique, l'attribution reste valable, en modifiant la correspondance, sous réserve que chaque station effectue la même opéra- 20 tion. La représentation en NSLOT des créneaux suppose que la trame logique se répète tous les NSLOT. Dans l'exemple donné on suppose que NSLOT et C sont les mêmes pour chaque interface Les attributions entre interfaces étant dynamiques, il va arriver 25 dans le processus de définition des interfaces ou par suite des changements de voisinages que des conflits surviennent, c'est à dire que des allocations soient faites qui ne respectent pas le graphe de contraintes. Il faut donc arbi- trer pour décider laquelle des interfaces conserve ou abandonne l'allocation. De même, une attribution étant faite, une nouvelle interface étant créée elle va devoir vraisemblablement récupérer des allocations sur des interfaces en conflit. De façon à ce que ces différents mécanismes puissent être mis en jeu et conduisent à une solution stable, une fonction d'arbitrage est intro- duite. Cette fonction d'arbitrage permet aussi, si nécessaire, de favoriser l'allocation sur certaines interfaces, par exemple, en fonction du besoin de cette interface. Cette fonction d'arbitrage peut prendre des formes très différentes selon l'objectif que l'on cherche à atteindre. Cependant elle doit respecter les 10 règles suivantes : La fonction d'arbitrage permet notamment à une interface A de décider si elle gagne, perd ou est à égalité avec une interface B uniquement à partir du nombre d'allocations de l'interface A et du nombre d'allocations de l'interface B. Ceci signifie que les allocations sont indiscernables entre elles. 15 Si l'interface A gagne par rapport à B et B par rapport à c alors A gagne par rapport à C. Si A gagne ou est égal par rapport à B, alors A gagne si on augmente le nombre d'allocation de B et ou si on diminue les allocations de A. A titre d'exemple non limitatif, le procédé utilise la fonction 20 d'arbitrage suivante : Une interface est caractérisée par une demande de type C1 j, C2j, Cmj, où Cmj représente un nombre d'allocation demandée par l'interface J avec la priorité m (les priorités les plus fortes étant d'indice le plus faible). On pose SL, j = j et Lmax la plus petite des priorités considérées. La lettre L 25 correspond à la priorité. On considère à titre d'exemple la fonction d'arbitrage suivante : J gagne sur K, NJ étant le nombre d'allocations de J et NK le nombre d'allocations de K si : Soit on a Sl,j 1 ou NK > Slmax,k Soit on a (Sl,j Slmax,k et NJ > Slmax,j) et (NJ-Sl,j)/CI+1 J Si on a (NJ-Sl,j)/CI+1,j =(NK-Sl,k)/CI+1,k il y a égalité. Cette fonction d'arbitrage est représentée en figure 6. On obtient des fonctions d'arbitrage valides par exemple en rem-plaçant dans tout ou partie des domaines (Sl,j Slmax,k et NJ > Slmax,j), (NJ-Sl,j)/CI+1,j face modifie alors sa table d'allocation et la ré-émet lorsqu'elle a reçu les tables d'allocations des interfaces en conflit ou sur time out Pratiquement, ces tables d'allocations seront transmises sur le canal de signalisation par la station centrale et relayée par une méthode comme celle décrite par la suite vers les autres stations centrales des interfaces en conflit. Ce point permet de considérer la solution commelocale, les échanges se faisant dans le voisinage de chaque station centrale. Allocation par interface Une interface au vu des messages d'allocation reçus, va modifier lo ses allocations et ré-émettre les nouvelles allocations qu'elle s'attribue. Ces échanges successifs convergent en général vers une solution. Cette convergence est assurée par la fonction d'arbitrage et la façon de supprimer les conflits et de récupérer les allocations d'une interface à l'autre, c'est-à-dire les phases 1 et 3 de l'algorithme d'attribution. 15 Pour modifier ses allocations avant retransmission de sa table d'allocation, une interface J va localement dérouler un algorithme pouvant mettre en oeuvre une ou plusieurs des trois phases décrites ci-après : à sa-voir les mécanismes de règlement des conflits, d'ajout et de récupération des allocations entre interfaces. 20 Phase 1 : Elimination des allocations en conflit. Cette phase est caractérisée par une décision basée sur la fonction d'arbitrage. Pour cela, une interface J regarde, pour chaque allocation qu'elle a inscrite dans sa table, si l'allocation est utilisée dans la table reçue d'une autre interface K qui est en conflit avec elle. En utilisant une fonction 25 d'arbitrage, l'interface J décide de modifier ou de supprimer l'allocation, de sa table, si elle est utilisée par une interface gagnante. L'élimination se poursuit tant qu'il existe des allocations en conflit avec des interfaces K que la fonction d'arbitrage donne gagnantes (La fonction d'arbitrage est dépendante du nombre d'allocations, on l'évalue en supprimant l'allocation en conflit dans les deux interfaces). En cas d'égalité on utilise pour cette phase, l'adresse de station comme arbitrage complémentaire. Si l'interface K gagnante est en conflit de première espèce, on supprime l'allocation dans J. Si le conflit est de seconde espèce, au lieu de la suppression précédente, on peut essayer de garder l'allocation et changer le canal, s'il existe un canal ci , supprimant tout conflit sur cette allocation temporelle, ou ne présentant des conflits qu'avec des interfaces perdantes. Si ce canal n'existe pas on supprime l'allocation. La table d'allocation de J est ainsi modifiée localement et c'est cette table qui est utilisée dans les étapes successives de l'algorithme. Comme la fonction d'arbitrage tend à donner J gagnant quand on supprime des allocations, il y a une limitation au nombre de suppressions par J. Les phases 2 et 3 suivantes peuvent ne pas être déroulées en cas de suppres-sion. Phase 2 : Attribution d'allocations libres. L'interface J examine s'il existe des allocations libres, c'est à dire des créneaux et des canaux non annoncés par les interfaces K en conflit. L'interface J s'attribue alors ces allocations. Dans cette phase 2, la fonction d'arbitrage n'intervient pas. En effet, une interface en conflit gagnante peut ne pas pouvoir s'attribuer ces allocations, qui resteraient alors non utilisées. Il est important de pouvoir al-louer toutes les allocations pour limiter les blocages. Pour limiter l'attribution simultanée d'allocations identiques par des interfaces en conflit, ce qui ralentirait le temps de convergence, on peut utiliser un paramètre de configuration pour restreindre le nombre d'allocations attribuées dans cette phase de l'algorithme, en limitant le nombre d'itérations de cette phase. Dans ce cas, le déroulement de la phase 3 n'est pas nécessaire, si la phase 2 a attribué le nombre d'allocations autorisé. Phase 3 : Phase de récupération. Une interface nouvellement créée va trouver toutes les allocations déjà attribuées. Il faut donc pouvoir les récupérer, ceci sous contrôle de la fonction d'arbitrage. Cette phase est complémentaire de la phase 1, et la cohérence de ces deux phases permet la convergence. En effet, des allocations récupérées sont naturellement en conflit. La cohérence dans l'emploi de la fonction d'arbitrage entre les phases 1 et 3, conduit à ce que (du moins s'il n'y a pas d'autres changements dans les allocations), une station ayant décidé de récupérer une allocation en fonction des règles de la phase 3 et donc de se l'attribuer, la station qui avait l'allocation soit conduite à la supprimer de sa table en fonction des règles de la phase 1. Si une interface ne possédant pas une allocation, est gagnante ou est à égalité par la fonction d'arbitrage, vis à vis de toutes les autres interfaces en conflit possédant cette allocation 15 (la fonction d'arbitrage étant évaluée en ajoutant l'allocation dans l'interface et en la supprimant dans les interfaces en conflit), elle s'attribue cette allocation, créant ainsi un conflit qui sera résolu lorsque les autres interfaces vont dérouler la phase 1. Pour être plus précis, on devra vérifier la condition d'arbitrage pour toutes les interfaces en conflit de première espèce. Pour les 20 conflits de seconde espèce, on vérifie qu'il existe un canal ci, où les interfaces qui utilisent l'allocation temporelle et ce canal, sont perdantes au vu de la fonction d'arbitrage. Une politique plus stricte est d'interdire la récupération, si une interface en conflit de seconde espèce, utilise ce créneau et ce canal, ceci de façon indépendante de la fonction d'arbitrage. 25 Comme pour la phase 2, un paramètre peut être utilisé pour limiter le nombre d'itérations lors de cette phase de l'algorithme et pour accélérer la convergence. Dans cette phase, une allocation récupérée, est inscrite dans la table de J. Elle est supprimée provisoirement des tables des autres inter-faces en conflit sur cette allocation. Ceci conduit à rendre gagnante pour la 30 fonction d'arbitrage les interfaces où les allocations sont potentiellement ia supprimées et perdantes l'interface J, limitant ainsi naturellement le nombre de récupérations. Utilisation d'une notion de famille d'allocation dans les phases précédentes. Selon un mode de réalisation, il est possible d'intégrer un mécanisme optionnel qui permet dans les phases 1, 2 ou 3, une suppression, un ajout ou une récupération décidés, de tenter de supprimer, d'ajouter, ou de récupérer une famille d'allocation liée à cette allocation. Ce mécanisme per-met d'accélérer les convergences en agissant par ce biais sur plusieurs allocations. Pour cela, chaque interface J examine les allocations de sa table (à partir d'une allocation de départ qui lui est propre (par configuration ou déterminé aléatoirement mais fixé). Si l'interface J s'attribue / ou récupère une allocation K, elle va 1s chercher immédiatement avant d'examiner d'autres allocations, à s'attribuer I ou à récupérer les allocations K+n* DNSj, ou DNSj est un paramètre propre à la station J (pouvant être fixé par configuration, ou dynamiquement défini comme indiqué par la suite dans un exemple de solution détaillée). (Si J décide une action sur l'allocation A elle va essayer la même action sur A + 20 DNSj, s'attribuant ainsi les allocations par famille répartie, par exemple si l'interface s'attribue l'allocation 1 et si DNSj =4, l'interface regarde prioritai- rement si elle peut s'attribuer l'allocation 5,9,13 avant de regarder l'allocation 2). Pour chacune de ces allocations potentielles, on vérifie les critères de la phase 2 ou 3. 25 Le but est de traiter plusieurs créneaux temporels et d'avoir à traiter non pas NSLOT allocations une par une, mais DNSj, ce qui permet une diminution significative des temps de convergence. Pour des raisons de cohérence ce mécanisme intervient également en phase 1, où l'on va supprimer si nécessaire les conflits sur les allocations K+n*DNSJ si la suppression de K a été décidée. On tient compte normalement pour ces suppressions de la fonction d'arbitrage. Cependant, pour accélérer la convergence quand le pourcentage d'allocation en conflit est élevé, on peut ne pas tenir compte de la fonction d'arbitrage pour ces allocations, ce qui peut conduire à plus de suppressions que nécessaire, mais récupérées par la suite. Exemple de mise en oeuvre de l'algorithme d'attribution Ce paragraphe décrit de façon détaillée une mise en oeuvre possible des étapes et phases détaillées précédemment. Les données d'entrée sont NSLOT (nombre de créneaux temporels à allouer), C (nombre de canaux), les différentes tables d'allocation (TK pour l'interface K). L'algorithme est déroulé par chaque interface Ji pour modifier sa table après réception des tables des interfaces Tji en conflit définies par le graphe de contraintes. 15 A l'interface JO sont associés le paramètre DNSJO qui détermine un pseudo cycle d'examen des allocations (famille d'allocation), et le para-mètre INDJO. Ce dernier paramètre détermine la première allocation examinée dans l'algorithme pour JO. Ces deux paramètres ( différents ou non d'une interface à l'autre) peuvent être fixés par configuration pour un système donné ( par exemple DNSJO=NSLOT/10, INDJO =1). On peut aussi choisir dynamiquement par exemple si NCONF= 1+ nombre d'interface en conflit de première espèce avec JO, DNSJO = NCONF (si DNSJO> NSLOT/10) et INDJO= aléatoire entre 1 et NCONF (mais fixé tant que NCONF ne change pas). Ces valeurs sont données à titre indicatif mais ne 25 sont pas très critiques. Un autre paramètre contrôle l'algorithme Valeur et limite le nombre d'itérations des phases 2 et 3. Par défaut Valeur=1 On note F(JO)> F(K) si l'interface JO gagne sur l'interface K par la fonction d'arbitrage et F(JO)= F(K) si égalité. JO et K sont des nombres identifiant les interfaces, et différents d'une inter-face à l'autre. L'algorithme est déroulé pour JO, avant transmission de sa table d'allocations TJO. On note s,ci une allocation sur le créneau temporel s et le canal ci . Phase 1 Conflit de première espèce : s= INDJO, première allocation temporelle examinée A- Pour chaque interface K en conflit de première espèce avec JO Si s appartient à JO et s appartient à K avec F(K)> F(JO) ou F(K)=F(JO) et K>J0 (F étant évalué en supprimant une allocation dans JO et K) alors Supprimer s de la table de JO. Faire s= s+1 et retourner en A si on n'a pas parcouru toutes les allocations. Remarque : La table TJO utilisée à chaque itération de A est la table actualisée par les suppressions. Donc F(JO) augmente (tend à devenir gagnante) à 20 chaque suppression, et donc limite le nombre de suppressions. Conflit de seconde espèce (la table TJO est la table actualisée). Le procédé est identique au procédé précédent. La différence est qu'au lieu d'une suppression on peut changer le canal. On pourra utiliser deux types de méthodes selon le nombre C de canaux disponibles. Si C est 25 faible (2 à 3), en cas de conflit, on supprime l'allocation (donc identique à la procédure précédente). Sinon on essaye de changer le canal en recherchant un canal ci libre sur l'allocation temporelle s (ou s'), c'est-à-dire que l'allocation s,ci n'est utilisée par aucune interface en conflit (ou autre variante par des allocations perdantes par la fonction d'arbitrage). Si ce n'est pas possible on supprime l'allocation. Lorsqu'une allocation est supprimée (en première ou deuxième espèce), on applique immédiatement après sa suppression et avant d'examiner les allocations s+1 la suppression/ de la famille d'allocation s'=s+n*DNSJO. Parcourir toutes les allocations s'=s+n*DNSJO (modulo NSLOT) (avec n 0. Phase 3 Si Val>O on applique la phase 3 s= INDJO C- On vérifie que s,ci est récupérable. On dit que s,ci est récupérable si : s n'est pas dans les allocations de JO si s est utilisée par une interface K en conflit de première espèce, alors F(J0)>=F(K), F étant évaluée en ajoutant une allocation dans JO et en en supprimant une dans K. s,ci n'est utilisée par aucune interface en conflit de seconde espèce (cas où le nombre de canaux est faible) lo Si s est récupérable, ajouter s dans TJO et faire Val=Val-1. Parcourir toutes les allocations s'=s+n*DNSJO (modulo NSLOT) (avec n 0. Pendant le déroulement de l'algorithme, et tant qu'il n'y a pas convergence, il est possible d'utiliser les allocations en conflit, en utilisant 20 une technique de type HAMA (Lichun Bao et J.J. Garcia-Luna-Aceves). II est à noter que si une allocation n'est plus utilisée par une in- terface, et que cette information n'est pas connue, les techniques HAMA ne vont pas créer de conflit. Par contre, si une interface s'attribue une nouvelle allocation, elle devra vérifier que l'information est connue avant de participer 25 à la compétition HAMA. Exemple de méthode d'échange et de mise en oeuvre On décrit ici un exemple d'échange de signalisation, pour une mise en oeuvre de la solution proposée. On suppose qu'il existe un canal de signalisation permettant à chaque station de diffuser à ses voisines radioé-5 lectriques des données de signalisation. On suppose que chaque station qui est station centrale d'une interface au moins, constitue un message de signalisation. Ce message indique, pour chaque interface où la station considérée est station centrale, les allocations de cette interface, sous forme d'un tableau NSLOT*C, avec 1 ou to 0 si l'interface est utilisée ou non.. Notons qu'à chaque interface est associée un tel tableau, (et non associé à la station centrale). Chaque interface peut être identifiée uniquement par l'adresse de la station centrale et un numéro attribué par cette dernière. On considère ici que les échanges sont constitués de cet unique 15 message. Bien évidemment, pour économiser la bande passante, on pourra utiliser des messages procédant par transmission de différences, plutôt que de transmettre la totalité des données de toutes les interfaces. Lorsqu'une interface n'est plus modifiée, on peut se limiter à la transmission d'une signature. Dans ce cas, il est nécessaire de prévoir des mécanismes de demande 20 de transmission des données d'une interface, en cas d'incohérences. Il est aussi possible pour une station de créer un message que pour une partie, voire une seule des interfaces où elle est station centrale. Ces messages sont appelés messages d'allocation, à distinguer d'autres messages, non considérés ici, qui sont, par exemple, les messages de déclaration évoqués 25 précédemment. Une station centrale dresse, en utilisant les messages de déclaration des interfaces, la liste LO des interfaces en conflit. Elle élimine de LO les interfaces dont elle est station centrale et celles dont la station centrale est une voisine, constituant ainsi la liste LI. Lorsque la station centrale émet le message d'allocation, celui-ci est reçu des stations subordonnées dans l'interface et par les stations cen- traies voisines. Seules donc les stations centrales de la liste LI ne reçoivent pas directement ce message. On suppose que chaque station connaît la liste des voisins et des voisins de voisins. La station centrale constitue la liste A des stations voisines 10 qui participent à une interface de la liste LI ou sont voisines d'une station participant à la liste LI. Soit B la liste des voisins de A, qui ne sont pas voisins de la station centrale. La liste des relais désignés par la station centrale est un sous-15 ensemble C de A, tel que toute station de B est voisine au moins d'une station de C. La liste LI est transmise à ces relais. Le message émis par une station centrale comprend un indicatif de relayage avec la valeur O. Une station qui reçoit un message d'allocation avec un indicatif de 20 relayage 0 d'une station centrale SC1, relaie le message si elle a été désignée comme station relais par SC1 et si le message concerne une interface de L1. Le message relayé est marqué avec indicatif de relayage 1. Une station qui a été désignée relais par une station centrale SC2 et reçoit un message avec indicatif de relayage 1 dont l'origine n'est pas 25 SC2, mais une station centrale SC1 qui ne l'a pas désigné comme relais, retransmet le message dans les conditions suivantes : Le message concerne une interface de la liste LI donnée par SC2 SC2 n'a pas de stations voisines participant à l'interface concernée par l'allocation. Dans ces conditions, un message d'allocation d'une station centrale, parvient à toute station centrale d'une interface en conflit. L'algorithme précédemment est exécuté par chaque station centrale pour les interfaces qui la concerne. lo 15 REVENDICATIONS 1 - Procédé distribué pour attribuer de manière dynamique des ressources temps fréquence dans un réseau comprenant plusieurs stations, les stations étant organisées en groupes (ou interface) de plusieurs stations, chaque groupe comprenant une table d'allocation Tsi, chaque groupe échange au moyen d'un protocole de signalisation cette table d'allocation avec les groupes qui sont définis comme étant en conflit avec lui par un graphe de contraintes, le procédé utilisant une fonction d'arbitrage pour régler les io conflits et les attributions des allocations entre les groupes en conflit selon le graphe de contrainte, et est caractérisé en ce qu'il comporte au moins les étapes suivantes : - chaque interface Ji émet vers les interfaces K indiquées en conflit dans le graphe de contrainte, le tableau d'allocations TJi qui lui est associé, 15 - une interface Ji regarde pour chaque allocation AJi qu'elle a inscrite dans son tableau TJi si l'allocation AJi est utilisée dans la table reçue d'une inter-face K qui est en conflit, - l'interface Ji utilise la fonction d'arbitrage pour modifier l'allocation AJi dans le tableau TJi. 20 2 û Procédé selon la revendication 1, caractérisé en ce que le groupe de stations forme un ensemble radio électriquement connexe et le graphe de contrainte est déterminé par le voisinage radio électrique des stations de chaque groupe et des caractéristiques de transmission potentielle associés 25 aux stations des groupes. 3 û Procédé selon la revendication 1, caractérisé en ce que si une allocation est utilisée selon les tables d'allocation par une interface K et une interface J, et si J constate que l'interface K est gagnante selon la fonction d'arbitrage, en supprimant dans les deux tables l'allocation, et si le conflit est de première espèce, alors J supprime l'allocation Aji dans le tableau d'allocations de l'interface J. 4 û Procédé selon la revendication 1, caractérisé en ce que si une allocation est utilisée selon les tables d'allocation par une interface K et une interface J, et si J constate que l'interface K est gagnante selon la fonction d'arbitrage, en supprimant dans les deux tables l'allocation et si le conflit est de seconde io espèce, alors on conserve l'allocation temporelle AJi dans le tableau TJi et l'on change de canal de transmission, s'il existe un canal ou cette allocation est sans conflit de seconde espèce. 5 û Procédé selon les revendications 3 et 4, caractérisé en ce que l'interface 15 J examine s'il existe des allocations libres Ai non annoncées par les interfaces en conflit et elle s'attribue ses allocations. 6 û Procédé selon la revendication 3 à 5, caractérisé en ce que si, une inter-face J détermine une allocation An qu'elle n'utilise pas et que J évalue selon 20 la fonction d'arbitrage qu'elle est gagnante vis à vis de toute interface en conflit utilisant cette allocation, en ajoutant l'interface dans sa table et en la supprimant dans les tables des interfaces en conflit, la nouvelle interface s'attribue l'allocation An. 25 7 û Procédé selon l'une des revendications 3 à 6, caractérisé en ce que l'on utilise une famille d'allocations comprenant les étapes suivantes : si l'interface J s'attribue, récupère, ou supprime une allocation, elle cherche avant d'examiner d'autres allocations à s'attribuer, à récupérer, ou à supprimer les allocations K+n*DNSj où NDSj est un paramètre de l'interface J. 8 û Procédé selon la revendication 1, caractérisé en ce que l'on utilise une fonction d'arbitrage définie de la manière suivante : une interface étant caractérisée par une demande de type C1j, C2j, Cmj, où Cmj représente un nombre d'allocation demandée par l'interface J avec la priorité m (les priorités les plus fortes étant d'indice le plus faible), on pose SL, j = L j et Lmax la plus petite des priorités considérées, avec L l'indice correspondant à la priori-té et J gagne sur K, NJ étant le nombre d'allocations de J et NK le nombre d'allocations de K si : Soit on a Sl,j 1 ou NK > io Slmax,k Soit on a (Sl,j Slmax,k et NJ > Slmax,j) et (NJ-Sl,j)/Cl+l ,j