\documentclass[12pt,fleqn,a4paper]{book}
%
% Packages used:
%
\usepackage[koi8-r]{inputenc}
\usepackage[russian,english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsthm}
\advance\textheight by 5mm
%
% Common customization:
%
\input defs
%
\renewcommand\mod{\mathrm{mod}\ }
%
% The document
%
\begin{document}
\selectlanguage{russian}
\lecture{7}{Рисование планарного графа.}{А. Кожевников}
%
% The lecture
%
\begin{remark}
Этот конспект взят из лекций осени 2001 года.
\end{remark}
\section{Рисование планарного графа}
Мы будем рассматривать двусвязный граф, то есть такой, в котором не 
существует одной вершины, удаление которой %ребра между которыми 
ведет к появлению двух компонент связности. 

(Заметим, что если граф не таков, то его можно разбить на компоненты,
нарисовать их по отдельности и соединить рисунки;
чтобы отправить точку соединения на границу области, занимаемой графом,
рисуем граф на сфере, после чего раскрываем сферу с дыркой рядом с вершиной.)

\begin{definition}
Окрестность компоненты $S$  графа $G$ -- 
это $\Gamma (S) = \{v\in V_G | \exists e \in E: 
e = \{v,s\}, s \in S \}$.
\end{definition}  
\begin{algorithm}\hfill
\begin{enumerate}
\item Взять какой-то цикл и нарисовать его.
\item Если существует компонента, согласованная лишь с одной клеткой, то взять
путь в компоненте и вставить путь в эту клетку (удалив путь из компоненты
и разбив компоненту на несколько, если она развалилась).
\item Если все компоненты согласованы с несколькими клетками, то взять 
любую компоненту и вставить путь в клетку (удалив путь\ldots).
\end{enumerate}\hfill$\qed$
\end{algorithm}
\begin{problem}
Придумать незначительное изменение алгоритма,
работающее $O(n^2)$ для любого графа, а не только 
для планарного.
\end{problem}
Корректность алгоритма утверждается в следующей лемме.
\begin{lemma}
Пусть в какой-то момент что-то уже нарисовано и алгоритм находится в 
шаге 3. Компонента $C$ согласована с клетками $K_1$ и $K_2$. Если $C$ 
можно вложить в $K_1$ (и успешно дорисовать граф до конца), 
то ее можно вложить и в $K_2$ (и успешно дорисовать).
\end{lemma}
\begin{proof}
Поменяем все компоненты, согласованные с $K_1$ и $K_2$, местами. 
Перебором случаев проверим, что конфликтов возникнуть не должно
(разобьем границу $K_1$ и $K_2$ на участки, принадлежащие только $K_1$,
только $K_2$, либо им вместе; разберем случаи, когда конфликтующий путь
начинается на одном из типов участков, а заканчивается на другом
или том же самом).
\end{proof}
\begin{remark}
Существует алгоритм, позволяющий нарисовать планарный граф 
за линейное время отрезками прямых.
\end{remark}

\end{document}
