update
This commit is contained in:
BIN
Recherche/yaoLatticeAgreement/main.pdf
Normal file
BIN
Recherche/yaoLatticeAgreement/main.pdf
Normal file
Binary file not shown.
105
Recherche/yaoLatticeAgreement/main.tex
Normal file
105
Recherche/yaoLatticeAgreement/main.tex
Normal file
@@ -0,0 +1,105 @@
|
||||
\documentclass[11pt]{article}
|
||||
|
||||
\usepackage[margin=1in]{geometry}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{lmodern}
|
||||
\usepackage{microtype}
|
||||
\usepackage{amsmath,amssymb,amsthm,mathtools}
|
||||
\usepackage{thmtools}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{csquotes}
|
||||
\usepackage[hidelinks]{hyperref}
|
||||
\usepackage[nameinlink,noabbrev]{cleveref}
|
||||
\usepackage{algorithm}
|
||||
\usepackage{algpseudocode}
|
||||
% Line-number prefix configuration (A/B/C)
|
||||
\renewcommand{\thealgorithm}{\Alph{algorithm}} % Float labels: Algorithm A, B, C
|
||||
\newcommand{\algletter}{}
|
||||
\algrenewcommand\alglinenumber[1]{\scriptsize\textbf{\algletter}#1}
|
||||
\usepackage{tikz}
|
||||
\usepackage{xspace}
|
||||
|
||||
\usepackage[fr-FR]{datetime2}
|
||||
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancy}
|
||||
\fancyhf{}
|
||||
\fancyfoot[L]{Compilé le \DTMnow}
|
||||
\fancyfoot[C]{\thepage}
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
\renewcommand{\footrulewidth}{0pt}
|
||||
|
||||
\theoremstyle{plain}
|
||||
\newtheorem{theorem}{Theorem}
|
||||
\newtheorem{lemma}[theorem]{Lemma}
|
||||
\newtheorem{corollary}[theorem]{Corollary}
|
||||
\theoremstyle{definition}
|
||||
\newtheorem{definition}{Definition}
|
||||
\theoremstyle{remark}
|
||||
\newtheorem{remark}{Remark}
|
||||
|
||||
\newcommand{\send}{\textsf{send}}
|
||||
\newcommand{\recv}{\textsf{recv}}
|
||||
\newcommand{\hash}{\textsf{hash}}
|
||||
\newcommand{\procQueue}{\textsf{processQueue}}
|
||||
\newcommand{\RBcast}{\textsf{RB-cast}}
|
||||
\newcommand{\RBreceived}{\textsf{RB-received}}
|
||||
|
||||
\newcommand{\queue}{\mathsf{queue}}
|
||||
|
||||
\crefname{theorem}{Theorem}{Theorems}
|
||||
\crefname{lemma}{Lemma}{Lemmas}
|
||||
\crefname{definition}{Definition}{Definitions}
|
||||
\crefname{algorithm}{Algorithm}{Algorithms}
|
||||
|
||||
% \title{Upgrading Reliable Broadcast to Atomic Reliable Broadcast with a DenyList Primitive}
|
||||
\date{\vspace{-1ex}}
|
||||
|
||||
\begin{document}
|
||||
% \maketitle
|
||||
|
||||
\section*{Algorithm}
|
||||
|
||||
\renewcommand{\algletter}{A}
|
||||
\begin{algorithm}
|
||||
\begin{algorithmic}[1]
|
||||
\Function{send}{m}
|
||||
\State \RBcast$(self, m, \hash(H))$
|
||||
\EndFunction
|
||||
\vspace{1em}
|
||||
|
||||
\Function{\RBreceived}{$j, m, h$}
|
||||
\State $\queue[j] \gets \queue[j].push(\{(m, h)\})$
|
||||
\If{$|\queue[j]| = 1$} \Comment{If this is the first message in the queue, process it}
|
||||
\State \procQueue()
|
||||
\EndIf
|
||||
\EndFunction
|
||||
\vspace{1em}
|
||||
|
||||
\Function{processQueue}{}
|
||||
\For{$j$ such that $\queue[j] \neq \emptyset$}
|
||||
\State $\{(m, h)\} \gets \queue[j].pop()$
|
||||
% \If{$m$ is a singleton}
|
||||
% \State $H \gets H \cup \{m\}$; \recv$(m)$; $\queue[j] \gets \queue[j] \setminus \{(m, h)\}$
|
||||
% \ElsIf{$\exists A : A \subseteq H\ \wedge\ \hash(A) = h$}
|
||||
% \State $H \gets H \cup \{m\}$; \recv$(m)$; $\queue[j] \gets \queue[j] \setminus \{(m, h)\}$
|
||||
% \Else
|
||||
% \State \textbf{break}
|
||||
% \EndIf
|
||||
\If{$\exists A : A \subseteq H\ \wedge\ \hash(A) = h$}
|
||||
\State $H \gets H \cup \{m\}$; \recv$(m)$; $\queue[j] \gets \queue[j] \setminus \{(m, h)\}$
|
||||
\State \procQueue();
|
||||
\Return;
|
||||
\EndIf
|
||||
\EndFor
|
||||
\EndFunction
|
||||
\end{algorithmic}
|
||||
\end{algorithm}
|
||||
|
||||
% \bibliographystyle{plain}
|
||||
% \begin{thebibliography}{9}
|
||||
% % (left intentionally blank)
|
||||
% \end{thebibliography}
|
||||
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user