Ionut Mugurel

Andreica

Eliana-Dina Tirsa

Nicolae Tapus
email: nicolae.tapus@cs.pub.ro

Florin Pop
email: florin.pop@cs.pub.ro

Mihai Ciprian

Dobre

Towards a Centralized Scheduling Framework for Communication Flows in Distributed Systems

The overall performance of a distributed system is highly dependent on the communication efficiency of the system. Although network resources (links, bandwidth) are becoming increasingly more available, the communication performance of data transfers involving large volumes of data does not necessarily improve at the same rate. This is due to the inefficient usage of the available network resources. A solution to this problem consists of data transfer scheduling techniques, which manage and allocate the network resources in an efficient manner. In this paper we present several online and offline data transfer optimization techniques, in the context of a centrally controlled distributed system.

INTRODUCTION

Large distributed systems in which significant volumes of data are routinely transferred are becoming more frequently deployed and more prevalent nowadays. The communication performance of such systems has a strong impact upon their overall efficiency and, thus, a great emphasis is placed on the development of efficient communication optimization techniques. In this paper we consider several online and offline data transfer and data distribution optimization problems, in the context of a centrally controlled distributed system. Although recent research results in this field focus on large scale decentralized systems, we argue that, in real life situations, these systems are actually composed of multiple centrally controlled distributed systems and, thus, focusing on systems with centralized control is a matter of practical interest. The online data transfer optimization problems are considered in the context of a centralized data transfer scheduling framework which is introduced in Section 2. However, the focus of this paper is not on the actual scheduling framework, but on the algorithmic techniques which are employed by its central component, the Communication Flow Scheduling and Optimization Component. In Sections 3 and 4 we present algorithmic results regarding data transfer scheduling on single network links and in tree networks. In Section 5 we present efficient algorithmic solutions for some offline data distribution problems. In Section 6 we present related work and in Section 7 we conclude and discuss future work.

DATA TRANSFER SCHEDULING FRAMEWORK

The online data transfer scheduling model which is considered by the scheduling framework introduced in this section was previously described in [START_REF] Andreica | Towards a Real-Time Scheduling Framework for Data Transfers in Tree Networks[END_REF] and [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF]. A centralized scheduler has full control over all (or most of) the traffic in the network. Each network node can submit data transfer requests to the scheduler. A request may contain several parameters, like: source node, destination node(s), start time, finish time, duration, minimum required bandwidth (in the case of non-preemptive data transfers), total size of the transferred data (in the case of preemptive data transfers), profit (obtained if the request is scheduled and all of its constraints are satisfied). The scheduler handles the requests in batches of at most R≥1 requests at a time (the scheduler waits until the number m of received requests equals R or until a short time limit is exceeded, if 1≤m<R). Once a batch of requests is constructed, the scheduler runs an optimization algorithm, considering the m≤R requests in the batch, as well as the previously scheduled data transfers. The scheduler may consider that time is divided into T equally-sized time slots (T is the time horizon over which data transfers can be scheduled) or may consider only the time moments when an event occurs (e.g. a data transfer starts or ends).

The scheduler is only a component of a data transfer scheduling framework which needs to be developed in order to seamlessly provide data transfer scheduling and optimization services. The framework consists of several components: (1) the Communication Flow Scheduling and 9) the (Self-) Reconfiguration Component. Fig. 1 presents all the components, together with the directions of the command and data flows between them. We intend to use the MonALISA monitoring system [START_REF] Legrand | MonALISA: An Agent based, Dynamic Service System to Monitor, Control and Optimize Grid based Applications[END_REF] to provide monitoring data to the scheduling framework (i.e. information about the relevant network parameters and about the status of the running data transfers). The core of the framework is the Communication Flow Scheduling and Optimization Component, which runs the optimization algorithms and makes the scheduling decisions. This component may use simulations (the Simulation Component) or pattern detection and data transfer request prediction techniques (the Prediction and Pattern Detection Component) in order to make improved scheduling decisions. The decisions of this component are transformed into commands for the network nodes by the Communication Flow Management Component. The Data and Information Management Component stores all the data of the framework and, as such, it is connected to all the other components. The (Self-) Monitoring and (Self-) Evaluation Component monitors the quality of the decisions made by the scheduling component. If they are not of sufficient quality, it may use the services of the (Self-) Reconfiguration Component in order to reconfigure the Communication Flow Scheduling and Optimization Component (e.g. change the scheduling algorithm, switch from a time-slot based to an event-based time interpretation). At this point, the proposed framework is only in prototype stage. The focus of the rest of this paper is on algorithmic techniques, some of which can be implemented and used by the Communication Flow Scheduling and Optimization Component.

DATA TRANSFERS ON A SINGLE NETWORK LINK

In this section we will consider that the scheduler uses the time slot-based model and maintains a value avb(t) for each time slot t (1≤t≤T), representing the available bandwidth within that time slot (initially, all the values are equal to B max , the maximum bandwidth of the network link). A data transfer request r consists of the following parameters: starting time slot (S(r)), finish time slot (F(r)), total amount of data to be transmitted (TD(r)) (if it is preemptive) or the minimum required bandwidth B (if it is non-preemptive). In the preemptive case, a request is granted if we can assign a bandwidth b(r,t) to every time slot S(r)≤t≤F(r), such that: the sum b(r,S(r)) + b(r,S(r)+1) + … + b(r,F(r)) = TD(r) / slot_d (slot_d=the duration of a time slot) and b(r,t)≤avb(t), for S(r)≤t≤F(r). If the request is granted, the values avb(t) are decreased by b(r,t) for every time slot t in the range. For the non-preemptive case, we consider two types of requests. The first type requires us to assign the bandwidth b(r,t)=B during every time slot t (S(r)≤t≤F(r)) (and the transfer duration is F(r)-S(r)+1). The second type has unit duration and asks us to find only one time slot t (S(r)≤t≤F(r)) where we can assign b(r,t)=B. We will consider two scheduling models: the batch model (where multiple requests are considered at a time) and the online model (where we consider one request at a time).

Preemptive Data Transfer Requests in Batches

The m≤R requests of a batch are handled as a group. Each request r also has a profit p(r), representing the profit gained if the request is granted. We propose here a heuristic method which tries to maximize the total profit of the accepted requests from each group. We will construct a bipartite graph containing the m requests on the left side and the T time slots on the right side. We will add an edge with infinite capacity from every request r to every time slot t in the time slot interval [S(r), F(r)]. We will now add two extra vertices, src and dest. We add an edge from src to every request r and assign to it a capacity equal to TD(r)/slot_d. We then add an edge from every time slot t to the vertex dest and assign to it a capacity equal to avb(t). We will now find the maximum flow F from src to dest in this graph. If the flow f(src,r) on every edge (src,r) is equal to the edge's capacity, then all the requests can be granted. In this case, the flow f(r,t) on every edge between a request r and a time slot t represents the value b(r,t). If we cannot accept all the requests in the batch, we have two options. The first one consists of granting the requests r with f(src,r)=TD(r)/slot_d (if any) and re-run the algorithm for the remaining requests (considering the updated values avb(t)) repeatedly, until no more requests can be granted. For the second option we will define a desirability function d(r) which considers the profit of the requests, the amount of data to transfer, the transfer duration and possibly other parameters. For instance, such a function could be d(r)=p(r)•(F(r)-S(r)+1) exp /TD(r) (exp>0). We will sort the requests in non-increasing order of their desirability: r 1 , r 2 , …, r m , such that d(r 1 )≥d(r 2 )≥…≥d(r m ). We will find the index 1≤q≤m+1, s. t. if the batch consisted of the set of requests {r 1 , …, r q-1 }, then all of them could be accepted, but if the batch consisted of the set {r 1 , …, r q }, then not all of them could be accepted. We can find q by using binary search (or linear search) and the maximum flow algorithm presented above (in order to decide if all the request in a set {r 1 , …, r p } can be accepted and, consequently, decide if q>p or q≤p). Then, we will accept the requests r 1 , …, r q-1 , reject the request r q and re-run this algorithm for a batch composed of the remaining requests r q+1 , …, r m (considering the updated avb(t) values).

Online Non-Preemptive Data Transfer Requests

For the first type of non-preemptive requests, we need to find the minimum available bandwidth within the time slot interval [S(r),F(r)]. For this purpose we can use the segment tree framework or the block partitioning framework, presented in [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF]. Both frameworks support range minimum queries (computing the minimum available bandwidth in the interval [S(r),F(r)], in order to compare it against the minimum required bandwidth) and range addition updates (decreasing the available bandwidth of all the time slots in a range [S(r),F(r)] by the same value B) in sublinear time (O(log(T)) for the segment tree and O(k+T/k) for the partition into blocks). Note that [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF] incorrectly claims that these types of operations (range addition update and range minimum query) can be used in the case ES=1, LF=m; instead, they work only for LF-ES+1=D (using their notation). For the second type of non-preemptive requests (having unit durations), we could use again the frameworks from [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF], with the range (or point) addition update and range maximum query operations. It is obvious that the maximum available bandwidth of a slot inside the interval [S(r),F(r)] is the best "answer" for a query. However, always choosing the slot with the maximum available bandwidth may cause future requests to be rejected because not enough bandwidth is available. In these cases, we might want to assign to a request asking for a minimum bandwidth B a time slot with just enough available bandwidth, leaving the slots with large amounts of available bandwidth to requests with large bandwidth requirements. In order to implement this behaviour, we split the T time slots into T/k groups of k time slots each (the last group may contain less than k time slots). For each group G, we will maintain all the available bandwidths of its time slots sorted in ascending order. For a range of time slots [S(r),F(r)], we classify every group G as:

• G is completely inside [S(r),F(r)] -internal group • G is completely outside [S(r),F(r)] -external group • G is partly crossing [S(

r),F(r)] -partially crossing group

There can be at most two partially crossing groups (at the left and right sides of the range [S(r),F(r)]). In the case of an (addition) update, the time slots of each partially crossing group G which are inside [S(r),F(r)] are modified and then all the time slots inside G are resorted. For every internal group G, we will add the update value to the globalbw field of G (this field is initially 0). When searching for a value larger than B inside a range [S(r),F(r)], we will test the real value of every time slot t (avb(t)+G.globalbw) inside the intersection of a partially crossing group G and [S(r),F(r)]; for every internal group G, we will binary search within the values of its time slots (which are sorted) the smallest value larger than (B-G.globalbw). Every update takes O(T/k+ k•log(k)) time and every query takes O(k+T/k•log(k)) time. If an exact value B is searched, we can maintain a hash table with the available bandwidths of the time slots in every group (instead of a sorted array) and replace the binary search by a hash lookup and the resorting process by a hash rebuilding; thus, both updates and queries would take O(k+T/k). In the case of the first type of non-preemptive data transfer requests (actually, a slightly more general case), a special subcase was considered in [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF]. This subcase occurs when every request asks for the whole bandwidth of the link (thus, concurrent data transfers cannot take place). A simple solution based on maintaining a balanced tree of empty and occupied time slot intervals was proposed there. An update is equivalent to coloring an entire interval [a,b] with the same color (1-if a reservation is placed; 0-if a reservation is cancelled). The update procedure had a minor flaw there, which we correct in this section. The balanced tree BT contains a set of maximally-colored disjoint intervals whose union is [1,T]. Initially, BT contains only one interval, [1,T], colored with 0. When coloring an interval [a,b] with a color col, we first find all the intervals [c,d] in BT which are fully included in [a,b] and we remove them from BT. Then, if [a,b] is fully included in an interval [c,d] in BT with color col', we remove [c,d] from BT and insert in BT the intervals [c,a-1] (if c≤a-1) and [b+1,d] (if b+1≤d), colored with col'. Then, we find the (at most) two intervals [p(j),q(j)] (j=1,2) which partially intersect [a,b] (at the left endpoint and at the right endpoint) (i.e. (p(j)<a and a≤q(j)<b) or (a<p(j)≤b and q(j)>b)). Let [p'(j),q'(j)] be the intersection of [p(j),q(j)] with [a,b]. We remove [p(j),q(j)] from BT and insert in BT the interval [p(j),q(j)]\[p'(j),q'(j)] (the part of [p(j),q(j)] which does not intersect [a,b]), colored with the same color as [p(j),q(j)]. Then, we insert [a,b] in the tree. The final step, which was forgotten in [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF] (having the same color as the two intervals). This final step ensures that the intervals in BT are maximally-colored (i.e. BT does not contain two adjacent intervals with the same color). The interval coloring problem has several other variants, like the following. We are given M coloring operations which must be performed sequentially: color the interval of time slots [a(i),b(i)] with color col(i) (col(i) is not necessarily 0 or 1). After performing all the operations, we need to find the final color of each time slot. Initially, all the time slots have the color colinit (e.g. colinit=0). We could use the same balanced tree BT presented before, which maintains maximally-colored intervals. After every coloring operation, the number of intervals in BT increases by at most 2. Thus, the overall time complexity is O(M•log(M)). Since we know all the coloring operations in advance, we can use another technique. We sort all the left and right endpoints of the coloring intervals in increasing order (if a left and a right endpoint have the same value, then we place the left endpoint before the right endpoint) and assign to each operation the value k, if it is the k th operation in the sequence. We also consider the interval [1,T], with value 0. We then traverse the endpoints of the intervals in the sorted order. When we reach the left endpoint (slot) t of an interval j, we will insert j into a max-heap H; the keys of the intervals in H are their values (i.e. their positions in the sequence of coloring operations); H will always contain a "fake" interval with -∞ value and any color. After processing all the left endpoints equal to t, we find the interval i in H with the largest value v(i) and produce the tuple (t, v(i), col(i)) (col(i) is the color of the operation corresponding to the interval i). When we reach the right endpoint t of an interval j, we remove the interval j from H; after processing all the right endpoints equal to t, we produce the tuple (t+1, v(i), col(i)) (i is the interval with the largest value v(i) in H). Afterwards, we consider all the tuples (t(j), value(j), color(j)), in the order in which they were produced. If multiple tuples have the same t field, we will keep only the tuple with the largest value field among them and remove the others. Let's consider these tuples in the order (t(1), value(1), color(1)), …, (t(Q), value(Q), color(Q)) (t(j)<t(j+1), 1≤j≤Q-1; Q is the total number of tuples); t(1)=1 and t(Q)=T+1. The intervals [t(j), t(j+1)-1] (1≤j≤Q-1) are colored with the color color(j). After computing these intervals, any two consecutive intervals which have the same color col need to be (repeatedly) merged into one larger interval (their union), which has color col. The final set of intervals is the set of maximally-colored intervals. The time complexity of this approach is also O(M•log(M)). Note that none of the two approaches we presented enforces any limit upon the number of time slots T (thus, T can be as large as we want). Another possibility is to consider the coloring operations in reverse order. We will use the disjoint sets mechanism [START_REF] Galil | Data Structures and Algorithms for Disjoint Set Union Problems[END_REF]. Initially, every time slot t is alone in a separate set and has left(t)=right(t)=t. When we color an interval [a,b], we maintain a counter idx which starts at a and we will traverse all the yet-uncolored time slots within [a,b]. When we reach a time slot t, we know if it was previously colored or not. If it wasn't, then we color it and move to the next time slot t+1. After coloring a time slot t, we immediately check if the time slots t-1 and t+1 are also colored (if they exist). If t and t-1 are both colored, we need to combine the sets corresponding to t and t-1. If t+1 is also colored, we will then combine the sets of t and t+1. When combining two sets, we find their two representatives A and B. A representative Q maintains the leftmost and rightmost time slot in the set (because every set is an interval): left(Q) and right(Q). We choose A or B to be the new representative (according to the heuristic we use; e.g. union by rank, or union by size). Let's assume that A was chosen as the representative of the combined set. Then we set left(A)=min{left(A), left(B)} and right(A)=max{right(A), right(B)}. When the counter idx reaches a time slot t which is already colored, we find the representative t' of the set containing t and we set idx=right(t')+1. This way, every time slot is colored at most once and the time complexity is O(M+T•log(T)) or (O(M+T•log*(T)) if we also use path compression). Another useful problem in the case of data transfers which require full link usage is to find the longest interval of available time slots. We can support this by using a segment tree or a block partition. With this data structure, we can add the same value to a range of time slots and query the maximum sum segment of slots fully contained inside a given interval [a,b]. If we associate to each available time slot t a value v(t)=A>0 and to each occupied time slot a value v(t)<-T•A, then the maximum sum segment corresponds to the largest interval of available time slots. A bandwidth reservation is made by adding a value X<-T•A to a range of slots [a,b] and is cancelled by adding the value -X to the same range of slots corresponding to the reservation.

DATA TRANSFERS IN TREE NETWORKS

A point-to-point data transfer request can specify a minimum required bandwidth or a maximum path delay. Because of this, it is useful to be able to compute efficiently aggregates over values associated to the vertices and edges of a tree network. We consider that every vertex v has a weight wv(v) and every edge (u,v) has a weight we (u,v). We will root the tree at some vertex r (called its root). We are interested in maintaining several types of aggregate information, subject to unexpected edge and vertex weight changes. The kind of information we want to be able to compute efficiently is: 1) what is the aggregate weight of all the edges (vertices) on the path from a root to a given vertex v ? ; 2) what is the aggregate weight of all the edges (vertices) in the subtree of a given vertex v ? ; 3) what is the aggregate weight (e.g. min, max, +) of the edges on the path between two vertices u and v ? First, we will compute a modified Euler tour of the tree. This tour consists of a sequence of 2•n occurrences of the n vertices of the tree. In order to compute the tour, we perform a DFS traversal of the tree starting from the root. We add the vertex i at the end of the sequence (initially empty) when we enter vertex i from its parent or from the initial call, and when we finish traversing vertex i's subtree (thus, every vertex appears twice, including the leaves). For each vertex i, we compute a(i) and b(i), the first and last position on which i appears in the Euler tour. We consider aggregation functions aggf which have an inverse (e.g. +, xor); we denote the inverse of a value val by val -1 , and the neutral value by e. For the path aggregate weight case, the weight assigned to a position a(i) is w(a(i))=we(parent(i), i), if i≠r, or e, if i=r (or wv(i) in the vertex case), and the weight of a position b(i) is (we(parent(i),i)) -1 , if i≠r, or e, if i=r (or (wv(i)) -1 in the vertex case). Whenever the weight of an edge (parent(i),i) (of vertex i) changes by d, we must change w(a(i))=aggf(w(a(i)),d) and ,d -1 ). The aggregate weight of the edges (vertices) on a path from the root to a vertex i is the aggregate of the weights in the interval [1,a(i)]. If we construct a segment tree over the 2•n positions of the Euler tour (the segment tree has 2•n leaves), we can compute this value by using a range aggregate query over the corresponding interval in the segment tree. Thus, path aggregate queries and weight (point) updates can be performed in O(log(n)) time. In order to compute the aggregate weight of the edges (vertices) on a path between two given vertices u and v, we compute the lowest common ancestor of u and v (LCA(u,v)). Then, we compute the aggregate of the weights on the path from the root to u, v and LCA(u,v) (aggu, aggv and aggLCA); the result is: aggf(aggu,aggv,aggLCA -1 ,aggLCA -1 ) (in the edge case), or aggf (aggu,aggv,aggLCA -1 ,aggLCA -1 ,wv(LCA(u,v))) (in the vertex case) (see also [START_REF] Andreica | Towards a Real-Time Scheduling Framework for Data Transfers in Tree Networks[END_REF]). For the second type of queries, we assign weights only to the positions a(i): w(a(i))=we(parent(i),i) (for the edge case), or wv(i) (for the vertex case); w(b(i))=e. The aggregate of all the weights in vertex i's subtree is the result of a range query over the interval [a(i)+1,b(i)] (for the edge case), or [a(i),b(i)] (for the vertex case). Updating the weight of an edge (parent(i),i) (vertex i) by d requires the (point) update of w(a(i)) (which must be updated by d). Thus, we can use a segment tree in this case, too. For this type of queries, we can replace the value of b(i) by the largest position a(j)≤b(i). We can do this by maintaining the type (a or b) and the corresponding vertex i of each position k in the Euler tour. We traverse the positions from 1 to 2•n. Whenever we encounter a type a position k, we set a variable last_a to k and we increment a counter cnt_a by 1 (cnt_a is initially 0). When we encounter a type b position k, corresponding to a vertex i, we set b(i) to last_a (or to cnt_a, if we later renumber the positions of the tour). Then, we can remove all the positions b(i) from the tour and maintain only n values (the a(i) positions, which can now be renumbered from 1 to n). If only the values a(i) and b(i) are given for each vertex i (without the Euler tour itself), we will need to sort these values, in order to obtain the Euler tour first. For the third type of queries, a fully dynamic solution is based on tree decomposition techniques. We will only present a solution for the static case, which is more efficient by an O(log(n)) factor than the dynamic case. We will compute the values Anc(i,j)=the ancestor of vertex i located 2 j levels higher (the level of a vertex u is the distance between u and r; level(r)=0 and level(u≠r)=level(parent(u))+1), and Agg(i,j)=the aggregate of the edge (vertex) weights on the path between i and Anc(i,j). We have Anc(i≠r,0)=parent(i) (Anc(r,0)=r) and Anc(i,j≥1)=Anc(Anc(i,j-1),j-1); Agg(i≠r,0)=we(parent(i),i) for the edge case (or wv(i) for the vertex case) and Agg(i,j≥1)=if (level(i)≥2 j ) then aggf(Agg(i,j-1), Agg(Anc(i,j-1),j-1)) else undefined. In order to compute the aggregate weight on the path between u and v, we first compute LCA (u,v). Then, we will compute the aggregates aggu and aggv on the paths between u and LCA (u,v), and v and LCA(u,v). The answer will be aggf (aggu, aggv) for the edge case (and aggf(aggu, aggv, wv(LCA(u,v))) for the vertex case). In order to compute the aggregate on the path between a vertex u and an ancestor au of u, we initialize j to log(n), pu to u and pagg to undefined. While (level(pu)>level(au)) we perform the following actions: (1) as long as (level(pu)-2 j <level(au)) we decrease j; (2) we set pagg to aggf(pagg, Agg(pu,j)); (3) we set pu to Anc(pu,j). Computing LCA (u,v) is done similarly: we first test if u is an ancestor of v (in which case LCA(u,v)=u), or if v is an ancestor of u (in which case LCA(u,v)=v); otherwise: (1) j=log(n); (2) pu=u; (3) while (j≥0) do: { (3.1) while ( j≥0) and (Anc(pu,j) is an ancestor of v) do j=j-1; (3.2) if (j≥0) then pu=Anc(pu,j) }; (4) LCA(u,v)= Anc(pu,0). We can test in O(1) time if a is an ancestor of b.

w(b(i))=aggf(w(b(i))

OFFLINE DATA DISTRIBUTION PROBLEMS

Largest Revenue Path with Limited Cost in Trees

We are given a tree with n vertices. Each (undirected) edge (u,v) has a cost C(u,v) and a revenue P(u,v) (both the cost and the revenue are non-negative). For every (unordered) pair of neighboring edges (u,v) and (u,w) we also have a switching cost SC(u,v,w)≥0 and a switching revenue SP(u,v,w)≥0. We want to solve a bicriteria data distribution optimization problem. Given an upper limit C max , we want to find a path in the tree such that the sum of the costs of the edges on the path (plus the switching costs of any two consecutive edges on the path) is at most C max and the sum of the revenues of the edges on the path (plus the switching revenues of any two consecutive edges on the path) is maximum. We will consider two cases: (1) the degree of every vertex in the tree is bounded by a small constant D max ; (2) the degrees of the vertices are not bounded, but the switching costs and revenues are all zero. For both cases we will use the same general framework, based on computing the centroid decomposition of the given tree. The centroid decomposition of a tree with n vertices in which every vertex i has a positive weight w(i) is defined as follows. First, the centroid of the tree is found. The centroid is a vertex which, if removed, the maximum total weight of the vertices in any connected component of the resulting forest is minimum. A centroid can be computed in linear time for a tree with weighted vertices. We first compute the total weight of the tree, WTT. Then, we root the tree at an arbitrary vertex r and we traverse the tree bottom-up (from the leaves towards the root). For each vertex i, we compute WT(i)=the sum of the weights of the vertices in its subtree T(i). For a leaf vertex i, WT(i)=w(i) ; for a non-leaf vertex i, WT(i) is equal to w(i), plus the sum of the values WT(s(i,j)) (1≤j≤ns(i)) (ns(i)=the number of sons of vertex i; s(i,j)=the j th son of vertex i). For each vertex i, we also compute W max (i)=max{max{WT(s(i,j))|1≤j≤ns(i)}, WTT-WT(i)}, i.e. the maximum total weight of a connected component, in case vertex i is removed. The centroids are those vertices for which W max (i) is minimum. We choose one of these vertices as the tree centroid. Then, we obtain the connected components, as if the centroid were removed. For each connected component (which is a tree), we compute its centroid decomposition, recursively. We stop when the tree (component) has only one vertex. The centroid decomposition constructs a centroid tree. The centroid C of the tree is the root of the centroid tree. Then, we compute the centroid trees and decompositions (and the centroids C') of the connected components obtained by removing vertex C. We make each such centroid C' the son of C (basically, C connects the centroid trees of the components obtained by removing C). When w(i)=1, the total weight of the vertices of a component is equal to the number of vertices in that component; the height of the centroid tree is O(log(n)) in this case (because the number of vertices of each component halves at each step) and the overall complexity of the described algorithm is O(n•log(n)). We start by computing the centroid decomposition (centroid tree) of the original tree (with unit vertex weights). As soon as we find the centroid C of a component, we will also compute the best path which passes through that vertex and contains only vertices of that component. To be more precise, at first we compute the best path which passes through the centroid of the initial tree. Any path which does not contain the centroid vertex must be fully contained in one of the components obtained by removing C from the tree. We repeat this procedure recursively for each component. If the time required to compute the best path passing through a given vertex C in a tree with n vertices is TP(n), then the total time required is O(TP(n)+2•TP(n/2)+… +2 i •TP(n/2 i )+…+n•TP(1)), which, in the worst case, is O(TP(n)•log(n)). We will now explain how to compute the optimal path passing through a specified vertex r of a tree with n vertices (i.e. find TP(n)). We will root the tree at the vertex r. For each vertex i, we will compute C root (i) and P root (i), the total cost and the total revenue of the path from the root r to vertex i. C root (r)=P root (r)=0, C root (i≠r)= C root (parent(i)) + C(parent(i), i) + SC(parent(i), parent( parent(i)), i) and P root (i≠r) = P root (parent(i))+ P(parent(i),i) +SP(parent(i), parent(parent(i)), i); if parent(i)=r, then parent(parent(i)) is not defined and SC(parent(i), parent(parent(i)), i) = SP(parent(i), parent( parent(i)), i)=0. A candidate for the optimal path is the path from r to any vertex i with C root (i)≤C max and a maximum value for P root (i); we denote by Pr(r)=max{-∞, the revenue of such a candidate path}. We now need to consider paths which start in the subtree of a son s(r,j 1 ) of the root and end

Fig. 1 .

 1 Fig. 1. Architecture of the Data Transfer Scheduling Framework

  is to find the interval [c,a-1] in BT, located immediately to the left of [a,b] (if it exists) and check if it has the same color as [a,b]. If it does, then we remove the intervals [c,a-1] and [a,b] from BT and insert in BT the interval [c,b] (with the same color col); if the replacement was performed, we set a=c. Then, we check if the interval [b+1,d] from BT, located immediately to the right of [a,b] (if it exists), has the same color as [a,b]; if it does, we remove both intervals from BT([a,b] and [b+1,d]) and insert in BT the interval[a,d]

in the subtree of a different son, s(r,j 2 ) (j 1 ≠j 2 ). We will first handle case (1). We will traverse all the vertices in the tree. For each vertex i, we will maintain the son pson(i) of the root r which is contained on the path from i to r (if i is a son of r, then pson(i)=i; otherwise, pson(i)=pson(parent(i))). We will maintain a set S(j) for every son j of the root. We will insert each tuple (i, C root (i), P root (i)) in S(pson(i)). Then, we sort the tuples (q, C root (q), P root (q)) in S(j) (j is a son of r) in increasing order of their C root (q) values. For a set S(j), let's assume that the order of the tuples is (q(j,1), C root (q(j,1)), P root (q(j,1))), …, (q(j,|S(j)|), C root (q(j,|S(j)|)), P root (q(j, |S(j)|))) (where |S(j)| is the number of tuples in S(j)). We will compute P max (j,i), the maximum value of P root (q(j,k)), with 1≤k≤i. We have P max (j,0)=-∞ and P max (j,1≤i≤|S(j)|)= max{P max (j,i-1), P root (q(j,i))}. Then, we traverse the tree nodes again. For each vertex i with C root (i)≤C max , we will compute the largest revenue path starting at vertex i, passing through the root r and ending at another vertex in the tree, such that its total cost is at most C max ; we denote the revenue of this path by Pr(i) (which is -∞ initially). We will consider every son j≠pson(i) of the root. For each such son j, we will find the largest index k such that C root (q(j,k))≤C max -C root (i)-SC (r, pson(i), j). If k≥1, then we set Pr(i)=max{Pr(i), P root (i)+SP (r, pson(i), j)+P max (j,k)}. The largest revenue of a path passing through the root r and obeying all the constraints is max{Pr

if we sort the tuples for each son using a comparison-based sorting algorithm and we find the largest index k corresponding to a son j of the root (and given a fixed vertex i) by binary search, in O(log(n)) time. If the cost values are integers and are bounded by a constant CC max , then we can sort all the tuples in O(CC max +n) time. Afterwards, we can compute an array P max '(j) for each son j of the root. We initialize all the values in P max '(j) to -∞. Then, we set P max '(j, C root (q(j,k)))=max{P max '(j,C root (q(j, k))), P root (q(j,k))}. Afterwards, we traverse the entries cc=1,…,CC max and set P max '(j,cc)=max{P max '(j,cc-1), P max '(j,cc)}. Whenever we want to find the largest revenue of a tuple corresponding to a descendant of a son j of the root, such that the tuple's cost is at most CG, we return P max '(j,CG). The time complexity of the algorithm becomes O(n+CC max +n•D max ). If we consider CC max and D max to be constants, the time complexity is linear (TP(n)=O(n)). In order to handle case (2), we can use the same approach as for case (1). However, since the degree of a vertex is not bounded, the time complexity of the proposed solution may become O(n 2 •log(n)) (or O(n 2 +CC max )). In order to obtain a better time complexity, we will consider all the tuples (q, C root (q), P root (q)) together and sort them in increasing order of C root (q): (q(1), C root (q(1)), P root (q(1))), …, (q(n), C root (q(n)), P root (q(n))). We will compute the values P max (j), defined as follows: P max (0)=-∞, P max (1≤j≤n)=max{P max (j-1), P root (q(j))}. For each value P max (j) we will store the value Rson(j)=pson(i) where P max (j)=P root (i).

Rson(0)=0 and Rson(1≤j≤n)=(if P max (j)=P max (j-1) then Rson(j-1) else pson(q(j))). Afterwards, we will compute the values P max,2 (j) and Rson 2 (j) (0≤j≤n). P max,2 (j) is the largest value of P root (q(k)) (1≤k≤j), such that pson(q(k))≠Rson(j). P max,2 (0)=-∞ and Rson 2 (0)=0. For 1≤j≤n, we consider the three pairs (pr=P max (j-1), rs=Rson(j-1)), (pr=P max,2 (j-1), rs=Rson 2 (j-1)), (pr=P root (q(j)), rs= pson(q(j))). We disregard those pairs with rs=Rson(j). From the remaining pairs, we choose the pair tp with the largest value of tp.pr and set (P max,2 (j), Rson 2 (j))= (tp.pr, tp.rs). Note that there will be at least one remaining pair to choose from. Afterwards, for every vertex i≠r, with C root (i)≤C max , we will compute Pr(i), having the same meaning as for case (1). In order to compute Pr(i), we need to find the optimal path starting at the root, ending at a vertex j with pson(j)≠pson(i) and whose total cost is at most C limit =C max -C root (i). In order to do this, we find the largest index k such that C root (q(k))≤C limit . We now consider the two pairs (pr=P max (k) n)). We can improve the algorithm slightly, if we consider the vertices i in increasing order of their costs C root (i), i.e. in the order q(1), …, q(n). For the first vertex q(1), we start with k=n and decrease k by 1 until k=0 or C root (q(k))≤C max -C root (q(1)). For 2≤i≤n, we start with k equal to the index k computed for q(i-1) and continue to decrease it by 1, until we reach k=0 or

However, we still need to sort the tuples (q(i), C root (q(i)), P root (q(i))) initially.

Offline Data Distribution in Mobile Wireless Path Networks with Immediate Processing Time

We consider a simple model of a wireless path network with n nodes, in which every node i of the network is (initially, at time 0) located at coordinates x(i) (1≤i≤n; x(i)≤x( i+1)). Node 1 needs to transmit a piece of content to every other node in the network. A node i can transmit the content instantly to a node j if the distance between them is at most D (i.e. |x(i)x(j)|≤D). Note that a node j can transmit the content further as soon as it receives it. Thus, node j can transmit the content immediately to another node k if |x(j)-x(k)|≤D. Each node is mobile and can travel with (at most) a speed v. We want to compute the minimum time duration after which all the nodes receive the content from node 1. We will present two approaches. The first one is a linear time algorithm. For every node i (1≤i≤n) we will compute Tmin(i)=the minimum amount of time after which node i can receive the content and xmax(i)=the maximum x-coordinate at which node i can be located in order to (still) receive the content by the time moment Tmin(i). Tmin(n) is the minimum time after which all the nodes receive the content. Obviously, we have Tmin(1)=0 and xmax(1)=x(1). For 2≤i≤n we proceed as follows. If (x(i)-xmax(i-1)>D) then node i needs to get closer to node i-1 in order to receive the content. Let tdif=(x(i)xmax(i-1)-D)/v. If tdif≤Tmin(i-1), then node i travels from time 0 to time tdif to the coordinate xmax(i-1)+D (at maximal speed) and waits there until node i-1 receives the content. When node i-1 receives the content, it will immediately send it to node i; thus, Tmin(i)=Tmin(i-1) and xmax(i)=xmax(i-1)+D. If tdif>Tmin(i-1), then node i travels from time 0 to time Tmin(i-1) to the coordinate x'(i)=(x(i)-v•Tmin(i-1)) (at maximal speed). At time Tmin(i-1), we have x'

From time Tmin(i-1) to time Tmin(i-1)+tdif', nodes i and i-1 travel towards each other (at maximal speed). Thus, Tmin(i)=Tmin(i-1)+tdif' and

Node i travels from time 0 to time tdif to coordinate xmin(i)=x(i)-tdif•v and then waits there. We have Tmax(i)=Tmax(i+1). If, at some point, Tmax(i) drops below 0, or (x(i)+Tmax(i)•v<xmin(i) for some node i), then Tmin is not a feasible value. The time complexity of this approach is O(n•log(TM)), where TM is a good upper bound for the time duration we were searching for.

Offline Data Distribution in Wireless (Path) Sensor Networks with Release Times

In this subsection we consider a problem which is similar to the one from the previous subsection. n wireless network nodes are located on the real line (node i is located at position x(i); 1≤i≤n), such that x(1)≤x( 2)≤…≤x(n). Node 1 has a piece of content which it needs to distribute to all the other nodes.

The nodes are very simple processing devices (e.g. sensor nodes) and every node i is connected only to the nodes immediately to its left and to its right (i-1 and i+1, if they exist). If a node 2≤i<n receives the content at a time t≥0, it performs the following actions: if it did not receive the content before and t<pt(i), it can wait until the time moment pt(i) (if it so wishes); let's denote t'=t (if it chooses not to wait) or t'=pt(i) (if it chooses to wait); if t'≥pt(i), then it processes the content, which takes a duration d(i).

Afterwards, if the content was received from its left (right) neighbour, it forwards it to its right (left) neighbour. When node n receives the content at time t, if t<pt(i), then it waits until t=pt(i); afterwards, it processes the content (which takes a duration d(n)) and then sends it back to node n-1. The time values pt(i) are the processing release times for each node i. Node i cannot start processing before the time moment pt(i) (considering that the initial time moment is 0), due to several factors (e.g. in order to save energy, it can only perform processing tasks during certain time periods). The content travels at a speed s; thus, the duration of sending the content from a node i to a neighbouring node j is |x(i)-x(j)|/s. We consider here only the restricted case where pt(i)≤pt(i+1) (2≤i≤n-1). For this case, when node 1 receives the content back, it knows that all the other nodes have received the content (it is easy to prove that this is the case). It is also easy to notice that the content is first sent from left to right (the left-to-right pass) and then it is sent back, from right to left (the right-to-left pass). We want to minimize the time duration after which node 1 receives the content back (which acts as an acknowledgement). The duration is influenced by the local waiting decisions made by each node. The considered problem is offline, because we will globally make these decisions and the problem parameters are fixed. We will first consider the case where d(i)=0 (2≤i≤n-1). In this case, no node i (2≤i≤n-1) chooses to wait (if it has the opportunity). The content reaches node n at time t=|x(n)x(1)|/s. If t<pt(n), then node n waits until time pt(n). Afterwards, it sends the content back. This time, because pt(i)≤pt( i+1), every node which did not process the message during the left-to-right pass, will process the message now. The total duration is max{|x

x(1)|/s. We will now consider a second easier case, in which all the values d(i) (2≤i≤n-1) are equal (thus, we will say that d(i)=dp). We will use a dynamic programming algorithm and compute the values Twmin(i,j)=the minimum total waiting time during the left-to-right pass if the content reached node i and j<i nodes processed the content so far. We have Twmin(1≤i≤n-1, 0)=0 and Twmin(i,j≥i)=+∞. In order to compute Twmin(i, 1≤j≤i-1), we consider the values Twmin(i-1,j-1) and Twmin(i-1,j). We first initialize Twmin(i,j)=+∞. For the case Twmin(i-1,j-1), we compute the time moment when the content reaches node i, which is tr=|x(i)x(1)|/s+Twmin(i-1,j-1)+(j-1)•dp.

If tr≤pt(i), then Twmin(i,j)=min{Twmin(i,j), Twmin(i-1,j-1)+ (pt(i)-tr)}; else, Twmin(i,j)=min{Twmin(i,j),Twmin(i-1,j-1)}.

We then compute tr2=|x(i)-x(1)|/s+Twmin(i-1,j)+j•dp. If tr2<pt(i) then Twmin(i,j)=min{Twmin(i,j), Twmin(i-1,j)} (node i chooses not to wait). After computing all these values, we will compute the minimum total waiting time Tmin (initially set to +∞), based on the values Twmin(n-1,*) and the decisions made by node n. We will consider all the values j (0≤j≤n-2). For each value, we compute the time moment tr=|x(n)-x(1)|/s+Twmin(n-1,j)+j•dp when the content reaches node n. If tr<pt(n), we set Tmin=min{Tmin, Twmin(n-1,j)+pt(n)-tr}; otherwise, we set Tmin=min{Tmin, Twmin(n-1,j)}. The total duration (before the content returns to node 1)

As we can see, the only term which can be minimized is Tmin (the others are independent of the chosen distribution strategy). The time complexity is O(n 2 ). For the general case, where the d(*) values may be different, we present a pseudo-polynomial solution when the durations d(*) are integers. We compute Twmin(i, tproc)=the minimum total waiting time during the left-to-right pass if, by the time the message leaves node i, tproc time units were spent by all the nodes (so far) with the content processing. We have Twmin(1,0) =0 and Twmin(i,tproc>sd(i))=+∞ (where sd(i)=d( 1)+…+d(i); d(1)=0). In order to compute the Twmin(i≥2,*) values, we will first initialize them to +∞. Afterwards, we consider all the values Twmin(i-1, tproc). For each pair (i-1, tproc), we compute tr=|x(i)-x(1)|/s+Twmin(i-1,tproc)+tproc. If tr<pt(i), then we set Twmin(i, tproc)=min{Twmin (i, tproc), Twmin(i-1, tproc)} (node i chooses not to wait) and Twmin(i, tproc+d(i))=min{Twmin (i, tproc+d(i)), Twmin(i-1, tproc)+ pt(i)-tr} (node i chooses to wait); if tr≥pt(i), we set Twmin(i, tproc+d(i))=min{Twmin (i, tproc+d(i)), Twmin(i-1, tproc)}. After this stage, we will compute the same value Tmin as before. For every pair (n-1, tproc) we compute tr, the time moment when the content reaches node n (tr=|x(n)x(1)|/s+Twmin(n-1, tproc)+tproc) and if tr<pt(n), we set Tmin=min{Tmin, Twmin(n-1, tproc)+pt(n)-tr}; otherwise, Tmin=min{Tmin, Twmin(n-1, tproc)}. The total duration will be equal to 2

Packet Permutations with k increasing 2-sequences

We consider a communication flow composed of n packets (numbered from 1 to n). Each packet i contains checksum information about packet i-1. If the packets are sent in the normal logical order, we want to know how many possible receiving orders exist in which (exactly) k pairs of packets (i, i+1) arrive immediately one after another. This is the same as computing the number of n-element permutations with k increasing 2-sequences. We will compute the values P(i,k)=the number of i-element permutations with k increasing 2-sequences (0≤k≤i-1). We will consider P(i,k)=0 for k<0 or k≥i. We have P(1,0)=1. For i>1 and 0≤k≤i-1, we have P(i,k) = (i-k-1)•P(i-1,k) + (k+1)•P(i-1,k+1) + P(i-1,k-1). The 3 terms correspond to the following situations: 1) there are (i-k-1) positions where element i can be inserted into an (i-1)-element permutation having k 2-sequences, without modifying the number of 2-sequences; 2) there are (k+1) positions where element i can be inserted into an (i-1)element permutation having k+1 2-sequences, in order to "break" one 2-sequence (thus obtaining k 2-sequences); 3) there is one position where we can insert element i into an (i-1)-element permutation having k-1 2-sequences, in order to form a new 2-sequence (we insert it right after element i-1). The time complexity is O(n 2 •Op(n)), where Op(n) is the complexity of performing arithmetic operations on the numbers P(*,*) (if the numbers have O(n) digits, then Op(n)=O(n); if we perform all the operations modulo a small number M, then Op(n)=O( 1)). P(n,k) is also the number of nelement permutations and k decreasing 2-sequences, as the bijective function f(i)=n-i+1 maps a permutation with k increasing 2-sequences to one with k decreasing 2-sequences.

RELATED WORK

In [START_REF] Henzinger | Scheduling Multicasts on Unit-Capacity Trees and Meshes[END_REF], efficient algorithms are presented for offline and online scheduling of unit capacity multicast data transfers in trees and meshes. In [START_REF] Andreica | Efficient Data Structures for Online QoS-Constrained Data Transfer Scheduling[END_REF], the authors present an algorithmic framework for several efficient data structures which can be used for data transfer scheduling on single-link and path networks. In [START_REF] Andreica | Towards a Real-Time Scheduling Framework for Data Transfers in Tree Networks[END_REF], the authors present a range of algorithmic techniques for scheduling data transfers in networks with tree topologies. Several heuristic data request scheduling methods were presented in [START_REF] Theys | Heuristics for Scheduling Data Requests using Collective Communications in a Distributed Communication Network[END_REF]. A framework for reliable and efficient data placement in distributed systems was presented in [START_REF] Kosar | A Framework for Reliable and Efficient Data Placement in Distributed Computing Systems[END_REF]. A scheduling model using bandwidth reservations for critical data transfers was presented in [START_REF] Hangan | Reservation-Based Data Flow Scheduling in Distributed Control Applications[END_REF].

CONCLUSIONS AND FUTURE WORK

In this paper we introduced the architecture of a centralized scheduling framework for data transfers in distributed systems. We also took the first steps towards developing efficient algorithmic techniques for scheduling data transfers in distributed systems with arbitrary topologies, by presenting novel methods for handling preemptive and non-preemptive data transfer requests on single network links and in trees. Moreover, we considered several offline data distribution problems, for which we developed new algorithmic solutions.


Barry M Garraway

Hélène Perrin

An effective scalar magnetic interaction for resonantly trapped atoms

Keywords:

come

An effective scalar magnetic interaction for resonantly trapped atoms

I. INTRODUCTION

Trapping atoms by dressing them with rf radiation has been realised with a wide range of experimental and theoretical configurations . The first experimental trapping with rf dressing [3] resulted in an egg-shell type potential with the atoms confined to the surface of the shell. Gravity caused the atoms to occupy the lower part of the egg-shell. Tubes of dressed atoms have been used to show interference effects [4,11,19], and there have been several designs and realisations of dressed atom ring-traps [7,10,13,15].

The wide range of trapping topologies and shapes emerging is due to complex vector relationship between the oscillating and static magnetic fields used. These fields can change both in magnitude and in direction over a region of space. For the case of linearly polarised rf with a field B rf (r) cos ω rf t, the interaction strength in the rotating wave approximation (RWA) is governed by a Rabi frequency Ω which may be written as

Ω(r) = |g F | µ B 2h
B rf (r) sin θ(r) ≡ Ω 0 (r) sin θ(r) ,

where θ(r) is the angle between the static field B 0 (r) and the oscillating magnetic field. In equation (1) g F is the usual Landé g-factor and µ B is the Bohr magneton and clearly the maximum possible Rabi frequency at a location r is

Ω 0 (r) = |g F | µ B 2h B rf (r) . (2)
The condition Ω 0 (r) ≪ ω rf is required for the RWA to be valid [22]. The Rabi frequency Ω(r) shows clear spatial and orientational dependence. In this case the uppermost dressed state potential is simply given by

E(r) = hF (ω rf -ω 0 (r)) 2 + Ω 2 (r) 1/2 , (3)
where ω 0 (r) characterises the energy of the atom in the static field through

ω 0 (r) = g F µ B B 0 (r) h . (4)
The factor ω rfω 0 (r) in equation ( 3) represents a spatially varying detuning. With this detuning the RWA is valid if Ω 0 (r), |ω rfω 0 (r)| ≪ ω rf . From equation (3) we see that, in a region of fairly uniform Rabi frequency, the defining feature of the trap is the region of resonance, i.e. an iso-B surface where ω 0 (r) = ω rf . This picture gets modified in a complex way when the Rabi frequency is spatially varying, too.

In this paper we will pay particular attention to the situation which can arise when the static field B 0 (r) has the same orientation as the oscillating magnetic field B rf (r). In that case equation (1) shows that the Rabi frequency is zero, since the angle θ is zero. As a consequence the dressing breaks down and an atom is no longer trapped by dressed potentials. This would usually happen in a small region of space where the two magnetic fields align. (We note that the relatively "small" size of this region of atom loss is due to the exponential dependence of Landau-Zener losses on coupling squared [12].) Such a location has sometimes been termed a hole in the dressed potentials and it is usually undesirable, though in Ref. [12] two such holes were used to facilitate evaporative cooling in the dressed rf trap. The holes were arranged to be at the sides of the trap so that only the most energetic atoms reached them under the influence of gravity. More generally, the holes tend to arise when the relative angle between the magnetic fields varies considerably in space.

We should emphasise that these holes are not inevitable in dressed rf potentials. They can be avoided by appropriate use of bias fields: e.g. near the centre of a Ioffe-Pritchard magnetic trap [2,3]. And they can also be avoided if the trapping region is different from the resonant region: for example, if the rf frequency ω rf is below resonance for the centre of the trap [4].

If we switch from linear to circularly polarised rf, there is still potential for holes to be present. In a simple quadrupole trap (with coils in an anti-Helmholtz configuration) the number of holes reduces from two to one [7]. The difference is that the Rabi frequency in equation ( 3) is now

Ω(r) = Ω 0 (r) (1 + cos θ(r)) (5)
which replaces equation (1). In equation ( 5) Ω 0 (r) is the maximum possible Rabi frequency in the linear case as already given in equation ( 2). Thus we note that Ω(r), as given by equation ( 5), has a maximum value which is twice that of the linear case (see equation ( 1)) for a rf field with the same peak amplitude B rf . This is because in the linear case we always have to make the RWA, and reject the counter-rotating term, while in the circular polarisation case the RWA is not needed for the maximum coupling (σ + ) orientation. In equation ( 5) the angle θ is now the angle between the circular polarisation axis êc (which is perpendicular to the plane of rotation of B rf (r)) and the static field B 0 (r). This means that when the rf rotates clockwise about the static magnetic field B 0 (r) the maximum coupling ( 2) is achieved (for positive g F ); then as the plane of rotation is itself turned away, the coupling smoothly reduces to zero, a value reached when the axis rotation has completely turned around. Thus, for dressed rf traps formed in regions where the static field varies over all directions, the holes cannot be removed by simply changing rf polarisation. For large traps the holes can be moved to places where the atoms will not reach them because of gravity. However, a procedure to remove holes of this kind could be important when dressing very small magnetic traps [23]. In that case gravity cannot be relied on to keep atoms away from the holes. An example arises when we consider dressed traps made with fields from magnetic nano-wires [24]. In this case the field gradients are so strong that for normal rf frequencies only very small (micron-scale) traps would be made by dressing: atoms at micro-Kelvin temperatures would then explore all parts of the dressed potential, find the holes, and escape. In section II we will see how such holes can be closed by using time varying circularly polarised rf radiation. In section III we will see that a similar technique with linearly polarised rf will also close such holes, and the paper concludes with a short summary in section IV.

II. A TECHNIQUE TO CLOSE MICROSCOPIC HOLES: THE CIRCULAR POLARISATION CASE

To close the holes in a dressed rf potential we will use a variant of the time-averaged adiabatic potential technique (TAAP) [13]. This technique in its original form involves oscillating the adiabatic potential quite rapidly so that the time averaged potential yields a new potential of interest. In the original example, a ring trap is produced from an egg-shell by a shaking process. In the form used here we will rotate the polarisation direction to vary the adiabatic potential via a time varying Rabi frequency. Then if the mechanical oscillations of the atom are slow enough, we again obtain a time averaged potential so that in the case of holes, the hole is removed by the averaging process. We will also find that we can remove all orientational dependence from the potential when the atoms are at a resonant location. If we consider first the case of circularly polarised rf, the homogenised coupling can be produced by rotating the axis of polarisation. Let us focus on a single location r and we suppose that the static field B 0 (r) is pointing in an arbitrary direction with components B 0x , B 0y , and B 0z , and that, for concreteness, the circular polarisation axis rotates in the z-x plane with a frequency ω p (see figure 1). Then for a unit vector in the direction of the polarisation axis we have

êc (t) = cos ω p t ẑ + sin ω p t x . (6)
Within the RWA, the effective interaction is given by equation ( 5) with the angle θ being the angle between the two vectors êc (t) and B 0 (r). From the definitions of scalar product and using equation ( 6)

êc (t) • B 0 = B 0 cos θ = B 0x sin ω p t + B 0z cos ω p t , (7)
where

B 0 = B 2 0x + B 2 0y + B 2 0z
. Strictly, the components of B 0 (r) vary with position r, but we omit this in the notation for simplicity. Then, from equation (7),

cos θ = B 0x B 0 sin ω p t + B 0z B 0 cos ω p t , (8)
which can be inserted into equation ( 5) to find for the Rabi frequency:

Ω(t) = Ω 0 1 + B 0x B 0 sin ω p t + B 0z B 0 cos ω p t . ( 9
)
This assumes a quasi-static situation in which the rotation of polarisation axis is rather slower than the rf frequency. We will now time average the adiabatic potential ( 3), but we note that in the resonant regime this potential is dominated by the Rabi frequency. As a result the leading term in the time averaged potential simply involves the time averaged Rabi frequency

E(r, t) ∼ hF Ω(r, t) = hF Ω 0 (r) . (10)
Strikingly, we see that in the potential (10) all the orientational dependence has been removed, i.e. the direction of B 0 (r) no longer matters. The effective Rabi frequency is Ω 0 (r) which only depends on the magnitude of B rf (r) and, in this sense, the vectorial nature of the magnetic field has been eliminated (along with any holes). The dressed potential (3) shows that trapped atoms will tend to prefer a region of resonance if other forces, such as gravity, can be neglected. If an atom is in the nonresonant regime the detuning δ(r) = ω rfω 0 (r) plays a role in the potential. In the case of a rotating polarisation axis the dressed potential is no longer independent of orientation. To see this we can examine the detuning dominated regime |δ(r)| ≫ Ω(r, t) where

E(r, t) = hF |δ(r)| 1 + (Ω(r, t)/δ(r)) 2 1/2 ∼ hF |δ(r)| 1 + Ω 2 (r, t) 2δ 2 (r) + ... , (11)
so that using equation ( 9) and performing the time average we find

E(r, t) ∼ hF |δ(r)| 1 + Ω 2 0 (r) 4δ 2 (r) (3 -B 2 0y /B 2 0 ) + ... . (12)
The explicit presence of a term involving B 0y demonstrates the orientation dependence in the non-resonant regime.

The validity of the results in this section is ensured by the conditions ω trap ≪ ω p ≪ ω 0 [13], where ω trap represents the mechanical oscillation frequency of the atom. The inequality ω trap ≪ ω p ensures that as the atom oscillates in a trap it experiences an average potential E(r, t). At the same time the Larmor frequency must remain a good concept and hence ω p ≪ ω 0 . For a resonant rf atom trap the Larmor frequency ω 0 will be essentially the same as the rf frequency ω rf . The trap frequency can be very low (of order Hz), but the highest values are in a direction transverse to the iso-B surface and depend on the local field gradient and Rabi frequency. For the quadrupole field described in Ref. [7], with 10 MHz rf and a Rabi frequency of 20kHz, the conditions become: 1 kHz ≪ 100 kHz ≪ 10 MHz. Here a geometric mean of ω trap and ω rf has been taken for the value of the rotation frequency ω p . For this example the conditions appear to be feasible, but at their limit.

III. ROTATION OF LINEAR POLARISATION DIRECTION

The scheme is less successful in the case of a rotating linear polarisation direction. We can still close any hole, but there remains some orientation dependence. We should note that rotating the linear polarisation axis is in itself not the same as having a circular polarisation. This is because the axis rotation frequency ω p is supposed to be much less than the rf frequency ω rf . This is a requirement if we want to time average the adiabatic potential, i.e. to make an effective potential for the mechanical motion of the atom whilst the spin dynamics and RWA are both obeyed.

If we take the linear rf polarisation direction to be êl (t) with, analogously to equation (6),

êl (t) = cos ω p t ẑ + sin ω p t x (13)
then within the RWA, the effective interaction is given by equation ( 1). This time, instead of equation (7) we use

|ê l (t) × B 0 | = B 0 |sin θ| = B 2 0y + (cos ω p tB 0x -sin ω p tB 0z ) 2 . ( 14
)
Then if we use equation ( 1) and include the time averaging,

Ω eff = Ω(t) = Ω 0 sin θ(t) , (15)
where sin θ is to be given by equation ( 14). The time average is performed using standard integrals to obtain

Ω eff = 2Ω 0 π E(k) , (16)
where E(k) is a complete elliptic integral of the second kind with

k = 1 - B 2 0y B 2 0 . (17)
In this case Ω eff does not depend on B 0 alone. In fact Ω eff has values which lie between 2Ω 0 /π and Ω 0 , depending on the relative orientation of the fields. As in the case of a rotating circular polarisation, an orientational dependence is found in the non-resonant regime. This time we can show that by substituting Ω(r, t) = Ω 0 (r) sin θ(r, t) into the dressed potential (3) and performing the time average we find

E(r, t) = 4hF δ 2 (r) + Ω 2 0 (r) E(k δ ) (18)
where

k δ (r) = Ω 0 (r) δ 2 (r) + Ω 2 0 (r) k(r) . (19)
The source of the orientational dependence is k(r), which is given by equation (17).

IV. SUMMARY

The origin of holes in dressed state potentials is the vectorial nature of the magnetic field interaction itself. We should emphasise that not all dressed state systems produce holes. In the case of linearly polarised rf, the strongest coupling (Rabi frequency) is obtained when the rf polarisation is orthogonal to the static magnetic field. Within the rotating wave approximation (RWA) there is no coupling at all if the polarisation is in the same direction as the static magnetic field B 0 : this is essentially the source of a hole.

A hole may persist even if circular polarisation is used. However, we have seen that by continuously rotating the polarisation axis, the hole can be eliminated in a time averaged adiabatic potential (TAAP). Furthermore the coupling becomes independent of the relative orientation of the static and rotating magnetic fields (equation (10)): in effect the vector nature of the magnetic field is lost. The hole is removed even if a rotating linear polarisation is used. However, in that case, the resulting coupling is not completely independent of orientation. For off-resonant atoms the dressed potentials are never independent of field orientation for the schemes considered here. So although there are situations where complete dressed rf potential surfaces have no holes, even if there are holes, those holes can be circumvented by the use of the TAAP technique. This adds to the flexibility and applicability of trapping with dressed rf potentials.

FIG. 1 :

 1 FIG.1:(Colour online) Schematic showing the co-ordinate system used in section II with a static field B0 and the rf vector B rf which rotates rapidly about the polarisation axis êc with a frequency ω rf . The polarisation axis êc itself rotates about the y-axis at an angular frequency ωp.

Acknowledgments

BMG would like to thank the Leverhulme Trust and the CNRS for supporting this research. We also thank I.G. Hughes and V. Lorent for discussions. Laboratoire de physique des lasers is UMR 7538 of CNRS and Paris 13 University. LPL is member of the Institut Francilien de Recherche sur les Atomes Froids (IFRAF).


Daniel Barlet

Changements de variable pour un thème

come

Changements de variable pour un th'eme.

Introduction

Quand on considère un morphisme propre f : X → C d'une variété complexe X sur une courbe lisse C, telle que l'on ait {d f = 0} ⊂ f -1 (s 0 ) au voisinage du point s 0 de C, le choix d'une coordonnée locale sur C près de s 0 permet de se ramener à la situation de dégénescence standard d'une famille de variétés complexes paramètrée par un disque f : X → D ⊂ C, la fibre singulière étant au-dessus de l'origine. On est alors dans la situation où l'on dispose d'une fonction holomorphe 1 propre f et on peut alors construire les faisceaux de (a,b)-modules déduits des complexes (Ker df ) • , d • ) grâce à la multiplication par la fonction numérique f (voir [B.08] théorème 2.1.1). Mais il est clair que la construction, et précisément via la fonction numérique f , dépend du choix de la coordonnée locale choisie près du point s 0 de la courbe C. L'objet de ce qui suit est d'étudier le comportement de nos constructions par un changement de coordonnée locale centrée en s 0 . Le résultat que nous obtenons est le théorème suivant. Le lecteur trouvera les définitions des invariants fondamentaux et des paramètres principaux d'un thème [λ]-primitif dans les rappels de la section 2. Mais on notera déjà que les invariants fondamentaux d'un thème [λ]-primitif sont localement constants dans une famille holomorphe et déterminent le polynôme de Bernstein de ce thème, alors que les paramètres principaux sont des nombres complexes (non nuls) qui ne dépendent que de la classe d'isomorphisme du thème considéré, mais varient holomorphiquement avec le paramètre dans une famille holomorphe. Nous montrerons par un exemple explicite, que, cependant, la classe d'isomorphisme d'un thème [λ]-primitif de rang k ≥ 3 n'est pas, en général, invariante par changement de variable, ce qui montre l'intérêt de l'invariance des paramètres fondamentaux donnée par notre résultat. Nous conclueront en montrant que la notion de famille holomorphe de thèmes [λ]-primitifs est stable par changement de variable.

2 Position du problème. Définition 2.0.4 (Invariants fondamentaux) La suite λ 1 , . . . , λ k des exposants des quotients successifs de la suite de Jordan-Hölder d'un thème [λ]-primitif est équivalente à la donnée de λ 1 , p 1 , . . . , p k-1 où les p j sont définis en posant λ j+1 = λ j + p j -1. Les p j sont dans N. Nous appellerons les nombres λ 1 , p 1 , . . . , p k-1 les invariants fondamentaux du thème [λ]-primitif considéré Rappelons (voir [B.09b]) qu'un thème [λ]-primitif de rang k est toujours isomorphe à un thème du type ci-dessus, les S j pouvant être choisis polynomiaux en b (avec S j (0) = 1 ) et on peut borner les degrés des S j en fonction des invariants fondamentaux (voir les familles standards dans [B.09b]).

Exemple. Soit λ ∈ C, ℜ(λ) > 0 et soit k ≥ 1 un entier. Notons Ξ (k-1) λ := k-1 j=0 C[[b]].s λ-1 . (Log s) j j! le (a,b)-module défini par les relations a.s λ-1 := λ.b.s λ-1 et a.s λ-1 . (Log s) j j! = λ.b.s λ-1 . (Log s) j j! + b. s λ-1 . (Log s) j-1 (j -1)! pour j ∈ [1, k -1]. C'est
On notera que si E ⊂ Ξ k-1 λ avec k = rg(E),
(a -λ 1 .b).S -1 1 .(a -λ 2 .b).S -1 2 . . . S -1 k-1 .(a -λ k .b) où S j ∈ C[[b]] vérifie S j (0) = 1, avec la convention α j = ∅ si p j = 0.
3 Le théorème du changement de variable.

Lemme

3.0.8 Soit θ ∈ C[[a]] vérifiant θ(0) = 0 et θ ′ (0) = 0. Alors on a un (unique) homomorphisme de C -algèbre unitaire Θ :  →  vérifiant Θ(a) := α = θ(a) et Θ(b) := β = b.θ ′ (a). Preuve. Les relations a n .b = b.a n +n.b.a n-1 .b valables pour tout n ∈ N donnent la relation θ(a).b = b.θ(a) + b.θ ′ (a).b dans  pour toute série formelle θ ∈ C[[a]].
Alors on aura, toujours dans  :

α.β = θ(a).b.θ ′ (a) = (b.θ(a) + b.θ ′ (a).b).θ ′ (a) = β.α + β 2
ce qui montre notre assertion.

Nous appellerons changement de variable un

θ ∈ C[[a]] vérifiant θ(0) = 0 et θ ′ (0) = 0.
-1 .a de θ * (E) est θ * (E ♯ ), où E ♯ est le saturé de E par b -1 .a et θ * (E) a le même polynôme de Bernstein que E. Preuve. Si F ⊂ E est stable par a et b, il est régulier car E l'est, et il est donc stable par α et β. La réciproque résulte du fait qu'il existe un changement de variable η ∈ C[[α]] tel que a = η(α). Si F est normal dans E, soit x ∈ E vérifiant β.x ∈ F . On a donc θ ′ (a).x ∈ F , et comme θ ′ (a) est un inversible de C[[a]], on en conclut que θ * (F ) est normal dans θ * (E). Montrons que θ * (E) est à pôle simple si E l'est. Mais comme θ ′ (a) est inversible dans  et E régulier, on aura β.E = b.E. Alors α.E ⊂ a.E ⊂ b.E = β.E, et θ * (E) est bien à pôle simple.
Comme l'espace vectoriel E b.E est invariant par changement de variable, montrons l'invariance de l'action de b -1 .a sur cet espace vectoriel. On se ramène immédiatement au cas θ ′ (0) = 1. On a alors en posant θ(a) = a + a2 .η(a)

β -1 .α = θ ′ (a) -1 .b -1 .θ(a) = (1 + a 2 .η ′ (a) + 2a.η(a)) -1 .(b -1 .a).(1 + a.η(a)) dans E et comme a induit l'application nulle sur E b.E, l'invariance en découle. Si E est régulier, il existe une inclusion de E dans un (a,b)-module G à pôle simple. On a alors θ * (E) ⊂ θ * (G) qui est à pôle simple. D'où la régularité de θ * (E). On a obtenu de plus que le saturé de θ * (E) est contenu dans θ * (E ♯ ), où E ♯ désigne le saturé de E par b -1 .a dans E[b -1 ]. Pour obtenir l'égalité considérons un sous-(a,b)-module à pôle simple F vérifiant θ * (E) ⊂ F ⊂ θ * (E ♯ ). Alors le changement de variable inverse θ -1 donnera E ⊂ θ -1 * (F ) ⊂ E ♯ . Comme θ -1 * (F ) est à pôle simple, on aura, puisque E ♯ est le plus petit module à pôle simple contenant E, θ -1 * (F ) = E ♯ , d'où l'égalité θ * (E ♯ ) = θ * (E) ♯ .
Remarques.

1 ].e λ et la b-compatibilité assurent de l'existence et de l'unicité de χ n pour tout entier n, il nous suffit de montrer que χ n dépend polynomialement de θ. Fixons p ∈ N, p ≫ 1. Alors on a deux bases de l'espace vectoriel V p := E λ b p .E λ , la base b q .e λ et la base β q .e λ , q ∈ [0, p -1]. Et on a clairement β q .e λ = b q .e λ + b q+1 .V pour tout q. Ceci montre que ce changement de base est triangulaire avec des 1 sur la diagonale. Donc de déterminant égal à 1. Par ailleurs, comme β dépend polynomialement de θ, la matrice de ce changement de base est polynomiale en θ. Sa matrice inverse également puisque le déterminant vaut 1. Ceci permet de conclure, car pour calculer le coefficient de β m dans χ n , on peut se contenter de travailler dans V n+m+1 .

Corollaire 3.0.18 Dans la situation précédente il existe une unique

S λ θ ∈ C[[b]] vérifiant S λ θ (0) = 1 et dépendant polynomialement de θ ∈ C N -1 tel que l'on ait α θ .ε θ λ = λ.β θ .ε θ λ si l'on pose ε θ λ = S λ θ (β θ ).e λ .
Preuve. Comme on suppose λ fixé dans la suite, on omettera l'exposant λ pour les éléments de C Remarque. Si on part de z = 0 et λ 1 ∈ 1+Q + * , alors E est un thème de rang 2. Si l'on sait par ailleurs que pour tout θ le (a,b)-module θ * (E) est encore un thème, cela impliquera que z θ n'est pas nul. Or les seuls polynômes qui ne s'annulent jamais sur C N -1 sont les polynômes constants. Cela montrera que l'on a z θ ≡ z pour tout θ. Ce raisonnement sera la clef de la démonstration du théorème qui suit.

Théorème 3.0.20 Soit E un thème [λ]-primitif de rang k et d'invariants fondamentaux λ 1 , p 1 , . . . , p k-1 . Notons z 1 , . . . , z k-1 les paramètres des thèmes [λ]-primitif de rang 2 F 2 , F 3 F 1 , . . . , F k F k-2 . Soit θ un changement de vari- able de la forme θ(a) = r.a + ∞ j=2 θ j .a j avec r = 0. Alors θ * (E) est un thème [λ]-primitif de rang k et d'invariants fondamentaux λ 1 , p 1 , . . . , p k-1 . Les paramètres des thèmes [λ]-primitif de rang 2 θ * (F 2 ), θ * (F 3 F 1 ), . . . , θ * (F k F k-2 )
sont les nombres r p 1 .z 1 , . . . , r p k-1 .z k-1 .

Démonstration. Commençons par montrer qu'il suffit de prouver le résultat en rang 2. En effet si l'on sait déjà que si E est un thème [λ]-primitif de rang 2 d'invariants fondamentaux λ 1 , p 1 et de paramètre z, alors θ * (E) est un thème [λ]-primitif de rang 2 ayant mêmes invariants fondamentaux et de paramètre r p 1 .z, on en déduit les propriétés suivantes pour un thème [λ]-primitif de rang k et d'invariants fondamentaux λ 1 , p 1 , . . . , p k-1 : i) D'abord θ * (E) est monogène régulier de rang k. Si on suppose que pour un thème [λ]-primitif F de rang k -1 θ * (F ) est encore un thème [λ]-primitif F de rang k -1 avec les mêmes invariants fondamentaux que F , alors le lemme 3.0.13 permet de montrer qu'il en sera de même en rang k. Le rang 1 étant clair, il suffit donc bien de traiter le cas du rang 2.

ii) De même la quasi-invariance7 des paramètres des thèmes quotients F j+2 F j de rang 2 est conséquence de ce résultat pour k = 2, puisque θ * (F j ) est le sous-thème normal de rang j de θ * (E).

Pour traiter le cas de rang 2, montrons déjà que si E est un thème [λ]-primitif de rang 2 et si θ est un changement de variable, alors θ * (E) est un thème [λ]-primitif de rang 2. On a une injection (a,b)-linéaire j : E → Ξ

(1)

λ . On aura donc une injection j : θ * (E) → θ * (Ξ (1) λ ). Comme le lemme 3.0.12 donne un isomorphisme θ * (Ξ

(1) λ ) ≃ Ξ (1)
λ , cela montre que θ * (E) est un thème [λ]-primitif. La quasi-invariance du paramètre est conséquence alors du fait que, pour un changement de variable polynomial8 , le paramètre est une fonction polynomiale de θ qui ne peut s'annuler (sinon on n'aurait pas un thème !). Ceci implique aussi le cas d'un changement de variable général, car pour θ donné et E donné, en remplaçant θ par θ N son développement limité d'ordre N ≫ 1, on aura que (θ N ) * (E) est isomorphe à θ * (E). D'où le cas général.

Exemple. Soit ϕ := s λ+p-2 .Log s+S(b).s λ-2 où λ ∈ 1+Q * + , S ∈ C[[b]], S(0) = 0 et p ∈ N * . Alors E := Ã.ϕ ⊂ Ξ (1) λ
est un thème de rang 2. Nous allons calculer pour p ≥ 1 le paramètre de ce thème dont les invariants fondamentaux sont

λ 1 = λ, λ 2 = λ + p -1 et p 1 = p. On a (a -(λ + p -1).b).ϕ = s λ+p-1 λ + p -1 + S(b).s λ-1 + b 2 .S ′ (b).s λ-2 -(λ + p -1).S(b). s λ-1 λ -1 = (λ -1).S(b) + b.S ′ (b) -(λ + p -1).S(b) . s λ-1 λ -1 + ρ.b p . s λ-1 λ -1 où l'on a posé ρ = Γ(λ+p-1) Γ(λ-1) puisque b p . s λ-1 λ -1 = Γ(λ -1) Γ(λ + p) .s λ+p-1 .
On arrive donc, pour p ≥ 1 à l'égalité

(Log s) 2 2 . X = s λ . (Log s) 2 2 -λ. s λ λ . (Log s) 2 2 -b( s λ-1 λ .Log s) X = b(s λ-1 .Log s) = s λ λ .Log s - s λ λ .
Posons Y := (aλ.b).ξ(b).s λ-1 .Log s. On a alors

Y = ξ(b).(a -λ.b).s λ-1 .Log s + b 2 .ξ ′ (b).s λ-1 .Log s = ξ(b). s λ λ + b 2 .ξ ′ (b).s λ-1 .Log s Calculons également Z := (a -λ.b).(η 0 + η 1 .b).s λ-3 : Z = η 0 . λ -2 -λ . s λ-2 λ -2 + η 1 . λ -1 -λ . s λ-1 (λ -2)(λ -1) = -2η 0 . s λ-2 λ -2 -η 1 . s λ-1 (λ -2)(λ -1) On aura donc (1 + b.ξ ′ (b)) -1 .(a -λ.b).e = s λ .Log s λ - s λ λ - 2η 0 λ -2 .(1 + b.ξ ′ (b)) -1 .s λ-2 + - η 1 (λ -1)(λ -2) .(1 + b.ξ ′ (b)) -1 .s λ-1 + (1 + b.ξ ′ (b)) -1 .(ξ(b) + b.ζ ′ (b)). s λ λ
On applique alors (a -(λ + 1).b) ce qui donne un élément de C [[s]].s λ-1 dont les coefficients respectifs u, v, w de s λ-1 , s λ , s λ+1 sont respectivement donnés par Posons alors s :

u := 4η 0 (λ -2)(λ -1) v := - 4η 0 .ξ ′ (0) (λ -2)(λ -1)λ + η 1 (λ -2)(λ -1)λ w := 1 λ + 1 - 4η 0 .(ξ ′′ (0) + 2ξ ′ (0) 2 ) 2(λ -2)(λ -1)λ(λ + 1) + - η 1 .ξ ′ (0) (λ -2)(λ -1)λ(λ + 1) + 2η 0 .(ξ ′′ (0) + 2ξ ′ (0) 2 ) (λ -2)(λ -1)λ(λ + 1) + η 1 .ξ ′ (0) (λ -2)(λ -1)λ(λ + 1) = 1 λ + 1 Donc on trouve 4η 0 (λ -2)(λ -1) . 1 + η 1 -4η 0 .ξ ′ (0) 4η 0 .b + (λ -2)(λ -1) 4η 0 .b 2 + • • • .s λ-1 . Posons S ∈ C[[b]] l'élément
u = η 1 -4η 0 .ξ ′ (0) 4η 0 + ξ ′ (0), α = (λ -2)(λ -1) 4η 0 . On a donc u = η 1 4η 0 et α = (λ -2)(λ -1) 4η
= t.(1 + σ.t) où σ ∈ C. On obtient e = t λ-1 .(1 + σ.t) λ-1 . [Log t + Log(1 + σ.t)] 2 2 + η 0 .t λ-3 .(1 + σ.t) λ-3 + + η 1 t λ-2 .(1 + σ.t) λ-2 λ -2 ce que l'on peut réecrire e = S 1 (t).t λ-1 . (Log t) 2 2 + S 2 (t).t λ .Log t + θ 0 .t λ-3 + θ 1 . t λ-2 λ -2 + S 3 (t).t λ-1 où l'on a S ( t) = 1 + σ.(λ -1).t + 0(t 2 ) S 2 (t) = 2σ + 0(t) θ 0 = η 0 et θ 1 = η 1 + η 0 .(λ -2)(λ -3).σ la valeur de S 3 importera peu. Si on pose ε := S 1 (t) -1 .e on aura ε = t λ-1 . (Log s) 2 2 + ξ(β).t λ-1 .Log t + η 0 .t λ-3 + + (θ 1 -σ.(λ -1)(λ -2).η 0 ). t λ-2 λ -2 + ζ(β).t λ-1 Lemme 5.0.22 Pour chaque n ∈ N on a a n .b = n+1 p=1 n! (n -p + 1)! b p .a n-p+1 .
Preuve. Par récurrence sur n ≥ 0. Les cas n = 0 et n = 1 sont triviaux. Supposons la formule prouvée pour n. On a alors Définition 5.0.25 Soit X un espace complexe réduit. Nous dirons que l'élément θ ∈ O(X) [[a]] est un changement de variable X-relatif si l'on a θ(0) = 0 et θ ′ (0)(x) = 0 pour tout x ∈ X.

a n+1 .b = n+1 p=1 n! (n -p + 1)! a.b p .a n-p+1 = n+1 p=1 n! (n -p + 1)! (b p .a + p.b p+1 ).a n-p+1 = n+2 q=1 (n + 1)! (n + 1 -q + 1)! b q .a n-q+2 puisque n! (n -q + 1)! + n!(q -1) (n -q + 2)! = (n + 1)! (n -q + 2)! .
On a donc pour chaque x ∈ X fixé un changement de variable. Une conséquence immédiate de la proposition 5.0.24 est le théorème suivant de stabilité par changement de variable relatif pour les familles holomorphes de thèmes [λ]-primitifs de rang k.

Théorème 5.0.26 Soit X un espace complexe réduit et soit E une famille holomorphe de thèmes [λ]-primitifs de rang k paramétrée par X. Considérons un changement de variable X-relatif θ ∈ O(X) [[a]]. Alors la famille θ * (E) des θ * (E(x)) x∈X , est holomorphe. Donnons un corollaire également immédiat, mais important de ce théorème et du théorème 3.0.20.

Corollaire 5.0.27 Soit X un espace complexe réduit connexe et soit E une famille holomorphe de thèmes [λ]-primitifs de rang k paramétrée par X. Soit θ ∈ O(X) [[a]] un changement de variable relatif. Notons (λ 1 , p 1 , . . . , p k-1 ) les invariants fondamentaux de cette famille, et notons α 1 , . . . , α k-1 : X → C les fonctions holomorphes sur X données par les paramètres principaux de cette famille. Alors les fonctions holomorphes sur X données par les paramètres principaux de la famille holomorphe θ * (E) sont respectivement r p 1 .α 1 , . . . , r p k-1 .α k-1 , où l'on a posé r := θ ′ (0) ∈ O(X).

  Théorème 1.0.1 Soit E un thème [λ]-primitif de rang k et d'invariants fondamentaux λ 1 , p 1 , . . . , p k-1 . Soit θ(a) := a + θ 2 .a 2 + • • • ∈ C[[a]]un changement de variable. Alors le (a,b)-module θ * (E) est un thème [λ]-primitif de rang k ayant les mêmes invariants fondamentaux que E. De plus les paramètres principaux de θ * (E) sont les mêmes que ceux de E.

  Les algèbres à et Â. Notons à la C -algèbre unitaire suivante : à := { ∞ ν=0 P ν (a).b ν } où les P ν sont des polynômes de C[x]. La multiplication est définie par la relation de commutation a.bb.a = b 2 et le fait que les multiplications à gauche et à droite par a sont continues pour la topologie b-adique. On a alors pour chaque S ∈ C[[b]] la relation de commutation a.S = S.a + b 2 .S ′ où S ′ désigne la dérivée de S par rapport à la variable b. On vérifie facilement que l'on a b n . à = Ã.b n et que à est complète pour la topologie b-adique. Il est aussi facile de voir que l'élément 1 + a ∈ à n'est pas inversible dans Ã. On définit l'algèbre  comme la complétée a-adique de à comme C[a]-module à gauche, c'est-à-dire que  := { ∞ ν=0 P ν (a).b ν } où maintenant les P ν sont des séries formelles dans C[[x]]. Les relations de commutations dans à a n .b = b.a n + n.b.a n-1 .b ∀n ∈ N donnent alors, pour T ∈ C[[x]] la relation T (a).b = b.T (a)+b.T ′ (a).b où

  clairement un (a,b)-module à pôle simple de rang k sur C[[b]]. Définition 2.0.3 Nous appellerons thème [λ]-primitif un sous-Ã-module (à gauche) monogène d'un Ξ (N -1) λ pour un N ∈ N * et un λ ∈ Q + * . Pour tout ϕ ∈ Ξ (N -1) λ , le sous-Ã-module E := Ã.ϕ est un thème. En effet c'est un sous-C[[b]]-module d'un C[[b]]-module libre de rang fini, il est donc libre de rang fini. Comme Ξ (N -1) λ est à pôle simple E est régulier. Et réciproquement tout thème [λ]-primitif est de cette forme. Il est facile de voir que si k -1 est la puissance maximale de Log s qui apparaît effectivement dans ϕ le rang de E sur C[[b]] est égal à k, et l'on peut alors prendre N = k. Rappels. Il a été démontré dans [B.09b] qu'un thème [λ]-primitif E admet une unique suite de Jordan-Hölder et que cette propriété caractérise les thèmes [λ]-primitifs parmi les (a,b)-modules monogènes géométriques 1 . Dans ce cas, si k = rg(E) on a pour chaque j ∈ [0, k] un unique sous-(a,b)-module F j qui est normal de rang j.

  Définition 3.0.9 Soit E un (a,b)-module régulier (ou même, plus généralement, un Â-module). On définit, pour tout changement de variable θ, un nouvel (a,b)module θ * (E), qui sera appelé le changé de variable de E par θ, comme étant le(a,b)-module (resp. le Â-module) obtenu en faisant agir sur E l'élément a ∈ à par α := θ(a) et l'élément b ∈ à par β := b.θ ′ (a). Ceci revient à faire agir  sur E via l'automorphisme Θ, c'est-à-dire que pour u ∈  et x ∈ E on pose u. θ x := Θ(u).x. Proposition 3.0.10 Soit E un (a,b)-module à pôle simple, alors θ * (E) est à pôle simple, on a b n .E = β n .E = b n .θ * (E) pour chaque entier n, et l'action de b -1 .a sur θ * (E) b.θ * (E) est la même 2 que celle de b -1 .a sur E b.E. Soit E un (a,b) régulier et soit θ un changement de variable. Alors θ * (E) est un (a,b)-module régulier de même rang. Ses sous-(a,b)-modules sont les mêmes que ceux de E, et ils sont normaux dans θ * (E) si et seulement s'ils le sont dans E. Le saturé par b

  Lemme 3.0.11 Soit λ ∈ C et E λ := C[[b]].e λ le (a,b)-module de rang 1 défini par la relation a.e λ = λ.b.e λ 3 . Pour tout changement de variable θ on a θ * (E λ ) ≃ E λ . Remarque. Comme on a Aut a,b (E λ ) = C * , c'est-à-dire que le groupe des automorphismes du (a,b)-module E λ est réduit aux homothéties non nulles, l'isomorphisme entre θ * (E λ ) et E λ est unique à un scalaire multiplicatif non nul près. Preuve. On a déjà vu que si E est à pôle simple θ * (E) est également à pôle simple et il est de même rang que E car β.E = b.E montre que l'espace vectoriel E b.E est invariant par changement de variable. Donc θ * (E λ ) est isomorphe à E µ pour un µ ∈ C d'après la classification des (a,b)-modules réguliers de rang 1. Mais l'égalité des polynômes de Bernstein donne µ = λ. Remarque. Une conséquence simple de ce qui précède est que si (F j ) j∈[0,k] est une suite de Jordan-Hölder d'un (a,b)-module régulier E de rang k, les θ * (F j ) j∈[0,k] forment une suite de Jordan-Hölder de θ * (E) et les quotients θ * (F j+1 ) θ * (F j ) sont isomorphes aux quotients F j+1 F j . Lemme 3.0.12 Soit λ ∈ C \ -N. Il existe un unique (a,b)-module E à pôle simple de rang 2 tel que l'action de a dans E b 2 .E soit égale à btout changement de variable et c'est le (a,b)-module Ξ (1) λ ≃ C[[b]].s λ-1 .Log s ⊕ C[[b]].s λ-1 . Preuve. On sait que E admet un sous-(a,b)-module normal isomorphe à E λ , et que, quitte à modifier le second vecteur de base modulo b 2 .E on peut supposer que a.e 2 = λ.be 2 4 ; posons alors a.e 1 = λ.b.e 1 + b.e 2 + b 2 .S(b).e 1 + b 2 .T (b).e 2 . Si on cherche une base ε 1 , ε 2 sur C[[b]] sous la formeε 1 = e 1 + b.U.e 1 + b.V.e 2 et ε 2 = e 2 (*) vérifiant a.ε 1 = λ.b.ε 1 + b.ε 2 et a.ε 2 = λ.bε 2 (seconde condition que l'on a déjà supposée vérifiée), on trouve pour U ∈ C[[b]] l'équation différentielle (1 + b.S).U + b.U ′ = -S (A) puis, U étant ainsi choisi, l'équation différentielle b.V ′ + V = -U.(1 + b.T ) -T. (B)Explicitons les calculs : Pour résoudre (A), notons Σ la primitive sans terme constant de S, et posonsU := Γ.exp(-Σ). Alors (A) devient Γ + b.Γ ′ = -S.exp(Σ) (A')qui a une unique solution dans C[[b]]. La résolution de (B) est alors facile. On en conclut que tout tel (a,b)-module est isomorphe à celui défini par la C[[b]]-base ε 1 , ε 2 et les relations ( * ). Pour λ ∈ -N c'est bien sûr Ξ (1) λ avec ε 1 := s λ-1 .Log s et ε 2 := s λ-1 . Comme un changement de variable de la forme θ(a) = a + a 2 .η(a) ne change pas l'action de a et b sur E b 2 .E quand E est à pôle simple, l'invariance par ces changements de variables résulte de la caractérisation précédente. Pour les changement de variables de la forme θ(a) = ρ.a avec ρ ∈ C * , l'assertion est immédiate. Lemme 3.0.13 Soit E un (a,b)-module monogène régulier [λ]-primitif de rang k ≥ 3 et soit (F j ) j∈[1,k] une suite de Jordan-Hölder de E. Supposons que F k-1 soit un thème ainsi que E F k-2 . Alors E est un thème. Preuve. Soit E λ ⊂ E un sous-(a,b)-module normal de rang 1. D'après le théorème 2.1.6 de [B.09b], il suffit de montrer que E λ = F 1 pour conclure. Considérons l'image de E λ dans le quotient E F k-2 . Le normalisé de cette image est de rang ≤ 1. Ceci montre que cette image est contenue dans F k-1 F k-2 qui est l'unique sous-module normal de rang 1 de E F k-2 puisque l'on a supposé que c'est un thème. Alors on a E λ ⊂ F k-1 qui est un thème. Donc E λ = F 1 qui est l'unique sous-module normal de rang 1 de ce thème. Corollaire 3.0.14 Soit E un thème [λ]-primitif de rang k et soit θ un changement de variable. Alors θ * (E) est un thème [λ]-primitif de rang k. Il a mêmes invariants fondamentaux que E. Preuve. En rang 1 c'est clair. En rang 2 également car si j : E → Ξ (1) λ est une injection (a,b)-linéaire, alors j : θ * (E) → θ * (Ξ (1) λ ) sera une injection (a,b)-linéaire, et on a θ * (Ξ le lemme précédent. Montrons maintenant le résultat par récurrence sur k ≥ 2. Supposons le résultat démontré pour le rang k ≥ 2 et montrons-le en rang k + 1. Soit E un thème [λ]-primitif de rang k + 1. Notons F j le sous-(a,b)-module normal de rang j de E. Alors F k est un thème [λ]-primitif de rang k et donc également θ *(F k ). Comme E F k-1 est un thème [λ]-primitif de rang 2, il en est de même de θ * (E) θ * (F k-1 ) ≃ θ * (E F k-1 ). Comme θ * (E) est monogène [λ]-primitif et admet la suite de Jordan-Hölder θ * (F j ), j ∈ [1, k + 1], le lemme suivant permet de conclure que θ * (E) est un thème. Les invariants fondamentaux étant donnés par les quotients succesifs de l'unique suite de Joran-Hölder de θ * (E), la conclusion réulte de la remarque qui précède le lemme 3.0.12.Définition 3.0.15 Soit f : E → F une application C -linéaire entre deux C[[b]]-modules. On dira que f est b-compatible si on a pour chaque entier n l'inclusion f (b n .E) ⊂ b n .F . Si f est bijective, on dira que f est strictement b-compatible si on a f (b n .E) = b n .F pour tout n. Ceci équivaut à demander que f et f -1 soient b-compatibles.Remarque. Il n'existe pas 5 d'application b-compatible bijective de C[[b]] dans C[[b]] qui ne soit pas strictement compatible. Définition 3.0.16 Soit E un C[[b]]-module libre de type fini et soit f θ : E → E une application C -linéaire dépendant d'un paramètre θ ∈ C N . On suppose que f est b-compatible pour chaque valeur de θ. On dira que f dépend polynomialement de θ si pour chaque x ∈ E et chaque entier n l'application C N → E b n .E qui à θ associe la classe de f θ (x) dans E b n .E est polynomiale. Remarques. 1. Dans le cas d'un élément S θ de C[[b]] dépendant du paramètre θ ∈ C N il est équivalent de demander que chaque coefficient de S θ soit un polynôme en θ ou que l'opérateur de multiplication par S θ de C[[b]] dans C[[b]] soit b-compatible. 2. On notera que si l'on a deux applications C -linéaires b-compatibles f et g de C[[b]] dans C[[b]], dépendant polynomialement d'un paramètre θ ∈ C N , leur composée est encore linéaire b-compatible et dépend polynomialement de θ. En effet le coefficient de b n de g(f (x)) ne dépend que des coefficients de f (x) dans C[[b]] b n+1 . C[[b]] et de l'endomorphisme induit par g sur ce quotient dont la matrice est à coefficients dans les polynômes en θ. Dans la suite on considèrera des changements de variable de la forme θ(a) = a + N j=2 θ j .a j où l'on prendra (θ 2 , . . . , θ N ) ∈ C N -1 comme paramètre. On va déjà étudier ces changements de variables (donc α θ = θ(a) et β θ = b.θ ′ (a)) sur le (a,b)-module E λ pour λ ∈ C \ -N. Lemme 3.0.17 Soit E := E λ = C[[b]].e λ où a.e λ = λ.b.e λ . Il existe pour chaque n ∈ N un élément χ n ∈ C[[u]] dépendant polynomialement de θ ∈ C N -1 tel que l'on ait dans E λ b n .e λ = β n .χ n (β).e λ (1) où l'operateur β := β θ est défini par β := b.θ ′ (a) sur E λ . Preuve. Notons déjà que α = θ(a) est une application C -linéaire b-compatible dépendant polynomialement 6 de θ ∈ C N -1 sur tout (a,b)-module à pôle simple. Il en est alors de même pour β qui est même la composée de b et de l'application linéaire (bijective) strictement compatible θ ′ (a) qui dépend polynomialement de θ. Comme l'égalité C[[b]].e λ = C[[β]

  [[β]] que l'on considèrera. Commençons par remarquer que l'on a α.e λ = λ.b.e λ + N j=2 θ j .λ j .b j .e λ où λ j = λ.(λ + 1) . . . (λ + j -1) pour j ≥ 1, ce qui, en utilisant le lemme précédent nous fournitR θ ∈ C[[β]] dépendant polynomialement de θ ∈ C N -1 tel que α.e λ = λ.β.e λ + β 2 .R θ (β).e λ . L'égalité α.S θ .e λ = λ.β.S θ .e λ donne alors S θ . λ.β.e λ + β 2 .R θ (β).e λ + β 2 .S ′θ .e λ = λ.β.S θ .e λ ce qui, après simplification donne l'équation différentielleS ′ θ + R θ .S θ = 0 et donc S θ = exp -Rθ où Rθ désigne la primitive nulle en 0 de R θ .Comme R θ dépend polynomialement de θ il en sera de même de Rθ et aussi de exp -Rθ puisque la nullité du terme constant de Rθ assure que le coefficient de β p dans l'exponentielle ne dépend que du développement limité à l'ordre p de l'exponentielle. . Proposition 3.0.19 Soit E := à Ã.(aλ.b)(1 + z.b p ) -1 .(a -(λ + p -1).b) où l'on suppose λ ∈ -N et p ∈ N * . On effectue sur E le changement de variable θ(a) = a + N j=2 θ j .a j . Alors θ * (E) est isomorphe au (a,b)-module à Ã.(aλ.b)(1 + z θ .b p ) -1 .(a -(λ + p -1).b), où z θ est un polynôme en θ ∈ C N -1 .

  (a -(λ + p -1).b).ϕ = b.S ′ (b) -pS(b) + ρ.b p . s λ-1 λ -1 ce qui montre que (aλ.b).T -1 (b).(a -(λ + p -1).b).ϕ = 0 où l'on a posé T (b) := (b.S ′ (b) -pS(b) + ρ.b p ). On notera que comme on a supposé S(0) = 0 et p ≥ 1 on a T (0) = -p.S(0) = 0.Le paramètre fondamental de ce thème de rang 2 est donc égal àα := -ρ p.S(0) = -Γ(λ + p -1) p.Γ(λ -1).S(0) puisque la série formelle b.S ′ (b)p.S(p) a un coefficient de b p qui est nul.4 Un contre-exemple.Nous allons montré sur un exemple de rang 3 que les paramètres non principaux ne sont pas. en général, invariants par changements de variables. Commençons par montrer une proposition.Proposition 4.0.21 Soit λ ∈ C tel que λ ∈ 2 + Q * + . Considérons alors l'élément de Ξ b).s λ-1 .Log s + (η 0 + η 1 .b).s λ-3 + ζ(b).s λ-1 où ξ, ζ ∈ C[[b]] et η 0 , η 1 ∈ C, η 0 = 0.Alors le thème [λ]-primitif de rang 3 Ã.e est isomorphe au quotient à Ã.(aλ.b).(1 + u.b + α.b 2 ) -1 .(a -(λ + 1).b).(aλ.b) où les nombres complexes u et α sont donnés par 4η 0 .u = η 1 et 4η 0 .α = (λ -1).(λ -2). 13 preuve. Calculons déjà X := (aλ.b).s λ-1 .

  entre crochets dans la formule précédente. On aura donc (aλ.b).S(b) -1 .(a -(λ + 1).b).(1 + b.ξ ′ (b)) -1 .(aλ.b).e = 0. Posons e 3 := e, e 2 := (1 + b.ξ ′ (b)) -1 .(aλ.b).e, e 1 := S(b) -1 .(a -(λ + 1).b).e 2 . Cherchons maintenant U, V ∈ C[[b]] de manière que l'élément ε 3 := e 3 + U.e 2 + V.e 1 vérifie (aλ.b).ε 3 = e 2 + (ρ + σ.b).e 1 . Cela donne l'équation (aλ.b).ε 3 = e 2 + (b.ξ ′ (b) + b 2 .U ′ (b) + b.U(b)).e 2 + (U(b).S(b) + b 2 .V ′ (b)) = e 2 + (ρ + σ.b).e 1 On veut donc b 2 .U ′ (b) + b.U(b) + b.ξ ′ (b) = 0 ainsi que ρ = U(0) et σ = U ′ (0) + U(0).S ′ (0). Comme (a -(λ + 1).b).b.e 1 = 0, la valeur du nombre σ ne jouera aucun rôle, et on aura ρ = -ξ ′ (0). Alors (aλ).ε 3 = e 2 + (ρ + σ.b).e 1 := ε 2 (a -(λ + 1).b).ε 2 = (S(b)ρ.b).e 1 On obtient donc que Ã.e ≃ Ã.ε 3 est isomorphe à Ã Ã.(aλ.b).(1 + u.b + α.b 2 ) -1 .(a -(λ + 1).b).(aλ.b) avec u et α les coefficients respectifs de b et b 2 dans S(b) + ξ ′ (0).b, ce qui donne

  0 , ce qui prouve notre assertion. Prenons maintenant ξ = ζ = 0. On a donc e := s λ-1 . (Log s) 2 2 + (η 0 + η 1 .b).s λ-3 et Ã.e ≃ Ã Ã.(aλ.b).(1 + u.b + α.b 2 ) -1 .(a -(λ + 1).b).(aλ.b) où les nombres complexes u et α sont donnés par 4η 0 .u = η 1 et 4η 0 .α = (λ -1).(λ -2).

  Lemme 5.0.23 Soit θ ∈ C[[a]] un changement de variable. On note α := θ(a) et β := b.θ ′ (a). Pour chaque S ∈ C[[b]] il existe une suite (S l ) l∈N de C[[b]] telle que l'on ait = l≥0 S l (β).α l dans l'algèbre Â. Preuve. Il suffit de montrer que pour chaque ν ∈ N on peut trouver une suite (S ν,l ) l≥0 dans C[[β]] de manière à vérifier b ν = β ν . l≥0 S ν,l (β).α l avec S ν,0 (0) = θ ′ (0) -ν . Ceci s'obtient facilement par récurrence sur ν. Posons a = η(α), c'est à dire que η := θ -1 au sens de la composition des séries formelles sans terme constant. Si l'on a b ν = β ν . l≥0 S ν,l (β).α l on aura b ν+1 = β ν . l≥0 S ν,l (β).α l .β.η ′ (α) et il suffit d'appliquer le lemme 5.0.22 pour faire avancer la récurrence, en constatant que η ′ (0) = θ ′ (0) -1 . Proposition 5.0.24 Soit X un espace complexe réduit et soit ϕ : X → Ξ (N -1) λ une application k-thématique. Soit θ ∈ C[[a]] un changement de variable. Soit θ * (E ϕ ) le faisceau de O X -modules E ϕ muni des opérations α := θ(a) et β := b.θ ′ (a). Alors θ * (E ϕ ) est un O X [[β]]-module libre de rang k de base ϕ, α.ϕ, . . . , α k-1 .ϕ et qui est stable par α. Donc ϕ est encore k-thématique pour la O X (α, β)-structure de Ξ (N -1) λ définie par α et β. Preuve. Il s'agit de montrer que ϕ, α.ϕ, . . . , α k-1 .ϕ est une O X [[β]]-base de E ϕ , ce faisceau étant manifestement stable par α. Comme on a b.E = β.E, et a k .E ⊂ b.E, la matrice de ϕ, α.ϕ, . . . , α k-1 .ϕ dans la O X -base ϕ, a.ϕ, . . . , a k-1 .ϕ de E b.E est triangulaire avec des 1 sur la diagonale. Ceci montre que ϕ, α.ϕ, . . . , α k-1 .ϕ est une une O X -base de E b.E ≃ E β.E. On a donc bien une O X [[β]]-base. Comme, de plus, on a α k .ϕ ∈ b.E = β.E, on a bien montré que ϕ est k-thématique pour la (a,b)-structure donnée par (α, β).

  ce qui est toujours possible d'après notre définition, on aF j = E ∩ Ξ j-1 λ . Pour p ≥ 1 le nombre α ∈ C * caractérisant la classe d'isomorphisme d'un thème E qui est [λ]-primitif de rang 2 d'invariants fondamentaux (λ 1 , p 1 )sera appelé le paramètre de E. Dans le cas p 1 = 0 nous conviendont que le paramètre est α := ∅.

	Définition 2.0.6 Définition 2.0.7 Soit E un thème [λ]-primitif et soit (F j ) j∈[0,k] ses sous-thèmes
	normaux paramétrés par leurs rangs respectifs. Nous appellerons paramètres prin-
	cipaux du thème E la liste (ordonnée) des paramètres des thèmes de rang 2
	F j+1 F j-1 pour j ∈ [1, k -1]. On les notera α 1 , . . . , α k-1 .
	Ce sont des nombres qui ne dépendent que de la classe d'isomorphisme de E. Mais
	ils ne suffisent en général pas à determiner la classe d'isomorphisme de E en rang
	≥ 3. On notera que ces nombres sont toujours non nuls, et que,si p j = 0 α j peut
	prendre n'importe quelle valeur dans C * .
	Il est démontré dans [B.09b] que les paramètres sont les coefficients α 1 , . . . , α k-1
	respectivement de b p j dans S j si l'annulateur d'un générateur du thème est l'idéal à gauche de à engendré par l'élément
	La classification des thèmes de rang 1 est immédiate, puisqu'elle se réduit à la donnée
	d'un rationnel positif λ = λ 1 ∈ Q + * .
	Rappelons la classification des thèmes [λ]-primitifs de rang 2 est donnée par le
	théorème suivant qui se déduit facilement de la classification des (a,b)-modules
	réguliers de rang 2 donnée dans [B.93] (voir [B.09b]).
	Théorème 2.0.5 Fixons λ 1 > 1 dans Q + * et p 1 ∈ N. Les classes d'isomorphismes
	de thèmes [λ]-primitifs de rang 2 d'invariants fondamentaux est la suivante :
	1. Pour p 1 = 0 on a un unique thème [λ]-primitifs de rang 2 d'invariants fondamentaux (λ 1 , 0) à isomorphisme près ; il est donné par le Ã-module
		Ã Ã.(a -λ 1 .b)(a -(λ 1 -1).b).
	2. Pour chaque p ≥ 1 les classes d'isomorphismes de thèmes [λ]-primitifs
	de rang 2 d'invariants fondamentaux (λ 1 , p 1 ) sont en bijection avec C * . Au nombre α ∈ C * correspond la classe d'isomorphisme du Ã-module (à
	gauche)	Ã Ã.(a -λ 1 .b)(1 + α.b p 1 ) -1 (a -(λ + p 1 -1).b).

  . On prendra garde que si F ⊂ E est un sous-(a,b)-module, il est stable par α et β, mais le sous-(a,b)-module ainsi obtenu (qui est θ * (F )) n'est pas, à priori, isomorphe à F . Le lemme suivant montrera que pour les (a,b)-modules réguliers de rang 1, θ * (E) est toujours isomorphe à E. On verra plus loin que c'est aussi le cas pour thème [λ]-primitif de rang 2, mais que c'est en général faux pour un thème [λ]-primitif de rang ≥ 3. 2. Comme a.E + b.E est un sous-(a,b)-module de E il est immédiat de voir que a.θ * (E) + b.θ * (E) = θ * (a.E + b.E). Un (a,b)-module régulier E est monogène si et seulement si dim C (E (a.E + b.E)) = 1. Cette propriété étant invariante par changement de variable, on en conclut que si E est régulier monogène, pour tout changement de variable θ le (a,b)-module θ * (E) est encore régulier monogène. Donc θ * (E) a le même élément de Bernstein que E. On notera que ceci est une conséquence simple du premier théorème de structure des (a,b)-modules monogènes réguliers de [B. 09a] puisque pour u ∈ Â la forme initiale en (a,b) de Θ(u) est la même que celle de u, à un scalaire non nul près (qui est θ ′ (0) k si la forme initiale est de degré k).

Un (a,b)-module régulier est géométrique si les racines de son polynôme de Bernstein sont dans -Q * + .

c'est en fait l'action de β -1 .α sur l'espace vectoriel E β.E ≃ E b.E.

donc E λ ≃ Ã Ã.(aλ.b) ≃ Â Â.(aλ.b).

grâce à la proposition 1.3 de[B.93].

On voit facilement que la matrice est triangulaire dans la base b n , n ≥ 0.

et même de façon affine de (θ 2 , . . . , θ N ).

par rapport au caractère θ → θ ′ (0) p du groupe des changements de variables, pour un thème de rang 2 d'invariants fondamentaux (λ 1 , p).

c'est-à-dire de la forme θ(a) = r.a + N j=2 θ j .a j .

On a θ 1σ.(λ -1)(λ -2).η 0 = η 1 -2η 0 .σ.(λ -2) ce qui montre que les invariants du changé de variables sont 4η 0 ũ = η 1 -2η 0 .σ.(λ -2) et 4η 0 α = (λ -1)(λ -2) et donc α = α. On constate donc que pour σ = 0 le changé de variable n'est pas isomorphe au thème initial, même si son paramètre principal lui, n'a pas changé, conformément au théorème 3.0.20. On remarquera que le thème de rang 3 considéré a la propriété d'unicité, c'est-à-dire le fait que le couple (α, u) détermine sa classe d'isomorphie. En effet E n'est pas stable car il est de rang 3 et p 2 = 0 et le quotient E F 1 vérifie la propriété d'unicité 9 et End Ã(E) ≃ C . id puisqu'un endomorphisme de rang 1 devrait envoyé e λ sur un élément non nul de E λ+1 . On peut alors appliquer la proposition 3.3.6 de [B.09b] pour conclure.5 Le cas d'une famille holomorphe.Le but de ce paragraphe est de montrer la stabilité de la notion de famille holomorphe de thèmes [λ]-primitifs par un changement de variable. On obtiendra même cette stabilité dans le cas relatif, c'est-à-dire quand le changement de variable dépend holomorphiquement du paramètre de la famille holomorphe. Commençons par une formule : 9 c'est toujours le cas en rang 2.