diff --git a/Makefile b/Makefile index 4c7a5f7e976d1789ad8c5f327e7ff0a80356f5b5..2cda6e1d98cfeecd3d3329452e46e4dc98c0c32a 100644 --- a/Makefile +++ b/Makefile @@ -13,17 +13,17 @@ all: main tests tests: test_phase1.out test_phase2.out -phase1: src/phase1.ml src/main_phase1.ml - (cd src ; ocamlc -o ../build/$@ phase1.ml main_phase1.ml) +phase1: src/phase1.mli src/phase1.ml src/main_phase1.ml + (cd src ; ocamlc -o ../build/$@ phase1.mli phase1.ml main_phase1.ml) -phase2: src/phase2.ml src/main_phase2.ml - (cd src ; ocamlc -o ../build/$@ phase2.ml main_phase2.ml) +phase2: src/phase2.mli src/phase2.ml src/main_phase2.ml + (cd src ; ocamlc -o ../build/$@ phase2.mli phase2.ml main_phase2.ml) -test_phase1.out: src/phase1.ml src/test_phase1.ml - (cd src ; ocamlc -o ../build/$@ phase1.ml test_phase1.ml) +test_phase1.out: src/phase1.mli src/phase1.ml src/test_phase1.ml + (cd src ; ocamlc -o ../build/$@ phase1.mli phase1.ml test_phase1.ml) -test_phase2.out: src/phase1.ml src/test_phase1.ml - (cd src ; ocamlc -o ../build/$@ phase2.ml test_phase2.ml) +test_phase2.out: src/phase2.mli src/phase1.ml src/test_phase1.ml + (cd src ; ocamlc -o ../build/$@ phase2.mli phase2.ml test_phase2.ml) clean: rm -rf *.cmi *.cmo diff --git a/README.md b/README.md index 316098bd89e0406103ba6aa2c77966a3a4ad8876..9658091ae4986e0d435687895fb0d84a320d8cd9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ # IPF-S3 - Le but de ce projet est de maximiser le flux de café entre le bar de l'ENSIIE (considéré idéalement comme une source infinie de café) et le bureau de M. Forest (considéré effectivement comme un puits infini de café). \ No newline at end of file + Le but de ce projet est de maximiser le flux de café entre le bar de l'ENSIIE (considéré idéalement comme une source infinie de café) et le bureau de M. Forest (considéré effectivement comme un puits infini de café). + + ## Compilation + +Pour tout compiler (phase1, phase2, tests phase1, tests phase2): `make` +pour nettoyer les fichiers de compilation : `make clean` +pour compiler uniquement la phase 1 (par exemple) `make phase1` +pour compiler uniquement les tests de la phase 1 (par ex) : `make tests_phase1.out` +pour compiler juste les tests : `make tests` + +## Utilisation + +Exemple d'utilisation de la phase 1 sur un fichier de test +`build/phase1 phase1/input.txt` +La sortie sera affichée sur la sortie standard. +Exemple d'utilisation de la phase 1 sur un fichier de test +`build/phase2 phase2/input.txt` diff --git a/doc/rapport.aux b/doc/rapport.aux new file mode 100644 index 0000000000000000000000000000000000000000..3824538f25b9ee061a03469e31e8171a0dcbbed3 --- /dev/null +++ b/doc/rapport.aux @@ -0,0 +1,30 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\bbl@beforestart +\catcode `:\active +\catcode `;\active +\catcode `!\active +\catcode `?\active +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\babel@aux{french}{} +\babel@aux{french}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Phase 1 : les plus courts chemins}{2}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {paragraph}{make\_graphe n channel : }{2}{section*.3}\protected@file@percent } +\@writefile{toc}{\contentsline {paragraph}{chemins s g : }{2}{section*.4}\protected@file@percent } +\@writefile{toc}{\contentsline {paragraph}{plus\_court\_chemins s p c : }{3}{section*.5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Phase 2 : maximiser le flux}{3}{section.2}\protected@file@percent } diff --git a/doc/rapport.log b/doc/rapport.log new file mode 100644 index 0000000000000000000000000000000000000000..e99a58ffd8ad6e331c3146549785dadfa1e4b6ea --- /dev/null +++ b/doc/rapport.log @@ -0,0 +1,902 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2019.11.7) 10 JAN 2020 20:51 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**rapport.tex +(./rapport.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2018/08/11 v2.0j Standard LaTeX package + +(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/08/11 v1.3c Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 +) +(/usr/share/texmf/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2019/09/27 3.34 The Babel package + +(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2019/09/27 3.34 Babel switching mechanism +) +(/usr/share/texlive/texmf-dist/tex/generic/babel-french/french.ldf +Language: french 2019/09/07 v3.5f French support from the babel system + +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2019/09/27 3.34 Babel common definitions +\babel@savecnt=\count88 +\U@D=\dimen103 + +(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@dirlevel=\count89 +) +\l@acadian = a dialect from \language\l@french +\l@canadien = a dialect from \language\l@french +\FB@nonchar=\count90 +Package babel Info: Making : an active character on input line 419. +Package babel Info: Making ; an active character on input line 420. +Package babel Info: Making ! an active character on input line 421. +Package babel Info: Making ? an active character on input line 422. +\FBguill@level=\count91 +\FBold@everypar=\toks16 +\FB@Mht=\dimen104 +\mc@charclass=\count92 +\mc@charfam=\count93 +\mc@charslot=\count94 +\std@mcc=\count95 +\dec@mcc=\count96 +\c@FBcaption@count=\count97 +\listindentFB=\dimen105 +\descindentFB=\dimen106 +\labelindentFB=\dimen107 +\labelwidthFB=\dimen108 +\leftmarginFB=\dimen109 +\parindentFFN=\dimen110 +\FBfnindent=\dimen111 +)) +(/usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks17 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2018/12/01 v2.17b AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks18 +\ex@=\dimen112 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen113 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count98 +LaTeX Info: Redefining \frac on input line 223. +\uproot@=\count99 +\leftroot@=\count100 +LaTeX Info: Redefining \overline on input line 385. +\classnum@=\count101 +\DOTSCASE@=\count102 +LaTeX Info: Redefining \ldots on input line 482. +LaTeX Info: Redefining \dots on input line 485. +LaTeX Info: Redefining \cdots on input line 606. +\Mathstrutbox@=\box27 +\strutbox@=\box28 +\big@size=\dimen114 +LaTeX Font Info: Redeclaring font encoding OML on input line 729. +LaTeX Font Info: Redeclaring font encoding OMS on input line 730. +\macc@depth=\count103 +\c@MaxMatrixCols=\count104 +\dotsspace@=\muskip10 +\c@parentequation=\count105 +\dspbrk@lvl=\count106 +\tag@help=\toks19 +\row@=\count107 +\column@=\count108 +\maxfields@=\count109 +\andhelp@=\toks20 +\eqnshift@=\dimen115 +\alignsep@=\dimen116 +\tagshift@=\dimen117 +\tagwidth@=\dimen118 +\totwidth@=\dimen119 +\lineht@=\dimen120 +\@envbody=\toks21 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2844. +LaTeX Info: Redefining \] on input line 2845. +) +(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count110 +\float@exts=\toks23 +\float@box=\box29 +\@float@everytoks=\toks24 +\@floatcapt=\box30 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2019/09/12 v6.88i Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) + + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2019/07/25 v0.30 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO +) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) +) +\@linkdim=\dimen121 +\Hy@linkcounter=\count111 +\Hy@pagecounter=\count112 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2019/09/12 v6.88i Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count113 + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4550. +Package hyperref Info: Link nesting OFF on input line 4555. +Package hyperref Info: Hyper index ON on input line 4558. +Package hyperref Info: Plain pages OFF on input line 4565. +Package hyperref Info: Backreferencing OFF on input line 4570. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4803. +\c@Hy@tempcnt=\count114 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5156. +\XeTeXLinkMargin=\dimen122 +\Fld@menulength=\count115 +\Field@Width=\dimen123 +\Fld@charsize=\dimen124 +Package hyperref Info: Hyper figures OFF on input line 6411. +Package hyperref Info: Link nesting OFF on input line 6416. +Package hyperref Info: Hyper index ON on input line 6419. +Package hyperref Info: backreferencing OFF on input line 6426. +Package hyperref Info: Link coloring OFF on input line 6431. +Package hyperref Info: Link coloring with OCG OFF on input line 6436. +Package hyperref Info: PDF/A mode OFF on input line 6441. +LaTeX Info: Redefining \ref on input line 6481. +LaTeX Info: Redefining \pageref on input line 6485. +\Hy@abspage=\count116 +\c@Item=\count117 +\c@Hfootnote=\count118 +) +Package hyperref Info: Driver (autodetected): hpdftex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2019/09/12 v6.88i Hyperref driver for pdfTeX +\Fld@listcount=\count119 +\c@bookmark@seq@number=\count120 + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip46 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. +) +\Gin@req@height=\dimen125 +\Gin@req@width=\dimen126 +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry +\Gm@cnth=\count121 +\Gm@cntv=\count122 +\c@Gm@tempcnt=\count123 +\Gm@bindingoffset=\dimen127 +\Gm@wd@mp=\dimen128 +\Gm@odd@mp=\dimen129 +\Gm@even@mp=\dimen130 +\Gm@layoutwidth=\dimen131 +\Gm@layoutheight=\dimen132 +\Gm@layouthoffset=\dimen133 +\Gm@layoutvoffset=\dimen134 +\Gm@dimlist=\toks25 +) +(/usr/share/texlive/texmf-dist/tex/latex/minted/minted.sty +Package: minted 2017/07/19 v2.5 Yet another Pygments shim for LaTeX + +(/usr/share/texlive/texmf-dist/tex/latex/fvextra/fvextra.sty +Package: fvextra 2019/02/04 v1.4 fvextra - extensions and patches for fancyvrb + +(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count124 +) +(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2019/01/15 + +Style option: `fancyvrb' v3.2a <2019/01/15> (tvz) +\FV@CodeLineNo=\count125 +\FV@InFile=\read1 +\FV@TabBox=\box31 +\c@FancyVerbLine=\count126 +\FV@StepNumber=\count127 +\FV@OutFile=\write3 +) +(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty +Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba +tim + +(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2018/08/11 v2.0j Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +Now handling font encoding TS1 ... +... processing UTF-8 mapping file for font encoding TS1 + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu +File: ts1enc.dfu 2018/10/05 v1.2f UTF-8 support for inputenc + defining Unicode char U+00A2 (decimal 162) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00A4 (decimal 164) + defining Unicode char U+00A5 (decimal 165) + defining Unicode char U+00A6 (decimal 166) + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00A8 (decimal 168) + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AC (decimal 172) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00AF (decimal 175) + defining Unicode char U+00B0 (decimal 176) + defining Unicode char U+00B1 (decimal 177) + defining Unicode char U+00B2 (decimal 178) + defining Unicode char U+00B3 (decimal 179) + defining Unicode char U+00B4 (decimal 180) + defining Unicode char U+00B5 (decimal 181) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+00B9 (decimal 185) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+00BC (decimal 188) + defining Unicode char U+00BD (decimal 189) + defining Unicode char U+00BE (decimal 190) + defining Unicode char U+00D7 (decimal 215) + defining Unicode char U+00F7 (decimal 247) + defining Unicode char U+0192 (decimal 402) + defining Unicode char U+02C7 (decimal 711) + defining Unicode char U+02D8 (decimal 728) + defining Unicode char U+02DD (decimal 733) + defining Unicode char U+0E3F (decimal 3647) + defining Unicode char U+2016 (decimal 8214) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+203B (decimal 8251) + defining Unicode char U+203D (decimal 8253) + defining Unicode char U+2044 (decimal 8260) + defining Unicode char U+204E (decimal 8270) + defining Unicode char U+2052 (decimal 8274) + defining Unicode char U+20A1 (decimal 8353) + defining Unicode char U+20A4 (decimal 8356) + defining Unicode char U+20A6 (decimal 8358) + defining Unicode char U+20A9 (decimal 8361) + defining Unicode char U+20AB (decimal 8363) + defining Unicode char U+20AC (decimal 8364) + defining Unicode char U+20B1 (decimal 8369) + defining Unicode char U+2103 (decimal 8451) + defining Unicode char U+2116 (decimal 8470) + defining Unicode char U+2117 (decimal 8471) + defining Unicode char U+211E (decimal 8478) + defining Unicode char U+2120 (decimal 8480) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2126 (decimal 8486) + defining Unicode char U+2127 (decimal 8487) + defining Unicode char U+212E (decimal 8494) + defining Unicode char U+2190 (decimal 8592) + defining Unicode char U+2191 (decimal 8593) + defining Unicode char U+2192 (decimal 8594) + defining Unicode char U+2193 (decimal 8595) + defining Unicode char U+2329 (decimal 9001) + defining Unicode char U+232A (decimal 9002) + defining Unicode char U+2422 (decimal 9250) + defining Unicode char U+25E6 (decimal 9702) + defining Unicode char U+25EF (decimal 9711) + defining Unicode char U+266A (decimal 9834) + defining Unicode char U+FEFF (decimal 65279) +)) +LaTeX Info: Redefining \oldstylenums on input line 334. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. +Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. +)) +(/usr/share/texlive/texmf-dist/tex/latex/lineno/lineno.sty +Package: lineno 2005/11/02 line numbers on paragraphs v4.41 +\linenopenalty=\count128 +\output=\toks26 +\linenoprevgraf=\count129 +\linenumbersep=\dimen135 +\linenumberwidth=\dimen136 +\c@linenumber=\count130 +\c@pagewiselinenumber=\count131 +\c@LN@truepage=\count132 +\c@internallinenumber=\count133 +\c@internallinenumbers=\count134 +\quotelinenumbersep=\dimen137 +\bframerule=\dimen138 +\bframesep=\dimen139 +\bframebox=\box32 +LaTeX Info: Redefining \\ on input line 3056. +) +\c@FV@TrueTabGroupLevel=\count135 +\c@FV@TrueTabCounter=\count136 +\FV@TabBox@Group=\box33 +\FV@TmpLength=\skip47 +\c@FV@HighlightLinesStart=\count137 +\c@FV@HighlightLinesStop=\count138 +\FV@LoopCount=\count139 +\FV@NCharsBox=\box34 +\FV@BreakIndent=\dimen140 +\FV@BreakIndentNChars=\count140 +\FV@BreakSymbolSepLeft=\dimen141 +\FV@BreakSymbolSepLeftNChars=\count141 +\FV@BreakSymbolSepRight=\dimen142 +\FV@BreakSymbolSepRightNChars=\count142 +\FV@BreakSymbolIndentLeft=\dimen143 +\FV@BreakSymbolIndentLeftNChars=\count143 +\FV@BreakSymbolIndentRight=\dimen144 +\FV@BreakSymbolIndentRightNChars=\count144 +\c@FancyVerbLineBreakLast=\count145 +\FV@LineBox=\box35 +\FV@LineIndentBox=\box36 +\FV@LineWidth=\dimen145 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count146 +\calc@Bcount=\count147 +\calc@Adimen=\dimen146 +\calc@Bdimen=\dimen147 +\calc@Askip=\skip48 +\calc@Bskip=\skip49 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count148 +\calc@Cskip=\skip50 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +Package: shellesc 2016/06/07 v0.02a unified shell escape interface for LaTeX +Package shellesc Info: Unrestricted shell escape enabled on input line 67. +) +(/usr/share/texlive/texmf-dist/tex/latex/ifplatform/ifplatform.sty +Package: ifplatform 2017/10/13 v0.4a Testing for the operating system + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/catchfile.sty +Package: catchfile 2016/05/16 v1.7 Catch the contents of a file (HO) +) +runsystem(uname -s > "rapport.w18")...executed. + + +(./rapport.w18) +runsystem(rm -- "rapport.w18")...executed. + +) (/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.sty (/usr/share/te +xlive/texmf-dist/tex/generic/xstring/xstring.tex +\integerpart=\count149 +\decimalpart=\count150 +) +Package: xstring 2019/02/06 v1.83 String manipulations (CT) +) +(/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty +Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks +\OuterFrameSep=\skip51 +\fb@frw=\dimen148 +\fb@frh=\dimen149 +\FrameRule=\dimen150 +\FrameSep=\dimen151 +) +\minted@appexistsfile=\read2 +\minted@bgbox=\box37 +\minted@code=\write4 +\c@minted@FancyVerbLineTemp=\count151 +\c@minted@pygmentizecounter=\count152 +\@float@every@listing=\toks27 +\c@listing=\count153 +) +runsystem(mkdir -p _minted-rapport)...executed. + + +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count154 +\lst@gtempboxa=\box38 +\lst@token=\toks28 +\lst@length=\count155 +\lst@currlwidth=\dimen152 +\lst@column=\count156 +\lst@pos=\count157 +\lst@lostspace=\dimen153 +\lst@width=\dimen154 +\lst@newlines=\count158 +\lst@lineno=\count159 +\lst@maxwidth=\dimen155 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2019/09/10 1.8c (Carsten Heinz) +\c@lstnumber=\count160 +\lst@skipnumbers=\count161 +\lst@framebox=\box39 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2019/09/10 1.8c listings configuration +)) +Package: listings 2019/09/10 1.8c (Carsten Heinz) +Package hyperref Info: Option `colorlinks' set `true' on input line 22. +runsystem(which pygmentize && touch rapport.aex)...executed. + +runsystem(rm rapport.aex)...executed. + + (./rapport.aux) +\openout1 = `rapport.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 27. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 27. + (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Try loading font information for T1+lmr on input line 27. + +(/usr/share/texmf/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Info: Redefining \degres on input line 27. +LaTeX Info: Redefining \dots on input line 27. +LaTeX Info: Redefining \up on input line 27. +\AtBeginShipoutBox=\box40 +Package hyperref Info: Link coloring ON on input line 27. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2019/09/12 v2.45 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) +) +\c@section@level=\count162 +) +LaTeX Info: Redefining \ref on input line 27. +LaTeX Info: Redefining \pageref on input line 27. +LaTeX Info: Redefining \nameref on input line 27. + +(./rapport.out) (./rapport.out) +\@outlinefile=\write5 +\openout5 = `rapport.out'. + + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count163 +\scratchdimen=\dimen156 +\scratchbox=\box41 +\nofMPsegments=\count164 +\nofMParguments=\count165 +\everyMPshowfont=\toks29 +\MPscratchCnt=\count166 +\MPscratchDim=\dimen157 +\MPnumerator=\count167 +\makeMPintoPDFobject=\count168 +\everyMPtoPDFconversion=\toks30 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: a4paper +* layout: <same size as paper> +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(89.62709pt, 418.25368pt, 89.6271pt) +* v-part:(T,H,B)=(101.40665pt, 591.5302pt, 152.11pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=418.25368pt +* \textheight=591.5302pt +* \oddsidemargin=17.3571pt +* \evensidemargin=17.3571pt +* \topmargin=-7.86334pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=65.0pt +* \marginparsep=11.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +\c@lstlisting=\count169 +LaTeX Font Info: Try loading font information for OT1+lmr on input line 29. +(/usr/share/texmf/tex/latex/lm/ot1lmr.fd +File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OML+lmm on input line 29. + +(/usr/share/texmf/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMS+lmsy on input line 29. + + +(/usr/share/texmf/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMX+lmex on input line 29. + + +(/usr/share/texmf/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <12> on input line 29. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 29. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 29. +LaTeX Font Info: Try loading font information for U+msa on input line 29. + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 29. + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) (./rapport.toc) +\tf@toc=\write6 +\openout6 = `rapport.toc'. + + +[1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +Underfull \hbox (badness 10000) in paragraph at lines 32--33 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 34--35 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 36--37 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 39--40 + + [] + +LaTeX Font Info: Try loading font information for T1+lmtt on input line 47. +(/usr/share/texmf/tex/latex/lm/t1lmtt.fd +File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +Underfull \hbox (badness 10000) in paragraph at lines 53--54 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 55--56 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 58--59 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 60--62 + + [] + +[2 + +] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 78. + [3] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 78. + (./rapport.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 78. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 78. +Package rerunfilecheck Info: File `rapport.out' has not changed. +(rerunfilecheck) Checksum: 9413B01E76F153C92F507B0727EB1357;130. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 78. + ) +Here is how much of TeX's memory you used: + 13181 strings out of 494524 + 206210 string characters out of 6176108 + 359414 words of memory out of 5000000 + 16655 multiletter control sequences out of 15000+600000 + 37976 words of font info for 39 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 39i,6n,39p,959b,425s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}</usr/share/texmf/fonts/type1/ +public/lm/lmbx10.pfb></usr/share/texmf/fonts/type1/public/lm/lmbx12.pfb></usr/s +hare/texmf/fonts/type1/public/lm/lmr10.pfb></usr/share/texmf/fonts/type1/public +/lm/lmr12.pfb></usr/share/texmf/fonts/type1/public/lm/lmr17.pfb></usr/share/tex +mf/fonts/type1/public/lm/lmtt10.pfb> +Output written on rapport.pdf (3 pages, 158696 bytes). +PDF statistics: + 64 PDF objects out of 1000 (max. 8388607) + 52 compressed objects within 1 object stream + 11 named destinations out of 1000 (max. 500000) + 17 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/doc/rapport.out b/doc/rapport.out new file mode 100644 index 0000000000000000000000000000000000000000..d67c50fb0bd6bcf0e8a54618f663cee30e3505de --- /dev/null +++ b/doc/rapport.out @@ -0,0 +1,2 @@ +\BOOKMARK [1][-]{section.1}{Phase 1 : les plus courts chemins}{}% 1 +\BOOKMARK [1][-]{section.2}{Phase 2 : maximiser le flux}{}% 2 diff --git a/doc/rapport.pdf b/doc/rapport.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f4e56fa964a30590f39455a363590b39e5f9d2ad Binary files /dev/null and b/doc/rapport.pdf differ diff --git a/doc/rapport.synctex.gz b/doc/rapport.synctex.gz new file mode 100644 index 0000000000000000000000000000000000000000..018a7d4bfaacc85ed9ad03357aaba8423cc57d34 Binary files /dev/null and b/doc/rapport.synctex.gz differ diff --git a/doc/rapport.tex b/doc/rapport.tex new file mode 100644 index 0000000000000000000000000000000000000000..33dcb8d972a63d3886a83c163cef65193269298a --- /dev/null +++ b/doc/rapport.tex @@ -0,0 +1,78 @@ +\documentclass[french]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{lmodern} +\usepackage[french]{babel} +\selectlanguage{french} +\usepackage{amsmath} +\usepackage{float} +\usepackage{amssymb} +\usepackage{hyperref} +\usepackage{xcolor} +\usepackage{graphicx} +\usepackage[a4paper]{geometry} +\usepackage{minted} +\usepackage{listings} + +\hypersetup{ + colorlinks, + linkcolor={red!50!black}, + citecolor={blue!50!black}, + urlcolor={blue!80!black} +} +\author{Loïc DUBARD} +\title{Rapport du projet de programmation fonctionnelle 2 : \\ + \textbf{Trafic de café pour Mr Forest}} + +\begin{document} + \maketitle + \tableofcontents + \clearpage + \section*{Introduction} + (Extrait du sujet)\\ + + Le but de ce projet est de maximiser le flux de café entre le bar de l'ENSIIE (considéré idéalement comme une source infinie de café) et le bureau de M. Forest (considéré effectivement comme un puits infini de café).\\ + + Dans le monde moderne de l'enseignement en école d'ingénieur nécessite de maximiser ce flux pour des raisons évidentes. Votre projet se développera en plusieurs étapes :\\ + + \begin{itemize} + \item dans un premier temps, étant donnée une représentation adaptée du plan de l'école, vous chercherez les chemins les plus rapides (les plus courts), de la source au puits,\\ + \item dans un second temps, après avoir pris en compte la capacité des différents couloirs et escaliers, vous chercherez à trouver un moyen de maximiser le flux possible de café. Votre programme disposera d'un temps fini pour répondre. + \end{itemize} + +\section{Phase 1 : les plus courts chemins} + + +Pour la phase 1, je code tout dans src/phase1.ml. Je choisi de faire une map de set pour modéliser le graphe dans cette partie, d'où la création des modules Graphe, Clesliste et le type graph de cette manière : +\begin{verbatim} + module Graphe = Map.Make(String) + module Clesliste = Set.Make(String) + type graph = Clesliste.t Graphe.t +\end{verbatim} + +Ensuite, j'ai besoin de lire le fichier donné en argument. La doc de Ocaml me donne les fonctions open\_in et input\_line. \\ + +Je commence par lire les 3 premières ligne du fichier, la première me donne la chaine de caractères correspondant à la source, la deuxième celle du puits, enfin la troisième ligne correspond au nombre de chemin élémentaires donc au nombre de lignes qui suivent (je le note n ici).\\ + +\paragraph{make\_graphe n channel : } + Puis avec la fonction récursive make\_graphe qui prends en argument ce nombre n et le channel d'entrée et je remplie le graphe initialisé à 'empty' au fur et à mesure que je lis les lignes suivantes du fichier, en m'arrêtant quand j'arrive à n=0.\\ + + \paragraph{chemins s g : } N'ayant pas pris le cours de graphe au S3, pour trouver le plus court chemin de source à puits, j'ai choisi d'implémenter naïvement un algorithme qui liste tous les chemins qui partent de s dans le graphe g. Cette fonction retourne une liste de listes de sommets (string). \\ + Le principe est simple : récursivement pour un sommet s donné, rajoute s à chaque chemin de la liste les chemins partant de chacun de ces successeurs. Si cette liste est vide crée une liste de liste composée uniquement de s.\\ + + \paragraph{plus\_court\_chemins s p c : } Enfin je filtre la liste (notée c ici) pour ne garder que les chemins partant de s et arrivant en p et je calcul le minimum des longueurs de tous les chemins noté m ici. Cette fonction retourne alors la liste des chemins de longueur égale à m. + + Pour l'affichage j'utilise la fonction List.iter sur la liste obtenue en faisant un String.concat " " elt sur chaque élément. + +\section{Phase 2 : maximiser le flux} + +Pour cette phase, j'ai choisi d'utiliser une map de map pour modéliser le graphe : +\begin{verbatim} + module Graphe = Map.Make(String) + module Arreteliste = Map.Make(String) + type arreteliste_t = int Arreteliste.t + type graphe_t = arreteliste Graphe.t +\end{verbatim} + + +\end{document} diff --git a/doc/rapport.toc b/doc/rapport.toc new file mode 100644 index 0000000000000000000000000000000000000000..4b8512dc07f95acf4064aec90571735b95c0c8cb --- /dev/null +++ b/doc/rapport.toc @@ -0,0 +1,7 @@ +\babel@toc {french}{} +\babel@toc {french}{} +\contentsline {section}{\numberline {1}Phase 1 : les plus courts chemins}{2}{section.1}% +\contentsline {paragraph}{make\_graphe n channel : }{2}{section*.3}% +\contentsline {paragraph}{chemins s g : }{2}{section*.4}% +\contentsline {paragraph}{plus\_court\_chemins s p c : }{3}{section*.5}% +\contentsline {section}{\numberline {2}Phase 2 : maximiser le flux}{3}{section.2}% diff --git a/src/main_phase1.ml b/src/main_phase1.ml index 0caa91e455f5362c26a7d8e321297b38c769e6da..c28ccf567b471c55460cbf8babc5e89871fc0501 100644 --- a/src/main_phase1.ml +++ b/src/main_phase1.ml @@ -29,4 +29,4 @@ let _ = in let liste_result = plus_courts_chemins source puits liste_chemins in - List.map f liste_result \ No newline at end of file + List.iter f liste_result \ No newline at end of file diff --git a/src/phase1.ml b/src/phase1.ml index a10b22446de9c83da15a60dd89c3cb2115f55b1e..741c5fe27f98e1e7af6fca0b81be2d1a14af6130 100644 --- a/src/phase1.ml +++ b/src/phase1.ml @@ -4,11 +4,63 @@ *) (* - * définition du type graphe qui est une map de liste dont les clés sont des string + * définition du type graphe qui est une map de liste dont les clés sont des strings *) -module Graphe = Map.Make(String) -module Clesliste = Set.Make(String) +(* module type Graphe = +sig + type key = String.t + type t = string Map.Make(String).t + val empty : t + val mem : key -> t -> bool + val add : key -> string -> t -> t + val iter : (key -> string -> unit) -> t -> unit + val fold : (key -> string -> 'b -> 'b) -> t -> 'b -> 'b + val find : key -> t -> string +end +module type MySet = +sig + type t = Set.Make(String).t + type elt = String.t + val empty : t + val elements : t -> elt list + val add : elt -> t -> t +end +module MakeGraph () = +struct + type key = String.t + type t = string Map.Make(String).t + let empty = Graph.empty + let mem = Graph.mem + let add = Graph.add + let iter = Graph.iter + let fold = Graph.fold + let find = Graph.find +end +*) +module Graphe : +sig + type key = String.t + type 'a t = 'a Map.Make(String).t + val empty : 'a t + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val find : key -> 'a t -> 'a + val remove : key -> 'a t -> 'a t +end = Map.Make(String) + +module Clesliste : +sig + type t = Set.Make(String).t + type elt = String.t + val empty : t + val elements : t -> elt list + val add : elt -> t -> t +end = Set.Make(String) + +type graphe_t = Clesliste.t Graphe.t (* * [make_graphe n] @@ -24,9 +76,8 @@ let rec make_graphe n file = let g = make_graphe (n-1) file in if (Graphe.mem a g) - then let l = Graphe.find a g in - let f = Graphe.remove a g in - Graphe.add a (Clesliste.add b l) f + then let l = Graphe.find a g in + Graphe.add a (Clesliste.add b l) g else Graphe.add a (Clesliste.add b (Clesliste.empty)) g | _ -> failwith("erreur dans le graphe !") diff --git a/src/phase1.mli b/src/phase1.mli new file mode 100644 index 0000000000000000000000000000000000000000..19afce54054aaec5c282fba140bb57ee03e9194a --- /dev/null +++ b/src/phase1.mli @@ -0,0 +1,49 @@ +(* + * fichier : phase1.mli + * auteur : dubard loïc + *) + + module Graphe : + sig + type key = String.t + type 'a t = 'a Map.Make(String).t + val empty : 'a t + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val find : key -> 'a t -> 'a + val remove : key -> 'a t -> 'a t + end + +module Clesliste : +sig + type t = Set.Make(String).t + type elt = String.t + val empty : t + val elements : t -> elt list + val add : elt -> t -> t +end + +type graphe_t = Clesliste.t Graphe.t +(* + * [make_graphe n] + * @ensures : retourne le "graphe" à n arrètes correspondant au fichier ouvert dans le channel file + *) + val make_graphe : int -> in_channel -> graphe_t + + (* + * [liste_sommets g] + * @ensures : la listes des clés du graphe g + *) + val liste_sommets : graphe_t -> Clesliste.t + +(* + * [chemins s g] donne la liste de tous les chemins du graphe g partants de s, un chemin étant une liste de sommets + *) + val chemins : string -> graphe_t -> string list list + + (* + * [plus_court_chemin s p c] renvoie la liste des plus courts chemins de s à p de la liste de chemins c + *) +val plus_courts_chemins : string -> string -> string list list -> string list list \ No newline at end of file diff --git a/src/phase2.ml b/src/phase2.ml index eb7bab01292a211e3d84fd784aa9b7916592d0de..6a59bfa7ee733ae15fc1e226717a9b89136c87c8 100644 --- a/src/phase2.ml +++ b/src/phase2.ml @@ -6,9 +6,35 @@ (* * définition du type graphe qui est une map de liste dont les clés sont des string *) -module Graphe = Map.Make(String) -module Arreteliste = Map.Make(String) - +module Graphe : +sig + type key = String.t + type 'a t = 'a Map.Make(String).t + val empty : 'a t + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val find : key -> 'a t -> 'a + val remove : key -> 'a t -> 'a t +end = Map.Make(String) + +module Arreteliste : +sig + type key = String.t + type 'a t = 'a Map.Make(String).t + val empty : 'a t + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val find : key -> 'a t -> 'a + val remove : key -> 'a t -> 'a t +end = Map.Make(String) + + +type arreteliste_t = int Arreteliste.t +type graphe_t = arreteliste_t Graphe.t (* * [make_graphe n] diff --git a/src/phase2.mli b/src/phase2.mli new file mode 100644 index 0000000000000000000000000000000000000000..419f170d6176064202271709eb1d5ced65ad9fd0 --- /dev/null +++ b/src/phase2.mli @@ -0,0 +1,42 @@ +module Graphe : + sig + type key = String.t + type 'a t = 'a Map.Make(String).t + val empty : 'a t + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val find : key -> 'a t -> 'a + val remove : key -> 'a t -> 'a t + end + +module Arreteliste : +sig + type key = String.t + type 'a t = 'a Map.Make(String).t + val empty : 'a t + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + val find : key -> 'a t -> 'a + val remove : key -> 'a t -> 'a t +end + +type arreteliste_t = int Arreteliste.t +type graphe_t = arreteliste_t Graphe.t + +val make_graphe : int -> in_channel -> int Arreteliste.t Graphe.t +val liste_sommets : 'a Arreteliste.t -> Arreteliste.key list +val chemins : Graphe.key -> 'a Arreteliste.t Graphe.t -> Graphe.key list list +val filtre : 'a -> 'a -> 'a list list -> 'a list list +val capacite : Arreteliste.key list -> 'a Arreteliste.t Graphe.t -> 'a +val graphe_capacites_residuelles : Graphe.key list -> int -> int Arreteliste.t Graphe.t -> int Arreteliste.t Graphe.t +val indice_chemin_max : Arreteliste.key list list -> 'a Arreteliste.t Graphe.t -> int -> int -> 'a -> int +val remove_from_list : int -> 'a list -> 'a list +val liste_sommets_graphe : 'a Graphe.t -> Graphe.key list +val reverse_graphe : int Arreteliste.t Graphe.t -> int Arreteliste.t Graphe.t -> Graphe.key list -> int Arreteliste.t Graphe.t +val flot_maximal : Graphe.key list list -> int Arreteliste.t Graphe.t -> int Arreteliste.t Graphe.t +val debit_maximal : int Arreteliste.t Graphe.t -> Graphe.key -> int +val nb_arrete : 'a Arreteliste.t Graphe.t -> int diff --git a/src/test_phase1.ml b/src/test_phase1.ml index d630c61f53a8436a56612983b5b7fa978871aa86..bd8cf1fb47e307df37143f6bbd89c2c0eb9ea3d7 100644 --- a/src/test_phase1.ml +++ b/src/test_phase1.ml @@ -6,4 +6,8 @@ let puits = input_line file (* 2eme ligne *) let n = int_of_string (input_line file) + + + + let g = make_graphe n file \ No newline at end of file