diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 810862f..5aede31 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ // See: https://containers.dev/ for the "official" DevContainer specifications { "name": "latex-default", //Add the name your DevContainer Here, - "image": "pandoc/latex:latest-ubuntu", //Add the name of your Docker image here. See: https://hub.docker.com for available containers + "image": "texlive/texlive", //Add the name of your Docker image here. See: https://hub.docker.com for available containers "containerEnv": { //Add your build arguments here "DEBIAN_FRONTEND": "noninteractive" }, diff --git a/.devcontainer/install-tools.sh b/.devcontainer/install-tools.sh index 798680a..9557d73 100755 --- a/.devcontainer/install-tools.sh +++ b/.devcontainer/install-tools.sh @@ -8,7 +8,7 @@ apt update tlmgr install preprint # installation de grammalecte -apt install python3 unzip -y +apt install python3 unzip wget -y mkdir /root/.grammalecte cd /root/.grammalecte wget https://grammalecte.net/zip/Grammalecte-fr-v2.1.1.zip diff --git a/recherches/ALDLoverAB/algo/index.tex b/recherches/ALDLoverAB/algo/index.tex index f1913b0..dc6d332 100644 --- a/recherches/ALDLoverAB/algo/index.tex +++ b/recherches/ALDLoverAB/algo/index.tex @@ -2,100 +2,72 @@ We define $k$ as the id of the round \\ the $getMax(proves)$ return $MAX({(\_, r) : \exists (\_, PROVE(r)) \in proves})$ \\ $buffer$ a FIFO list with $buffer[front]$ returning the first element -% \begin{algorithm}[H] -% \DontPrintSemicolon -% \SetAlgoLined -% \KwIn{le message $m$} -% \BlankLine -% \While{true}{ -% proves = READ() \\ -% k = getMax(dump) + 1 \\ -% APPEND(k || m) \\ -% \If{PROVE(k)}{ -% APPEND(k) \\ -% return -% } -% } -% \caption{AB\_Broadcast} -% \end{algorithm} + +\begin{algorithm}[H] + \DontPrintSemicolon + \SetAlgoLined + + $rcved = rcved \bigcup \{m\}$ \; + \textbf{upon} RB\_deliver(PROP, r, S) \textbf{from} j \; + prop[r][j] = S + + \caption{\textbf{Upon} RB\_deliver(m)} +\end{algorithm} \begin{algorithm}[H] \DontPrintSemicolon \SetAlgoLined \KwIn{le message $m$} + +\KwData{rcved = $\emptyset$ \; +delivered = $\emptyset$ \; +r = 0 \;} + \BlankLine -k\_max = getMax(READ()) \\ -\While{buffer $\neq [\emptyset] $}{ - (i, m) = buffer[front] \\ - \textbf{wait} PROVE(k\_max || m) = false \\ - proves = READ() \\ - \If{$((i, PROVE(k\_max || m)) \in proves) \wedge ((i, PROVE(k\_max)) \in proves)$}{ - $buffer = buffer - \{(i, m)\}$ - } -} -\BlankLine + +RB\_cast(m) \; +$rcved = rcvd \bigcup \{m\}$ \; + \While{true}{ - proves = READ() \\ - k = getMax(proves) + 1 \\ - PROVE(k || m) \\ - APPEND(k || m) \\ - \If{PROVE(k)}{ - APPEND(k) \\ - return + $r = r+1$ \; + $RB\_cast(PROP, r, S)$ \; + PROVE(r) \; + APPEND(r) \; + proves = READ() \; + $winner^r = \{j : (j, PROVE(r)) \in proves\}$ \; + \textbf{wait until} $(\forall j \in winner^k: prop[r][j])$ \; + \If{$\exists j \in winner^k : m \in prop[r][j]$}{ + break \; } } + \caption{AB\_Broadcast} \end{algorithm} -$proves_r = {(i, r) : \forall i, \exists (i, PROVE(r)) \in proves}$ \\ -$proves_r^i = ((i, r) : \exists (i, PROVE(r)) \in proves)$ ?? NULL \\ - -% $proves_r \subseteq proves$ s.a. $\forall PROVE(x) \in proves_r$, x is in the form $r || m$ with $m$ who cannot be empty \\ -% $proves_r^i$ is the $PROVE(r || m )$ operation submited by the process i if exist \\ - \begin{algorithm}[H] \DontPrintSemicolon \SetAlgoLined - buffer = $[\emptyset]$ \\ - k = 0 \\ - \BlankLine + + r\_prev = 0 \; \While{true}{ - proves = READ() \\ - k\_max = getMax(proves) \\ - \For{r=k+1 \emph{\KwTo} k\_max}{ - APPEND(r)\\ - \For{i = 1 \emph{\KwTo} $|P|$}{ - \If{$(\exists m : \exists(i, PROVE(r || m)) \in proves)$}{ - \uIf{$(\exists(i, PROVE(r)) \in proves)$} { - AB\_Recv(m) - } - \Else{ - $buffer = buffer \cup \{(i, m)\}$ - } - } - } + proves = READ() \; + $r\_max = MAX(\{r : \exists i, (i, PROVE(r)) \in proves\})$ \; + \For{$r = r\_prev + 1 \textbf{to} r\_max$}{ + APPEND(r) \; + proves = READ() \; + $winner^k = \{j : (j, PROVE(r)) \in proves \}$ \; + $\textbf{wait until} (\forall j \in winner^k : prop[r][j] \neq \emptyset)$ \; + $M^r = (\bigcup_{j \in winner^k} prop[r][j]) \setminus delivered$ \; + + \tcc*{we assume $M^r$ as an ordered list s.a. $\forall m_1, m_2, if m_1 < m_2$, $m_1$ appears before $m_2$ in $M^r$} + + \BlankLine + + \ForEach{$m \in M^r$}{ + $delivered = delivered \bigcup \{m\}$ \; + AB\_deliver(m) \; + } } } \caption{AB\_Listen} -\end{algorithm} - -% \begin{algorithm}[H] -% \DontPrintSemicolon -% \SetAlgoLined -% \BlankLine -% \While{true}{ -% proves = READ() \\ -% k\_max = getMax(proves) \\ -% \For{r=k+1 \emph{\KwTo} k\_max}{ -% APPEND(r)\\ -% $proves_r$ = \{$\forall i, PROVE(r)_i \in READ()$\} \\ -% \For{i = 1 \emph{\KwTo} $|P|$}{ -% \If{$\exists PROVE(r)_i \in proves_r$}{ -% AB\_Recv($m$ s.t. $PROVE(r || m) \in proves$) -% } -% } -% } -% } - -% \caption{AB\_Listen} -% \end{algorithm} \ No newline at end of file +\end{algorithm} \ No newline at end of file diff --git a/recherches/ALDLoverAB/main.aux b/recherches/ALDLoverAB/main.aux index 8a52018..5b3db63 100644 --- a/recherches/ALDLoverAB/main.aux +++ b/recherches/ALDLoverAB/main.aux @@ -14,7 +14,8 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}AtomicBroadcast Properties}{1}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.3}DenyList Properties}{1}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Algorithms}{1}{}\protected@file@percent } -\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces AB\_Broadcast}}{2}{}\protected@file@percent } -\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces AB\_Listen}}{2}{}\protected@file@percent } +\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces \textbf {Upon} RB\_deliver(m)}}{2}{}\protected@file@percent } +\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces AB\_Broadcast}}{2}{}\protected@file@percent } +\@writefile{loa}{\contentsline {algocf}{\numberline {3}{\ignorespaces AB\_Listen}}{2}{}\protected@file@percent } \abx@aux@read@bbl@mdfivesum{76D65A242EC496C9B4361AF646FF12CB} \gdef \@abspage@last{3} diff --git a/recherches/ALDLoverAB/main.fdb_latexmk b/recherches/ALDLoverAB/main.fdb_latexmk index 3551725..38c50ca 100644 --- a/recherches/ALDLoverAB/main.fdb_latexmk +++ b/recherches/ALDLoverAB/main.fdb_latexmk @@ -1,14 +1,15 @@ # Fdb version 4 -["biber main"] 0 "main.bcf" "main.bbl" "main" 1746004825.89207 -1 - "main.bcf" 1746004825.84735 108486 d8549f9e7d9f09af6a94b466d27b9f55 "pdflatex" +["biber main"] 0 "main.bcf" "main.bbl" "main" 1746172816.43057 -1 + "main.bcf" 1746172816.38112 108486 d8549f9e7d9f09af6a94b466d27b9f55 "pdflatex" "sources.bib" 1745505510 0 d41d8cd98f00b204e9800998ecf8427e "" (generated) "main.bbl" "main.blg" (rewritten before read) -["pdflatex"] 1746004825.45178 "/workspaces/containers/recherches/ALDLoverAB/main.tex" "main.pdf" "main" 1746004825.89228 0 +["pdflatex"] 1746172815.97294 "/workspaces/containers/recherches/ALDLoverAB/main.tex" "main.pdf" "main" 1746172816.431 0 "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1136849721 2971 def0b6c1f0b107b3b936def894055589 "" "/usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbi1000.tfm" 1136768653 3072 e6fe53b666f9cbd66cb135c6fdea66d3 "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx0700.tfm" 1136768653 3584 ca0c423beaacd28d53ddce5a826cd558 "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm" 1136768653 3584 2d666ecf6d466d8b007246bc2f94d9da "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1136768653 3584 402da0b29eafbad07963b1224b222f18 "" @@ -19,11 +20,16 @@ "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm" 1136768653 3584 3c76ccb63eda935a68ba65ba9da29f1a "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm" 1136768653 3072 3bce340d4c075dffe6d4ec732b4c32fe "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1200.tfm" 1136768653 3072 8b5a64dc91775463bc95e2d818524028 "" + "/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ectt1000.tfm" 1136768653 1536 06717a2b50de47d4087ac0e6cd759455 "" + "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb" 1248133631 30251 6afa5cb1d0204815a708a080681d4674 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d "" + "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb" 1248133631 37912 77d683123f92148345f3fc36a38d9ab1 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb" 1248133631 36281 c355509802a035cadc5f15869451dcee "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb" 1248133631 32762 224316ccc9ad3ca0423a14971cfa7fc1 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d "" + "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb" 1248133631 32716 08e384dc442464e7285e891af9f45947 "" + "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbi1000.pfb" 1215737283 193571 dce9a978093738902238b3e227edef6c "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb" 1215737283 144215 c89c56d5c5b828c5c1657b4326c29df7 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb" 1215737283 145408 43d44302ca7d82d487f511f83e309505 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb" 1215737283 140176 d4962f948b4cc0adf4d3dde77a128c95 "" @@ -33,6 +39,7 @@ "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb" 1215737283 131438 3aa300b3e40e5c8ba7b4e5c6cebc5dd6 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb" 1215737283 186554 e8f0fa8ca05e038f257a06405232745f "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb" 1215737283 198221 ca5aa71411090ef358a6cc78b7458365 "" + "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sftt1000.pfb" 1215737283 169201 9ebf99020dde51a5086e186761a34e8f "" "/usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf" 1722030099 66864 5ea28be04c8922f57dc437cc5c1c2c31 "" "/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty" 1743197512 144118 8a0145ee10f36c9987d52d114dccd1b1 "" "/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini" 1733001190 6315 3c384dcbb287e14a2e736eeb5010b67f "" @@ -82,11 +89,11 @@ "/usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt" 1743313810 3345755 ba2ca5aadbc395a8eb3e969a7d392ec2 "" "/usr/local/texlive/2025/texmf.cnf" 1743313649 455 5b996dcaa0eb4ef14a83b026bc0a008c "" "/workspaces/containers/recherches/ALDLoverAB/main.tex" 1745569300.58113 728 260366a29ef55ffa4b47d22972e9e4f8 "" - "algo/index.tex" 1746004825.26138 2503 f07bfa513519f147d955354146846757 "" + "algo/index.tex" 1746172815.76911 1775 b458edc79675260c269751db3322cda9 "" "intro/index.tex" 1745569389.83114 2291 8451d9b4ced1f44c45b59e7619773077 "" - "main.aux" 1746004825.84535 1267 145af77271d4d82823c8622c1004e8b1 "pdflatex" - "main.bbl" 1745511552 466 76d65a242ec496c9b4361af646ff12cb "biber main" - "main.run.xml" 1746004825.84735 2301 7adc9b5a22e7927ebfdd8580ad5d647d "pdflatex" + "main.aux" 1746172816.38012 1400 8864237b874322217e4ed828cbb90076 "pdflatex" + "main.bbl" 1746171033.92694 466 76d65a242ec496c9b4361af646ff12cb "biber main" + "main.run.xml" 1746172816.38212 2301 7adc9b5a22e7927ebfdd8580ad5d647d "pdflatex" "main.tex" 1745569300.58113 728 260366a29ef55ffa4b47d22972e9e4f8 "" (generated) "main.aux" diff --git a/recherches/ALDLoverAB/main.fls b/recherches/ALDLoverAB/main.fls index 5ebbc7e..7392bf4 100644 --- a/recherches/ALDLoverAB/main.fls +++ b/recherches/ALDLoverAB/main.fls @@ -134,14 +134,20 @@ INPUT ./algo/index.tex INPUT ./algo/index.tex INPUT algo/index.tex INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx0700.tfm +INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbi1000.tfm +INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ectt1000.tfm INPUT main.aux INPUT main.run.xml OUTPUT main.run.xml +INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb +INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb +INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb +INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbi1000.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb @@ -151,3 +157,4 @@ INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pf INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb +INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sftt1000.pfb diff --git a/recherches/ALDLoverAB/main.log b/recherches/ALDLoverAB/main.log index 73a717c..9f53428 100644 --- a/recherches/ALDLoverAB/main.log +++ b/recherches/ALDLoverAB/main.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.3.30) 30 APR 2025 09:20 +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.3.30) 2 MAY 2025 08:00 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -458,12 +458,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 34--39 ) (./algo/index.tex -[1] -Underfull \hbox (badness 10000) in paragraph at lines 50--52 - - [] - -) +[1]) LaTeX Warning: Empty bibliography on input line 38. @@ -479,18 +474,18 @@ Package logreq Info: Writing requests to 'main.run.xml'. ) Here is how much of TeX's memory you used: - 12400 strings out of 473190 - 234983 string characters out of 5715806 - 1088239 words of memory out of 5000000 - 35571 multiletter control sequences out of 15000+600000 - 566378 words of font info for 46 fonts, out of 8000000 for 9000 + 12405 strings out of 473190 + 235037 string characters out of 5715806 + 1089239 words of memory out of 5000000 + 35574 multiletter control sequences out of 15000+600000 + 567392 words of font info for 48 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 66i,24n,81p,738b,1731s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on main.pdf (3 pages, 212161 bytes). + 66i,18n,81p,738b,1731s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on main.pdf (3 pages, 262569 bytes). PDF statistics: - 85 PDF objects out of 1000 (max. 8388607) - 51 compressed objects within 1 object stream + 110 PDF objects out of 1000 (max. 8388607) + 66 compressed objects within 1 object stream 0 named destinations out of 1000 (max. 500000) 1 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/recherches/ALDLoverAB/main.pdf b/recherches/ALDLoverAB/main.pdf index a1aa36a..c936c9f 100644 Binary files a/recherches/ALDLoverAB/main.pdf and b/recherches/ALDLoverAB/main.pdf differ diff --git a/recherches/ALDLoverAB/main.synctex.gz b/recherches/ALDLoverAB/main.synctex.gz index d29ddc3..0850729 100644 Binary files a/recherches/ALDLoverAB/main.synctex.gz and b/recherches/ALDLoverAB/main.synctex.gz differ