\section{INTRODUCTION}
The development of multi-agent systems has grown rapidly in recent years. Compared to single-agent systems, multi-agent systems are more efficient and feasible for tackling some challenging tasks. Research topics on the multi-agent system like formation control, cooperative logistics system, or coverage control are gaining much interest and attention. In this paper, we focus on the coverage control. \par
Coverage control refers to the problem of controlling a group of robots to cover an environment and perform certain tasks, which is significant in many applications. One emergent case is about robots used for monitoring the coastal area and detecting accidents cooperatively. Another case is about robots covering an environment to sense life signals and assist the rescue in a disaster. These applications have pushed the development and conduction of many researches about coverage control from different perspectives.\par
Numbers of research aim to maximize the sensing performance by finding the optimal positions and weights of the robots. For a group of identical robots with sensing cost equals to the square of the distance, Cortés et al.~\cite{Cortes} found that the move-to-centroid algorithm will maximize the overall sensing performance of a known, convex environment. Schwager et al.~\cite{Schwager} extended it to unknown dynamical environments by using sensory information. The algorithm was also extended for non-convex environments by Breitenmoser et al.~\cite{Breitenmoser}. Marier et al.~\cite{Marier} considered the degradation of the sensors on robots, maximized the sensing performance by the move-to-centroid and-compute-weight approach. Carron et al.~\cite{Carron} solved the coverage control problem for unknown sensory functions and provided an algorithm that can perform estimation on sensory functions and coverage control at the same time. \par
The above researches assumed the robots are monitoring their allocated areas from fixed positions. It might be less efficient compared to the approach that considers robots are monitoring their allocated areas by patrolling them, especially when the area is large and the sensing range of each robot is limited. The patrolling approach leads to the consideration of workload balancing in the coverage control problem. Pavone et al.~\cite{Pavone_1}, \cite{Pavone_2} considered the workload balancing tasks with a group of identical robots to cover a non-uniform environment. Pierson et al.~\cite{Pierson_1}, \cite{Pierson_2} first used the move-to-centroid approach to update the robots' positions and then updated the weights by the estimation of actuation and sensing performance. Turanli and Temeltas~\cite{Turanli_1}, \cite{Turanli_2} had a similar approach but proposed a different estimation method. \par
In this paper, we consider the environment coverage task by a team of robots with heterogeneous capabilities. The robots will patrol every point in their allocated cells and hence ratios of the allocated areas are aimed to follow their capabilities ratios. The motivations of our works include: \par
\begin{enumerate}
    \item The capabilities of the robots can be heterogeneous due to many reasons like the difference in robots' types, aging level, etc. They can also change dynamically because of the variation in power consumption. It is more efficient to maintain the assignment of larger cells to the stronger robots.
    \item Most existing methods update the positions of the robots' generators using the move-to-centroid approach proposed by Cortés et al.~\cite{Cortes}, which considers the coverage performance for the robots with fixed positions, instead of patrolling the cells.
\end{enumerate}
The main contributions are summarized as follows: \par
\begin{enumerate}
    \item We design a coverage control system that optimizes the positions and weights to minimize the error between allocated area ratios and capability ratios, where capabilities can be different initially and can be change dynamically.
    \item We propose a new cost function that directly considers the area ratios. The cost function is differentiable and the gradients can be computed in a distributed manner.
    \item We propose to use the block coordinate descent (BCD) method to optimize the two blocks of variables in the cost function. Gradient based method is used in the optimization for each block. The gradients are also computed in this paper.
\end{enumerate}
The system setup, including the system objective and architecture, will be presented in section \ref{section:setup}. Section \ref{section:method} will introduce the space partitioning methods followed by the optimization including the BCD method and gradient descent method. The proof of convergence will also be provided. Section \ref{section:simulation} shows Matlab simulation results of the proposed coverage control system with changing capabilities and removal of robots. The conclusion will be drawn and some future work will be discussed in section \ref{section:conclusion}.\par

\section{System Setup} \label{section:setup}
In this paper, a group of $n$ robots with positions $\mathcal{X} = \{ x_1, x_2, \ldots, x_n \}$ is considered to cover a known, bounded environment $Q \subset \mathbb{R}^2$ and to perform patrolling or monitoring task. The robots might not be identical and each robot has a non-negative capability factor $C_i \in \mathbb{R}_{\geq 0}$ which reflects its capability to patrol an area. Depending on the purpose, the capability can be defined by any criterion of the robot. For example, it can be a function of its remaining battery power if the target is to balance the duration of the robots, and it can be depended on its mobile speed if we aim to maximize the performance of the system. \par

\subsection{Objective}
The objective of the system is to allocate different portions of $Q$, denoted as $\mathcal{W} = \{ W_1, W_2, \ldots, W_n \} \subseteq Q^n$, to $n$ different robots according to their capabilities. To generate $\mathcal{W}$, each robot $i$ has its corresponding generator located at $p_i \in Q$ with weight $w_i \in \mathbb{R}$. We define $\mathcal{P}=\{p_1,p_2, \ldots,p_n\}$ as the positions and $\mathbf{w}=\{w_1,w_2,\ldots,w_n\}$ as the weights of all generators. The collection of all $n$ generators is defined as $\mathcal{N} = \{ 1,2, \ldots, n \}$. All the cells $W_i \ \forall i\in \mathcal{N}$ can only overlap on their boundary and they fully cover $Q$, i.e., $\bigcup_{i = 1}^n W_i = Q$. Define the area of $Q$ be $A$ and the area of $W_i$ be $A_i$. The area ratios of the final allocated cells among different robots are aimed to follow the ratios of their capabilities, i.e., $\frac{A_i}{A_j} = \frac{C_i}{C_j} \ , \ \forall i,j \in \mathcal{N}$. \par

\subsection{Systems Architecture}
Fig.~\ref{fig:System Architecture} shows the architecture of the coverage control system. There are two types of component in the system, including a centralized synchronizing machine and a team of $n$ robots. The synchronizing machine is used to synchronize all the robots and the robots are used to cover the environment and perform patrolling or monitoring tasks. It is assumed that limited communication between the synchronizing machine and robots is already established.

\begin{figure}[t]
    \centering
    \includegraphics[width=.48\textwidth]{Figure/System_architecture.PNG}
    \setlength{\belowcaptionskip}{-15pt}
    \caption{System Architecture}
    \label{fig:System Architecture}
\end{figure}

\subsubsection{Centralized Synchronizing Machine}
The purpose of the centralized synchronizing machine is to synchronize all the robots, including their normalized capabilities $c$, the optimization state, and the operational state. \par
The normalized capabilities $c = \{ c_1, c_2, \ldots, c_n \} \in \mathbb{R}^n_{\geq 0}$ will be used in the optimization. It is obtained by $l_1$-normalizing the capabilities of all robots. Since the capabilities are non-negative, the $l_1$-normalization of the capabilities are as following.
\begin{equation}
    \label{eqn:norm. cap.}
    c_i = \frac{C_i}{\sum_{k=1}^n C_k} \quad \forall i \in \mathcal{N}
\end{equation} \par
The computation of the normalized capability $c_i$ takes the capabilities of all robots, which might vary over time due to many reasons like decreasing in robots' remaining battery power or gain/removal of robots. To maintain the accuracy of $c$, the synchronizing machine keeps receiving the capabilities of all robots $C = \{C_1,C_2,\ldots,C_n\}$, and sends the corresponding $c_i$ to each robot $i$. \par
The partition of $Q$ depends on the generators' positions $\mathcal{P}$ and weights $\mathbf{w}$. The Block Coordinate Descent (BCD) method is used to optimize two blocks of variables alternately. Hence, a synchronized optimization state on which blocks to optimize is needed for all robots. The optimization state will toggle if the synchronizing machine received convergence signals from all robots or the run time is too long. \par
The operational state is the instruction sent to all robots in order to synchronize the robots' operation. The operational state can be ``initialing" or ``patrolling". The system will start from initialing state, and it will change to patrolling state if all robots' generators converge in both positions and weights. \par

\subsubsection{Robots}
The task of the robots is to patrol or monitor a known environment. All robots are assumed to be equipped with a good positioning system and actuation system so that they know their global positions and they are capable to move to any target position $\hat{x}_i \in Q$. Besides the communication with the synchronizing machine, robots are assumed to be able to communicate locally with their neighbours to exchange the information of $A_i$, $c_i$, $p_i$, and $w_i$. With all the neighbour generators' positions and weights, robot $i$ is capable to find $W_i$ and calculate its cell area $A_i$ by the Shoelace formula \cite{Shoelace formula}. \par
Depending on the optimization state from the synchronizing machine, robots will compute the gradient and update their generator's positions or weights in a distributed manner. It will send a convergence signal to the synchronizing machine if the change in the optimization variable is small. \par
Behaviors of robots are depending on the operational state received from the synchronizing machine. The target position of any robot $i$ is designed as follow,
\begin{equation}
    \label{eqn:target position}
    \hat{x}_i = \
    \begin{cases}
        p_i & \text{if operational state =``initialing"}   \\
        patrol(W_i) & \text{if operational state = ``patrolling"}
    \end{cases}
\end{equation} \par
When the operational state is ``initialing", $\hat{x}_i$ follows $p_i$ to move to its optimal cell position. When the operational state is ``patrolling", $\hat{x}_i$ updates to patrol its allocated cell $W_i$ by following any single cell coverage path planning algorithms, for example CPP algorithms in Cabreira et al. study~\cite{Cabreira}. \par

\section{Coverage Control Method} \label{section:method}

\subsection{Space Partitioning Method}
In this sub-section, two important partitioning methods, Voronoi diagram partition and power diagram partition, will be discussed. Cells of robots $\mathcal{W}$ are generated by their generators' positions $\mathcal{P}$ and weights $\mathbf{w}$ under these methods. Generator $i$ and generator $j$ are said to be neighbour if and only if their corresponding cells share a common edge, i.e., $\partial W_i \cap \partial W_j \neq \emptyset$ and $i \neq j$. The collection of all neighbours of generator $i$ is defined as $\mathcal{N}_i \subset \mathcal{N}$.

\subsubsection{Voronoi Diagram Partition}
The cell corresponding to generator $i$ under Voronoi diagram partitioning method is defined as $W_i = \{ q \in Q \ | \ d(p_i,q) \leq d(p_j,q) , \ \forall j \in \mathcal{N}_i \}$, where $d(a,b) = \norm{a-b}$. It can be computed by the positions of its generator and neighbour generators. All cells in Voronoi diagram are non-empty and the generators are always located in their corresponding cell. As shown in fig.~\ref{fig:Voronoi}, the common edge of two adjacent cells $W_i$ and $W_j$ is a segment of the perpendicular bisector of $s_{ij}$, where $s_{ij}$ is the segment from $p_i$ to $p_j$. It can be formulated as
\begin{align}
    \label{eqn:Voronoi_edge}
        & \partial W_i \cap \partial W_j = \{ q \in Q \ | \ q = m + dt , \ t \in [t_{min}, t_{max}] \} \nonumber \\
        & \text{with} \quad m = \frac{1}{2} (p_i + p_j), \ d = R_{\pi/2}\frac{p_j-p_i}{\norm{p_j-p_i}} ,
\end{align}
where $R_{\pi/2}$ is the rotation matrix of $\frac{\pi}{2}$, and $t_{min}$, $t_{max}$ can be computed from the vertices of its cell.

\subsubsection{Power Diagram Partition}
The power diagram partitioning method is the generalized version of the Voronoi diagram partitioning method by introducing the additional weights $\mathbf{w}$ to the generators. The cell corresponding to generator $i$ is defined as $W_i = \{ q \in Q \ | \ d(p_i,q,w_i) \leq d(p_j,q,w_j) , \ \forall j \in \mathcal{N}_i \}$, where $d(a,b,w) = \norm{a-b} - w$. It can be computed by the positions and weights of its generator and neighbour generators. Unlike Voronoi diagram, cells in power diagram can be empty and generators might be located outside of their corresponding cell. An example is shown in Fig.~\ref{fig:Power}. The common edge of two adjacent cells $W_i$ and $W_j$ might not be coincident with the mid-point of $s_{ij}$, but it is still perpendicular to $s_{ij}$. The edge is formulated as
\begin{align}
    \label{eqn:Power_edge}
        \partial W_i \cap \partial W_j & = \{ q \in Q \ | \ q = m + dt , \ t \in [t_{min}, t_{max}] \} \nonumber \\
        \text{with} \quad  m & = \frac{1}{2} (p_i + p_j) + \frac{w_i-w_j}{2 \| p_j-p_j \|_2} (p_j - p_i) \nonumber \\
        d & = R_{\pi/2}\frac{p_j-p_i}{\|p_j-p_i\|_2} ,
\end{align}
where $R_{\pi/2}$ is the rotation matrix of $\frac{\pi}{2}$, and $t_{min}$, $t_{max}$ can be computed from the vertices of its cell. The power diagram is equivalent to the Voronoi diagram if and only if the weights of all generators are equal, i.e., $w_i = w_j \ , \ \forall i,j \in \mathcal{N}$.

\begin{figure}[t]
    \centering
        \begin{subfigure}[h]{0.235\textwidth}
            \includegraphics[width=\textwidth]{Figure/Voronoi_diagram_tuned.PNG}
            \caption{Voronoi Diagram}
            \label{fig:Voronoi}
        \end{subfigure}
            \begin{subfigure}[h]{0.235\textwidth}
            \includegraphics[width=\textwidth]{Figure/Power_diagram_tuned.PNG}
            \caption{Power Diagram}
            \label{fig:Power}
        \end{subfigure}
    \setlength{\belowcaptionskip}{-15pt}
    \caption{An example of Voronoi Diagram and Power Diagram}
    \label{fig:Voronoi and Power}
\end{figure}

\subsection{Optimization}
To balance the area allocated to each robot, the target ratios of $A_i$ over the total area $A$ is $c_i$ since $\sum_{i=1}^n c_i = 1$, which gives $c_i = \frac{A_i}{A} \ , \ \forall i \in \mathcal{N}$. After some manipulations of terms, the error of robot $i$ is scaled to the error with the total area $A$ and defined as $\frac{A_i}{c_i} - A \ , \ \forall i\in \mathcal{N}$. The objective function $H$ for the whole system to minimize is designed as the sum of square errors of all robots as follows.
\begin{equation}
    \label{eqn:objective function}
    H = \sum_{i=1}^n (\frac{A_i}{c_i} - A)^2
\end{equation} \par
Given $c_i \ \forall i \in \mathcal{N}$ and $A$, $H$ is a function of the cell area $A_i \ \forall i \in \mathcal{N}$. The partition of cells $\mathcal{W}$ use the power diagram partitioning method shown in section III-A2, which can be found by $\mathcal{P}$ and $\mathbf{w}$. Hence, $H$ is a function of $\mathcal{P}$ and $\mathbf{w}$, which can be written as $H(\mathcal{P}, \mathbf{w})$. \par
At the beginning, $p_i$ is set as the robot initial position $x_i \in Q$ and $w_i$ is set to zero $\forall i \in \mathcal{N}$. Therefore $\mathcal{W}$ follows the Voronoi diagram partitioning method described in section III-A1 and all the generators are located in their corresponding cells. Since there are two blocks of variables, $\mathcal{P}$ and $\mathbf{w}$, can be chosen as the optimization variable for minimizing $H$, the block coordinate descent (BCD) method is used to optimize $H$ alternately as follow,
\begin{align}
    \label{eqn:BCD}
        \text{Position optimization: } & \mathcal{P}^{k+1} = arg \min_{\mathcal{P} \in \mathcal{W}} \ H(\mathcal{P}^k, \mathbf{w}^k) \nonumber \\
        \text{Partition optimization: } & \mathbf{w}^{k+1} = arg \min_{\mathbf{w}} \ H(\mathcal{P}^{k+1}, \mathbf{w}^k) \nonumber \\
        & \text{s.t. } \mathcal{P} \in \mathcal{W},
\end{align}
where $k$ is the number of iterations of the BCD method. \par
After all generators' positions $\mathcal{P}$ and weights $\mathbf{w}$ converged, robots start to patrol their allocated cell while $p_i$ and $w_i$ keep optimizing $\forall i \in \mathcal{N}$ to deal with the dynamic changing of robots' capabilities. Since $\mathcal{P}$ is always lies within $\mathcal{W}$ and all robots follow their corresponding generator's position before patrolling, robots should start their patrolling task in their allocated cells when they switch to patrolling state. Therefore, the patrolling task can be considered as multiple single robot patrolling tasks and those do not need to consider the behavior of the others. \par
Gradient descent based method is used for both optimizations in $\mathcal{P}$ and $\mathbf{w}$. The optimization variables will be updated according to the gradients and the gradients can be computed in a distributed manner. \par

\subsubsection{Position Optimization}
The position optimization optimize the position of the generator $p_i$ for each robot $i$. The change on generators' positions follows
\begin{equation}
    \label{eqn:pos update}

    \Dot{p}_i = u_{p,i} \quad \forall i \in \mathcal{N},
\end{equation}
where $u_{p,i}$ is the gradient based descent update for the position of generator $i$. \par
Consider the gradient of the objective function $H$ with respect to the generator position $p_i$. Since any small step change in $p_i$ can only affect $A_i$ and $A_j \ \forall j \in \mathcal{N}_i$, the gradient $\frac{\partial H}{\partial p_i}$ can be simplified as,
\begin{equation}
    \label{eqn:dh dp}
    \begin{split}
        \frac{\partial H}{\partial p_i}

        & = 2(\frac{A_i}{c_i} - A)(\frac{1}{c_i}) \frac{\partial A_i}{\partial p_i} + \sum_{j \in \mathcal{N}_i} 2(\frac{A_j}{c_j} - A)(\frac{1}{c_j}) \frac{\partial A_j}{\partial p_i} \\
    \end{split}
\end{equation} \par
The derivatives of the areas $A_i$ and $A_j$ can be written as,
\begin{equation}
    \label{eqn:dAi dpi}
    \frac{\partial A_i}{\partial p_i} = \int_{\partial W_i} n_i^T(q) \frac{\partial q}{\partial p_i} dq = \sum_{l \in \mathcal{N}_i} \int_{\partial W_i \cap \partial W_l} n_i^T(q) \frac{\partial q}{\partial p_i} dq \\
\end{equation}
\begin{equation}
    \label{eqn:dAj dpi}
    \frac{\partial A_j}{\partial p_i} = \int_{\partial W_j} n_j^T(q) \frac{\partial q}{\partial p_i} dq = \sum_{l \in \mathcal{N}_j} \int_{\partial W_j \cap \partial W_l} n_j^T(q) \frac{\partial q}{\partial p_i} dq , \\
\end{equation}
where $n_i(q) = \frac{p_j - p_i}{\norm{p_j-p_i}} $ is the outward normal vector of $W_i$, evaluated at any point $q \in \partial W_i \cap \partial W_j, \ j \in \mathcal{N}_i$. \par
For cell $W_j$ with $j \in \mathcal{N}_i$, small change in $p_i$ will only affect the common edge with $W_i$, i.e. $\frac{\partial q}{\partial p_i} = 0 \ \forall q \in \ \partial W_j \cap \partial W_l \text{ and } l \neq i$. In addition, $n_i(q)$ equal to $-n_j(q)$ for any point $q \in \partial W_i \cap \partial W_j$. As a result, \eqref{eqn:dAj dpi} can be simplified and
the gradient of $H$ is expressed as
\begin{align}
    \label{eqn:dh dp 2}
        & \frac{\partial H}{\partial p_i} = 2(\frac{A_i}{c_i} - A)(\frac{1}{c_i}) \sum_{l \in \mathcal{N}_i}D_{il} - \sum_{j \in \mathcal{N}_i} 2(\frac{A_j}{c_j} - A)(\frac{1}{c_j}) D_{ij} , \nonumber \\
        & \text{where} \quad D_{ij} = \int_{\partial W_i \cap \partial W_j} n_i^T(q) \frac{\partial q}{\partial p_i} dq \quad \forall i \in \mathcal{N}
\end{align}
Here $D_{ij}$ is the change in $A_i$ with respect to $p_i$ by considering the common edge $\partial W_i \cap \partial W_j$. \par
From \eqref{eqn:Power_edge}, points on the power diagram cells' edge can be expressed in terms of $t \in [t_{min}, t_{max}]$. By differentiating \eqref{eqn:Power_edge} with respect to $p_i$, we obtain
\begin{align*}
        \frac{\partial q}{\partial p_i} & = \frac{1}{2}I + \frac{w_i-w_j}{2\norm{p_j - p_i}^4} \Psi + \frac{t}{\norm{p_j - p_i}^3} \Omega , \nonumber \\

\end{align*}
where
\begin{align}
        & \Psi =
        \begin{bmatrix}
            (x_j-x_i)^2 - (y_j-y_i)^2  &  2(x_j-x_i)(y_j-y_i) \\
            2(x_j-x_i)(y_j-y_i)  &  (y_j-y_i)^2 - (x_j-x_i)^2 \\
        \end{bmatrix}, \nonumber \\
        & \Omega =
        \begin{bmatrix}
            -(x_j-x_i)(y_j-y_i)  &  (x_j-x_i)^2 \\
            -(y_j-y_i)^2  &  (x_j-x_i)(y_j-y_i) \\
        \end{bmatrix}, \nonumber \\
        & p_i =
        \begin{bmatrix}
            x_i \\ y_i \\
        \end{bmatrix}
        , \quad
        p_j =
        \begin{bmatrix}
            x_j \\ y_j \\
        \end{bmatrix}
        , \quad \forall q \in \partial W_i \cap \partial W_j
\end{align} \par
Finally, $D_{ij}$ is rewritten as
\begin{align}
    \label{eqn:Dij}
        & D_{ij} = \int_{t_{min}}^{t_{max}} n_i^T(q) \frac{\partial q}{\partial p_i} dt \nonumber \\
        & = ( \frac{1}{2\norm{p_j - p_i}} + \frac{w_i-w_j}{2\norm{p_j - p_i}^3}) (t_{max}-t_{min})
        \begin{bmatrix}
            x_j-x_i \\ y_j-y_i
        \end{bmatrix}^T \nonumber \\
        & \quad  + \frac{t_{max}^2-t_{min}^2}{\norm{p_j - p_i}^2}
        \begin{bmatrix}
            -(y_j-y_i) \\ x_j-x_i
        \end{bmatrix}^T
        \quad \forall i,j \in \mathcal{N}
\end{align}
\quad Equation \eqref{eqn:dh dp 2} together with \eqref{eqn:Dij} show the computation of gradient with respect to $p_i$, which can be computed in a distributed manner. To obtain the descent update $u_{p,i}$ for generator $i$, the gradient of $H$ with respect to $p_i$ is multiplied by $-\gamma_{p,i}$, where $\gamma_{p,i} \in \mathbb{R}_{\geq 0} \ \forall i \in \mathcal{N}$. It maintains a small step for the descent and prevents the gradient from being too sensitive by stopping the generators moving too close with each other. The resulting vector will be projected to the boundary of the corresponding cell if it is moving outward to maintain $\mathcal{P} \in \mathcal{W}$. Finally, the position descent update is
\begin{align}

        & u_{p,i} =
        \begin{cases}
            proj(\tilde{u}_{p,i}) & \text{if $p_i \in \partial W_i$ $\land$ $\tilde{u}_{p,i}$ pointing out} \\
            \tilde{u}_{p,i} & \text{otherwise} \\
        \end{cases} \nonumber \\
        & \forall i \in \mathcal{N}, \nonumber \\
        & \text{where} \quad \tilde{u}_{p,i} = -\gamma_{p,i}\frac{\partial H}{\partial p_i}^T
\end{align}

\subsubsection{Partition Optimization}
The partition optimization optimize the weight of the generator $w_i$ for each robot $i$. The update on generators' weights are as following.
\begin{equation}
    \label{eqn:weight update}

    \Dot{w_i} = u_{w,i} \quad \forall i \in \mathcal{N},
\end{equation}
where $u_{w,i}$ is the descent update for weight of generator $i$. \par
By similar arguments in section III-B1, the gradient of $H$ with respect to the generator weight $w_i$ has the form
\begin{equation}
    \label{eqn:dh dw}
        \frac{\partial H}{\partial w_i} = 2(\frac{A_i}{c_i} - A)(\frac{1}{c_i}) \frac{\partial A_i}{\partial w_i} + \sum_{j \in \mathcal{N}_i} 2(\frac{A_j}{c_j} - A)(\frac{1}{c_j}) \frac{\partial A_j}{\partial w_i} \\
\end{equation}
and the derivatives of the $A_i$ and $A_j$ with respect to $w_i$ is
\begin{equation}
    \label{eqn:dAi dwi}
    \frac{\partial A_i}{\partial w_i} = \sum_{l \in \mathcal{N}_i} \int_{\partial W_i \cap \partial W_l} n_i^T(q) \frac{\partial q}{\partial w_i} dq \\
\end{equation}
\begin{equation}
    \label{eqn:dAj dwi}
    \frac{\partial A_j}{\partial w_i} = - \int_{\partial W_i \cap \partial W_j} n_i^T(q) \frac{\partial q}{\partial w_i} dq
\end{equation} \par
Hence, the gradient of $H$ is simplified to
\begin{align}
    \label{eqn:dh dw 2}
        & \frac{\partial H}{\partial w_i} = 2(\frac{A_i}{c_i} - A)(\frac{1}{c_i}) \sum_{l \in \mathcal{N}_i}E_{il} - \sum_{j \in \mathcal{N}_i} 2(\frac{A_j}{c_j} - A)(\frac{1}{c_j}) E_{ij} , \nonumber \\
        & \text{where} \quad E_{ij} = \int_{\partial W_i \cap \partial W_j} n_i^T(q) \frac{\partial q}{\partial w_i} dq \quad \forall i \in \mathcal{N}
\end{align}
Here $E_{ij}$ is the change in $A_i$ with respect to $w_i$ by considering the common edge $\partial W_i \cap \partial W_j$. \par
By differentiating \eqref{eqn:Power_edge} with respect to $w_i$, we obtain
\begin{equation}
    \frac{\partial q}{\partial w_i} = \frac{1}{2\norm{p_j - p_i}}n_i(q) \quad \forall q \in \partial W_i \cap \partial W_j
\end{equation} \par
Hence, $E_{ij}$ is rewrote as
\begin{equation}
    \label{eqn:Eij}
    \begin{split}
        E_{ij} & = \int_{t_{min}}^{t_{max}} n_i^T(q) \frac{\partial q}{\partial w_i} dt

        = \frac{t_{max}-t_{min}}{2\norm{p_j - p_i}} \quad \forall i,j \in \mathcal{N}
    \end{split}
\end{equation} \par
Equation \eqref{eqn:dh dw 2} together with \eqref{eqn:Eij} show the computation of the gradient with respect to $w_i$, which can also be computed in a distributed manner. It is then multiplied by $-\gamma_{w,i}$ to produce the descent update $u_{w,i}$ on the weight of generator $i$, where $\gamma_{w,i} \in \mathbb{R}_{\geq 0} \ \forall i \in \mathcal{N}$. $-\gamma_{w,i}$ is used for maintaining a small step and keep $\mathcal{P} \in \mathcal{W}$. As a result, \par
\begin{equation}
    u_{w,i} = -\gamma_{w,i} \frac{\partial H}{\partial w_i} \quad \forall i \in \mathcal{N}
\end{equation}

\subsubsection{Convergence}
Consider the derivative of the objective function $H$ with respect to time $t$,
\begin{equation}
    \label{eqn:dH dt}
    \frac{dH(\mathcal{P},\mathbf{w})}{dt} = \sum_{i=1}^n \frac{\partial H}{\partial p_i} \frac{dp_i}{dt} + \sum_{i=1}^n \frac{\partial H}{\partial w_i} \frac{dw_i}{dt}
\end{equation} \par
At position optimization, $\frac{dp_i}{dt} = u_{p,i}$ and $\frac{dw_i}{dt} = 0$ $\forall i \in \mathcal{N}$. The derivative of $H$ is
\begin{align*}
    \frac{dH(\mathcal{P},\mathbf{w})}{dt}
    & = \sum_{i=1}^n \frac{\partial H}{\partial p_i} [\sigma_i proj(\tilde{u}_{p,i}) + (1-\sigma_i)(\tilde{u}_{p,i})] \\
    & = \sum_{i=1}^n -\gamma_{p,i} \norm{\frac{\partial H}{\partial p_i}}^2 [\sigma_i \cos{\theta_i}+(1-\sigma_i)] ,
\end{align*}
where
\begin{align}
    & \sigma_i =
    \begin{cases}
        1 & \quad \text{if projection needed}   \\
        0 & \quad \text{otherwise}
    \end{cases} \nonumber
    \quad \forall i \in \mathcal{N} \\
    & \theta_i \in [0,\frac{\pi}{2}] \text{ is the angle between boundary and $\tilde{u}_{p,i}$}
\end{align}
At partition optimization, $\frac{dp_i}{dt} = 0$ and $\frac{dw_i}{dt} = u_{w,i}$ $\forall i \in \mathcal{N}$. The derivative of $H$ is
\begin{equation}
    \label{eqn:dH dt for part.}
    \frac{dH(\mathcal{P},\mathbf{w})}{dt} = \sum_{i=1}^n \frac{\partial H}{\partial w_i} (-\gamma_{w,i} \frac{\partial H}{\partial w_i})
    = \sum_{i=1}^n -\gamma_{w,i} \norm{\frac{\partial H}{\partial w_i}}^2
\end{equation} \par
Combining both position and partition optimization, the derivative of $H$ for the whole system can be expressed as,
\begin{align}
    \label{eqn:dH dt for whole}
            & \frac{dH(\mathcal{P},\mathbf{w})}{dt} = \lambda \sum_{i=1}^n -\gamma_{p,i} \norm{\frac{\partial H}{\partial p_i}}^2 [\sigma_i \cos{\theta_i}+(1-\sigma_i)] \nonumber \\
            & \qquad \qquad \qquad + (1-\lambda)\sum_{i=1}^n -\gamma_{w,i} \norm{\frac{\partial H}{\partial w_i}}^2 , \nonumber \\
        & \text{where}
        \quad \lambda =
        \begin{cases}
            1 & \quad \text{at position optimization}   \\
            0 & \quad \text{at partition optimization}
        \end{cases}
\end{align} \par
Since $\gamma_{p,i}, \gamma_{w,i} \in \mathcal{R}_{\geq 0}$ and $\cos{\theta_i}\in[0,1] \ \forall i \in \mathcal{N}$, the derivative of $H$ with respect to time is always smaller or equal to zero $\forall \ \mathcal{P},\mathbf{w}$. The objective function $H$ decreases monotonically to a local minimum. \par

We summarize the above procedures in the following two algorithms, where $Transmit()$, $Receive()$ control the communication between the synchronizing machine and robot, $receive()$ control the communication between robots locally, $PositionOptimization()$ and $PartitionOptimization()$ find the descent update by the calculation shown above, and $Patrol()$ returns the target position to patrol the cells.
\begin{algorithm}
\caption{An algorithm for each robot $i$}\label{alg:robot}
\begin{algorithmic}[1]
\Loop
    \State $C_i \gets UpdateCapability()$
    \State $Transmit(C_i)$
    \State $c_i \gets Receive(NormalizedCapability)$
    \State $\lambda \gets Receive(OptimizationState)$
    \ForEach {$j \in \mathcal{N}_i$}
        \State $c_j \gets receive(NormalizedCapability)$
        \State $A_j \gets receive(Area)$
    \EndFor
    \State $W_i = ComputeCell()$
    \State $A_i = ComputeCellArea()$
    \If{$\lambda = 1$}
        \State $u_{p,i} \gets PositionOptimization()$
        \State $p_i \gets p_i + u_{p,i}$
        \If{$ \norm{u_{p,i}} < PositionUpdateTheshold $}
            \State $Transmit(converged)$
        \EndIf
    \ElsIf{$\lambda = 0$}
        \State $u_{w,i} \gets PartitionOptimization()$
        \State $w_i \gets w_i + w_{w,i}$
        \If{$|u_{w,i}| < WeightUpdateTheshold $}
            \State $Transmit(converged)$
        \EndIf
    \EndIf
    \\
    \State $OperationState \gets Receive(OperationState)$
    \If{$OperationState = ``initialing"$}
        \State $\hat{x}_i \gets p_i$
    \ElsIf{$OperationState = ``Patrolling"$}
        \State $\hat{x}_i \gets Patrol()$
    \EndIf
\EndLoop

\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\caption{An algorithm for the synchronizing machine}\label{alg:sync mach}
\begin{algorithmic} [1]
\State $\lambda \gets 1$        \Comment{Start with position optimization}
\State $time \gets 0$
\State $keepConverged \gets 0$
\Loop
    \ForEach {$i \in \mathcal{N}$}
        \State $C_i \gets Receive(Capability)$
    \EndFor
    \State $c = ComputeNormalizedCapabilities()$
    \ForEach {$i \in \mathcal{N}$}
        \State $Transmit(c_i, \ \lambda)$
    \EndFor
    \\
    \If{Received converged from all robots}
        \State $\lambda \gets \mod{(\lambda+1, 2)}$
        \State $keepConverged \gets keepConverged +1 $
        \State $time \gets 0$
    \ElsIf{$time \geq timeThreshold$}
        \State $\lambda \gets \mod{(\lambda+1, 2)}$
        \State $keepConverged \gets 0$
        \State $time \gets 0$
    \Else
        \State $time \gets time + 1$
    \EndIf

    \If{$keepConverged \geq 2$}
        \State $Transmit(``Patrolling")$
    \Else
        \State $Transmit(``Initialing")$
    \EndIf
\EndLoop

\end{algorithmic}
\end{algorithm}

\newcommand\imgSizeScale{0.28}
\begin{figure*}[t]
    \centering
    \begin{subfigure}[t]{\imgSizeScale \textwidth}
        \includegraphics[width=\textwidth]{Figure/Simulation/Init_setting_tuned.PNG}
        \caption{Initial setting}
        \label{fig:init_setting}
    \end{subfigure}
    \begin{subfigure}[t]{\imgSizeScale \textwidth}
        \includegraphics[width=\textwidth]{Figure/Simulation/First_converged_tuned.PNG}
        \caption{The first convergence}
        \label{fig:first convergence}
    \end{subfigure}
    \begin{subfigure}[t]{\imgSizeScale \textwidth}
        \includegraphics[width=\textwidth]{Figure/Simulation/Second_converged_tuned.PNG}
        \caption{Second convergence}
        \label{fig:second convergence}
    \end{subfigure}
    \par
    \begin{subfigure}[t]{\imgSizeScale \textwidth}
        \includegraphics[width=\textwidth]{Figure/Simulation/Removed_R1_tuned.PNG}
        \caption{After removing robot 1}
        \label{fig:removed R1}
    \end{subfigure}
    \begin{subfigure}[t]{\imgSizeScale \textwidth}
        \includegraphics[width=\textwidth]{Figure/Simulation/Third_converged_tuned.PNG}
        \caption{Third convergence}
        \label{fig:third convergence}
    \end{subfigure}
    \begin{subfigure}[t]{\imgSizeScale \textwidth}
        \includegraphics[width=\textwidth]{Figure/Simulation/weight_tuned.PNG}
        \caption{The weight $\mathcal{W}$}
        \label{fig:weight}
    \end{subfigure}
    \setlength{\belowcaptionskip}{-15pt}
    \caption{Simulation results on generators' position and weight}
    \label{fig:Simulation result 1}
\end{figure*}

\begin{figure}[t]
    \centering
    \setlength{\belowcaptionskip}{-5pt}
    \includegraphics[width=\imgSizeScale \textwidth]{Figure/Simulation/Optim_state_tuned.PNG}
    \caption{The optimization state $\lambda$}
    \label{fig:opt_state}
\end{figure}
\begin{figure}[t]
    \centering
    \setlength{\belowcaptionskip}{-15pt}
    \includegraphics[width=\imgSizeScale \textwidth]{Figure/Simulation/Obj_func_log_tuned.PNG}
    \caption{The objective function $H$ value in log scale}
    \label{fig:obj_val log}
\end{figure}
\section{Simulation} \label{section:simulation}
In this section, Matlab simulation results of the proposed coverage control system are provided and discussed. \par
Fig.~\ref{fig:init_setting} shows the initial setting of generators' positions which are randomly placed in a rectangular environment with vertices $(0,0), (200,0), (200,100)$ and $(0,100)$. The capabilities of robots are [2 1 1 1 1 1 1 5]. The system starts to run and converges at the configuration in Fig.~\ref{fig:first convergence}. Then the capability of robot 1 is halved to simulate the dynamic changes of robots' capabilities. The system continues and re-converges to the configuration in Fig.~\ref{fig:second convergence}. Fig.~\ref{fig:removed R1} simulates the situation that robot 1 is lost due to some reasons and Fig.~\ref{fig:third convergence} shows the re-converged configuration with seven robots. The evolution of weights is shown in Fig.~\ref{fig:weight}. \par
Fig.~\ref{fig:opt_state} shows the optimization state $\lambda$ defined in \eqref{eqn:dH dt for whole}. The run time threshold for toggling $\lambda$ is set to 100 time steps and robots send convergence signals if $\norm{u_{p,i}} \leq 0.001$ or $|u_{w,i}| \leq 0.01$. When the system converges, all robots send convergence signals and $\lambda$ will be kept toggling. \par
Fig.~\ref{fig:obj_val log} shows the value of the objective function $H$. The change of capability happens at time step 3473 and the removal of robot 1 happens at time step 5148. Consequently, there are sudden jumps on $H$ at those instants. Otherwise, it shows that the value of $H$ is always non-increasing. At the end of the simulation, the value of $H$ is 1431, and the errors between the final allocated area and optimal area are [1.4956 1.464 0.61679 1.4547 1.153 1.1999 -7.384] in square unit.\par

\section{Conclusion and Future Work} \label{section:conclusion}

\addtolength{\textheight}{-9.2cm}

\subsection{Conclusion}
A coverage control system for a team of robots with heterogeneous patrolling capabilities is presented in this paper. We aim to allocate different portions of a bounded environment to different robots according to their capabilities. The objective function is designed as a function of two blocks of variables, the generators' positions and weights. The block coordinate descent method is used to optimize two blocks of variables alternately. The gradient descent method is used for optimizing each individual block of variables and the gradient of the objective function can be computed in a distributed manner. A centralized machine is used for synchronizing the optimization state and operational state of all robots. It will also update the normalized capabilities of robots, which allows the system to deal with dynamic capabilities and team size. Simulations are conducted to illustrate the results of the coverage control system. \par

\subsection{Future Work}
In this paper, the environment is assumed to be equally important at any points. It might be worthwhile for introducing a density function over the environment to indicate the weights of different points. For example, the patrol for accidents will be more efficient if the human density is considered and placed more robots in the high-density region. Besides, we assumed that the ``robot-to-robot" and ``robot-to-synchronizing machine" communications are established perfectly. Flaws in communication might disturb the synchronization of the system and affect performance. In addition, the robots' sensing ranges and the shapes of the allocated cells are not considered in the system. We assumed that the robots visit all the points in their cell for each patrolling cycle in this paper. It is not necessary if the sensing ranges of robots are larger than a single point, and hence better shapes of cells might improve the efficiency of the patrol.


\section{Introduction}

The velocity dispersion of the RR Lyrae stars in the solar
neighborhood is not isotropic; an interpretation of this inequality is
that the galactic system of RR Lyrae orbits is flattened (Woolley,
1978; Hartwick, 1983; Layden 1995). This is to be expected if most of
these local halo \footnote {Following KSK, we have used the word
``halo" in a population sense to describe those field stars that are
physically similar to the stars in halo globular clusters. This seems
appropriate for the BHB and metal-weak RR Lyrae stars which are known
to occur in these clusters but not in the disk (or bulge) globular
clusters.}  stars have a flattened galactic distribution; direct
evidence for such a flattened distribution among the nearby blue
horizontal branch (BHB) stars was recently shown by Kinman, Suntzeff
and Kraft (KSK)(1994).  The more distant halo stars, like the halo
globular clusters, would be expected to have a more isotropic velocity
distribution in accordance with their more spherical spatial
distribution. Ratnatunga and Freeman (1989), however, in their study
of K-giants at the South Galactic Pole (SGP), found that the velocity
anisotropy persisted out to 25 kpc from the galactic plane and that
the velocity dispersion of these distant halo stars was only
$\approx$75 \mbox{km~s$^{\rm -1}$} . White (1989) argued that this result could not be
reconciled with a spherical halo and that the kinematics of the
regions sampled by Ratnatunga and Freeman might be atypical of the
whole halo. Sommer-Larsen and Christensen (1989), however, found a
significantly higher velocity dispersion ($\approx$100 to $\approx$110
\mbox{km~s$^{\rm -1}$}~) in their study of distant BHB stars at the galactic
poles. Some further comments on previous observations at the SGP are
given in the Appendix.

Currently there is uncertainty not only about the velocity dispersion
of the distant halo stars in the direction of the galactic poles but
also about the homogeneity of the distant halo.  Some of the
uncertainty may come from the rather small samples of stars that have
hitherto been available to derive velocity dispersions.  To help
resolve these problems we need pure samples of halo stars that are
unadulterated with thick-disk stars.  Halo tracers that meet this
criterion are the metal-poor RR Lyrae stars ([Fe/H]$\leq$$-$0.9) and
the BHB stars that have been selected by the criteria discussed by
KSK. We discuss here stars of both these types in the three Lick
Astrograph RR Lyrae fields RR~2, RR~3 and RR~4 near the North Galactic
Pole (NGP) (Kinman, Wirtanen and Janes, 1966). The metallicities
[Fe/H] of the RR Lyrae stars in these fields were determined by
Butler, Kinman and Kraft (1979). The BHB stars in RR~4 ( SA~57) are
described by KSK.  The BHB stars in the other two fields were selected
from the AF stars given by Sanduleak (1988); details will be given in
a future paper on the completion of the photometric survey in these
fields by one of us (T.D.K.).  Radial velocities have now been
obtained for the majority of the BHB and RR Lyraes (with B brighter
than $\approx$ 16.5) in these NGP fields; this paper gives a
preliminary discussion of this ongoing work.

\section{Observations and Reductions}

\subsection{RR Lyrae Stars}

The radial velocities of 38 RR Lyrae stars in these NGP fields are
taken from a larger radial velocity study of RR Lyrae stars by Pier
(1996).  The observations were obtained with the Intensified Image
Dissector Scanner (IIDS) on the Kitt Peak 2.1-m and 4-m telescopes
during the period 1983 February to 1985 May. Spectral coverage was
from 3780 to 4460 \AA~ using the 831 l/mm grating (second order) which
gave a resolution $\approx$2.2~\AA.  Radial velocities were determined
by cross-correlating spectra of the program stars against those taken
as radial-velocity templates (Tonry \& Davis, 1979; Pier,
1983). Details concerning data reduction techniques and radial
velocity measurements will be found in Pier (1996).

Multiple observations were obtained for many of the stars. The gamma
velocities were derived by correcting for the pulsation velocity using
synthetic RR Lyrae velocity curves (Woolley \& Savage, 1971; Liu,
1991); sufficiently contemporaneous ephemerides for these stars are
given by Butler, Kinman and Kraft (1979).  A comparison of the gamma
velocities of stars with repeated measures and with published
velocities indicates that the standard error in a single velocity
measurement is $\pm$15 km/s.  ~

\subsection{BHB Stars}

Some 38 BHB stars were observed in a single five night run in February
1995 with the RC spectrograph at the 4-m Mayall telescope at Kitt
Peak; 15 in field RR~4 (SA~57) and 23 in fields RR~2 and RR~3.  The
program stars cover the magnitude range 11.8$\leq$V$\leq$16.5 and
galactic latitude range 79.\degrees\hskip-1.4mm~1$\leq$b$\leq$88.\degrees\hskip-1.4mm~9. The
spectral resolution was 0.4\AA~ per CCD pixel
(resolution$\sim$0.8\AA~) over the waveband \mbox{$\lambda\lambda$
3880 $-$ 4580}.  The wavelength solutions were based on helium-argon
spectra taken at each slew position.  Details about the reduction
techniques and radial velocity measurements will be given in a
forthcoming paper.

Radial velocities were determined for the program stars by standard
cross correlation techniques (Tonry \& Davis 1979) as described in
KSK.  We used field horizontal branch stars with well-determined
velocities by Green \& Morrison (1993) for the template spectra and
for the nightly zero-points of the velocity system.  The mean
difference (our radial velocities {\it minus} those of Green \&
Morrison) for 13 spectra of HD 60778, HD 74721 and HD 161817 taken
over the five night run is $-$1.0 \mbox{km~s$^{\rm -1}$} and the r.m.s. value of a
single difference is $\pm$1.4 \mbox{km~s$^{\rm -1}$}. These results and the
cross-correlation of the comparison spectra show that the nightly
velocity zero point is accurate to 1.0 \mbox{km~s$^{\rm -1}$}.

The velocities were measured using the technique described by KSK. Two
velocities were measured for each star: v(weak) from the correlation
of the weak lines (with the hydrogen Balmer lines masked out), and
v(H) based on the correlation of the heavily filtered Balmer lines
(with the weak lines masked out).  The r.m.s. difference between the
two velocity measurements was 2.5 \mbox{km~s$^{\rm -1}$}\ for 77 spectra of bright
field giants, and 4.3 \mbox{km~s$^{\rm -1}$}\ for 56 spectra of program stars. The
nightly mean difference between the two systems of velocity
measurements was always less than 1.5 \mbox{km~s$^{\rm -1}$}.

As discussed in KSK, the correlation based on the weak lines produces
a sharper correlation peak (and a somewhat more accurate velocity)
than that based on the hydrogen lines for high S/N data or stars which
have strong metallic lines.  For 90 \% of the program stars, the
weak-line correlation peak was well defined and we could measure
v(weak) .  For the rest of the stars, we used the hydrogen line
correlation peaks to measure the stellar velocity.  The velocity
errors are $\sim 4$ \mbox{km~s$^{\rm -1}$} for most program stars, rising to 8 \mbox{km~s$^{\rm -1}$}
for the fainter stars.

\section{Discussion}
\subsection{Absolute Magnitudes and Distances}

Absolute magnitudes (M$_{\rm v}$) were derived for the BHB stars using
the cubic expression in (B$-$V)$_{\rm 0}$ given by Preston {\it et
al.} (1991) which assumes M$_{\rm v}$ equals +0.6 for the RR Lyrae
stars.  The absolute magnitudes of the RR Lyrae stars were calculated
from:

\begin{equation}
 M_{\rm v} = 1.05 + 0.29[Fe/H]
\end{equation}

which is the mean of the direct and inverse relations given by Feast
(1995).  A mean B$-$V of +0.37 was assumed for the RR Lyrae stars and
their distances were calculated from the mean B magnitudes given by
Kinman \mbox{{\it et al.}}~(1966).  Equation (1) gives M$_{\rm v}$ = +0.59 for
[Fe/H] = $-$1.6 (a characteristic metallicity for our sample). This is
consistent with our assumed M$_{\rm v}$ for the BHB stars. Other
recent estimates of the M$_{\rm v}$ of the RR Lyrae stars
(e.g. Carney, Storm \& Jones, 1992) lie within $\pm$0.20 mag of the
value given by equation (1). The corresponding 10\% uncertainty in our
distances does not affect the conclusions of this paper.

Following KSK, the height Z above the galactic plane was calculated
for each star assuming no reddening. The radial velocities were
corrected to the local standard of rest and for a solar galactic
rotation of 220 \mbox{km~s$^{\rm -1}$}.  The adoption of a larger solar galactic
rotation (e.g. 275 \mbox{km~s$^{\rm -1}$}, Majewski (1992)) would not materially
change our conclusions.

\subsection{Radial Velocities}

The mean radial velocities and their dispersions were calculated separately
for the RR Lyrae stars and BHB stars and are given as a function of Z
in Table 1 and Fig.1. For Z $<$ 4 kpc, we would expect most of the
stars to come from the flatter halo and have a lower radial velocity
dispersion.  We find that the nine stars with Z $<$ 4 kpc have a
velocity dispersion of only 40$\pm$9~\mbox{km~s$^{\rm -1}$}~.  The BHB stars with Z
$<$ 4 kpc at the SGP also show a lower velocity dispersion (for
details see Appendix).  For Z $>$ 4 kpc, both RR Lyrae stars and BHB
stars show a radial velocity dispersion of $\approx$110 \mbox{km~s$^{\rm -1}$}~ in
agreement with the results of Sommer-Larsen \mbox{{\it et al.}} (1989) but not with
those of Ratnatunga and Freeman (1989).  The low velocity dispersion
found by Ratnatunga and Freeman may arise partly from adulteration
with disk stars (see discussion in Sec. 9 and Fig. 19 of KSK).

The {\it mean} radial velocities of both the RR Lyrae and the BHB
stars in the NGP fields are negative in the distance range 4 to 14 kpc
(Table 1) \footnote{ The SGP stars do not show this effect. As noted
in the Appendix, the 15 BHB stars listed by Flynn \mbox{{\it et al.}} (1995) have a
mean velocity of $-$4$\pm$22 \mbox{km~s$^{\rm -1}$}~ while the 19 BHB stars with Z $>$
4 kpc in Pier's sample have a mean velocity of +15$\pm$21 \mbox{km~s$^{\rm -1}$}~.}.
In particular, the twenty four RR Lyrae and BHB stars in fields RR 2
and RR 3 that lie in the range in Z of 4.0 to 11.0 kpc have a mean
radial velocity of $-$59$\pm$16 \mbox{km~s$^{\rm -1}$}.  It is very interesting that
in a 0.3 square degree field in SA~57, Majewski, Munn and Hawley
(1994, 1996) have found stars in the radial velocity range $-$48 to
$-$86 \mbox{km~s$^{\rm -1}$}.  Their sample contains mostly subdwarfs near the
main-sequence turn-off with 5 $\leq$Z$\leq$10 kpc and are in a
relatively small volume of space($\sim$0.03~\mbox{kpc$^{\rm 3}$}~).  Our mean negative
velocity in SA~57 of $-$34$\pm$27 \mbox{km~s$^{\rm -1}$}~ for the sixteen RR Lyrae and
BHB stars in the range in Z of 4.0 to 11.0 kpc is less significant
although there are five of these stars in the Z range of 4.6 to 6.2
kpc that have a mean radial velocity of $-$108$\pm$37 \mbox{km~s$^{\rm -1}$}~.  These
last 5 stars have metallicities [Fe/H] in the range $-$1.4 to $-$2.1
and occupy a volume some 6 times larger than the volume of the
Majewski \mbox{{\it et al.}}~field.

There is a peak in the radial velocity distribution in field RR~2 at
$-$90 \mbox{km~s$^{\rm -1}$}. In particular, there are three stars (one RR Lyrae and
two BHB) close to 12$^{\rm h}$:09$^{\rm m}$:05$^{\rm s}$,
+33$^{\circ}$:03$^{\prime}$ (1950) that (within the measuring errors)
have the same radial velocity; a summary of their properties is given
in Table 2. These three stars have a mean height above the galactic
plane of $\sim$10.0 kpc and occupy $\sim$0.05 \mbox{kpc$^{\rm 3}$}~ $-$ comparable to
the volume occupied by the stars in the Majewski \mbox{{\it et al.}}~field.  It
seems likely that these three stars constitute a ``moving group" that
had a common origin (for references to possible high-velocity
moving-groups, see Majewski \mbox{{\it et al.}}~(1994)); it is very desirable to
check whether they also share a common proper motion.

The crossing time of the galactic orbits of halo stars is much less
than the likely age of halo stars so it has sometimes been concluded
that the halo is reasonably well mixed (Sommer-Larsen \& Zhen, 1990;
Binney, 1994).  Indeed, this may perfectly true of the majority of
halo stars.  The detection of a few stars with a common motion in a
small volume of space may result from the fortuitous discovery of the
remnants of a cluster in the process of dissolution.  The volume
included in fields SA~57, RR 2 and RR 3, however, is of the order of
some tens of a cubic kiloparsec. The existence of streaming motions in
a volume this size suggests a larger scale phenomenon in which the
stars have only entered the galaxy in relatively recent times and/or
that their orbits have never taken them into regions in the Galaxy
where organized motion would be rapidly destroyed.

The picture given by the RR Lyrae and BHB stars will not be the same
as that given by the subdwarfs.  The RR Lyrae and BHB stars make up a
relatively small fraction of the stellar halo; consequently, although
they are useful tracers of large scale structure, they generally do
not allow a very fine spatial resolution.  The halo subdwarfs (more
than a hundred times more numerous) can be used to sample much smaller
volumes of space and are useful for investigating the inhomogeneities
in the halo that apparently exist on smaller spatial scales.

Majewski, Munn and Hawley (1996) consider the possibility that the
streaming that they find in SA~57 may be associated with the
disintegrating Sagittarius Dwarf that has recently been found by
Ibata, Gilmore and Irwin (1994). This seems quite possible.  Among
recently suggested orbits for the Sagittarius Dwarf, (e.g. Velazquez
and White (1995) perigalacticon 10~kpc and apogalacticon 52~kpc;
Lynden-Bell and Lynden-Bell (1995) perigalacticon 12 kpc and
apogalacticon 36 kpc), our data show best agreement in radial velocity
and galactic location with orbit D of Lin, Richer, Ibata and Suntzeff
(1995).  The determination of proper motions and hence space motions
and orbits for the BHB and RR Lyrae stars in RR 2 and RR 3 is clearly
very desirable if we are to be certain that these stars are indeed
part of a stream that includes the Sagittarius Dwarf Galaxy.

\section{Proper Motions}

Preliminary absolute proper motions have been determined for 21
BHB stars in the SA~57 field (at the NGP) and 14 BHB stars in the RR~7
Anticenter field of KSK, as part of a larger study by Hanson and
Klemola (1995), using the 51-cm Carnegie Double Astrograph at Lick
Observatory and the photographic plate collection of the Lick Northern
Proper Motion (NPM) program (Klemola, Jones, and Hanson 1987).

Four third-epoch blue (103a-O) plates were taken by Klemola in
February and April 1995.  These were measured along with first-epoch
NPM plates taken between 1950 and 1953.  Details of the NPM observing,
plate measurement, and reduction procedures are given by Klemola,
Jones, and Hanson (1987).  The proper motions were determined in an
absolute reference frame defined by 80--100 galaxies ($16 \leq B \leq
18$) per field.  Epoch spans well over 40 years allow the measurement
of proper motions with random errors $\approx 0\farcs 3\ {\rm
cent}^{-1}$, corresponding to a transverse velocity error $\approx 15\
{\rm km~sec^{-1}~kpc}^{-1}$.

The proper motions of these BHB stars were converted to transverse
velocities using the distances (kpc) given by KSK. Both these fields
lie close to the meridional plane of the Galaxy which passes through
the Sun, the Galactic Center and the North Galactic Pole. To a first
approximation, therefore, the galactic rotation vector (V) is almost
entirely given by these transverse velocities.  Fig. 2 shows this V
vector on a plot of the transverse velocities for (a) SA~57 and (b)
the RR~7 field. The filled circles show stars with Z $\leq$ 4 kpc and
the open circles stars with 4$\leq$Z$\leq$6 kpc and show that both
these groups of stars lag the galactic rotation of the Sun by at least
200 \mbox{km~s$^{\rm -1}$}~.  Thus the stars that have Z $\leq$ 4 kpc which must
belong predominantly to the flatter halo of KSK must indeed be
identified with the halo and not with the metal-weak ``thick-disk"
(Morrison, Flynn \& Freeman, 1990) whose rotation with respect to the
Sun should only be about 40 \mbox{km~s$^{\rm -1}$}~.

\section{Conclusions}

The velocity dispersion of a sample of 67 RR Lyrae and BHB stars in
three fields at the NGP and more than 4 kpc above the galactic plane
is $\approx$110 \mbox{km~s$^{\rm -1}$}~; this sample shows no trend of velocity
dispersion with Z. The 9 stars with Z $\leq$ 4 kpc show a smaller
velocity dispersion (40$\pm$9 \mbox{km~s$^{\rm -1}$}~) as is to be expected if they
belong to a spatially flatter distribution.  The mean velocity of both
the RR Lyrae and BHB stars shows evidence of stream motion in the
halo. The most significant systematic motion is that in fields RR 2
and RR 3 where 24 stars in the range 4.0$\leq$Z$\leq$11.0 kpc have a
mean radial velocity (corrected for galactic rotation and to the local
standard of rest) of $-$59$\pm$16 \mbox{km~s$^{\rm -1}$}~. Three halo stars in field
RR 2 occupy a volume of $\sim$0.05 \mbox{kpc$^{\rm 3}$}~about 10 kpc above the
galactic plane and have the same radial velocity ($-$90\mbox{km~s$^{\rm -1}$}~). The
streaming therefore occurs over a range of spatial scales. That on the
smaller scale is comparable both in sense and size with that found by
Majewski, Munn and Hawley (1994) (1996). The possibility that these
streaming stars belonged to the newly discovered Sagittarius Dwarf
Galaxy is not in disagreement with some recent orbits that have been
calculated for this galaxy and this requires further investigation.

Preliminary proper motion data for BHB stars in SA~57 and the
Anticenter field RR~7 show that the stars with Z $\leq$ 4 kpc have a
galactic rotation similar to the BHB stars in the more distant halo;
consequently these stars of the flatter halo are really halo stars and
not members of the metal-weak thick-disk of Morrison, Flynn and
Freeman (1990).

\acknowledgements

We would like to thank Ed Carder and Jim DeVeny for their help with
the IIDS and Dave Summers and Kurt Loken for their assistance at the
4-m telescope when the BHB spectra were taken. We should also like to
thank Elizabeth Green for providing us with radial velocity
measurements of the bright BHB stars and Taft Armandroff for bringing
the paper by Velazquez and White to our attention.  The Lick Northern
Proper Motion program is supported by National Science Foundation
grant AST 92-18084.