]> AND Private Git Repository - JournalMultiRounds.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
UPDATE BY ALI
authorali <ali@ali>
Tue, 22 Apr 2014 17:09:09 +0000 (19:09 +0200)
committerali <ali@ali>
Tue, 22 Apr 2014 17:09:09 +0000 (19:09 +0200)
15 files changed:
elsarticle-harv.bst [new file with mode: 0644]
elsarticle-num-names.bst [new file with mode: 0644]
elsarticle-num.bst [new file with mode: 0644]
elsarticle-template-num.aux [new file with mode: 0644]
elsarticle-template-num.bbl [new file with mode: 0644]
elsarticle-template-num.bib [new file with mode: 0755]
elsarticle-template-num.blg [new file with mode: 0644]
elsarticle-template-num.log [new file with mode: 0644]
elsarticle-template-num.spl [new file with mode: 0644]
elsarticle-template-num.synctex.gz [new file with mode: 0644]
elsarticle-template-num.tex [new file with mode: 0644]
elsarticle.cls [new file with mode: 0644]
elsarticle.dtx [new file with mode: 0644]
elsarticle.ins [new file with mode: 0644]
elsarticle.zip [new file with mode: 0644]

diff --git a/elsarticle-harv.bst b/elsarticle-harv.bst
new file mode 100644 (file)
index 0000000..fb668b8
--- /dev/null
@@ -0,0 +1,1537 @@
+%% 
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%% 
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%% 
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%% 
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+
+ %%-------------------------------------------------------------------
+ %% This bibliography style file is intended for texts in ENGLISH
+ %% This is an author-year citation style bibliography. As such, it is
+ %% non-standard LaTeX, and requires a special package file
+ %% to function properly.
+ %% Such a package is    natbib.sty   by Patrick W. Daly
+ %% The form of the \bibitem entries is
+ %%   \bibitem[Jones et al.(1990)]{key}...
+ %%   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ %% The essential feature is that the label (the part in brackets) consists
+ %% of the author names, as they should appear in the citation, with the year
+ %% in parentheses following. There must be no space before the opening
+ %% parenthesis!
+ %% With natbib v5.3, a full list of authors may also follow the year.
+ %% In natbib.sty, it is possible to define the type of enclosures that is
+ %% really wanted (brackets or parentheses), but in either case, there must
+ %% be parentheses in the label.
+ %% The \cite command functions as follows:
+ %%   \citet{key} ==>>                Jones et al. (1990)
+ %%   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
+ %%   \citep{key} ==>>                (Jones et al., 1990)
+ %%   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
+ %%   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
+ %%   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
+ %%   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
+ %%   \citeauthor{key} ==>>           Jones et al.
+ %%   \citeauthor*{key} ==>>          Jones, Baker, and Smith
+ %%   \citeyear{key} ==>>             1990
+ %%---------------------------------------------------------------------
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    url
+    volume
+    year
+  }
+  {}
+  { label extra.label sort.label short.list }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+%%SP 2003/07/25
+%% No longer used
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  new.sentence
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ skip$ }
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+
+ %% Here are the language-specific definitions for explicit words.
+ %% Each function has a name bbl.xxx where xxx is the English word.
+ %% The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "Eds." }
+
+FUNCTION {bbl.editor}
+{ "Ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "Edition" }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "Ch." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+  #-2 #1 substring$ "1" =
+     { bbl.th * }
+     { duplicate$ #-1 #1 substring$
+       duplicate$ "1" =
+         { pop$ bbl.st * }
+         { duplicate$ "2" =
+             { pop$ bbl.nd * }
+             { "3" =
+                 { bbl.rd * }
+                 { bbl.th * }
+               if$
+             }
+           if$
+          }
+       if$
+     }
+   if$
+}
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+FUNCTION {write.url}
+{ url empty$
+    { skip$ }
+    { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}{, jj}{, f.}" format.name$
+    't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              "," *
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal *
+                }
+                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+FUNCTION {format.names.ed}
+{ format.names }
+FUNCTION {format.key}
+{ empty$
+    { key field.or.null }
+    { "" }
+  if$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+        { " (" * bbl.editors * ")" * }
+        { " (" * bbl.editor * ")" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+    { "" }
+    { editor format.names.ed
+      editor num.names$ #1 >
+        { " (" * bbl.editors * ")" * }
+        { " (" * bbl.editor * ")" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ *
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.full.names}
+{'s :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}" format.name$
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              numnames #2 >
+                { "," * }
+                'skip$
+              if$
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal *
+                }
+                { bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.full.names }
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { editor format.full.names }
+  if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.full
+    { type$ "proceedings" =
+        'editor.key.full
+        'author.key.full
+      if$
+    }
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem[{" write$
+  label write$
+  ")" make.full.names duplicate$ short.list =
+     { pop$ }
+     { * }
+   if$
+  "}]{" * write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in capitalize
+  ":" *
+  " " * }
+
+FUNCTION {format.date}
+{ year duplicate$ empty$
+    { "empty year in " cite$ * "; set to ????" * warning$
+       pop$ "????" }
+    'skip$
+  if$
+  month empty$
+    'skip$
+    { month
+      " " * swap$ *
+    }
+  if$
+  extra.label *
+  before.all 'output.state :=
+  ", " swap$ *
+}
+
+FUNCTION {format.btitle}
+{ title
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.connect
+      series empty$
+        'skip$
+        { bbl.of space.word * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { output.state mid.sentence =
+            { bbl.number }
+            { bbl.number capitalize }
+          if$
+          number tie.or.space.connect
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { bbl.in space.word * series * }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {is.num}
+{ chr.to.int$
+  duplicate$ "0" chr.to.int$ < not
+  swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+  "" 's :=
+  { t empty$ not }
+  { t #1 #1 substring$
+    t #2 global.max$ substring$ 't :=
+    duplicate$ is.num
+      { s swap$ * 's := }
+      { pop$ "" 't := }
+    if$
+  }
+  while$
+  s empty$
+    'skip$
+    { pop$ s }
+  if$
+}
+
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+  s "first" = s "1" = or
+    { bbl.first 't := }
+    { s "second" = s "2" = or
+        { bbl.second 't := }
+        { s "third" = s "3" = or
+            { bbl.third 't := }
+            { s "fourth" = s "4" = or
+                { bbl.fourth 't := }
+                { s "fifth" = s "5" = or
+                    { bbl.fifth 't := }
+                    { s #1 #1 substring$ is.num
+                        { s eng.ord 't := }
+                        { edition 't := }
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  t
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+        { convert.edition "l" change.case$ " " * bbl.edition * }
+        { convert.edition "t" change.case$ " " * bbl.edition * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+        { bbl.pages pages n.dashify tie.or.space.connect }
+        { bbl.page pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.journal.pages}
+{ pages empty$
+    'skip$
+    { duplicate$ empty$
+        { pop$ format.pages }
+        {
+          ", " *
+          pages n.dashify *
+        }
+      if$
+    }
+  if$
+}
+
+%%SP 2001/01/23
+%% Only used in articles
+FUNCTION {format.vol.num.pages}
+{
+%%SP 2001/01/23
+%% Add the leading space only if there is a volume
+  %% volume field.or.null
+  " "
+  volume empty$
+    { pop$ "" }
+    { volume * }
+  if$
+  number empty$
+    'skip$
+    {
+      "~(" number * ")" * *
+      volume empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    { "" }
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+        { word.in booktitle * }
+        { word.in format.in.editors * ", " *
+          booktitle * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { bbl.techrep }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      word.in
+    }
+    { bbl.volume capitalize
+      volume tie.or.space.connect
+      bbl.of space.word *
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  address empty$ t empty$ and
+    'skip$
+    {
+      t empty$
+        { address empty$
+          'skip$
+          { address * }
+          if$
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.publisher.address}
+{ publisher empty$
+    { "empty publisher in " cite$ * warning$
+      ""
+    }
+    { publisher }
+  if$
+  format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization empty$
+    { "" }
+    { organization }
+  if$
+  format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  crossref missing$
+    { journal
+      "journal" output.check
+%%SP 2001/01/23
+%% Add the space in format.vol.num.pages
+      %% add.blank
+  before.all 'output.state :=
+      format.vol.num.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.journal.pages
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.edition output
+      new.sentence
+  format.bvolume output
+      format.number.series output
+      new.sentence
+      format.publisher.address output
+    }
+    {
+  new.sentence
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  howpublished output
+  address output
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.edition output
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      new.sentence
+      format.publisher.address output
+      format.chapter.pages "chapter and pages" output.check
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+  new.sentence
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.edition output
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      new.sentence
+      format.publisher.address output
+      format.chapter.pages output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.edition output
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      new.sentence
+      publisher empty$
+        { format.organization.address output }
+        { organization output
+          format.publisher.address output
+        }
+      if$
+%%SP 2001/01/23
+%%      format.pages output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+%%SP 2001/01/23
+%%      format.pages output
+    }
+  if$
+%%SP 2001/01/23
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  new.sentence
+  organization output
+  address output
+  format.edition output
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title output
+  new.sentence
+  howpublished output
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  format.editors output
+  editor format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  new.sentence
+  format.bvolume output
+  format.number.series output
+  new.sentence
+  publisher empty$
+    { format.organization.address output }
+    { organization output
+      format.publisher.address output
+    }
+  if$
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.sentence
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  format.note "note" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {default.type} { misc }
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+FUNCTION {format.lab.names}
+{ 's :=
+  s #1 "{vv~}{ll}" format.name$
+  s num.names$ duplicate$
+  #2 >
+    { pop$
+      " " * bbl.etal *
+    }
+    { #2 <
+        'skip$
+        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              " " * bbl.etal *
+            }
+            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
+              * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+        'editor.key.label
+        'author.key.label
+      if$
+    }
+  if$
+  'short.list :=
+}
+
+FUNCTION {calc.label}
+{ calc.short.authors
+  short.list
+  "("
+  *
+  year duplicate$ empty$
+     { pop$ "????" }
+     'skip$
+  if$
+  *
+  'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
+      format.name$ 't :=
+      nameptr #1 >
+        {
+          "   "  *
+          namesleft #1 = t "others" = and
+            { "zzzzz" * }
+            { t sortify * }
+          if$
+        }
+        { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+        { "to sort, need author or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { "to sort, need author, editor, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+    { key empty$
+        { "to sort, need editor or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+
+FUNCTION {presort}
+{ calc.label
+  label sortify
+  "    "
+  *
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+        'editor.sort
+        'author.sort
+      if$
+    }
+  if$
+  #1 entry.max$ substring$
+  'sort.label :=
+  sort.label
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { last.label next.extra }
+
+INTEGERS { last.extra.num number.label }
+
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+  "" 'next.extra :=
+  #0 'last.extra.num :=
+  #0 'number.label :=
+}
+
+FUNCTION {forward.pass}
+{ last.label label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num int.to.chr$ 'extra.label :=
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      label 'last.label :=
+    }
+  if$
+  number.label #1 + 'number.label :=
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+  extra.label
+  duplicate$ empty$
+    'skip$
+    { "{\natexlab{" swap$ * "}}" * }
+  if$
+  'extra.label :=
+  label extra.label * 'label :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+FUNCTION {bib.sort.order}
+{ sort.label
+  "    "
+  *
+  year field.or.null sortify
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {bib.sort.order}
+
+SORT
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+  write$ newline$
+  "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
+  write$ newline$
+  "\expandafter\ifx\csname url\endcsname\relax"
+  write$ newline$
+  "  \def\url#1{\texttt{#1}}\fi"
+  write$ newline$
+  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
+  write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `elsarticle-harv.bst'.
diff --git a/elsarticle-num-names.bst b/elsarticle-num-names.bst
new file mode 100644 (file)
index 0000000..51a4a3c
--- /dev/null
@@ -0,0 +1,1461 @@
+%% 
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%% 
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%% 
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%% 
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+%%
+%% This is file `elsearticle-num-names.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `head,exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}')
+%% english.mbs  (with options: `exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}')
+%% merlin.mbs  (with options: `tail,exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}')
+%% ----------------------------------------
+%% *** Journal of Sound and Vibration ***
+%%
+%% Copyright 1994-2004 Patrick W Daly
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the LaTeX Project Public License Distributed from CTAN
+ % archives in directory macros/latex/base/lppl.txt; either
+ % version 1 of the License, or any later version.
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)]
+ %   For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+
+ENTRY
+ { address
+   author
+   booktitle
+   chapter
+   doi
+   edition
+   editor
+   eid
+   howpublished
+   institution
+   isbn
+   issn
+   journal
+   key
+   month
+   note
+   number
+   organization
+   pages
+   publisher
+   school
+   series
+   title
+   type
+   url
+   volume
+   year
+ }
+ {}
+ { label extra.label sort.label short.list }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+   { ", " * write$ }
+   { output.state after.block =
+       { add.period$ write$
+         newline$
+         "\newblock " write$
+       }
+       { output.state before.all =
+           'write$
+           { add.period$ " " * write$ }
+         if$
+       }
+     if$
+     mid.sentence 'output.state :=
+   }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+   'pop$
+   'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+   { pop$ "empty " t * " in " * cite$ * warning$ }
+   'output.nonnull
+ if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+   'skip$
+   { after.block 'output.state := }
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+   'skip$
+   { output.state before.all =
+       'skip$
+       { after.sentence 'output.state := }
+     if$
+   }
+ if$
+}
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+ skip$
+}
+
+FUNCTION {not}
+{   { #0 }
+   { #1 }
+ if$
+}
+FUNCTION {and}
+{   'skip$
+   { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{   { pop$ #1 }
+   'skip$
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+   'skip$
+   'new.block
+ if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+   { pop$ "" }
+   'skip$
+ if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+   { pop$ "" }
+   { "\emph{" swap$ * "}" * }
+ if$
+}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+   { "~" }
+   { " " }
+ if$
+ swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)]
+
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "edn." }
+
+FUNCTION {bbl.volume}
+{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "" }
+
+FUNCTION {bbl.page}
+{ "" }
+
+FUNCTION {bbl.chapter}
+{ "chap." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+ % End module: english.mbs
+%% Copyright 1994-2004 Patrick W Daly
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+   {
+     pop$ pop$
+     ""
+   }
+   { duplicate$ empty$
+       {
+         swap$ pop$
+       }
+       { swap$
+         "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+       }
+     if$
+   }
+ if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+ duplicate$ missing$
+   {
+     swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+     ""
+   }
+   { duplicate$ empty$
+       {
+         swap$ "empty " swap$ * " in " * cite$ * warning$
+       }
+       { swap$
+         "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+       }
+     if$
+   }
+ if$
+}
+FUNCTION {format.url}
+{ url empty$
+   { "" }
+   { "\urlprefix\url{" url * "}" * }
+ if$
+}
+
+STRINGS  { bibinfo}
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+   { namesleft #0 > }
+   { s nameptr
+     "{f.~}{vv~}{ll}{, jj}"
+     format.name$
+     bibinfo bibinfo.check
+     't :=
+     nameptr #1 >
+       {
+         namesleft #1 >
+           { ", " * t * }
+           {
+             "," *
+             s nameptr "{ll}" format.name$ duplicate$ "others" =
+               { 't := }
+               { pop$ }
+             if$
+             t "others" =
+               {
+                 " " * bbl.etal *
+               }
+               { " " * t * }
+             if$
+           }
+         if$
+       }
+       't
+     if$
+     nameptr #1 + 'nameptr :=
+     namesleft #1 - 'namesleft :=
+   }
+ while$
+ } if$
+}
+FUNCTION {format.names.ed}
+{
+ format.names
+}
+FUNCTION {format.key}
+{ empty$
+   { key field.or.null }
+   { "" }
+ if$
+}
+
+FUNCTION {format.authors}
+{ author "author" format.names
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+   {
+     " " *
+     get.bbl.editor
+     capitalize
+  "(" swap$ * ")" *
+     *
+   }
+ if$
+}
+FUNCTION {format.isbn}
+{ isbn "isbn" bibinfo.check
+ duplicate$ empty$ 'skip$
+   {
+     "ISBN " swap$ *
+   }
+ if$
+}
+
+FUNCTION {format.issn}
+{ issn "issn" bibinfo.check
+ duplicate$ empty$ 'skip$
+   {
+     "ISSN " swap$ *
+   }
+ if$
+}
+
+ FUNCTION {format.doi}
+ { doi "doi" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      "\doi{" swap$  * "}" *
+    }
+  if$
+ }
+
+FUNCTION {format.note}
+{
+ note empty$
+   { "" }
+   { note #1 #1 substring$
+     duplicate$ "{" =
+       'skip$
+       { output.state mid.sentence =
+         { "l" }
+         { "u" }
+       if$
+       change.case$
+       }
+     if$
+     note #2 global.max$ substring$ * "note" bibinfo.check
+   }
+ if$
+}
+
+FUNCTION {format.title}
+{ title
+ "title" bibinfo.check
+}
+FUNCTION {format.full.names}
+{'s :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+   { namesleft #0 > }
+   { s nameptr
+     "{vv~}{ll}" format.name$
+     't :=
+     nameptr #1 >
+       {
+         namesleft #1 >
+           { ", " * t * }
+           {
+             s nameptr "{ll}" format.name$ duplicate$ "others" =
+               { 't := }
+               { pop$ }
+             if$
+             t "others" =
+               {
+                 " " * bbl.etal *
+               }
+               {
+                 numnames #2 >
+                   { "," * }
+                   'skip$
+                 if$
+                 bbl.and
+                 space.word * t *
+               }
+             if$
+           }
+         if$
+       }
+       't
+     if$
+     nameptr #1 + 'nameptr :=
+     namesleft #1 - 'namesleft :=
+   }
+ while$
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+   { editor empty$
+       { key empty$
+           { cite$ #1 #3 substring$ }
+           'key
+         if$
+       }
+       { editor format.full.names }
+     if$
+   }
+   { author format.full.names }
+ if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+   { key empty$
+        { cite$ #1 #3 substring$ }
+         'key
+     if$
+   }
+   { author format.full.names }
+ if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+   { key empty$
+        { cite$ #1 #3 substring$ }
+         'key
+     if$
+   }
+   { editor format.full.names }
+ if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+   'author.editor.key.full
+   { type$ "proceedings" =
+       'editor.key.full
+       'author.key.full
+     if$
+   }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[{" write$
+ label write$
+ ")" make.full.names duplicate$ short.list =
+    { pop$ }
+    { * }
+  if$
+ "}]{" * write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+ 't :=
+ ""
+   { t empty$ not }
+   { t #1 #1 substring$ "-" =
+       { t #1 #2 substring$ "--" = not
+           { "--" *
+             t #2 global.max$ substring$ 't :=
+           }
+           {   { t #1 #1 substring$ "-" = }
+               { "-" *
+                 t #2 global.max$ substring$ 't :=
+               }
+             while$
+           }
+         if$
+       }
+       { t #1 #1 substring$ *
+         t #2 global.max$ substring$ 't :=
+       }
+     if$
+   }
+ while$
+}
+
+FUNCTION {word.in}
+{ bbl.in
+ ":" *
+ " " * }
+
+FUNCTION {format.date}
+{ year "year" bibinfo.check duplicate$ empty$
+   {
+     "empty year in " cite$ * "; set to ????" * warning$
+      pop$ "????"
+   }
+   'skip$
+ if$
+ extra.label *
+}
+FUNCTION{format.year}
+{ year "year" bibinfo.check duplicate$ empty$
+   {  "empty year in " cite$ *
+      "; set to ????" *
+      warning$
+      pop$ "????"
+   }
+   {
+   }
+ if$
+ extra.label *
+ "(" swap$ * ")" *
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+   {
+   }
+ if$
+}
+FUNCTION {either.or.check}
+{ empty$
+   'pop$
+   { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+   { "" }
+   { bbl.volume volume tie.or.space.prefix
+     "volume" bibinfo.check * *
+     series "series" bibinfo.check
+     duplicate$ empty$ 'pop$
+       { swap$ bbl.of space.word * swap$
+         emphasize * }
+     if$
+     "volume and number" number either.or.check
+   }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+   { number empty$
+       { series field.or.null }
+       { series empty$
+           { number "number" bibinfo.check }
+           { output.state mid.sentence =
+               { bbl.number }
+               { bbl.number capitalize }
+             if$
+             number tie.or.space.prefix "number" bibinfo.check * *
+             bbl.in space.word *
+             series "series" bibinfo.check *
+           }
+         if$
+       }
+     if$
+   }
+   { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+   {
+     output.state mid.sentence =
+       { "l" }
+       { "t" }
+     if$ change.case$
+     "edition" bibinfo.check
+     " " * bbl.edition *
+   }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+   { multiresult not
+     t empty$ not
+     and
+   }
+   { t #1 #1 substring$
+     duplicate$ "-" =
+     swap$ duplicate$ "," =
+     swap$ "+" =
+     or or
+       { #1 'multiresult := }
+       { t #2 global.max$ substring$ 't := }
+     if$
+   }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+   { duplicate$ multi.page.check
+       {
+         n.dashify
+       }
+       {
+       }
+     if$
+     "pages" bibinfo.check
+   }
+ if$
+}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+   { swap$ duplicate$ empty$
+       { pop$ pop$ format.pages }
+       {
+         " " *
+         format.year * " " *
+         swap$
+         n.dashify
+         "pages" bibinfo.check
+         *
+       }
+     if$
+   }
+ if$
+}
+FUNCTION {format.journal.eid}
+{ eid "eid" bibinfo.check
+ duplicate$ empty$ 'pop$
+   { swap$ duplicate$ empty$ 'skip$
+     {
+         " " *
+     }
+     if$
+     swap$ *
+   }
+ if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ duplicate$ empty$ 'skip$
+   {
+     "volume" bibinfo.check
+   }
+ if$
+ number "number" bibinfo.check duplicate$ empty$ 'skip$
+   {
+     swap$ duplicate$ empty$
+       { "there's a number but no volume in " cite$ * warning$ }
+       'skip$
+     if$
+     swap$
+     "~(" swap$ * ")" *
+   }
+ if$ *
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+   { "" }
+   { type empty$
+       { bbl.chapter }
+       { type "l" change.case$
+         "type" bibinfo.check
+       }
+     if$
+     chapter tie.or.space.prefix
+     "chapter" bibinfo.check
+     * *
+   }
+ if$
+}
+
+FUNCTION {format.booktitle}
+{
+ booktitle "booktitle" bibinfo.check
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+   {
+     editor "editor" format.names.ed duplicate$ empty$ 'pop$
+       {
+         " " *
+         get.bbl.editor
+         capitalize
+         "(" swap$ * "), " *
+         * swap$
+         * }
+     if$
+     word.in swap$ *
+   }
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+   'pop$
+   { swap$ pop$
+     "t" change.case$ "type" bibinfo.check
+   }
+ if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+ type duplicate$ empty$
+   { pop$ bbl.techrep }
+   'skip$
+ if$
+ "type" bibinfo.check
+ swap$ duplicate$ empty$
+   { pop$ "t" change.case$ }
+   { tie.or.space.prefix * * }
+ if$
+}
+FUNCTION {format.article.crossref}
+{
+ word.in
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+   { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+     pop$ word.in
+   }
+   { bbl.volume
+     swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+   }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+ word.in
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+ ""
+ address empty$ t empty$ and
+   'skip$
+   {
+     t empty$
+       { address "address" bibinfo.check *
+       }
+       { t *
+         address empty$
+           'skip$
+           { ", " * address "address" bibinfo.check * }
+         if$
+       }
+     if$
+   }
+ if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.title "title" output.check
+ crossref missing$
+   {
+     journal
+     "journal" bibinfo.check
+     "journal" output.check
+     add.blank
+     format.vol.num.pages output
+   }
+   { format.article.crossref output.nonnull
+   }
+ if$
+ eid empty$
+   { format.journal.pages }
+   { format.journal.eid }
+ if$
+ format.issn output
+ format.doi output
+ format.url output
+ format.note output
+ fin.entry
+}
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+   { format.editors "author and editor" output.check
+     editor format.key output
+   }
+   { format.authors output.nonnull
+     crossref missing$
+       { "author and editor" editor either.or.check }
+       'skip$
+     if$
+   }
+ if$
+ format.btitle "title" output.check
+ crossref missing$
+   { format.bvolume output
+     format.number.series output
+     format.publisher.address output
+   }
+   {
+     format.book.crossref output.nonnull
+   }
+ if$
+ format.edition output
+ format.isbn output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ format.title "title" output.check
+ howpublished "howpublished" bibinfo.check output
+ address "address" bibinfo.check output
+ format.isbn output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+   { format.editors "author and editor" output.check
+     editor format.key output
+   }
+   { format.authors output.nonnull
+     crossref missing$
+       { "author and editor" editor either.or.check }
+       'skip$
+     if$
+   }
+ if$
+ format.btitle "title" output.check
+ crossref missing$
+   {
+     format.bvolume output
+     format.chapter.pages "chapter and pages" output.check
+     format.number.series output
+     format.publisher.address output
+   }
+   {
+     format.chapter.pages "chapter and pages" output.check
+     format.book.crossref output.nonnull
+   }
+ if$
+ format.edition output
+ crossref missing$
+   { format.isbn output }
+   'skip$
+ if$
+ format.pages "pages" output.check
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.title "title" output.check
+ crossref missing$
+   { format.in.ed.booktitle "booktitle" output.check
+     format.bvolume output
+     format.number.series output
+     format.chapter.pages output
+     format.publisher.address output
+     format.edition output
+     format.isbn output
+   }
+   { format.incoll.inproc.crossref output.nonnull
+     format.chapter.pages output
+   }
+ if$
+ format.pages "pages" output.check
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.title "title" output.check
+ crossref missing$
+   { format.in.ed.booktitle "booktitle" output.check
+     format.bvolume output
+     format.number.series output
+     publisher empty$
+       { format.organization.address output }
+       { organization "organization" bibinfo.check output
+         format.publisher.address output
+       }
+     if$
+     format.isbn output
+     format.issn output
+   }
+   { format.incoll.inproc.crossref output.nonnull
+   }
+ if$
+ format.pages "pages" output.check
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ format.btitle "title" output.check
+ organization "organization" bibinfo.check output
+ address "address" bibinfo.check output
+ format.edition output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.btitle
+ "title" output.check
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ format.title output
+ howpublished "howpublished" bibinfo.check output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.btitle
+ "title" output.check
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.editors output
+ editor format.key output
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ publisher empty$
+   { format.organization.address output }
+   { organization "organization" bibinfo.check output
+     format.publisher.address output
+   }
+ if$
+ format.isbn output
+ format.issn output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.title
+ "title" output.check
+ format.tr.number output.nonnull
+ institution "institution" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.doi output
+ format.url output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.title "title" output.check
+ format.doi output
+ format.url output
+ format.note "note" output.check
+ format.date output
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+   { s len #1 + global.max$ substring$ }
+   's
+ if$
+}
+FUNCTION {format.lab.names}
+{ 's :=
+ "" 't :=
+ s #1 "{vv~}{ll}" format.name$
+ s num.names$ duplicate$
+ #2 >
+   { pop$
+     " " * bbl.etal *
+   }
+   { #2 <
+       'skip$
+       { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+           {
+             " " * bbl.etal *
+           }
+           { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
+             * }
+         if$
+       }
+     if$
+   }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+   { key empty$
+       { cite$ #1 #3 substring$ }
+       'key
+     if$
+   }
+   { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+   { editor empty$
+       { key empty$
+           { cite$ #1 #3 substring$ }
+           'key
+         if$
+       }
+       { editor format.lab.names }
+     if$
+   }
+   { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+   { key empty$
+       { cite$ #1 #3 substring$ }
+       'key
+     if$
+   }
+   { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+   'author.editor.key.label
+   { type$ "proceedings" =
+       'editor.key.label
+       'author.key.label
+     if$
+   }
+ if$
+ 'short.list :=
+}
+
+FUNCTION {calc.label}
+{ calc.short.authors
+ short.list
+ "("
+ *
+ year duplicate$ empty$
+    { pop$ "????" }
+    { purify$ #-1 #4 substring$ }
+ if$
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+   { namesleft #0 > }
+   { s nameptr
+     "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
+     format.name$ 't :=
+     nameptr #1 >
+       {
+         "   "  *
+         namesleft #1 = t "others" = and
+           { "zzzzz" * }
+           { t sortify * }
+         if$
+       }
+       { t sortify * }
+     if$
+     nameptr #1 + 'nameptr :=
+     namesleft #1 - 'namesleft :=
+   }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+   "An " #3
+     "The " #4 t chop.word
+   chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+   { key empty$
+       { "to sort, need author or key in " cite$ * warning$
+         ""
+       }
+       { key sortify }
+     if$
+   }
+   { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+   { editor empty$
+       { key empty$
+           { "to sort, need author, editor, or key in " cite$ * warning$
+             ""
+           }
+           { key sortify }
+         if$
+       }
+       { editor sort.format.names }
+     if$
+   }
+   { author sort.format.names }
+ if$
+}
+FUNCTION {editor.sort}
+{ editor empty$
+   { key empty$
+       { "to sort, need editor or key in " cite$ * warning$
+         ""
+       }
+       { key sortify }
+     if$
+   }
+   { editor sort.format.names }
+ if$
+}
+INTEGERS { seq.num }
+FUNCTION {init.seq}
+{ #0 'seq.num :=}
+EXECUTE {init.seq}
+FUNCTION {int.to.fix}
+{ "000000000" swap$ int.to.str$ *
+ #-1 #10 substring$
+}
+FUNCTION {presort}
+{ calc.label
+ label sortify
+ "    "
+ *
+ seq.num #1 + 'seq.num :=
+ seq.num  int.to.fix
+ 'sort.label :=
+ sort.label
+ *
+ "    "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+SORT
+STRINGS { last.label next.extra }
+INTEGERS { last.extra.num number.label }
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+ #0 'number.label :=
+}
+FUNCTION {forward.pass}
+{ last.label label =
+   { last.extra.num #1 + 'last.extra.num :=
+     last.extra.num int.to.chr$ 'extra.label :=
+   }
+   { "a" chr.to.int$ 'last.extra.num :=
+     "" 'extra.label :=
+     label 'last.label :=
+   }
+ if$
+ number.label #1 + 'number.label :=
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+   { "a" 'extra.label := }
+   'skip$
+ if$
+ extra.label 'next.extra :=
+ extra.label
+ duplicate$ empty$
+   'skip$
+   { "{\natexlab{" swap$ * "}}" * }
+ if$
+ 'extra.label :=
+ label extra.label * 'label :=
+}
+EXECUTE {initialize.extra.label.stuff}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+FUNCTION {bib.sort.order}
+{ sort.label
+ "    "
+ *
+ year field.or.null sortify
+ *
+ "    "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {bib.sort.order}
+SORT
+FUNCTION {begin.bib}
+{ preamble$ empty$
+   'skip$
+   { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+ write$ newline$
+ "\providecommand{\natexlab}[1]{#1}"
+ write$ newline$
+ "\providecommand{\url}[1]{\texttt{#1}}"
+ write$ newline$
+ "\providecommand{\urlprefix}{URL }"
+ write$ newline$
+ "\expandafter\ifx\csname urlstyle\endcsname\relax"
+ write$ newline$
+ "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
+ write$ newline$
+ "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\url{#1}\endgroup}\fi"
+ write$ newline$
+ "\providecommand{\bibinfo}[2]{#2}"
+ write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%%
+%% End of file `elsarticle-num-names.bst'.
diff --git a/elsarticle-num.bst b/elsarticle-num.bst
new file mode 100644 (file)
index 0000000..0257b4f
--- /dev/null
@@ -0,0 +1,1517 @@
+%% 
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%% 
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%% 
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%% 
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+%%% Modification of BibTeX style file elsarticle-num.bst
+%%% ... by urlbst, version 0.6 (marked with "% urlbst")
+%%% See <http://purl.org/nxg/dist/urlbst>
+%%% Added webpage entry type, and url and lastchecked fields.
+%%% Added eprint support.
+%%% Added DOI support.
+%%% Added hyperref support.
+%%% Original headers follow...
+
+%%
+%% This is file `elsarticle-num.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `,seq-no,nm-init,ed-au,dt-end,yr-par,yrp-x,jttl-rm,thtit-a,vnum-sp,volp-blk,jdt-p,pp-last,jnm-x,btit-rm,bt-rm,pub-date,pub-xpar,pre-edn,url,url-nl,edpar,blk-com,in-col,pp,ed,abr,ednx,ord,jabr,and-xcom,xand,em-x,nfss')
+%% After docstrip generation some manual changes were made (SP)
+
+%% ----------------------------------------
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+    eprint % urlbst
+    doi % urlbst
+    url % urlbst
+    lastchecked % urlbst
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
+INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
+FUNCTION {init.urlbst.variables}
+{
+  "Available from: " 'urlintro := % prefix before URL
+  "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+  "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+  "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+  "doi:" 'doiprefix :=      % text prefix printed before DOI ref
+  #1 'addeprints :=         % 0=no eprints; 1=include eprints
+  #1 'adddoiresolver :=     % 0=no DOI resolver; 1=include it
+  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
+  #1 'inlinelinks :=        % 0=URLs explicit; 1=URLs attached to titles
+  % the following are internal state variables, not config constants
+  #0 'makeinlinelink :=     % state variable managed by setup.inlinelink
+  "" 'openinlinelink :=     % ditto
+  "" 'closeinlinelink :=    % ditto
+}
+INTEGERS {
+  bracket.state
+  outside.brackets
+  open.brackets
+  within.brackets
+  close.brackets
+}
+FUNCTION {init.state.consts}
+{ #0 'outside.brackets := % urlbst
+  #1 'open.brackets :=
+  #2 'within.brackets :=
+  #3 'close.brackets :=
+
+  #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull.original}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {setup.inlinelink}
+{ makeinlinelink
+    { hrefform #1 = % hypertex
+        { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+          "\special {html:</a>}" 'closeinlinelink :=
+          }
+        { hrefform #2 = % hyperref
+            { "\href{" url * "}{" * 'openinlinelink :=
+              "}" 'closeinlinelink :=
+              }
+            'skip$
+          if$ % hrefform #2 =
+        }
+      if$ % hrefform #1 =
+      #0 'makeinlinelink :=
+    }
+    'skip$
+ if$ % makeinlinelink
+}
+FUNCTION {add.inlinelink}
+{ openinlinelink empty$
+    'skip$
+    { openinlinelink swap$ * closeinlinelink *
+      "" 'openinlinelink :=
+      }
+  if$
+}
+FUNCTION {output.nonnull}
+{ % Save the thing we've been asked to output
+  's :=
+  % If the bracket-state is close.brackets, then add a close-bracket to
+  % what is currently at the top of the stack, and set bracket.state
+  % to outside.brackets
+  bracket.state close.brackets =
+    { "]" *
+      outside.brackets 'bracket.state :=
+    }
+    'skip$
+  if$
+  bracket.state outside.brackets =
+    { % We're outside all brackets -- this is the normal situation.
+      % Write out what's currently at the top of the stack, using the
+      % original output.nonnull function.
+      s
+      add.inlinelink
+      output.nonnull.original % invoke the original output.nonnull
+    }
+    { % Still in brackets.  Add open-bracket or (continuation) comma, add the
+      % new text (in s) to the top of the stack, and move to the close-brackets
+      % state, ready for next time (unless inbrackets resets it).  If we come
+      % into this branch, then output.state is carefully undisturbed.
+      bracket.state open.brackets =
+        { " [" * }
+        { ", " * } % bracket.state will be within.brackets
+      if$
+      s *
+      close.brackets 'bracket.state :=
+    }
+  if$
+}
+
+FUNCTION {inbrackets}
+{ bracket.state close.brackets =
+    { within.brackets 'bracket.state := } % reset the state: not open nor closed
+    { open.brackets 'bracket.state := }
+  if$
+}
+
+FUNCTION {format.lastchecked}
+{ lastchecked empty$
+    { "" }
+    { inbrackets "cited " lastchecked * }
+  if$
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {fin.entry.original}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  add.blank
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ skip$ }
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "Eds." }
+
+FUNCTION {bbl.editor}
+{ "Ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "Edition" }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "Ch." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+  #-2 #1 substring$ "1" =
+     { bbl.th * }
+     { duplicate$ #-1 #1 substring$
+       duplicate$ "1" =
+         { pop$ bbl.st * }
+         { duplicate$ "2" =
+             { pop$ bbl.nd * }
+             { "3" =
+                 { bbl.rd * }
+                 { bbl.th * }
+               if$
+             }
+           if$
+          }
+       if$
+     }
+   if$
+}
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+FUNCTION {write.url}
+{ url empty$
+    { skip$ }
+    { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{f.~}{vv~}{ll}{, jj}" format.name$
+    't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              "," *
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal *
+                }
+                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+FUNCTION {format.names.ed}
+{ format.names }
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+        { " (" * bbl.editors * ")" * }
+        { " (" * bbl.editor * ")" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+    { "" }
+    { editor format.names.ed
+      editor num.names$ #1 >
+        { " (" * bbl.editors * ")" * }
+        { " (" * bbl.editor * ")" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ *
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {output.bibitem.original}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in
+  ":" *
+  " " * }
+
+FUNCTION {format.date}
+{ year empty$
+    { month empty$
+        { "" }
+        { "there's a month but no year in " cite$ * warning$
+          month
+        }
+      if$
+    }
+    { month empty$
+        'year
+        { month " " * year * }
+      if$
+    }
+  if$
+  duplicate$ empty$
+    'skip$
+    {
+      before.all 'output.state :=
+    " (" swap$ * ")" *
+    }
+  if$
+}
+
+FUNCTION{format.year}
+{ year duplicate$ empty$
+    { "empty year in " cite$ * warning$ pop$ "" }
+    { "(" swap$ * ")" * }
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.connect
+      series empty$
+        'skip$
+        { bbl.of space.word * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { output.state mid.sentence =
+            { bbl.number }
+            { bbl.number capitalize }
+          if$
+          number tie.or.space.connect
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { bbl.in space.word * series * }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {is.num}
+{ chr.to.int$
+  duplicate$ "0" chr.to.int$ < not
+  swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+  "" 's :=
+  { t empty$ not }
+  { t #1 #1 substring$
+    t #2 global.max$ substring$ 't :=
+    duplicate$ is.num
+      { s swap$ * 's := }
+      { pop$ "" 't := }
+    if$
+  }
+  while$
+  s empty$
+    'skip$
+    { pop$ s }
+  if$
+}
+
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+  s "first" = s "1" = or
+    { bbl.first 't := }
+    { s "second" = s "2" = or
+        { bbl.second 't := }
+        { s "third" = s "3" = or
+            { bbl.third 't := }
+            { s "fourth" = s "4" = or
+                { bbl.fourth 't := }
+                { s "fifth" = s "5" = or
+                    { bbl.fifth 't := }
+                    { s #1 #1 substring$ is.num
+                        { s eng.ord 't := }
+                        { edition 't := }
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  t
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+        { convert.edition "l" change.case$ " " * bbl.edition * }
+        { convert.edition "t" change.case$ " " * bbl.edition * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+        { bbl.pages pages n.dashify tie.or.space.connect }
+        { bbl.page pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.journal.pages}
+{ pages empty$
+    'skip$
+    { duplicate$ empty$
+        { pop$ format.pages }
+        {
+          " " *
+          format.year * " " *
+          pages n.dashify *
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.num.pages}
+{
+  % volume field.or.null
+  " "
+  volume empty$
+    { pop$ "" }
+    { volume * }
+  if$
+  number empty$
+    'skip$
+    {
+      "~(" number * ")" * *
+      volume empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    { "" }
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+        { word.in booktitle * }
+        { word.in format.in.editors * ", " *
+          booktitle * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { bbl.techrep }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{
+  key empty$
+    { journal empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref *
+          warning$
+          ""
+        }
+        { word.in journal emphasize * }
+      if$
+    }
+    { word.in key * " " *}
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$
+      " " * bbl.etal *
+    }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              " " * bbl.etal *
+            }
+            { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$
+              * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      word.in
+    }
+    { bbl.volume volume tie.or.space.connect
+      bbl.of space.word *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { series empty$
+            { "need editor, key, or series for " cite$ * " to crossref " *
+              crossref * warning$
+              "" *
+            }
+            { series emphasize * }
+          if$
+        }
+        { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { booktitle empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+              ""
+            }
+            { word.in booktitle * }
+          if$
+        }
+        { word.in key * " " *}
+      if$
+    }
+    { word.in format.crossref.editor * " " *}
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  year empty$
+    { "empty year in " cite$ * warning$ }
+    'skip$
+  if$
+  address empty$ t empty$ and
+  year empty$ and
+    'skip$
+    {
+      t empty$
+        { address empty$
+          'skip$
+          { address * }
+          if$
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address * }
+          if$
+        }
+      if$
+      year empty$
+        'skip$
+        { t empty$ address empty$ and
+            'skip$
+            { ", " * }
+          if$
+          year *
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.publisher.address}
+{ publisher empty$
+    { "empty publisher in " cite$ * warning$
+      ""
+    }
+    { publisher }
+  if$
+  format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization empty$
+    { "" }
+    { organization }
+  if$
+  format.org.or.pub
+}
+
+FUNCTION {make.href.null}
+{
+  pop$
+}
+FUNCTION {make.href.hypertex}
+{
+  "\special {html:<a href=" quote$ *
+  swap$ * quote$ * "> }" * swap$ *
+  "\special {html:</a>}" *
+}
+FUNCTION {make.href.hyperref}
+{
+  "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+}
+FUNCTION {make.href}
+{ hrefform #2 =
+    'make.href.hyperref      % hrefform = 2
+    { hrefform #1 =
+        'make.href.hypertex  % hrefform = 1
+        'make.href.null      % hrefform = 0 (or anything else)
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.url}
+{ inlinelinks #1 = url empty$ or
+   { "" }
+   { hrefform #1 =
+       { % special case -- add HyperTeX specials
+         urlintro "\url{" url * "}" * url make.href.hypertex * }
+       { urlintro "\url{" * url * "}" * }
+     if$
+   }
+  if$
+}
+
+FUNCTION {format.eprint}
+{ eprint empty$
+    { "" }
+    { eprintprefix eprint * eprinturl eprint * make.href }
+  if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+    { "" }
+    { doiprefix doi * doiurl doi * make.href }
+  if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+    'skip$
+    { new.block
+      format.url output
+      format.lastchecked output
+    }
+  if$
+}
+
+FUNCTION {output.web.refs}
+{
+  new.block
+  output.url
+  addeprints eprint empty$ not and
+    { format.eprint output.nonnull }
+    'skip$
+  if$
+  adddoiresolver doi empty$ not and
+    { format.doi output.nonnull }
+    'skip$
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ outside.brackets 'bracket.state :=
+  output.bibitem.original
+  inlinelinks url empty$ not and
+    { #1 'makeinlinelink := }
+    { #0 'makeinlinelink := }
+  if$
+}
+
+FUNCTION {fin.entry}
+{ output.web.refs  % urlbst
+  makeinlinelink       % ooops, it appears we didn't have a title for inlinelink
+    { setup.inlinelink % add some artificial link text here, as a fallback
+      "[link]" output.nonnull }
+    'skip$
+  if$
+  bracket.state close.brackets = % urlbst
+    { "]" * }
+    'skip$
+  if$
+  fin.entry.original
+}
+
+FUNCTION {webpage}
+{ output.bibitem
+  author empty$
+    { editor empty$
+        'skip$  % author and editor both optional
+        { format.editors output.nonnull }
+      if$
+    }
+    { editor empty$
+        { format.authors output.nonnull }
+        { "can't use both author and editor fields in " cite$ * warning$ }
+      if$
+    }
+  if$
+  new.block
+  title empty$ 'skip$ 'setup.inlinelink if$
+  format.title "title" output.check
+  inbrackets "online" output
+  new.block
+  year empty$
+    'skip$
+    { format.date "year" output.check }
+  if$
+  % We don't need to output the URL details ('lastchecked' and 'url'),
+  % because fin.entry does that for us, using output.web.refs.  The only
+  % reason we would want to put them here is if we were to decide that
+  % they should go in front of the rather miscellaneous information in 'note'.
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  crossref missing$
+    { journal
+      "journal" output.check
+      % add.blank
+  before.all 'output.state :=
+      format.vol.num.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.journal.pages
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  crossref missing$
+    { format.edition output
+      format.bvolume output
+      format.number.series output
+      format.publisher.address output
+    }
+    {
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  howpublished output
+  address output
+  format.note output
+  format.date output
+  fin.entry
+  write.url
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.edition output
+      format.bvolume output
+      format.number.series output
+      format.publisher.address output
+      format.chapter.pages "chapter and pages" output.check
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.edition output
+      format.bvolume output
+      format.number.series output
+      format.publisher.address output
+      format.chapter.pages output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.edition output
+      format.bvolume output
+      format.number.series output
+      publisher empty$
+        { format.organization.address output }
+        { organization output
+          format.publisher.address output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+        'skip$
+        { organization output.nonnull
+          address output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+    {
+          address output
+        }
+        'skip$
+      if$
+    }
+    {
+      organization output
+      address output
+    }
+  if$
+  format.edition output
+  format.note output
+  format.date output
+  fin.entry
+  write.url
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.note output
+  format.date "year" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title output
+  howpublished output
+  format.note output
+  format.date output
+  fin.entry
+  write.url
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.note output
+  format.date "year" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization output }
+    { format.editors output.nonnull }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  editor empty$
+    { publisher empty$
+        'skip$
+        {
+          format.publisher.address output
+        }
+      if$
+    }
+    { publisher empty$
+        {
+          format.organization.address output }
+        {
+          organization output
+          format.publisher.address output
+        }
+      if$
+     }
+  if$
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.note output
+  format.date "year" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  format.note "note" output.check
+  format.date output
+  fin.entry
+  write.url
+}
+
+FUNCTION {default.type} { misc }
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" *
+  write$ newline$
+  "\expandafter\ifx\csname url\endcsname\relax"
+  write$ newline$
+  "  \def\url#1{\texttt{#1}}\fi"
+  write$ newline$
+  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
+  write$ newline$
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \def\href#1#2{#2} \def\path#1{#1}\fi"
+  write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.urlbst.variables}
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `elsarticle-num.bst'.
diff --git a/elsarticle-template-num.aux b/elsarticle-template-num.aux
new file mode 100644 (file)
index 0000000..7a56934
--- /dev/null
@@ -0,0 +1,207 @@
+\relax 
+\citation{Sudip03}
+\citation{Akyildiz02}
+\citation{conti2014mobile}
+\citation{Nayak04}
+\citation{Sudip03}
+\citation{Misra05}
+\citation{Akyildiz02}
+\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}}
+\citation{varga}
+\citation{cardei2006energy}
+\citation{zorbas2010solving}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Related works}{3}}
+\newlabel{rw}{{2}{3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Centralized Approaches}{3}}
+\citation{Slijepcevic01powerefficient}
+\citation{abrams2004set}
+\citation{Slijepcevic01powerefficient}
+\citation{cardei2005improving}
+\citation{Slijepcevic01powerefficient}
+\citation{zorbas2010solving}
+\citation{Slijepcevic01powerefficient}
+\citation{cardei2005energy}
+\citation{pujari2011high}
+\citation{cardei2005energy}
+\citation{cardei2005improving}
+\citation{berman04}
+\citation{garg98}
+\citation{Gallais06,Tian02,Ye03,Zhang05,HeinzelmanCB02,yardibi2010distributed}
+\citation{Berman05efficientenergy}
+\citation{lu2003coverage}
+\citation{Tian02}
+\citation{prasad2007distributed}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Distributed approaches}{5}}
+\citation{yardibi2010distributed}
+\citation{ChinhVu}
+\citation{Huang:2003:CPW:941350.941367}
+\citation{idrees2014coverage}
+\citation{Bang,Zhixin,Zhang}
+\citation{Misra}
+\citation{Shibo}
+\citation{xu2001geography}
+\citation{Ye03}
+\citation{cardei2005maximum}
+\citation{ghosh2008coverage}
+\citation{wang2011coverage}
+\citation{mulligan2010coverage}
+\citation{yang2014novel}
+\citation{HeShibo}
+\citation{die09}
+\@writefile{toc}{\contentsline {section}{\numberline {3}Preliminaries}{7}}
+\newlabel{Pr}{{3}{7}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Coverage Problem}{7}}
+\citation{wang2010clique}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Network Lifetime}{8}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Activity Scheduling }{8}}
+\@writefile{toc}{\contentsline {section}{\numberline {4} The DiLCO Protocol Description}{8}}
+\newlabel{pd}{{4}{8}}
+\citation{Zhang05}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.1} Assumptions and Models}{9}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Wireless Sensor Node represented by (a)5, (b)9 and (c)13 primary points respectively}}{10}}
+\newlabel{fig1}{{1}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}The Main Idea}{11}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces DiLCO protocol}}{11}}
+\newlabel{fig2}{{2}{11}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Information Exchange Phase}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Leader Election Phase}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Decision phase}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}Sensing phase}{12}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces LEADER ELECTION}}{13}}
+\newlabel{alg:LEADER}{{1}{13}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}DiLCO protocol Algorithm}{13}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces DiLCO($s_j$)}}{14}}
+\newlabel{alg:DMRCLOP}{{2}{14}}
+\citation{pedraza2006}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Coverage problem formulation}{15}}
+\newlabel{cp}{{5}{15}}
+\citation{varga}
+\newlabel{eq13}{{3}{16}}
+\newlabel{eq14}{{4}{16}}
+\newlabel{eq:ip2r}{{5}{16}}
+\citation{ChinhVu}
+\citation{raghunathan2002energy}
+\citation{raghunathan2002energy}
+\citation{raghunathan2002energy}
+\@writefile{toc}{\contentsline {section}{\numberline {6}Simulation Results and Analysis}{17}}
+\newlabel{exp}{{6}{17}}
+\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Relevant parameters for network initializing.}}{17}}
+\newlabel{table3}{{1}{17}}
+\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces The Energy Consumption Model}}{18}}
+\newlabel{table4}{{2}{18}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Performance Comparison for differnet subregions}{20}}
+\newlabel{sub1}{{6.1}{20}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.1}The impact of the number of rounds on the coverage ratio}{20}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces The impact of the number of rounds on the coverage ratio for 150 deployed nodes}}{21}}
+\newlabel{fig3}{{3}{21}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.2}The impact of the number of rounds on the active sensors ratio}{21}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces The impact of the number of rounds on the active sensors ratio for 150 deployed nodes }}{21}}
+\newlabel{fig4}{{4}{21}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.3}The impact of the number of rounds on the energy saving ratio}{22}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces The impact of the number of rounds on the energy saving ratio for 150 deployed nodes}}{22}}
+\newlabel{fig5}{{5}{22}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.4}The percentage of stopped simulation runs}{23}}
+\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces The percentage of stopped simulation runs compared to the number of rounds for 150 deployed nodes }}{23}}
+\newlabel{fig6}{{6}{23}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.5}The Energy Consumption}{23}}
+\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces The Energy Consumption}}{24}}
+\newlabel{fig7}{{7}{24}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.6}The impact of the number of sensors on execution time}{24}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.7}The Network Lifetime}{24}}
+\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces The Execution Time(s) vs The Number of Sensors}}{25}}
+\newlabel{table1}{{3}{25}}
+\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces The Network Lifetime }}{25}}
+\newlabel{fig8}{{8}{25}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Performance Comparison for Different Primary Point Models}{26}}
+\newlabel{sub2}{{6.2}{26}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}The impact of the number of rounds on the coverage ratio}{26}}
+\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces The impact of the number of rounds on the coverage ratio for 150 deployed nodes}}{26}}
+\newlabel{fig33}{{9}{26}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2}The impact of the number of rounds on the active sensors ratio}{27}}
+\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces The impact of the number of rounds on the active sensors ratio for 150 deployed nodes }}{27}}
+\newlabel{fig44}{{10}{27}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.3}The impact of the number of rounds on the energy saving ratio}{28}}
+\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces The impact of the number of rounds on the energy saving ratio for 150 deployed nodes}}{28}}
+\newlabel{fig55}{{11}{28}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.4}The percentage of stopped simulation runs}{28}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces The percentage of stopped simulation runs compared to the number of rounds for 150 deployed nodes }}{29}}
+\newlabel{fig66}{{12}{29}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.5}The Energy Consumption}{29}}
+\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces The Energy Consumption}}{30}}
+\newlabel{fig77}{{13}{30}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.6}The impact of the number of sensors on execution time}{30}}
+\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces The Execution Time(s) vs The Number of Sensors }}{31}}
+\newlabel{figt}{{14}{31}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.7}The Network Lifetime}{31}}
+\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces The Network Lifetime }}{31}}
+\newlabel{fig88}{{15}{31}}
+\citation{ChinhVu}
+\citation{xu2001geography}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Performance Comparison for Different Approaches}{32}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.1}The impact of the number of rounds on the coverage ratio}{32}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces The impact of the number of rounds on the coverage ratio for 150 deployed nodes}}{32}}
+\newlabel{fig333}{{16}{32}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.2}The impact of the number of rounds on the active sensors ratio}{33}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces The impact of the number of rounds on the active sensors ratio for 150 deployed nodes }}{33}}
+\newlabel{fig444}{{17}{33}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.3}The impact of the number of rounds on the energy saving ratio}{34}}
+\@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces The impact of the number of rounds on the energy saving ratio for 150 deployed nodes}}{34}}
+\newlabel{fig555}{{18}{34}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.4}The percentage of stopped simulation runs}{35}}
+\@writefile{lof}{\contentsline {figure}{\numberline {19}{\ignorespaces The percentage of stopped simulation runs compared to the number of rounds for 150 deployed nodes }}{35}}
+\newlabel{fig666}{{19}{35}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.5}The Energy Consumption}{36}}
+\@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces The Energy Consumption}}{36}}
+\newlabel{fig777}{{20}{36}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.6}The Network Lifetime}{37}}
+\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces The Network Lifetime }}{37}}
+\newlabel{fig888}{{21}{37}}
+\bibstyle{elsarticle-num}
+\bibdata{elsarticle-template-num}
+\bibcite{Sudip03}{{1}{}{{}}{{}}}
+\bibcite{Akyildiz02}{{2}{}{{}}{{}}}
+\bibcite{conti2014mobile}{{3}{}{{}}{{}}}
+\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion and Future Works}{38}}
+\newlabel{sec:conclusion}{{7}{38}}
+\bibcite{Nayak04}{{4}{}{{}}{{}}}
+\bibcite{Misra05}{{5}{}{{}}{{}}}
+\bibcite{varga}{{6}{}{{}}{{}}}
+\bibcite{cardei2006energy}{{7}{}{{}}{{}}}
+\bibcite{zorbas2010solving}{{8}{}{{}}{{}}}
+\bibcite{Slijepcevic01powerefficient}{{9}{}{{}}{{}}}
+\bibcite{abrams2004set}{{10}{}{{}}{{}}}
+\bibcite{cardei2005improving}{{11}{}{{}}{{}}}
+\bibcite{cardei2005energy}{{12}{}{{}}{{}}}
+\bibcite{pujari2011high}{{13}{}{{}}{{}}}
+\bibcite{berman04}{{14}{}{{}}{{}}}
+\bibcite{garg98}{{15}{}{{}}{{}}}
+\bibcite{Gallais06}{{16}{}{{}}{{}}}
+\bibcite{Tian02}{{17}{}{{}}{{}}}
+\bibcite{Ye03}{{18}{}{{}}{{}}}
+\bibcite{Zhang05}{{19}{}{{}}{{}}}
+\bibcite{HeinzelmanCB02}{{20}{}{{}}{{}}}
+\bibcite{yardibi2010distributed}{{21}{}{{}}{{}}}
+\bibcite{Berman05efficientenergy}{{22}{}{{}}{{}}}
+\bibcite{lu2003coverage}{{23}{}{{}}{{}}}
+\bibcite{prasad2007distributed}{{24}{}{{}}{{}}}
+\bibcite{ChinhVu}{{25}{}{{}}{{}}}
+\bibcite{Huang:2003:CPW:941350.941367}{{26}{}{{}}{{}}}
+\bibcite{idrees2014coverage}{{27}{}{{}}{{}}}
+\bibcite{Bang}{{28}{}{{}}{{}}}
+\bibcite{Zhixin}{{29}{}{{}}{{}}}
+\bibcite{Zhang}{{30}{}{{}}{{}}}
+\bibcite{Misra}{{31}{}{{}}{{}}}
+\bibcite{Shibo}{{32}{}{{}}{{}}}
+\bibcite{xu2001geography}{{33}{}{{}}{{}}}
+\bibcite{cardei2005maximum}{{34}{}{{}}{{}}}
+\bibcite{pc10}{{35}{}{{}}{{}}}
+\bibcite{ghosh2008coverage}{{36}{}{{}}{{}}}
+\bibcite{wang2011coverage}{{37}{}{{}}{{}}}
+\bibcite{mulligan2010coverage}{{38}{}{{}}{{}}}
+\bibcite{yang2014novel}{{39}{}{{}}{{}}}
+\bibcite{HeShibo}{{40}{}{{}}{{}}}
+\bibcite{die09}{{41}{}{{}}{{}}}
+\bibcite{wang2010clique}{{42}{}{{}}{{}}}
+\bibcite{pedraza2006}{{43}{}{{}}{{}}}
+\bibcite{raghunathan2002energy}{{44}{}{{}}{{}}}
+\providecommand\NAT@force@numbers{}\NAT@force@numbers
diff --git a/elsarticle-template-num.bbl b/elsarticle-template-num.bbl
new file mode 100644 (file)
index 0000000..3ea29bc
--- /dev/null
@@ -0,0 +1,225 @@
+\begin{thebibliography}{10}
+\expandafter\ifx\csname url\endcsname\relax
+  \def\url#1{\texttt{#1}}\fi
+\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi
+\expandafter\ifx\csname href\endcsname\relax
+  \def\href#1#2{#2} \def\path#1{#1}\fi
+
+\bibitem{Sudip03}
+S.~Misra, I.~Woungang, S.~C. Misra, Guide to Wireless Sensor Networks,
+  Springer-Verlag London Limited, 2009.
+
+\bibitem{Akyildiz02}
+I.~F. Akyildiz, M.~C. Vuran, Wireless Sensor Networks, John Wiley and Sons
+  Ltd., 2010.
+
+\bibitem{conti2014mobile}
+M.~Conti, S.~Giordano, Mobile ad hoc networking: milestones, challenges, and
+  new research directions, Communications Magazine, IEEE 52~(1) (2014) 85--96.
+
+\bibitem{Nayak04}
+A.~Nayak, I.~Stojmenovic, Wireless Sensor and Actuator Networks: Algorithms and
+  Protocols for Scalable Coordination and Data Communication, John Wiley and
+  Sons, Inc, 2010.
+
+\bibitem{Misra05}
+S.~Misra, M.~P. Kumar, M.~S. Obaidat, Connectivity preserving localized
+  coverage algorithm for area monitoring using wireless sensor networks,
+  Computer Communications 34~(12) (2011) 1484--1496.
+
+\bibitem{varga}
+A.~Varga, Omnet++ discrete event simulation system, Available:
+  http://www.omnetpp.org.
+
+\bibitem{cardei2006energy}
+M.~Cardei, J.~Wu, Energy-efficient coverage problems in wireless ad-hoc sensor
+  networks, Computer communications 29~(4) (2006) 413--420.
+
+\bibitem{zorbas2010solving}
+D.~Zorbas, D.~Glynos, P.~Kotzanikolaou, C.~Douligeris, Solving coverage
+  problems in wireless sensor networks using cover sets, Ad Hoc Networks 8~(4)
+  (2010) 400--415.
+
+\bibitem{Slijepcevic01powerefficient}
+S.~Slijepcevic, M.~Potkonjak, Power efficient organization of wireless sensor
+  networks, in: IEEE International conference on Communications, 2001, pp.
+  472--476.
+
+\bibitem{abrams2004set}
+Z.~Abrams, A.~Goel, S.~Plotkin, Set k-cover algorithms for energy efficient
+  monitoring in wireless sensor networks, in: Proceedings of the 3rd
+  international symposium on Information processing in sensor networks, ACM,
+  2004, pp. 424--432.
+
+\bibitem{cardei2005improving}
+M.~Cardei, D.-Z. Du, Improving wireless sensor network lifetime through power
+  aware organization, Wireless Networks 11~(3) (2005) 333--340.
+
+\bibitem{cardei2005energy}
+M.~Cardei, M.~T. Thai, Y.~Li, W.~Wu, Energy-efficient target coverage in
+  wireless sensor networks, in: INFOCOM 2005. 24th Annual Joint Conference of
+  the IEEE Computer and Communications Societies. Proceedings IEEE, Vol.~3,
+  IEEE, 2005, pp. 1976--1984.
+
+\bibitem{pujari2011high}
+A.~K. Pujari, High-energy-first (hef) heuristic for energy-efficient target
+  coverage problem., International Journal of Ad Hoc, Sensor \& Ubiquitous
+  Computing 2~(1).
+
+\bibitem{berman04}
+P.~Berman, G.~Calinescu, Power efficient monitoring management in sensor
+  networks, in: Proceedings of IEEE Wireless Communication and Networking
+  Conference (WCNC'04), 2004, pp. 2329--2334.
+
+\bibitem{garg98}
+N.~Garg, J.~Koenemann, Faster and simpler algorithms for multicommodity flow
+  and other fractional packing problems., in: Proceedings of the 39th Annual
+  Symposium on Foundations of Computer Science, FOCS '98, 1998, pp. 300--309.
+
+\bibitem{Gallais06}
+A.~Gallais, J.~Carle, D.~Simplot-Ryl, I.~Stojmenovic, Localized sensor area
+  coverage with low communication overhead, in: Proceedings of the Fourth
+  Annual IEEE International Conference on Pervasive Computing and
+  Communications, 2006, pp. 328--337.
+
+\bibitem{Tian02}
+D.~Tian, N.~D. Georganas, A coverage-preserving node scheduling scheme for
+  large wireless sensor networks, in: Proceedings of the 1st ACM international
+  workshop on Wireless sensor networks and applications, WSNA '02, ACM, 2002,
+  pp. 32--41.
+
+\bibitem{Ye03}
+F.~Ye, G.~Zhong, J.~Cheng, S.~Lu, L.~Zhang, Peas: A robust energy conserving
+  protocol for long-lived sensor networks, in: Proceedings of the 23rd
+  International Conference on Distributed Computing Systems, ICDCS'03, 2003,
+  pp. 28--37.
+
+\bibitem{Zhang05}
+H.~Zhang, J.~C. Hou, Maintaining sensing coverage and connectivity in large
+  sensor networks, Ad Hoc {\&} Sensor Wireless Networks 1~(1-2).
+
+\bibitem{HeinzelmanCB02}
+W.~B. Heinzelman, A.~P. Chandrakasan, H.~Balakrishnan, An application-specific
+  protocol architecture for wireless microsensor networks, IEEE Transactions on
+  Wireless Communications 1~(4) (2002) 660--670.
+
+\bibitem{yardibi2010distributed}
+T.~Yardibi, E.~Karasan, A distributed activity scheduling algorithm for
+  wireless sensor networks with partial coverage, Wireless Networks 16~(1)
+  (2010) 213--225.
+
+\bibitem{Berman05efficientenergy}
+P.~Berman, G.~Calinescu, C.~Shah, A.~Zelikovsky, Efficient energy management in
+  sensor networks, in: Ad Hoc and Sensor Networks. Nova Science Publishers,
+  Nova Science Publisher, 2005.
+
+\bibitem{lu2003coverage}
+J.~Lu, T.~Suda, Coverage-aware self-scheduling in sensor networks, in: Computer
+  Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop
+  on, IEEE, 2003, pp. 117--123.
+
+\bibitem{prasad2007distributed}
+S.~K. Prasad, A.~Dhawan, Distributed algorithms for lifetime of wireless sensor
+  networks based on dependencies among cover sets, in: High Performance
+  Computing--HiPC 2007, Springer, 2007, pp. 381--392.
+
+\bibitem{ChinhVu}
+C.~Vu, S.~Gao, W.~Deshmukh, Y.~Li, Distributed energy-efficient scheduling
+  approach for k-coverage in wireless sensor networks, MILCOM 0 (2006) 1--7.
+\newblock \href
+  {http://dx.doi.org/http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146}
+  {\path{doi:http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146}}.
+
+\bibitem{Huang:2003:CPW:941350.941367}
+C.-F. HUANG, Y.-C. TSENG, The coverage problem in a wireless sensor network,
+  Mobile Networks and Applications 10~(4) (2005) 519--528.
+
+\bibitem{idrees2014coverage}
+A.~K. Idrees, K.~Deschinkel, M.~Salomon, R.~Couturier, Coverage and lifetime
+  optimization in heterogeneous energy wireless sensor networks, in: ICN 2014,
+  The Thirteenth International Conference on Networks, 2014, pp. 49--54.
+
+\bibitem{Bang}
+B.~Wang, H.~B. Lim, D.~Ma, A coverage-aware clustering protocol for wireless
+  sensor networks, Computer Networks 56~(5) (2012) 1599--1611.
+
+\bibitem{Zhixin}
+Z.~Liu, Q.~Zheng, L.~Xue, X.~Guan, A distributed energy-efficient clustering
+  algorithm with improved coverage in wireless sensor networks, Future
+  Generation Computer Systems 28~(5) (2012) 780--790.
+
+\bibitem{Zhang}
+L.~Zhang, Q.~Zhu, J.~Wang, Adaptive clustering for maximizing network lifetime
+  and maintaining coverage, JOURNAL OF NETWORKS 8~(3) (2013) 616--622.
+
+\bibitem{Misra}
+S.~Misra, M.~P. Kumar, M.~S. Obaidat, Connectivity preserving localized
+  coverage algorithm for area monitoring using wireless sensor networks,
+  Computer Communications 34~(12) (2011) 1484--1496.
+
+\bibitem{Shibo}
+S.~He, J.~Chen, X.~Li, X.~Shen, Y.~Sun, Leveraging prediction to improve the
+  coverage of wireless sensor networks, IEEE TRANSACTIONS ON PARALLEL AND
+  DISTRIBUTED SYSTEMS 23~(4) (2012) 701--712.
+
+\bibitem{xu2001geography}
+Y.~Xu, J.~Heidemann, D.~Estrin, Geography-informed energy conservation for ad
+  hoc routing, in: Proceedings of the 7th annual international conference on
+  Mobile computing and networking, ACM, 2001, pp. 70--84.
+
+\bibitem{cardei2005maximum}
+M.~Cardei, J.~Wu, M.~Lu, M.~O. Pervaiz, Maximum network lifetime in wireless
+  sensor networks with adjustable sensing ranges, in: Wireless And Mobile
+  Computing, Networking And Communications, 2005.(WiMob'2005), IEEE
+  International Conference on, Vol.~3, IEEE, 2005, pp. 438--445.
+
+\bibitem{pc10}
+T.~Padmavathy, M.~Chitra, Extending the network lifetime of wireless sensor
+  networks using residual energy extraction-hybrid scheduling algorithm, Int.
+  J. of Communications, Network and System Sciences 3~(1) (2010) 98--106.
+
+\bibitem{ghosh2008coverage}
+A.~Ghosh, S.~K. Das, Coverage and connectivity issues in wireless sensor
+  networks: A survey, Pervasive and Mobile Computing 4~(3) (2008) 303--334.
+
+\bibitem{wang2011coverage}
+B.~Wang, Coverage problems in sensor networks: A survey, ACM Computing Surveys
+  (CSUR) 43~(4) (2011) 32.
+
+\bibitem{mulligan2010coverage}
+R.~Mulligan, H.~M. Ammari, Coverage in wireless sensor networks: A survey.,
+  Network Protocols \& Algorithms 2~(2).
+
+\bibitem{yang2014novel}
+C.~Yang, K.-W. Chin, Novel algorithms for complete targets coverage in energy
+  harvesting wireless sensor networks, Communications Letters, IEEE 18~(1)
+  (2014) 118--121.
+\newblock \href {http://dx.doi.org/10.1109/LCOMM.2013.111513.132436}
+  {\path{doi:10.1109/LCOMM.2013.111513.132436}}.
+
+\bibitem{HeShibo}
+S.~He, X.~Gong, J.~Zhang, J.~Chen, Y.~Sun, Curve-based deployment for barrier
+  coverage in wireless sensor networks, Wireless Communications, IEEE
+  Transactions on 13~(2) (2014) 724--735.
+\newblock \href {http://dx.doi.org/10.1109/TWC.2013.121813.130198}
+  {\path{doi:10.1109/TWC.2013.121813.130198}}.
+
+\bibitem{die09}
+I.~Dietrich, F.~Dressler, On the lifetime of wireless sensor networks, TOSN
+  5~(1).
+
+\bibitem{wang2010clique}
+L.~Wang, R.~Wei, Y.~Lin, B.~Wang, A clique base node scheduling method for
+  wireless sensor networks, Journal of Network and Computer Applications 33~(4)
+  (2010) 383--396.
+
+\bibitem{pedraza2006}
+F.~Pedraza, A.~L. Medaglia, A.~Garcia, Efficient coverage algorithms for
+  wireless sensor networks, in: Proceedings of the 2006 Systems and Information
+  Engineering Design Symposium, 2006, pp. 78--83.
+
+\bibitem{raghunathan2002energy}
+V.~Raghunathan, C.~Schurgers, S.~Park, M.~B. Srivastava, Energy-aware wireless
+  microsensor networks, Signal Processing Magazine, IEEE 19~(2) (2002) 40--50.
+
+\end{thebibliography}
diff --git a/elsarticle-template-num.bib b/elsarticle-template-num.bib
new file mode 100755 (executable)
index 0000000..6ff1c2b
--- /dev/null
@@ -0,0 +1,479 @@
+@ARTICLE{Torkestani,
+ author = "J. A. Torkestani",
+ title = "An adaptive energy-efficient area coverage algorithm for wireless sensor networks ",
+ journal = {Ad Hoc Networks},
+ volume = {11},
+ number = {6},
+ pages = {1655-1666},
+ year = {2013},
+ }
+@ARTICLE{Zhang,
+ author = "L. Zhang and Q. Zhu and J. Wang",
+ title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ",
+ journal = {JOURNAL OF NETWORKS},
+ volume = {8},
+ number = {3},
+ pages = {616-622},
+ year = {2013},
+ }
+
+@ARTICLE{pc10,
+ author = "T.V. Padmavathy and M. Chitra",
+ title = "Extending the Network Lifetime of Wireless Sensor Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm",
+  JOURNAL = {Int. J. of Communications, Network and System Sciences},
+ VOLUME = {3},
+ NUMBER = {1},
+PAGES = {98-106},
+YEAR = {2010},
+ }
+
+
+@ARTICLE{Misra,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using
+wireless sensor networks ",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+}
+
+
+@ARTICLE{Zhixin,
+ author = "Z. Liu and Q. Zheng and L. Xue and X. Guan",
+ title = "A distributed energy-efficient clustering algorithm with improved coverage in
+wireless sensor networks",
+ JOURNAL = {Future Generation Computer Systems},
+ VOLUME = {28},
+ NUMBER = {5},
+ PAGES = {780-790},
+ YEAR = {2012},
+ }
+
+@ARTICLE{Bang,
+ author = "B. Wang and H. B. Lim and D. Ma ",
+ title = "A coverage-aware clustering protocol for wireless sensor networks",
+ JOURNAL = {Computer Networks},
+ VOLUME = {56},
+ NUMBER = {5},
+ PAGES = {1599-1611},
+ YEAR = {2012},
+ }
+
+
+@ARTICLE{Shibo,
+ author = " S. He and J. Chen and X. Li and X. Shen and Y. Sun ",
+ title = "Leveraging Prediction to Improve the Coverage of Wireless Sensor Networks",
+ JOURNAL = {IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS},
+ VOLUME = {23},
+ NUMBER = {4},
+ PAGES = {701-712},
+ YEAR = {2012},
+ }
+@book{Akyildiz02,
+ author = {I. F. Akyildiz and M. C. Vuran},
+ title = {Wireless Sensor Networks},
+ publisher = {John Wiley and Sons Ltd.},
+ year = {2010},
+} 
+
+@book{Sudip03,
+ author = {S. Misra and I. Woungang and S. C. Misra},
+ title = {Guide to Wireless Sensor Networks},
+ publisher = {Springer-Verlag London Limited},
+ year = {2009},
+} 
+
+@book{Nayak04,
+ author = {A. Nayak and I. Stojmenovic},
+ title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication},
+ publisher = {John Wiley and Sons, Inc},
+  year = {2010},
+} 
+
+@ARTICLE{Misra05,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using wireless
+sensor networks",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+ }
+@ARTICLE{Huang:2003:CPW:941350.941367,
+ author = "C.-F. HUANG and Y.-C. TSENG",
+ title = "The Coverage Problem in a Wireless Sensor Network",
+ JOURNAL = {Mobile Networks and Applications},
+ VOLUME = {10},
+ NUMBER = {4},
+ PAGES = {519-528}, 
+ YEAR = {2005},
+ }
+
+
+@ARTICLE{Zhang05,
+  author    = {H. Zhang and J. C. Hou},
+  title     = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks},
+  journal   = {Ad Hoc {\&} Sensor Wireless Networks},
+  volume    = {1},
+  number    = {1-2},
+  year      = {2005},
+
+}
+
+@ARTICLE{HeinzelmanCB02,
+  author    = {W. B. Heinzelman and A. P. Chandrakasan and H. Balakrishnan},
+  title     = {An application-specific protocol architecture for wireless microsensor networks},
+  journal   = {IEEE Transactions on Wireless Communications},
+  volume    = {1},
+  number    = {4},
+  pages     = {660-670},
+  year      = {2002},
+}
+
+
+@inproceedings{pedraza2006,
+       author = {F. Pedraza and A. L. Medaglia and A. Garcia},
+       title = {Efficient coverage algorithms for wireless sensor networks},   
+       booktitle = {Proceedings of the 2006 Systems and Information Engineering Design Symposium},
+       pages = {78-83},
+       YEAR = {2006},
+} 
+
+@PhDThesis{chin2007,
+author = {C. T. Vu},
+title = {DISTRIBUTED ENERGY-EFFICIENT SOLUTIONS FOR AREA COVERAGE PROBLEMS IN WIRELESS SENSOR NETWORKS},
+school = {Georgia State University},
+year = {2009},
+}
+
+@ARTICLE{varga,
+author = {A. Varga},
+title = {OMNeT++ Discrete Event Simulation System},
+journal = {Available: http://www.omnetpp.org},
+year = {2003},
+}
+
+
+@ARTICLE{die09,
+  author    = {Isabel Dietrich and
+               Falko Dressler},
+  title     = {On the lifetime of wireless sensor networks},
+  journal   = {TOSN},
+  volume    = {5},
+  number    = {1},
+  year      = {2009},
+  ee        = {http://doi.acm.org/10.1145/1464420.1464425},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+  
+@ARTICLE{mulligan2010coverage,
+  title={Coverage in Wireless Sensor Networks: A Survey.},
+  author={Mulligan, Raymond and Ammari, Habib M},
+  journal={Network Protocols \& Algorithms},
+  volume={2},
+  number={2},
+  year={2010}
+}
+
+
+@phdthesis{vu2009distributed,
+  title={Distributed energy-efficient solutions for area coverage problems in wireless sensor networks},
+  author={Vu, Chinh Trung},
+  year={2009},
+  school={GEORGIA STATE UNIVERSITY}
+}
+
+
+@ARTICLE{raghunathan2002energy,
+  title={Energy-aware wireless microsensor networks},
+  author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B},
+  journal={Signal Processing Magazine, IEEE},
+  volume={19},
+  number={2},
+  pages={40--50},
+  year={2002},
+  publisher={IEEE}
+}
+
+@ARTICLE{ChinhVu,
+author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li},
+title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks},
+journal ={MILCOM},
+volume = {0},
+isbn = {1-4244-0617-X},
+year = {2006},
+pages = {1-7},
+doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146},
+publisher = {IEEE Computer Society},
+address = {Los Alamitos, CA, USA},
+}
+
+
+@ARTICLE{ghosh2008coverage,
+  title={Coverage and connectivity issues in wireless sensor networks: A survey},
+  author={Ghosh, Amitabha and Das, Sajal K},
+  journal={Pervasive and Mobile Computing},
+  volume={4},
+  number={3},
+  pages={303--334},
+  year={2008},
+  publisher={Elsevier}
+}
+
+@ARTICLE{wang2011coverage,
+  title={Coverage problems in sensor networks: A survey},
+  author={Wang, Bang},
+  journal={ACM Computing Surveys (CSUR)},
+  volume={43},
+  number={4},
+  pages={32},
+  year={2011},
+  publisher={ACM}
+}
+
+@ARTICLE{yang2014novel, 
+author={Changlin Yang and Kwan-Wu Chin}, 
+journal={Communications Letters, IEEE}, 
+title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, 
+year={2014}, 
+month={January}, 
+volume={18}, 
+number={1}, 
+pages={118-121}, 
+keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, 
+doi={10.1109/LCOMM.2013.111513.132436}, 
+ISSN={1089-7798},}
+
+@ARTICLE{HeShibo, 
+author={He, Shibo and Gong, Xiaowen and Zhang, Junshan and Chen, Jiming and Sun, Youxian}, 
+journal={Wireless Communications, IEEE Transactions on}, 
+title={Curve-Based Deployment for Barrier Coverage in Wireless Sensor Networks}, 
+year={2014}, 
+month={February}, 
+volume={13}, 
+number={2}, 
+pages={724-735}, 
+keywords={Algorithm design and analysis;Approximation algorithms;Approximation methods;Educational institutions;Sensors;Wireless communication;Wireless sensor networks;Barrier coverage;curved-based deployment;deployment algorithms;optimal deployment curve}, 
+doi={10.1109/TWC.2013.121813.130198}, 
+ISSN={1536-1276},
+}
+
+
+@inproceedings{Zorbas2007,
+ author = {D. Zorbas and D. Glynos and P. Kotzanikolaou and C. Douligeris},
+ title = {B\{GOP\}: an adaptive coverage algorithm for wireless sensor networks},
+ booktitle = {Proceedings of the 13th European Wireless Conference},
+ series = {EW'07},
+ year = {2007},
+ location = {Paris, France},
+} 
+
+@ARTICLE{zorbas2010solving,
+  title={Solving coverage problems in wireless sensor networks using cover sets},
+  author={Zorbas, Dimitrios and Glynos, Dimitris and Kotzanikolaou, Panayiotis and Douligeris, Christos},
+  journal={Ad Hoc Networks},
+  volume={8},
+  number={4},
+  pages={400-415},
+  year={2010},
+  publisher={Elsevier},
+}
+
+@INPROCEEDINGS{Slijepcevic01powerefficient,
+    author = {S. Slijepcevic and M. Potkonjak},
+    title = {Power Efficient Organization of Wireless Sensor Networks},
+    booktitle = {IEEE International conference on Communications},
+    year = {2001},
+    pages = {472-476}
+}
+
+@ARTICLE{cardei2006energy,
+  title={Energy-efficient coverage problems in wireless ad-hoc sensor networks},
+  author={Cardei, Mihaela and Wu, Jie},
+  journal={Computer communications},
+  volume={29},
+  number={4},
+  pages={413-420},
+  year={2006},
+  publisher={Elsevier}
+}
+
+@inproceedings{cardei2005energy,
+  title={Energy-efficient target coverage in wireless sensor networks},
+  author={Cardei, Mihaela and Thai, My T and Li, Yingshu and Wu, Weili},
+  booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE},
+  volume={3},
+  pages={1976-1984},
+  year={2005},
+  organization={IEEE}
+}
+
+@ARTICLE{cardei2005improving,
+  title={Improving wireless sensor network lifetime through power aware organization},
+  author={Cardei, Mihaela and Du, Ding-Zhu},
+  journal={Wireless Networks},
+  volume={11},
+  number={3},
+  pages={333-340},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+@inproceedings{abrams2004set,
+  title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks},
+  author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge},
+  booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks},
+  pages={424-432},
+  year={2004},
+  organization={ACM}
+}
+
+@ARTICLE{pujari2011high,
+  title={High-Energy-First (HEF) Heuristic for Energy-Efficient Target Coverage Problem.},
+  author={Pujari, Arun K},
+  journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing},
+  volume={2},
+  number={1},
+  year={2011}
+}
+
+@INPROCEEDINGS{berman04,
+    author = {P. Berman and G. Calinescu},
+    title = {Power Efficient Monitoring Management in Sensor Networks},
+    booktitle = {Proceedings of IEEE Wireless Communication and Networking Conference (WCNC'04)},
+    year = {2004},
+    pages = {2329--2334}
+}
+
+@inproceedings{Gallais06,
+ author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan},
+ title = {Localized Sensor Area Coverage with Low Communication Overhead},
+ booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications},
+ year = {2006},
+ pages = {328-337},
+}
+
+@inproceedings{Tian02,
+ author = {Tian, Di and Georganas, Nicolas D.},
+ title = {A coverage-preserving node scheduling scheme for large wireless sensor networks},
+ booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications},
+ series = {WSNA '02},
+ year = {2002},
+ pages = {32-41},
+ publisher = {ACM},
+} 
+
+@inproceedings{Ye03,
+ author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia},
+ title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks},
+ booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems},
+ series = {ICDCS'03},
+ year = {2003},
+ pages = {28-37},
+} 
+
+
+@INPROCEEDINGS{Berman05efficientenergy,
+    author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky},
+    title = {Efficient energy management in sensor networks},
+    booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers},
+    year = {2005},
+    publisher = {Nova Science Publisher}
+}
+
+@inproceedings{lu2003coverage,
+  title={Coverage-aware self-scheduling in sensor networks},
+  author={Lu, Jun and Suda, Tatsuya},
+  booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on},
+  pages={117--123},
+  year={2003},
+  organization={IEEE}
+}
+
+@incollection{prasad2007distributed,
+  title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets},
+  author={Prasad, Sushil K and Dhawan, Akshaye},
+  booktitle={High Performance Computing--HiPC 2007},
+  pages={381-392},
+  year={2007},
+  publisher={Springer}
+}
+
+@inproceedings{cardei2005maximum,
+  title={Maximum network lifetime in wireless sensor networks with adjustable sensing ranges},
+  author={Cardei, Mihaela and Wu, Jie and Lu, Mingming and Pervaiz, Mohammad O},
+  booktitle={Wireless And Mobile Computing, Networking And Communications, 2005.(WiMob'2005), IEEE International Conference on},
+  volume={3},
+  pages={438--445},
+  year={2005},
+  organization={IEEE}
+}
+
+@inproceedings{garg98,
+ author = {Garg, Naveen and Koenemann, Jochen},
+ title = {Faster and Simpler Algorithms for Multicommodity Flow and other Fractional Packing Problems.},
+ booktitle = {Proceedings of the 39th Annual Symposium on Foundations of Computer Science},
+ series = {FOCS '98},
+ year = {1998},
+ pages = {300-309},
+}
+
+@article{wang2010clique,
+  title={A clique base node scheduling method for wireless sensor networks},
+  author={Wang, Lei and Wei, Ruizhong and Lin, Yaping and Wang, Bo},
+  journal={Journal of Network and Computer Applications},
+  volume={33},
+  number={4},
+  pages={383--396},
+  year={2010},
+  publisher={Elsevier}
+}
+
+@article{yardibi2010distributed,
+  title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage},
+  author={Yardibi, Tarik and Karasan, Ezhan},
+  journal={Wireless Networks},
+  volume={16},
+  number={1},
+  pages={213--225},
+  year={2010},
+  publisher={Springer}
+}
+
+@article{conti2014mobile,
+  title={Mobile ad hoc networking: milestones, challenges, and new research directions},
+  author={Conti, Marco and Giordano, Silvia},
+  journal={Communications Magazine, IEEE},
+  volume={52},
+  number={1},
+  pages={85--96},
+  year={2014},
+  publisher={IEEE}
+}
+
+@inproceedings{idrees2014coverage,
+  title={Coverage and Lifetime Optimization in Heterogeneous Energy Wireless Sensor Networks},
+  author={Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+  booktitle={ICN 2014, The Thirteenth International Conference on Networks},
+  pages={49--54},
+  year={2014}
+}
+
+@inproceedings{xu2001geography,
+  title={Geography-informed energy conservation for ad hoc routing},
+  author={Xu, Ya and Heidemann, John and Estrin, Deborah},
+  booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking},
+  pages={70--84},
+  year={2001},
+  organization={ACM}
+}
\ No newline at end of file
diff --git a/elsarticle-template-num.blg b/elsarticle-template-num.blg
new file mode 100644 (file)
index 0000000..2ec4554
--- /dev/null
@@ -0,0 +1,48 @@
+This is BibTeX, Version 0.99d (TeX Live 2012/Debian)
+Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
+The top-level auxiliary file: elsarticle-template-num.aux
+The style file: elsarticle-num.bst
+Database file #1: elsarticle-template-num.bib
+Warning--empty pages in Berman05efficientenergy
+You've used 44 entries,
+            2937 wiz_defined-function locations,
+            940 strings with 13291 characters,
+and the built_in function-call counts, 14354 in all, are:
+= -- 1350
+> -- 413
+< -- 16
++ -- 167
+- -- 123
+* -- 925
+:= -- 1837
+add.period$ -- 47
+call.type$ -- 44
+change.case$ -- 41
+chr.to.int$ -- 0
+cite$ -- 45
+duplicate$ -- 507
+empty$ -- 1690
+format.name$ -- 164
+if$ -- 3853
+int.to.chr$ -- 0
+int.to.str$ -- 44
+missing$ -- 47
+newline$ -- 143
+num.names$ -- 44
+pop$ -- 316
+preamble$ -- 1
+purify$ -- 0
+quote$ -- 0
+skip$ -- 1017
+stack$ -- 0
+substring$ -- 825
+swap$ -- 149
+text.length$ -- 16
+text.prefix$ -- 0
+top$ -- 0
+type$ -- 0
+warning$ -- 1
+while$ -- 103
+width$ -- 46
+write$ -- 380
+(There was 1 warning)
diff --git a/elsarticle-template-num.log b/elsarticle-template-num.log
new file mode 100644 (file)
index 0000000..ac9c4c0
--- /dev/null
@@ -0,0 +1,947 @@
+This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2014.3.11)  21 APR 2014 23:14
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**elsarticle-template-num.tex
+(./elsarticle-template-num.tex
+LaTeX2e <2011/06/27>
+Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
+aded.
+(./elsarticle.cls
+Document Class: elsarticle 2009/09/17, 1.20b: Elsevier Ltd
+\@bls=\dimen102
+(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen103
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 91.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count87
+))
+\Gin@req@height=\dimen104
+\Gin@req@width=\dimen105
+)
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/pifont.sty
+Package: pifont 2005/04/12 PSNFSS-v9.2a Pi font support (SPQR) 
+LaTeX Font Info:    Try loading font information for U+pzd on input line 63.
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/upzd.fd
+File: upzd.fd 2001/06/04 font definitions for U/pzd.
+)
+LaTeX Font Info:    Try loading font information for U+psy on input line 64.
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/upsy.fd
+File: upsy.fd 2001/06/04 font definitions for U/psy.
+))
+\c@tnote=\count88
+\c@fnote=\count89
+\c@cnote=\count90
+\c@ead=\count91
+\c@author=\count92
+\@eadauthor=\toks15
+\c@affn=\count93
+\absbox=\box26
+\keybox=\box27
+\Columnwidth=\dimen106
+\space@left=\dimen107
+\els@boxa=\box28
+\els@boxb=\box29
+\leftMargin=\dimen108
+\@enLab=\toks16
+\@sep=\skip43
+\@@sep=\skip44
+
+(./elsarticle-template-num.spl)
+(/usr/share/texlive/texmf-dist/tex/latex/natbib/natbib.sty
+Package: natbib 2010/09/13 8.31b (PWD, AO)
+\bibhang=\skip45
+\bibsep=\skip46
+LaTeX Info: Redefining \cite on input line 694.
+\c@NAT@ctr=\count94
+)
+\splwrite=\write3
+\openout3 = `elsarticle-template-num.spl'.
+
+\appnamewidth=\dimen109
+)
+(/usr/share/texlive/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
+Package: algorithm2e 2008/00/00 v3.10 algorithms environments
+\c@AlgoLine=\count95
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2009/10/20 v1.13 Space after command names (DPC,MH)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty
+Package: relsize 2011/09/21 ver 4.0
+
+Examine \normalsize starts \@setfontsize size may be \@xiipt. 
+Examine \small starts \@setfontsize size may be \@xipt. 
+Examine \footnotesize starts \@setfontsize size may be \@xpt. 
+Examine \large starts \@setfontsize size may be \@xivpt. 
+Examine \Large starts \@setfontsize size may be \@xviipt. 
+Examine \LARGE starts \@setfontsize size may be \@xxpt. 
+Examine \scriptsize starts \@setfontsize size may be \@viiipt. 
+Examine \tiny starts \@setfontsize size may be \@vipt. 
+Examine \huge starts \@setfontsize size may be \@xxvpt. 
+Examine \Huge starts \@setfontsize size may be \@xxvpt. )
+********************************************************
+Package `algorithm2e' Release 4.01 -- december 14 2009 --
+- algorithm2e-announce@lirmm.fr mailing list for announcement about releases
+- algorithm2e-discussion@lirmm.fr mailing list for discussion about package
+subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'
+- Author: Christophe Fiorio (fiorio@lirmm.fr)
+********************************************************
+\skiptotal=\skip47
+\skiplinenumber=\skip48
+\skiprule=\skip49
+\skiphlne=\skip50
+\skiptext=\skip51
+\skiplength=\skip52
+\algomargin=\skip53
+\skipalgocfslide=\skip54
+\algowidth=\dimen110
+\inoutsize=\dimen111
+\inoutline=\dimen112
+\interspacetitleruled=\dimen113
+\interspacealgoruled=\dimen114
+\interspacetitleboxruled=\dimen115
+\algocf@inoutbox=\box30
+\algocf@inputbox=\box31
+\AlCapSkip=\skip55
+\AlCapHSkip=\skip56
+\algocf@nlbox=\box32
+\algocf@hangingbox=\box33
+\algocf@capbox=\box34
+\algoheightruledefault=\skip57
+\algoheightrule=\skip58
+\algotitleheightruledefault=\skip59
+\algotitleheightrule=\skip60
+\c@algocfline=\count96
+\c@algocfproc=\count97
+\c@algocf=\count98
+\algocf@algoframe=\box35
+\algocf@algobox=\box36
+) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty
+Package: multicol 2011/06/27 v1.7a multicolumn formatting (FMi)
+\c@tracingmulticols=\count99
+\mult@box=\box37
+\multicol@leftmargin=\dimen116
+\c@unbalance=\count100
+\c@collectmore=\count101
+\doublecol@number=\count102
+\multicoltolerance=\count103
+\multicolpretolerance=\count104
+\full@width=\dimen117
+\page@free=\dimen118
+\premulticols=\dimen119
+\postmulticols=\dimen120
+\multicolsep=\skip61
+\multicolbaselineskip=\skip62
+\partial@page=\box38
+\last@line=\box39
+\mult@rightbox=\box40
+\mult@grightbox=\box41
+\mult@gfirstbox=\box42
+\mult@firstbox=\box43
+\@tempa=\box44
+\@tempa=\box45
+\@tempa=\box46
+\@tempa=\box47
+\@tempa=\box48
+\@tempa=\box49
+\@tempa=\box50
+\@tempa=\box51
+\@tempa=\box52
+\@tempa=\box53
+\@tempa=\box54
+\@tempa=\box55
+\@tempa=\box56
+\@tempa=\box57
+\@tempa=\box58
+\@tempa=\box59
+\@tempa=\box60
+\c@columnbadness=\count105
+\c@finalcolumnbadness=\count106
+\last@try=\dimen121
+\multicolovershoot=\dimen122
+\multicolundershoot=\dimen123
+\mult@nat@firstbox=\box61
+\colbreak@box=\box62
+\multicol@sort@counter=\count107
+)
+(/usr/share/texlive/texmf-dist/tex/latex/mh/mathtools.sty
+Package: mathtools 2012/04/24 v1.12 mathematical typesetting tools
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty
+Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
+\calc@Acount=\count108
+\calc@Bcount=\count109
+\calc@Adimen=\dimen124
+\calc@Bdimen=\dimen125
+\calc@Askip=\skip63
+\calc@Bskip=\skip64
+LaTeX Info: Redefining \setlength on input line 76.
+LaTeX Info: Redefining \addtolength on input line 77.
+\calc@Ccount=\count110
+\calc@Cskip=\skip65
+)
+(/usr/share/texlive/texmf-dist/tex/latex/mh/mhsetup.sty
+Package: mhsetup 2010/01/21 v1.2a programming setup (MH)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
+\@mathmargin=\skip66
+
+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
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0
+\@emptytoks=\toks17
+\ex@=\dimen126
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d
+\pmbraise@=\dimen127
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count111
+LaTeX Info: Redefining \frac on input line 211.
+\uproot@=\count112
+\leftroot@=\count113
+LaTeX Info: Redefining \overline on input line 307.
+\classnum@=\count114
+\DOTSCASE@=\count115
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
+\Mathstrutbox@=\box63
+\strutbox@=\box64
+\big@size=\dimen128
+LaTeX Font Info:    Redeclaring font encoding OML on input line 567.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
+\macc@depth=\count116
+\c@MaxMatrixCols=\count117
+\dotsspace@=\muskip10
+\c@parentequation=\count118
+\dspbrk@lvl=\count119
+\tag@help=\toks18
+\row@=\count120
+\column@=\count121
+\maxfields@=\count122
+\andhelp@=\toks19
+\eqnshift@=\dimen129
+\alignsep@=\dimen130
+\tagshift@=\dimen131
+\tagwidth@=\dimen132
+\totwidth@=\dimen133
+\lineht@=\dimen134
+\@envbody=\toks20
+\multlinegap=\skip67
+\multlinetaggap=\skip68
+\mathdisplay@stack=\toks21
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
+)
+\g_MT_multlinerow_int=\count123
+\l_MT_multwidth_dim=\dimen135
+\origjot=\skip69
+\l_MT_shortvdotswithinadjustabove_dim=\dimen136
+\l_MT_shortvdotswithinadjustbelow_dim=\dimen137
+\l_MT_above_intertext_dim=\dimen138
+\l_MT_below_intertext_dim=\dimen139
+\l_MT_above_shortintertext_dim=\dimen140
+\l_MT_below_shortintertext_dim=\dimen141
+)
+(/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty
+Package: colortbl 2012/02/13 v1.0a Color table columns (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
+\col@sep=\dimen142
+\extrarowheight=\dimen143
+\NC@list=\toks22
+\extratabsurround=\skip70
+\backup@length=\skip71
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package color Info: Driver file: pdftex.def on input line 130.
+)
+\everycr=\toks23
+\minrowclearance=\skip72
+)
+(/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty
+\bigstrutjot=\dimen144
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2009/06/22 v3.00
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2009/06/22 v3.00 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 96.
+))
+(./elsarticle-template-num.aux)
+\openout1 = `elsarticle-template-num.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 60.
+LaTeX Font Info:    ... okay on input line 60.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 60.
+LaTeX Font Info:    ... okay on input line 60.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 60.
+LaTeX Font Info:    ... okay on input line 60.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 60.
+LaTeX Font Info:    ... okay on input line 60.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 60.
+LaTeX Font Info:    ... okay on input line 60.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 60.
+LaTeX Font Info:    ... okay on input line 60.
+
+(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count124
+\scratchdimen=\dimen145
+\scratchbox=\box65
+\nofMPsegments=\count125
+\nofMParguments=\count126
+\everyMPshowfont=\toks24
+\MPscratchCnt=\count127
+\MPscratchDim=\dimen146
+\MPnumerator=\count128
+\makeMPintoPDFobject=\count129
+\everyMPtoPDFconversion=\toks25
+) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+)
+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.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)))
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/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
+))
+LaTeX Font Info:    Try loading font information for U+msa on input line 119.
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2009/06/22 v3.00 AMS symbols A
+)
+LaTeX Font Info:    Try loading font information for U+msb on input line 119.
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2009/06/22 v3.00 AMS symbols B
+) [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2]
+LaTeX Font Info:    Try loading font information for OMS+cmr on input line 177.
+
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd
+File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
+)
+LaTeX Font Info:    Font shape `OMS/cmr/m/n' in size <12> not available
+(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 177.
+ [3] [4] [5] [6]
+[7] [8] [9] <fig21.pdf, id=40, 794.97pt x 614.295pt>
+File: fig21.pdf Graphic file (type pdf)
+ <use fig21.pdf>
+Package pdftex.def Info: fig21.pdf used on input line 455.
+(pdftex.def)             Requested size: 158.99118pt x 122.85681pt.
+
+Overfull \hbox (35.65785pt too wide) in paragraph at lines 455--455
+ [][] 
+ []
+
+<fig22.pdf, id=41, 794.97pt x 614.295pt>
+File: fig22.pdf Graphic file (type pdf)
+ <use fig22.pdf>
+Package pdftex.def Info: fig22.pdf used on input line 456.
+(pdftex.def)             Requested size: 158.99118pt x 122.85681pt.
+
+Overfull \hbox (35.65785pt too wide) in paragraph at lines 455--456
+ [] 
+ []
+
+Package epstopdf Info: Source file: <principles13.eps>
+(epstopdf)                    date: 2014-03-09 13:26:30
+(epstopdf)                    size: 166031 bytes
+(epstopdf)             Output file: <principles13-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-10 11:05:44
+(epstopdf)                    size: 57812 bytes
+(epstopdf)             Command: <repstopdf --outfile=principles13-eps-converted
+-to.pdf principles13.eps>
+(epstopdf)             \includegraphics on input line 457.
+Package epstopdf Info: Output file is already uptodate.
+<principles13-eps-converted-to.pdf, id=42, 794.97pt x 614.295pt>
+File: principles13-eps-converted-to.pdf Graphic file (type pdf)
+
+<use principles13-eps-converted-to.pdf>
+Package pdftex.def Info: principles13-eps-converted-to.pdf used on input line 4
+57.
+(pdftex.def)             Requested size: 158.99118pt x 122.85681pt.
+
+Overfull \hbox (35.65785pt too wide) in paragraph at lines 456--457
+ [] 
+ []
+
+Package epstopdf Info: Source file: <FirstModel.eps>
+(epstopdf)                    date: 2014-03-09 13:26:30
+(epstopdf)                    size: 886264 bytes
+(epstopdf)             Output file: <FirstModel-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-10 11:05:45
+(epstopdf)                    size: 50483 bytes
+(epstopdf)             Command: <repstopdf --outfile=FirstModel-eps-converted-t
+o.pdf FirstModel.eps>
+(epstopdf)             \includegraphics on input line 473.
+Package epstopdf Info: Output file is already uptodate.
+<FirstModel-eps-converted-to.pdf, id=43, 586.19pt x 140.525pt>
+File: FirstModel-eps-converted-to.pdf Graphic file (type pdf)
+
+<use FirstModel-eps-converted-to.pdf>
+Package pdftex.def Info: FirstModel-eps-converted-to.pdf used on input line 473
+.
+(pdftex.def)             Requested size: 270.30118pt x 64.79666pt.
+ [10 <./fig21.pdf> <./fig22.pdf
+
+pdfTeX warning: pdflatex (file ./fig22.pdf): PDF inclusion: multiple pdfs with 
+page group included in a single page
+> <./principles13-eps-converted-to.pdf>] [11 <./FirstModel-eps-converted-to.pdf
+>] [12]
+
+LaTeX Warning: Float too large for page by 85.38867pt on input line 635.
+
+[13] [14] [15] [16] [17]
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 843.
+
+
+[18]
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 855.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 862.
+
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 869--870
+
+ []
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 871.
+
+
+[19]
+Package epstopdf Info: Source file: <R1/CR.eps>
+(epstopdf)                    date: 2014-04-18 11:09:27
+(epstopdf)                    size: 28699 bytes
+(epstopdf)             Output file: <R1/CR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:09
+(epstopdf)                    size: 11075 bytes
+(epstopdf)             Command: <repstopdf --outfile=R1/CR-eps-converted-to.pdf
+ R1/CR.eps>
+(epstopdf)             \includegraphics on input line 909.
+Package epstopdf Info: Output file is already uptodate.
+ <R1/CR-eps-converted-to.pdf, id=145, 490.83376pt x 347.2975pt>
+File: R1/CR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R1/CR-eps-converted-to.pdf>
+Package pdftex.def Info: R1/CR-eps-converted-to.pdf used on input line 909.
+(pdftex.def)             Requested size: 211.0544pt x 149.335pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[20]
+Package epstopdf Info: Source file: <R1/ASR.eps>
+(epstopdf)                    date: 2014-04-18 11:09:03
+(epstopdf)                    size: 27693 bytes
+(epstopdf)             Output file: <R1/ASR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:09
+(epstopdf)                    size: 10662 bytes
+(epstopdf)             Command: <repstopdf --outfile=R1/ASR-eps-converted-to.pd
+f R1/ASR.eps>
+(epstopdf)             \includegraphics on input line 929.
+Package epstopdf Info: Output file is already uptodate.
+ <R1/ASR-eps-converted-to.pdf, id=149, 490.83376pt x 347.2975pt>
+File: R1/ASR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R1/ASR-eps-converted-to.pdf>
+Package pdftex.def Info: R1/ASR-eps-converted-to.pdf used on input line 929.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [21 <./R1/CR-eps-converted-to.pdf> <./R1/ASR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R1/ESR.eps>
+(epstopdf)                    date: 2014-04-18 11:10:10
+(epstopdf)                    size: 28752 bytes
+(epstopdf)             Output file: <R1/ESR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:09
+(epstopdf)                    size: 10952 bytes
+(epstopdf)             Command: <repstopdf --outfile=R1/ESR-eps-converted-to.pd
+f R1/ESR.eps>
+(epstopdf)             \includegraphics on input line 945.
+Package epstopdf Info: Output file is already uptodate.
+
+<R1/ESR-eps-converted-to.pdf, id=163, 490.83376pt x 347.2975pt>
+File: R1/ESR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R1/ESR-eps-converted-to.pdf>
+Package pdftex.def Info: R1/ESR-eps-converted-to.pdf used on input line 945.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [22 <./R1/ESR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R1/SR.eps>
+(epstopdf)                    date: 2014-04-21 15:34:22
+(epstopdf)                    size: 28835 bytes
+(epstopdf)             Output file: <R1/SR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:34:55
+(epstopdf)                    size: 10056 bytes
+(epstopdf)             Command: <repstopdf --outfile=R1/SR-eps-converted-to.pdf
+ R1/SR.eps>
+(epstopdf)             \includegraphics on input line 960.
+Package epstopdf Info: Output file is already uptodate.
+
+<R1/SR-eps-converted-to.pdf, id=172, 490.83376pt x 347.2975pt>
+File: R1/SR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R1/SR-eps-converted-to.pdf>
+Package pdftex.def Info: R1/SR-eps-converted-to.pdf used on input line 960.
+(pdftex.def)             Requested size: 211.0544pt x 149.335pt.
+Package epstopdf Info: Source file: <R1/EC.eps>
+(epstopdf)                    date: 2014-04-18 11:09:45
+(epstopdf)                    size: 25392 bytes
+(epstopdf)             Output file: <R1/EC-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:10
+(epstopdf)                    size: 8522 bytes
+(epstopdf)             Command: <repstopdf --outfile=R1/EC-eps-converted-to.pdf
+ R1/EC.eps>
+(epstopdf)             \includegraphics on input line 971.
+Package epstopdf Info: Output file is already uptodate.
+
+<R1/EC-eps-converted-to.pdf, id=173, 493.845pt x 347.2975pt>
+File: R1/EC-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R1/EC-eps-converted-to.pdf>
+Package pdftex.def Info: R1/EC-eps-converted-to.pdf used on input line 971.
+(pdftex.def)             Requested size: 246.92189pt x 173.64832pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[23 <./R1/SR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R1/LT.eps>
+(epstopdf)                    date: 2014-04-18 11:10:31
+(epstopdf)                    size: 25799 bytes
+(epstopdf)             Output file: <R1/LT-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:10
+(epstopdf)                    size: 8296 bytes
+(epstopdf)             Command: <repstopdf --outfile=R1/LT-eps-converted-to.pdf
+ R1/LT.eps>
+(epstopdf)             \includegraphics on input line 1029.
+Package epstopdf Info: Output file is already uptodate.
+
+<R1/LT-eps-converted-to.pdf, id=182, 493.845pt x 347.2975pt>
+File: R1/LT-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R1/LT-eps-converted-to.pdf>
+Package pdftex.def Info: R1/LT-eps-converted-to.pdf used on input line 1029.
+(pdftex.def)             Requested size: 246.92189pt x 173.64832pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[24 <./R1/EC-eps-converted-to.pdf>] [25 <./R1/LT-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R2/CR.eps>
+(epstopdf)                    date: 2014-04-18 11:12:13
+(epstopdf)                    size: 27841 bytes
+(epstopdf)             Output file: <R2/CR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:11
+(epstopdf)                    size: 11178 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/CR-eps-converted-to.pdf
+ R2/CR.eps>
+(epstopdf)             \includegraphics on input line 1058.
+Package epstopdf Info: Output file is already uptodate.
+
+<R2/CR-eps-converted-to.pdf, id=200, 490.83376pt x 347.2975pt>
+File: R2/CR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/CR-eps-converted-to.pdf>
+Package pdftex.def Info: R2/CR-eps-converted-to.pdf used on input line 1058.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [26 <./R2/CR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R2/ASR.eps>
+(epstopdf)                    date: 2014-04-18 11:11:59
+(epstopdf)                    size: 27574 bytes
+(epstopdf)             Output file: <R2/ASR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:11
+(epstopdf)                    size: 11287 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/ASR-eps-converted-to.pd
+f R2/ASR.eps>
+(epstopdf)             \includegraphics on input line 1072.
+Package epstopdf Info: Output file is already uptodate.
+
+<R2/ASR-eps-converted-to.pdf, id=210, 490.83376pt x 347.2975pt>
+File: R2/ASR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/ASR-eps-converted-to.pdf>
+Package pdftex.def Info: R2/ASR-eps-converted-to.pdf used on input line 1072.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+Package epstopdf Info: Source file: <R2/ESR.eps>
+(epstopdf)                    date: 2014-04-18 11:12:38
+(epstopdf)                    size: 27894 bytes
+(epstopdf)             Output file: <R2/ESR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:11
+(epstopdf)                    size: 11035 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/ESR-eps-converted-to.pd
+f R2/ESR.eps>
+(epstopdf)             \includegraphics on input line 1085.
+Package epstopdf Info: Output file is already uptodate.
+
+<R2/ESR-eps-converted-to.pdf, id=211, 490.83376pt x 347.2975pt>
+File: R2/ESR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/ESR-eps-converted-to.pdf>
+Package pdftex.def Info: R2/ESR-eps-converted-to.pdf used on input line 1085.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [27 <./R2/ASR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R2/SR.eps>
+(epstopdf)                    date: 2014-04-18 11:13:09
+(epstopdf)                    size: 29283 bytes
+(epstopdf)             Output file: <R2/SR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:12
+(epstopdf)                    size: 9794 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/SR-eps-converted-to.pdf
+ R2/SR.eps>
+(epstopdf)             \includegraphics on input line 1099.
+Package epstopdf Info: Output file is already uptodate.
+
+<R2/SR-eps-converted-to.pdf, id=220, 490.83376pt x 347.2975pt>
+File: R2/SR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/SR-eps-converted-to.pdf>
+Package pdftex.def Info: R2/SR-eps-converted-to.pdf used on input line 1099.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [28 <./R2/ESR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R2/EC.eps>
+(epstopdf)                    date: 2014-04-18 11:12:25
+(epstopdf)                    size: 24677 bytes
+(epstopdf)             Output file: <R2/EC-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:12
+(epstopdf)                    size: 8359 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/EC-eps-converted-to.pdf
+ R2/EC.eps>
+(epstopdf)             \includegraphics on input line 1110.
+Package epstopdf Info: Output file is already uptodate.
+
+<R2/EC-eps-converted-to.pdf, id=229, 493.845pt x 347.2975pt>
+File: R2/EC-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/EC-eps-converted-to.pdf>
+Package pdftex.def Info: R2/EC-eps-converted-to.pdf used on input line 1110.
+(pdftex.def)             Requested size: 246.92189pt x 173.64832pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[29 <./R2/SR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R2/T.eps>
+(epstopdf)                    date: 2014-04-18 11:13:24
+(epstopdf)                    size: 24072 bytes
+(epstopdf)             Output file: <R2/T-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:34:59
+(epstopdf)                    size: 7489 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/T-eps-converted-to.pdf 
+R2/T.eps>
+(epstopdf)             \includegraphics on input line 1123.
+Package epstopdf Info: Output file is already uptodate.
+
+<R2/T-eps-converted-to.pdf, id=238, 484.81125pt x 347.2975pt>
+File: R2/T-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/T-eps-converted-to.pdf>
+Package pdftex.def Info: R2/T-eps-converted-to.pdf used on input line 1123.
+(pdftex.def)             Requested size: 242.40503pt x 173.64832pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+Package epstopdf Info: Source file: <R2/LT.eps>
+(epstopdf)                    date: 2014-04-18 11:12:56
+(epstopdf)                    size: 24699 bytes
+(epstopdf)             Output file: <R2/LT-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-18 11:20:12
+(epstopdf)                    size: 7950 bytes
+(epstopdf)             Command: <repstopdf --outfile=R2/LT-eps-converted-to.pdf
+ R2/LT.eps>
+(epstopdf)             \includegraphics on input line 1136.
+Package epstopdf Info: Output file is already uptodate.
+<R2/LT-eps-converted-to.pdf, id=239, 493.845pt x 347.2975pt>
+File: R2/LT-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R2/LT-eps-converted-to.pdf>
+Package pdftex.def Info: R2/LT-eps-converted-to.pdf used on input line 1136.
+(pdftex.def)             Requested size: 246.92189pt x 173.64832pt.
+ [30 <./R2/EC-eps-converted-to.pdf>] [31 <./R2/T-eps-converted-to.pdf> <./R2/LT
+-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R3/CR.eps>
+(epstopdf)                    date: 2014-04-21 15:17:00
+(epstopdf)                    size: 27589 bytes
+(epstopdf)             Output file: <R3/CR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:18:21
+(epstopdf)                    size: 11392 bytes
+(epstopdf)             Command: <repstopdf --outfile=R3/CR-eps-converted-to.pdf
+ R3/CR.eps>
+(epstopdf)             \includegraphics on input line 1158.
+Package epstopdf Info: Output file is already uptodate.
+
+<R3/CR-eps-converted-to.pdf, id=262, 490.83376pt x 347.2975pt>
+File: R3/CR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R3/CR-eps-converted-to.pdf>
+Package pdftex.def Info: R3/CR-eps-converted-to.pdf used on input line 1158.
+(pdftex.def)             Requested size: 220.87314pt x 156.28242pt.
+ [32 <./R3/CR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R3/ASR.eps>
+(epstopdf)                    date: 2014-04-21 15:16:21
+(epstopdf)                    size: 27581 bytes
+(epstopdf)             Output file: <R3/ASR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:18:22
+(epstopdf)                    size: 11213 bytes
+(epstopdf)             Command: <repstopdf --outfile=R3/ASR-eps-converted-to.pd
+f R3/ASR.eps>
+(epstopdf)             \includegraphics on input line 1176.
+Package epstopdf Info: Output file is already uptodate.
+
+<R3/ASR-eps-converted-to.pdf, id=271, 490.83376pt x 347.2975pt>
+File: R3/ASR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R3/ASR-eps-converted-to.pdf>
+Package pdftex.def Info: R3/ASR-eps-converted-to.pdf used on input line 1176.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [33 <./R3/ASR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R3/ESR.eps>
+(epstopdf)                    date: 2014-04-21 15:16:37
+(epstopdf)                    size: 27608 bytes
+(epstopdf)             Output file: <R3/ESR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:18:22
+(epstopdf)                    size: 11102 bytes
+(epstopdf)             Command: <repstopdf --outfile=R3/ESR-eps-converted-to.pd
+f R3/ESR.eps>
+(epstopdf)             \includegraphics on input line 1188.
+Package epstopdf Info: Output file is already uptodate.
+
+<R3/ESR-eps-converted-to.pdf, id=280, 490.83376pt x 347.2975pt>
+File: R3/ESR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R3/ESR-eps-converted-to.pdf>
+Package pdftex.def Info: R3/ESR-eps-converted-to.pdf used on input line 1188.
+(pdftex.def)             Requested size: 245.41628pt x 173.64832pt.
+ [34 <./R3/ESR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R3/SR.eps>
+(epstopdf)                    date: 2014-04-21 15:17:29
+(epstopdf)                    size: 25713 bytes
+(epstopdf)             Output file: <R3/SR-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:18:22
+(epstopdf)                    size: 9503 bytes
+(epstopdf)             Command: <repstopdf --outfile=R3/SR-eps-converted-to.pdf
+ R3/SR.eps>
+(epstopdf)             \includegraphics on input line 1205.
+Package epstopdf Info: Output file is already uptodate.
+
+<R3/SR-eps-converted-to.pdf, id=289, 490.83376pt x 347.2975pt>
+File: R3/SR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R3/SR-eps-converted-to.pdf>
+Package pdftex.def Info: R3/SR-eps-converted-to.pdf used on input line 1205.
+(pdftex.def)             Requested size: 196.33002pt x 138.91653pt.
+ [35 <./R3/SR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R3/EC.eps>
+(epstopdf)                    date: 2014-04-21 15:16:49
+(epstopdf)                    size: 23655 bytes
+(epstopdf)             Output file: <R3/EC-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:18:23
+(epstopdf)                    size: 8131 bytes
+(epstopdf)             Command: <repstopdf --outfile=R3/EC-eps-converted-to.pdf
+ R3/EC.eps>
+(epstopdf)             \includegraphics on input line 1216.
+Package epstopdf Info: Output file is already uptodate.
+
+<R3/EC-eps-converted-to.pdf, id=298, 493.845pt x 347.2975pt>
+File: R3/EC-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R3/EC-eps-converted-to.pdf>
+Package pdftex.def Info: R3/EC-eps-converted-to.pdf used on input line 1216.
+(pdftex.def)             Requested size: 246.92189pt x 173.64832pt.
+Package epstopdf Info: Source file: <R3/LT.eps>
+(epstopdf)                    date: 2014-04-21 15:17:18
+(epstopdf)                    size: 25178 bytes
+(epstopdf)             Output file: <R3/LT-eps-converted-to.pdf>
+(epstopdf)                    date: 2014-04-21 15:18:23
+(epstopdf)                    size: 8306 bytes
+(epstopdf)             Command: <repstopdf --outfile=R3/LT-eps-converted-to.pdf
+ R3/LT.eps>
+(epstopdf)             \includegraphics on input line 1227.
+Package epstopdf Info: Output file is already uptodate.
+
+<R3/LT-eps-converted-to.pdf, id=299, 493.845pt x 347.2975pt>
+File: R3/LT-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R3/LT-eps-converted-to.pdf>
+Package pdftex.def Info: R3/LT-eps-converted-to.pdf used on input line 1227.
+(pdftex.def)             Requested size: 246.92189pt x 173.64832pt.
+ [36 <./R3/EC-eps-converted-to.pdf>] [37 <./R3/LT-eps-converted-to.pdf>] (./els
+article-template-num.bbl [38] [39]
+Underfull \hbox (badness 2197) in paragraph at lines 102--105
+[]\OT1/cmr/m/n/12 W. B. Heinzel-man, A. P. Chan-drakasan, H. Bal-akr-ish-nan, A
+n
+ []
+
+[40]
+Underfull \hbox (badness 10000) in paragraph at lines 127--132
+[]\OT1/cmr/m/n/12 C. Vu, S. Gao, W. Desh-mukh, Y. Li, Dis-tributed
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 127--132
+\OT1/cmr/m/n/12 energy-efficient schedul-ing ap-proach for k-coverage in
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 127--132
+\OT1/cmr/m/n/12 wire-less sen-sor net-works, MIL-COM 0 (2006) 1--7.
+ []
+
+[41]
+Underfull \hbox (badness 1199) in paragraph at lines 201--206
+[]\OT1/cmr/m/n/12 S. He, X. Gong, J. Zhang, J. Chen, Y. Sun, Curve-based de-
+ []
+
+
+Underfull \hbox (badness 1184) in paragraph at lines 201--206
+\OT1/cmr/m/n/12 ploy-ment for bar-rier cov-er-age in wire-less sen-sor net-work
+s, Wire-
+ []
+
+[42]) [43] (./elsarticle-template-num.aux) ) 
+Here is how much of TeX's memory you used:
+ 5183 strings out of 495059
+ 71534 string characters out of 3182030
+ 158876 words of memory out of 3000000
+ 8254 multiletter control sequences out of 15000+200000
+ 12282 words of font info for 47 fonts, out of 3000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 38i,27n,30p,1256b,611s stack positions out of 5000i,500n,10000p,200000b,50000s
+</usr/share/texlive/texmf-dist/font
+s/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-dist/fonts/type
+1/public/amsfonts/cm/cmbx8.pfb></usr/share/texlive/texmf-dist/fonts/type1/publi
+c/amsfonts/cm/cmex10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsf
+onts/cmextra/cmex8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfon
+ts/cm/cmmi12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/
+cmmi6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.p
+fb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></us
+r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share
+/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texliv
+e/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/share/texlive/texmf-
+dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fon
+ts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/typ
+e1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/publ
+ic/amsfonts/cm/cmti10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/ams
+fonts/cm/cmti12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/
+symbols/msam10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/s
+ymbols/msbm10.pfb>
+Output written on elsarticle-template-num.pdf (43 pages, 621944 bytes).
+PDF statistics:
+ 396 PDF objects out of 1000 (max. 8388607)
+ 254 compressed objects within 3 object streams
+ 0 named destinations out of 1000 (max. 500000)
+ 116 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/elsarticle-template-num.spl b/elsarticle-template-num.spl
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/elsarticle-template-num.synctex.gz b/elsarticle-template-num.synctex.gz
new file mode 100644 (file)
index 0000000..604dd8b
Binary files /dev/null and b/elsarticle-template-num.synctex.gz differ
diff --git a/elsarticle-template-num.tex b/elsarticle-template-num.tex
new file mode 100644 (file)
index 0000000..6f0b38f
--- /dev/null
@@ -0,0 +1,1318 @@
+%% 
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%% 
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%% 
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%% 
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+
+%% Template article for Elsevier's document class `elsarticle'
+%% with numbered style bibliographic references
+%% SP 2008/03/01
+
+\documentclass[preprint,12pt]{elsarticle}
+
+
+\usepackage[linesnumbered,ruled,vlined,commentsnumbered]{algorithm2e}
+\usepackage{multicol}
+\usepackage{mathtools}  
+
+
+\usepackage{colortbl}
+\usepackage{multirow}
+%% Use the option review to obtain double line spacing
+%% \documentclass[authoryear,preprint,review,12pt]{elsarticle}
+
+%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn
+%% for a journal layout:
+%% \documentclass[final,1p,times]{elsarticle}
+%% \documentclass[final,1p,times,twocolumn]{elsarticle}
+%% \documentclass[final,3p,times]{elsarticle}
+%% \documentclass[final,3p,times,twocolumn]{elsarticle}
+%% \documentclass[final,5p,times]{elsarticle}
+%% \documentclass[final,5p,times,twocolumn]{elsarticle}
+
+%% For including figures, graphicx.sty has been loaded in
+%% elsarticle.cls. If you prefer to use the old commands
+%% please give \usepackage{epsfig}
+
+%% The amssymb package provides various useful mathematical symbols
+\usepackage{amssymb}
+%% The amsthm package provides extended theorem environments
+%% \usepackage{amsthm}
+
+%% The lineno packages adds line numbers. Start line numbering with
+%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on
+%% for the whole article with \linenumbers.
+%% \usepackage{lineno}
+
+\journal{Ad Hoc Networks}
+
+\begin{document}
+
+\begin{frontmatter}
+
+%% Title, authors and addresses
+
+%% use the tnoteref command within \title for footnotes;
+%% use the tnotetext command for theassociated footnote;
+%% use the fnref command within \author or \address for footnotes;
+%% use the fntext command for theassociated footnote;
+%% use the corref command within \author for corresponding author footnotes;
+%% use the cortext command for theassociated footnote;
+%% use the ead command for the email address,
+%% and the form \ead[url] for the home page:
+%% \title{Title\tnoteref{label1}}
+%% \tnotetext[label1]{}
+%% \author{Name\corref{cor1}\fnref{label2}}
+%% \ead{email address}
+%% \ead[url]{home page}
+%% \fntext[label2]{}
+%% \cortext[cor1]{}
+%% \address{Address\fnref{label3}}
+%% \fntext[label3]{}
+
+\title{Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks}
+
+%% use optional labels to link authors explicitly to addresses:
+%% \author[label1,label2]{}
+%% \address[label1]{}
+%% \address[label2]{}
+\author{Ali Kadhum Idrees, Karine Deschinkel, Michel Salomon, and Rapha\"el Couturier}
+%\thanks{are members in the AND team - DISC department - FEMTO-ST Institute, University of Franche-Comt\'e, Belfort, France.
+% e-mail: ali.idness@edu.univ-fcomte.fr, $\lbrace$karine.deschinkel, michel.salomon, raphael.couturier$\rbrace$@univ-fcomte.fr.}% <-this % stops a space
+%\thanks{}% <-this % stops a space
+
+\address{FEMTO-ST Institute, University of Franche-Comt\'e, Belfort, France. \\ e-mail: ali.idness@edu.univ-fcomte.fr, $\lbrace$karine.deschinkel, michel.salomon, raphael.couturier$\rbrace$@univ-fcomte.fr.}
+
+\begin{abstract}
+One of  the fundamental challenges in Wireless Sensor Networks (WSNs)
+is the coverage preservation and the extension of the network lifetime
+continuously  and  effectively  when  monitoring a  certain  area  (or
+region) of  interest. In this paper, a Distributed Lifetime Coverage Optimization Protocol (DiLCO)
+to maintain the coverage and to improve the lifetime in wireless sensor networks is proposed. The area  of interest is first divided into subregions using  a divide-and-conquer method and then the  DiLCO protocol is distributed on the sensor nodes in each subregion. The DiLCO combines two efficient techniques: Leader election for each subregion after that activity scheduling based optimization is planned for each subregion. The proposed
+DiLCO  works into rounds during which a small number  of nodes,
+remaining active for sensing, is  selected to ensure coverage so as to maximize the lifetime of wireless sensor network. Each round consists of four phases: (i)~Information Exchange, (ii)~Leader
+Election, (iii)~Decision,  and (iv)~Sensing.  The  decision process is
+carried  out  by a  leader  node,  which  solves an  integer  program. Compared with some existing
+protocols, simulation  results show that the proposed protocol can  prolong the
+network lifetime and improve the coverage performance effectively.
+
+\end{abstract}
+
+\begin{keyword}
+Wireless   Sensor   Networks,   Area   Coverage,   Network   lifetime,
+Optimization, Scheduling.
+
+\end{keyword}
+
+\end{frontmatter}
+
+\section{Introduction}
+
+\indent  The fast developments  in the  low-cost sensor  devices and
+wireless  communications  have allowed  the  emergence  the WSNs.  WSN
+includes  a large  number of  small, limited-power sensors that can
+sense, process and transmit data over a wireless communication. They
+communicate with each other by using multi-hop wireless communications, cooperate together to monitor the area of interest, 
+and the measured data can be reported to a monitoring center called sink  
+for analysis it~\cite{Sudip03}. There are several applications used the
+WSN including health, home, environmental, military, and industrial
+applications~\cite{Akyildiz02}. One of the major scientific research challenges in WSNs, which are addressed by a large number of literature during the last few years is to design energy efficient approches for coverage and connectivity in WSNs~\cite{conti2014mobile}. The coverage problem is one  of the
+fundamental challenges in WSNs~\cite{Nayak04} that consists in monitoring efficiently and continuously
+the area of interest. Thelimited energy  of sensors represents  the main challenge in  the WSNs
+design~\cite{Sudip03}, where it is difficult to replace and/or recharge their batteries because the the area of interest nature (such
+as hostile environments) and the cost. So, it is necessary that a WSN
+deployed  with high  density because  spatial redundancy  can  then be
+exploited to increase  the lifetime of the network. However, turn on
+all the sensor nodes, which monitor the same region at the same time
+leads to decrease the lifetime of the network. To extend the lifetime
+of the network, the main idea is to take advantage of the overlapping
+sensing regions  of some  sensor nodes to  save energy by  turning off
+some  of them  during the  sensing phase~\cite{Misra05}. WSNs require
+energy-efficient solutions to improve the network lifetime that is
+constrained by the limited power of each sensor node ~\cite{Akyildiz02}. In this paper, we concentrate on the area
+coverage  problem, with the objective of maximizing the network
+lifetime by using  an adaptive  scheduling. The area of interest is
+divided into subregions and an activity scheduling for sensor nodes is
+planned for each subregion. In fact, the nodes in a subregion can be
+seen as a cluster where each node sends sensing data to the cluster head or the sink node. Furthermore, the activities in a
+subregion/cluster can continue even if another cluster stops  due to
+too many node failures.  Our scheduling scheme considers rounds, where
+a round starts with a  discovery phase to exchange information between
+sensors of  the subregion, in order  to choose in a  suitable manner a
+sensor node to  carry out a coverage strategy.  This coverage strategy
+involves  the  solving  of  an  integer program,  which  provides  the
+activation of the sensors for the sensing phase of the current round.
+
+The remainder of the paper is organized as follows. The next section
+% Section~\ref{rw}
+reviews the related work in the field. In section~\ref{Pr}, the problem definition and some background are described. Section~\ref{pd} is devoted to
+the DiLCO Protocol Description. Section~\ref{cp} gives  the coverage model formulation,  which is used
+to schedule the activation of sensors.  Section~\ref{exp}  shows the
+simulation results obtained using the discrete event simulator OMNeT++
+\cite{varga}. They  fully demonstrate  the usefulness of  the proposed
+approach.  Finally,  we give  concluding remarks and  some suggestions
+for future works in Section~\ref{sec:conclusion}.
+
+
+\section{Related works}
+\label{rw}
+
+\indent This section is dedicated to the various approaches proposed
+in  the literature  for  the coverage  lifetime maximization  problem,
+where the  objective is to  optimally schedule sensors'  activities in
+order to  extend network lifetime  in WSNs. Cardei and Wu \cite{cardei2006energy} provide a taxonomy for coverage algorithms in WSNs according to several design choices:
+\begin{itemize}
+\item Sensors scheduling Algorithms, i.e. centralized or distributed/localized algorithms.
+\item The objective of sensor coverage, i.e. to maximize the network lifetime
+or to minimize the number of sensors during the sensing period.
+\item The homogeneous or heterogeneous nature of the
+nodes, in terms of sensing or communication capabilities.
+\item The node deployment method, which may be random or deterministic.
+\item Additional requirements for energy-efficient
+coverage and connected coverage.
+\end{itemize}
+
+ The independency in the cover set (i.e. whether the cover sets are disjoint or non-disjoint) \cite{zorbas2010solving} is another design choice that can be added to the above
+list.
+   
+\subsection{Centralized Approaches}
+%{\bf Centralized approaches}
+The major approach is
+to divide/organize  the sensors into  a suitable number of  set covers
+where each  set completely covers  an interest region and  to activate
+these set covers successively. The centralized algorithms always provide nearly or close to optimal solution since the algorithm has global view of the whole network. However, its advantage of
+this type of algorithms is that it requires very low processing power from the sensor nodes, which usually have
+limited processing capabilities where the schdule of selected sensor nodes will be computed on the base stations and then sent it to the sensor nodes to apply it to monitor the area of interest.
+
+The first algorithms  proposed in the  literature consider that  the cover
+sets  are  disjoint: a  sensor  node appears  in  exactly  one of  the
+generated  cover  sets.    For  instance,  Slijepcevic  and  Potkonjak
+\cite{Slijepcevic01powerefficient}   propose    an   algorithm, which
+allocates sensor nodes in mutually independent sets to monitor an area
+divided into  several fields.  Their algorithm builds  a cover  set by
+including in  priority the sensor  nodes, which cover  critical fields,
+that  is to  say fields  that are  covered by  the smallest  number of
+sensors. The time complexity of  their heuristic is $O(n^2)$ where $n$
+is the number of  sensors. Abrams et al.~\cite{abrams2004set}  design  three  approximation
+algorithms  for a  variation of  the  set k-cover  problem, where  the
+objective is to partition the sensors into covers such that the number
+of covers that  includes an area, summed over  all areas, is maximized.
+Their        work        builds        upon       previous        work
+in~\cite{Slijepcevic01powerefficient} and the  generated cover sets do
+not provide complete coverage of the monitoring zone.
+\cite{cardei2005improving} propose a method to efficiently
+compute the maximum  number of disjoint set covers  such that each set
+can  monitor all  targets. They  first  transform the  problem into  a
+maximum  flow   problem, which  is  formulated  as   a  mixed  integer
+programming (MIP). Then their heuristic  uses the output of the MIP to
+compute  disjoint  set  covers.  Results  show  that  this  heuristic
+provides  a   number  of  set  covers  slightly   larger  compared  to
+\cite{Slijepcevic01powerefficient}  but with  a larger  execution time
+due  to the complexity  of the  mixed integer  programming resolution.
+
+Zorbas  et  al.  \cite{zorbas2010solving}  presented a centralised greedy
+algorithm for the efficient production of both node disjoint
+and non-disjoint cover sets. Compared to algorithm's results  of  Slijepcevic and Potkonjak
+\cite{Slijepcevic01powerefficient},  their   heuristic  produces  more
+disjoint cover sets with a slight growth rate in execution time. When producing non-disjoint cover sets, both Static-CCF and Dynamic-CCF provide cover sets offering longer network lifetime than those produced by
+\cite{cardei2005energy}. Also, they require a smaller number of node participations in order to
+achieve these results.
+
+In the  case of non-disjoint algorithms  \cite{pujari2011high}, sensors may
+participate  in more  than  one cover  set.   In some  cases, this  may
+prolong  the lifetime  of the  network in  comparison to  the disjoint
+cover set algorithms, but  designing algorithms for non-disjoint cover
+sets  generally induces a  higher order  of complexity.   Moreover, in
+case of a sensor's  failure, non-disjoint scheduling policies are less
+resilient and less  reliable because a sensor may  be involved in more
+than one  cover sets.  For instance,  Cardei et al.~\cite{cardei2005energy}
+present a  linear programming (LP)  solution and a greedy  approach to
+extend the  sensor network lifetime  by organizing the sensors  into a
+maximal  number of  non-disjoint cover  sets. Simulation  results show
+that by allowing sensors to  participate in multiple sets, the network
+lifetime         increases        compared         with        related
+work~\cite{cardei2005improving}.   In~\cite{berman04}, the
+authors  have formulated  the lifetime  problem and  suggested another
+(LP)  technique to  solve this  problem. A  centralized  solution  based      on      the     Garg-K\"{o}nemann
+algorithm~\cite{garg98}, provably near
+the optimal solution,    is also proposed.
+
+\subsection{Distributed approaches}
+%{\bf Distributed approaches}
+In distributed $\&$ localized coverage algorithms, the required computation to schedule the activity of sensor nodes will be done by the cooperation among the neighbours nodes. These algorithms may require more computation power  for the processing by the cooperated sensor nodes but they are more scaleable for large WSNs. Normally, the localized and distributed algorithms result in non-disjoint set covers. 
+
+Some      distributed     algorithms      have      been     developed
+in~\cite{Gallais06,Tian02,Ye03,Zhang05,HeinzelmanCB02, yardibi2010distributed}  to perform the
+scheduling so as to coverage preservation.   Distributed algorithms typically  operate in  rounds for
+a predetermined  duration. At  the  beginning of  each  round, a  sensor
+exchanges information with its neighbors and makes a decision to either
+remain turned  on or to  go to sleep  for the round. This  decision is
+basically made on simple greedy criteria like  the largest uncovered
+area   \cite{Berman05efficientenergy},   maximum   uncovered   targets
+\cite{lu2003coverage}.   In \cite{Tian02}, the  scheduling scheme  is divided
+into rounds, where each round  has a self-scheduling phase followed by
+a sensing phase.  Each sensor  broadcasts a message containing the node ID
+and the node location  to its neighbors at the beginning  of each round. A
+sensor determines  its status by  a rule named off-duty  eligible rule,
+which tells  him to  turn off if  its sensing  area is covered  by its
+neighbors. A  back-off scheme is  introduced to let each  sensor delay
+the decision process  with a random period of time,  in order to avoid
+simultaneous conflicting decisions between nodes and  lack of coverage on any area.
+\cite{prasad2007distributed}  defines a model  for capturing
+the dependencies between different cover sets and proposes localized
+heuristic based on this dependency. The algorithm consists of two
+phases, an initial  setup phase during which each  sensor computes and
+prioritizes the  covers and  a sensing phase  during which  each sensor
+first decides  its on/off status, and  then remains on or off for the
+rest  of the  duration. 
+
+The authors in \cite{yardibi2010distributed}, are developed a distributed adaptive sleep scheduling algorithm (DASSA) for WSNs with partial coverage. DASSA does not require location information of sensors while maintaining connectivity and satisfying a user defined coverage target. In DASSA, nodes use the residual energy levels and feedback from the sink for scheduling the activity of their neighbors. This feedback mechanism reduces the randomness in scheduling that would otherwise occur due to the absence of location information. 
+
+In \cite{ChinhVu},  the author proposed a novel  distributed heuristic, called
+Distributed Energy-efficient  Scheduling for k-coverage  (DESK), which
+ensures that the energy consumption  among the sensors is balanced and
+the lifetime  maximized while the coverage  requirement is maintained.
+This  heuristic   works  in  rounds,  requires   only  1-hop  neighbor
+information,  and each  sensor decides  its status  (active  or sleep)
+based    on    the    perimeter    coverage    model    proposed    in
+\cite{Huang:2003:CPW:941350.941367}.
+Our Work, which is presented in~\cite{idrees2014coverage} proposed a coverage optimization protocol to improve the lifetime in
+heterogeneous energy wireless sensor networks. In this work, the coverage protocol distributed in each sensor node in the subregion but the optimization take place over the the whole subregion. We consider only distributing the coverage protocol over two subregions. 
+
+The works presented in \cite{Bang, Zhixin, Zhang}  focuses on a Coverage-Aware, Distributed  Energy- Efficient and distributed clustering methods respectively, which aims to extend the network lifetime, while the coverage is ensured.
+S.  Misra  et al.  \cite{Misra}  proposed  a  localized algorithm  for
+coverage in  sensor networks. The algorithm conserve  the energy while
+ensuring  the network coverage  by activating  the subset  of sensors,
+with  the  minimum  overlap  area.The proposed  method  preserves  the
+network connectivity by formation of the network backbone. 
+More    recently,   Shibo   et
+al. \cite{Shibo}  expressed the coverage  problem as a  minimum weight
+submodular  set cover  problem  and proposed  a Distributed  Truncated
+Greedy Algorithm  (DTGA) to  solve it. They  take advantage  from both
+temporal  and spatial  correlations between  data sensed  by different
+sensors,  and   leverage  prediction,  to  improve   the  lifetime. 
+
+In \cite{xu2001geography}, Xu et al. proposed an algorithm, called Geographical Adaptive Fidelity (GAF), which uses geographic location information to divide the area of interest into fixed square grids. Within each grid, it keeps only one node staying awake to take the responsibility of sensing and communication.
+
+Some other approaches do  not consider a synchronized and predetermined
+period  of time  where the  sensors are  active or  not.  Indeed, each
+sensor  maintains its  own timer  and its  wake-up time is randomized
+\cite{Ye03} or regulated \cite{cardei2005maximum} over time.
+
+The main contributions of our DiLCO Protocol can be summarized as follows:
+(1) The high coverage ratio, (2) The reduced number of active nodes, (3) The distributed optimization over the subregions in the area of interest, (4) The distributed dynamic leader election at each round based on some priority factors that led to energy consumption balancing among the nodes in the same subregion, (5) The primary point coverage model to represent each sensor node in the network, (6) The activity scheduling based optimization on the subregion, which are based on  the primary point coverage model  to activate as less number as possible of sensor nodes  to take the mission of the coverage in each subregion, (7) The very low energy consumption, (8) The higher network lifetime.
+\section{Preliminaries}
+\label{Pr}
+
+\subsection{Coverage Problem}
+The most discussed coverage problems in literature can be classified
+into three types \cite{ghosh2008coverage}\cite{wang2011coverage}: area coverage \cite{mulligan2010coverage}(also called full or blanket
+coverage), target coverage \cite{yang2014novel}, and barrier coverage \cite{HeShibo}.  An  area coverage problem is to find a minimum number of sensors to work, such that each physical point in the area is within the sensing range  of at least one working sensor node.
+Target coverage problem is to cover only a finite number of discrete
+points  called targets. This type  of coverage  has  mainly military
+applications. The problem of preventing an intruder from entering a region of interest is referred to as the barrier coverage . Our work will concentrate on the area coverage by design
+and implementation of a  strategy, which efficiently selects the active
+nodes   that  must   maintain  both   sensing  coverage   and  network
+connectivity and at the same time improve the lifetime of the wireless
+sensor  network.   But,  requiring  that  all physical  points  of  the
+considered region are covered may  be too strict, especially where the
+sensor network is not dense.   Our approach represents an area covered
+by a sensor as a set of primary points and tries to maximize the total
+number  of  primary points  that  are  covered  in each  round,  while
+minimizing  overcoverage (points  covered by  multiple  active sensors
+simultaneously).
+
+
+\subsection{Network Lifetime}
+Various   definitions   exist   for   the   lifetime   of   a   sensor
+network~\cite{die09}.  The main definitions proposed in the literature are
+related to the  remaining energy of the nodes or  to the coverage percentage. 
+The lifetime of the  network is mainly defined as the amount
+of  time during which  the network  can  satisfy its  coverage objective  (the
+amount of  time that the network  can cover a given  percentage of its
+area or targets of interest). In this work, we assume that the network
+is alive  until all  nodes have  been drained of  their energy  or the
+sensor network becomes disconnected, and we measure the coverage ratio
+during the WSN lifetime.  Network connectivity is important because an
+active sensor node without  connectivity towards a base station cannot
+transmit information on an event in the area that it monitors.
+
+\subsection{Activity Scheduling }
+Activity scheduling is to schedule the activation and deac-
+tivation of sensor nodes. The basic objective is to decide which
+sensors are in what states (active or sleeping mode) and for
+how long, so that the application coverage requirement can be
+guaranteed and the network lifetime can be prolonged. Various
+approaches, including centralized, distributed, and localized
+algorithms, have been proposed for activity scheduling. In
+distributed algorithms, each node in the network autonomously
+makes decisions on whether to turn on or turn off itself only
+using local neighbor information. In centralized algorithms, a
+central controller (a node or base station) informs every sensors
+of the time intervals to be activated. There are many sensor node scheduling methods are proposed in \cite{wang2010clique}, where they are grouped into two main categories:round-based sensor node scheduling in which, sensor nodes will execute the scheduling
+algorithm during the initialization of each round and group-based sensor node scheduling in which, each node will performs the scheduling algorithm only once after its deployment and after
+the execution of scheduling algorithm, all nodes will be allocated into different groups.
+
+
+
+\section{ The DiLCO Protocol Description}
+\label{pd}
+
+In this section, we introduce a Distributed Lifetime Coverage Optimization protocol, which is called DiLCO. It is  distributed on each subregion in the area of interest. It is based on two efficient techniques: network
+leader election and sensor activity scheduling for coverage preservation and energy conservation continuously and efficiently to maximize the lifetime in the network.  
+The main features of our DiLCO protocol:
+i)It divides the area of interest into subregions by using divide-and-conquer concept, ii)It requires only the information of the nodes within the subregion, iii) it divides the network lifetime into rounds, iv)It based on the autonomous distributed decision by the nodes in the subregion to elect the Leader, v)It apply the activity scheduling based optimization on the subregion, vi)  it achieves an energy consumption balancing among the nodes in the subregion by selecting different nodes as a leader during the network lifetime, vii) It uses the optimization to select the best representative set of sensors in the subregion by optimize the coverage and the lifetime over the area of interest, viii)It uses our proposed primary point coverage model, which represent the sensing range of the sensor as a set of points, which are used by the our optimization algorithm, ix) It uses a simple energy model that takes communication, sensing and computation energy consumptions into account to evaluate the performance of our Protocol.
+
+
+\subsection{ Assumptions and Models}
+We consider  a randomly and  uniformly deployed network  consisting of
+static  wireless sensors. The  wireless sensors  are deployed  in high
+density to ensure initially a high coverage ratio of the interested area. We
+assume that  all nodes are  homogeneous in terms of  communication and
+processing capabilities and heterogeneous in term of energy provision.
+The  location  information is  available  to  the  sensor node  either
+through hardware such as embedded GPS or through location discovery
+algorithms.   
+\indent We consider a boolean  disk coverage model which is the most
+widely used sensor coverage model in the literature. Each sensor has a
+constant sensing range $R_s$. All  space points within a disk centered
+at  the sensor with  the radius  of the  sensing range  is said  to be
+covered by this sensor. We also assume that the communication range $R_c \geq 2R_s$.
+In  fact,   Zhang  and Zhou~\cite{Zhang05} proved that if the transmission range fulfills the
+previous hypothesis, a complete coverage of a convex area implies
+connectivity among the working nodes in the active mode.
+
+
+
+%\begin{figure}[h!]
+%\centering
+%\begin{tabular}{cc}
+%%\includegraphics[scale=0.25]{fig1.pdf}\\ %& \includegraphics[scale=0.10]{1.pdf} \\
+%%(A) Figure 1 & (B) Figure 2
+%\end{tabular}
+%\caption{Unit Circle in radians. }
+%\label{fig:cluster1}
+%\end{figure}
+
+%By using the Unit Circle in figure~\ref{fig:cluster1}, 
+%We choose to representEach wireless sensor node will be represented into a selected number of primary points by which we can know if the sensor node is covered or not.
+% Figure ~\ref{fig:cluster2} shows the selected primary points that represents the area of the sensor node and according to the sensing range of the wireless sensor node.
+
+\indent Instead of working with the coverage area, we consider for each
+sensor a set of points called  primary points. We also assume that the
+sensing disk defined  by a sensor is covered if all the primary points of
+this sensor are covered.
+%\begin{figure}[h!]
+%\centering
+%\begin{tabular}{cc}
+%%\includegraphics[scale=0.25]{fig2.pdf}\\ %& \includegraphics[scale=0.10]{1.pdf} \\
+%%(A) Figure 1 & (B) Figure 2
+%\end{tabular}
+%\caption{Wireless Sensor Node Area Coverage Model.}
+%\label{fig:cluster2}
+%\end{figure}
+By  knowing the  position (point  center: ($p_x,p_y$))  of  a wireless
+sensor node  and its $R_s$,  we calculate the primary  points directly
+based on the proposed model. We  use these primary points (that can be
+increased or decreased if necessary)  as references to ensure that the
+monitored  region  of interest  is  covered  by  the selected  set  of
+sensors, instead of using all the points in the area.
+
+\indent  We can  calculate  the positions of the selected primary
+points in the circle disk of the sensing range of a wireless sensor
+node (see figure~\ref{fig1}) as follows:\\
+$(p_x,p_y)$ = point center of wireless sensor node\\  
+$X_1=(p_x,p_y)$ \\ 
+$X_2=( p_x + R_s * (1), p_y + R_s * (0) )$\\           
+$X_3=( p_x + R_s * (-1), p_y + R_s * (0)) $\\
+$X_4=( p_x + R_s * (0), p_y + R_s * (1) )$\\
+$X_5=( p_x + R_s * (0), p_y + R_s * (-1 )) $\\
+$X_6= ( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (0)) $\\
+$X_7=( p_x + R_s *  (\frac{\sqrt{2}}{2}), p_y + R_s * (0))$\\
+$X_8=( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\
+$X_9=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\
+$X_{10}=( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\
+$X_{11}=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\
+$X_{12}=( p_x + R_s * (0), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\
+$X_{13}=( p_x + R_s * (0), p_y + R_s * (\frac{-\sqrt{2}}{2})) $.
+
+ \begin{figure}[h!]
+\centering
+ \begin{multicols}{3}
+\centering
+\includegraphics[scale=0.20]{fig21.pdf}\\~ ~ ~ ~ ~(a)
+\includegraphics[scale=0.20]{fig22.pdf}\\~ ~ ~ ~ ~(b)
+\includegraphics[scale=0.20]{principles13.eps}\\~ ~ ~ ~ ~(c)
+%\includegraphics[scale=0.10]{fig25.pdf}\\~ ~ ~(d)
+%\includegraphics[scale=0.10]{fig26.pdf}\\~ ~ ~(e)
+%\includegraphics[scale=0.10]{fig27.pdf}\\~ ~ ~(f)
+\end{multicols} 
+\caption{Wireless Sensor Node represented by (a)5, (b)9 and (c)13 primary points respectively}
+\label{fig1}
+\end{figure}
+
+\subsection{The Main Idea}
+The   area  of  interest   can  be  divided using the
+divide-and-conquer strategy into smaller areas  called subregions and
+then  our coverage  protocol  will be  implemented  in each  subregion
+simultaneously. Our DiLCO protocol works in rounds fashion as shown in figure~\ref{fig2}.
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=95mm]{FirstModel.eps} % 70mm
+\caption{DiLCO protocol}
+\label{fig2}
+\end{figure} 
+
+Each round  is divided  into 4 phases  : Information  (INFO) Exchange,
+Leader  Election, Decision,  and  Sensing.  For  each  round there  is
+exactly one set cover responsible  for the sensing task.  This protocol is
+more reliable  against an unexpected node failure  because it works
+in rounds. On the  one hand,  if a node  failure is  detected before
+making the decision, the node will not participate to this phase, and,
+on the other hand, if the  node failure occurs after the decision, the
+sensing task of the network  will be temporarily affected: only during
+the period of sensing until a  new round starts, since a new set cover
+will take  charge of the  sensing task in  the next round.  The energy
+consumption  and  some other  constraints  can  easily  be taken  into
+account  since  the  sensors   can  update  and  then  exchange  their
+information (including their residual energy) at the beginning of each
+round.  However,   the  pre-sensing  phases   (INFO  Exchange,  Leader
+Election,  Decision) are energy  consuming for  some nodes,  even when
+they do not  join the network to monitor the  area. 
+We define two types of packets to be used by our DiLCO protocol.
+\begin{enumerate}[(a)] 
+\item INFO packet: sent by each sensor node to all the nodes of it's subregion for information exchange.
+\item ActiveSleep packet: sent by the leader to all the nodes in the same of it's subregion to inform them to be Active or Sleep during the sensing phase.
+\end{enumerate}
+
+There are four status for each sensor node in the network
+\begin{enumerate}[(a)] 
+\item LISTENING: Sensor has not yet decided.
+\item ACTIVE: Sensor is active.
+\item SLEEP: Sensor decides to turn off.
+\item COMMUNICATION: Sensor is Transmitting or Receiving packet.
+\end{enumerate}
+
+Below, we describe each phase in more details.
+
+\subsubsection{Information Exchange Phase}
+
+Each sensor node $j$ sends its position, remaining energy $RE_j$, and
+the number of neighbours  $NBR_j$ to all wireless sensor nodes in
+its subregion by using an INFO packet and then listens to the packets
+sent from  other nodes.  After that, each  node will  have information
+about  all the  sensor  nodes in  the  subregion.  In  our model,  the
+remaining energy corresponds to the time that a sensor can live in the
+active mode.
+
+%\subsection{\textbf Working Phase:}
+
+%The working phase works in rounding fashion. Each round include 3 steps described as follow :
+
+\subsubsection{Leader Election Phase}
+This  step includes choosing  the Wireless  Sensor Node  Leader (WSNL),
+which  will  be  responsible  for executing  the coverage  algorithm.  Each
+subregion  in  the   area  of  interest  will  select   its  own  WSNL
+independently  for each  round.  All the  sensor  nodes cooperate  to
+select WSNL.  The nodes in the  same subregion will  select the leader
+based on  the received  information from all  other nodes in  the same
+subregion.  The selection criteria  in order  of priority  are: larger
+number  of neighbours,  larger remaining  energy, and  then in  case of
+equality, larger index. The pseudo-code for leader election phase is provided in Algorithm~1.
+\begin{algorithm}                
+  \KwIn{all the parameters related to information exchange}
+  \KwOut{$node-id$ (: the id of the winner sensor node, which is the leader of current round)}
+  \BlankLine
+  \emph{Select the node(s) with higher $NBR_j$ and $ RE_j \geqslant E_{th}$} \; 
+  
+  \If{ there are more than two nodes with the same maximum $NBR_j$ }{
+         \If{ there are more than two nodes with the same maximum $NBR_j$ and the same $RE_j$}{
+               \emph{ Select the node with higher id} \;
+         }      
+         \Else{
+             \emph{Select the node with maximum $RE_j$} \;
+         }
+   }
+   \Else{
+            \emph{ Select the node with higher $NBR_j$ } \;
+    }
+  
+  \emph{return node-id} \;
+\caption{LEADER ELECTION}
+\label{alg:LEADER}
+
+\end{algorithm}
+
+Where $E_{th}$ is the minimum energy needed to stay active during the sensing phase. As shown in Algorithm~1, the more priority selection factor is the number of $1-hop$ neighbours, $NBR j$, which can  minimize the energy consumption during the communication Significantly.  
+
+
+\subsubsection{Decision phase}
+The  WSNL will  solve an  integer  program (see  section~\ref{cp})  to
+select which sensors will be  activated in the following sensing phase
+to cover  the subregion.  WSNL will send  Active-Sleep packet  to each
+sensor in the subregion based on the algorithm's results.
+
+
+\subsubsection{Sensing phase}
+Active  sensors  in the  round  will  execute  their sensing  task  to
+preserve maximal  coverage in the  region of interest. We  will assume
+that the cost  of keeping a node awake (or asleep)  for sensing task is
+the same  for all wireless sensor  nodes in the  network.  Each sensor
+will receive  an Active-Sleep  packet from WSNL  informing it  to stay
+awake or to go to sleep  for a time  equal to  the period of  sensing until
+starting a new round.
+
+\subsection{DiLCO protocol Algorithm}
+we first show the pseudo-code of DiLCO protocol, which is executed by each sensor in the subregion and then describe it in more detail. 
+
+\begin{algorithm}                
+ % \KwIn{all the parameters related to information exchange}
+%  \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)}
+  \BlankLine
+  \emph{Initialize the sensor node and determine it's position and it's subregion} \; 
+  
+  \If{ $RE_j \geq E_{th}$ }{
+     \emph{ Send and Receive INFO Packet to and from other nodes in the subregion}\;
+      \emph{ Collect information and construct the list L for all nodes in the subregion}\;
+      \emph{ $s_j.status$ = LISTENING}\;
+       \If{ the received INFO Packet = No. of nodes in it's subregion -1  }{
+         \emph{ LeaderID $\leftarrow$ \bf Algorithm~\ref{alg:LEADER}}\;
+         \If{ $ s_j.ID = LeaderID $}{ 
+               \emph{Execute Integer Program Algorithm (Gbest) }\;
+               \For{$k\leftarrow 1$ \KwTo No. of nodes in subregion}{
+                   \If{$ s_j.ID \neq L_k$ }{
+                        \If{$ Gbest_k = 1$ }{
+                                  \emph{ Send ActiveSleep() Packet with status = ACTIVE  }\;
+                         }
+                         \Else{\emph{Send ActiveSleep() Packet with status = SLEEP}\;}
+               }
+               \Else{
+                       \If{$ Gbest_k = 1$ }{
+                           \emph{ $s_j.status$ = ACTIVE}\; 
+                           \emph{UPDATE Remaining Energy $RE_j $}\;
+                       }
+                       \Else{ 
+                             \emph{ $s_j.status$ = SLEEP}\;
+                             \emph{UPDATE Remaining Energy $RE_j $}\;
+                                }
+                 }
+                         
+            }    
+           
+         }
+         \Else{ 
+                \emph{Wait ActiveSleep() Packet from the Leader}\;
+                 \If{received ActiveSleep().status = ACTIVE  }{ 
+                  \emph{ $s_j.status$ = ACTIVE}\; 
+                 \emph{UPDATE Remaining Energy $RE_j $}\;
+                 }
+                 \Else{
+                  \emph{ $s_j.status$ = SLEEP}\;
+                 \emph{UPDATE Remaining Energy $RE_j $}\;
+                 }
+         }  
+       }
+
+   }
+   \Else { Exclude me from entering in the current round}
+   
+ %   \emph{return X} \;
+\caption{DiLCO($s_j$)}
+\label{alg:DMRCLOP}
+
+\end{algorithm}
+
+The DiLCO protocol work in rounds and executed at each sensor node in the network , each sensor node can still sense data while being in
+LISTENING mode. Thus, by entering the LISTENING mode at the beginning of each round,
+sensor nodes still executing sensing task while participating in the leader election and decision phases. More specifically, The DiLCO protocol algorithm works as follow: 
+Initially, the sensor node check it's remaining energy in order to participate in the current round. Each sensor node determines it's position and it's subregion based Embedded GPS  or Location Discovery Algorithm. After that, All the sensors collect position coordinates, current remaining energy, sensor node id, and the number of its one-hop live neighbors during the information exchange. It stores this information into a list L.
+The sensor node enter in listening mode waiting to receive ActiveSleep packet from the leader to take the decision. Each sensor node will execute the Algorithm~1 to know who is the leader. After that, if the sensor node is leader, It will execute the integer program algorithm ( see section~\ref{cp}) to optimize the coverage and the lifetime in it's subregion. After the decision, the optimization approach will select the set of sensor nodes to take the mission of coverage during the sensing phase. The leader will send ActiveSleep packet to each sensor node in the subregion to inform him to it's status during the period of sensing, either Active or sleep until the starting of next round. Based on the decision, the leader as other nodes in subregion, either go to be active or go to be sleep during current sensing phase. the other nodes in the same subregion will stay in listening mode waiting the ActiveSleep packet from the leader. After finishing the time period for sensing, all the sensor nodes in the same subregion will start new round by executing the DiLCO protocol and the lifetime in the subregion will continue until all the sensor nodes are died or the network becomes disconnected in the subregion.
+
+\section{Coverage problem formulation}
+\label{cp}
+
+\indent   Our   model   is   based   on  the   model   proposed   by
+\cite{pedraza2006} where the objective is  to find a maximum number of
+disjoint  cover sets.   To accomplish  this goal,  authors  proposed an
+integer program, which forces undercoverage and overcoverage of targets
+to  become  minimal at  the  same  time.   They use  binary  variables
+$x_{jl}$ to indicate  if sensor $j$ belongs to cover  set $l$.  In our
+model,  we  consider  binary  variables $X_{j}$,  which  determine  the
+activation of  sensor $j$ in the  sensing phase of the  round. We also
+consider  primary points  as targets.   The set  of primary  points is
+denoted by $P$ and the set of sensors by $J$.
+
+\noindent  For  a primary  point  $p$,  let  $\alpha_{jp}$ denote  the
+indicator function of whether the point $p$ is covered, that is:
+\begin{equation}
+\alpha_{jp} = \left \{ 
+\begin{array}{l l}
+  1 & \mbox{if the primary point $p$ is covered} \\
+ & \mbox{by sensor node $j$}, \\
+  0 & \mbox{otherwise.}\\
+\end{array} \right.
+%\label{eq12} 
+\end{equation}
+The number of active sensors that cover the primary point $p$ is equal
+to $\sum_{j \in J} \alpha_{jp} * X_{j}$ where:
+\begin{equation}
+X_{j} = \left \{ 
+\begin{array}{l l}
+  1& \mbox{if sensor $j$  is active,} \\
+  0 &  \mbox{otherwise.}\\
+\end{array} \right.
+%\label{eq11} 
+\end{equation}
+We define the Overcoverage variable $\Theta_{p}$ as:
+\begin{equation}
+ \Theta_{p} = \left \{ 
+\begin{array}{l l}
+  0 & \mbox{if the primary point}\\
+    & \mbox{$p$ is not covered,}\\
+  \left( \sum_{j \in J} \alpha_{jp} * X_{j} \right)- 1 & \mbox{otherwise.}\\
+\end{array} \right.
+\label{eq13} 
+\end{equation}
+\noindent More precisely, $\Theta_{p}$ represents the number of active
+sensor  nodes  minus  one  that  cover the  primary  point  $p$.\\
+The Undercoverage variable $U_{p}$ of the primary point $p$ is defined
+by:
+\begin{equation}
+U_{p} = \left \{ 
+\begin{array}{l l}
+  1 &\mbox{if the primary point $p$ is not covered,} \\
+  0 & \mbox{otherwise.}\\
+\end{array} \right.
+\label{eq14} 
+\end{equation}
+
+\noindent Our coverage optimization problem can then be formulated as follows
+\begin{equation} \label{eq:ip2r}
+\left \{
+\begin{array}{ll}
+\min \sum_{p \in P} (w_{\theta} \Theta_{p} + w_{U} U_{p})&\\
+\textrm{subject to :}&\\
+\sum_{j \in J}  \alpha_{jp} X_{j} - \Theta_{p}+ U_{p} =1, &\forall p \in P\\
+%\label{c1} 
+%\sum_{t \in T} X_{j,t} \leq \frac{RE_j}{e_t} &\forall j \in J \\
+%\label{c2}
+\Theta_{p}\in \mathbb{N} , &\forall p \in P\\
+U_{p} \in \{0,1\}, &\forall p \in P \\
+X_{j} \in \{0,1\}, &\forall j \in J
+\end{array}
+\right.
+\end{equation}
+
+
+
+\begin{itemize}
+\item $X_{j}$  : indicates whether or  not the sensor  $j$ is actively
+  sensing in the round (1 if yes and 0 if not);
+\item $\Theta_{p}$  : {\it overcoverage}, the number  of sensors minus
+  one that are covering the primary point $p$;
+\item $U_{p}$  : {\it undercoverage},  indicates whether or  not the primary point
+  $p$ is being covered (1 if not covered and 0 if covered).
+\end{itemize}
+
+The first group  of constraints indicates that some  primary point $p$
+should be covered by at least one  sensor and, if it is not always the
+case,  overcoverage  and  undercoverage  variables  help  balancing  the
+restriction  equations by taking  positive values.  There are  two main         
+objectives.  First, we limit the overcoverage of primary points in order to
+activate a minimum number of sensors.  Second we prevent the absence of monitoring on
+ some parts of the subregion by  minimizing the undercoverage.   The
+weights  $w_\theta$  and  $w_U$  must  be properly  chosen  so  as  to
+guarantee that  the maximum number  of points are covered  during each
+round.
+
+\section{Simulation Results and Analysis}
+\label{exp}
+In this section, we conducted  a series of simulations to evaluate the
+efficiency and the relevance of our approach,  using the  discrete event
+simulator  OMNeT++  \cite{varga}. The simulation parameters are summarized in
+Table~\ref{table3}
+
+\begin{table}[ht]
+\caption{Relevant parameters for network initializing.}
+% title of Table
+\centering
+% used for centering table
+\begin{tabular}{c|c}
+% centered columns (4 columns)
+      \hline
+%inserts double horizontal lines
+Parameter & Value  \\ [0.5ex]
+   
+%Case & Strategy (with Two Leaders) & Strategy (with One Leader) & Simple Heuristic \\ [0.5ex]
+% inserts table
+%heading
+\hline
+% inserts single horizontal line
+Sensing  Field  & $(50 \times 25)~m^2 $   \\
+% inserting body of the table
+%\hline
+Nodes Number &  50, 100, 150, 200 and 250~nodes   \\
+%\hline
+Initial Energy  & 50-75~joules  \\  
+%\hline
+Sensing Period & 20 Minutes \\
+$E_{thr}$ & 12.2472 Joules\\
+$R_s$ & 5~m   \\     
+%\hline
+$w_{\Theta}$ & 1   \\
+% [1ex] adds vertical space
+%\hline
+$w_{U}$ & $|P^2|$
+%inserts single line
+\end{tabular}
+\label{table3}
+% is used to refer this table in the text
+\end{table}
+
+A simulation
+ends  when  all the  nodes  are dead  or  the  sensor network  becomes
+disconnected (some nodes may not be able to send, to a base station, an
+event they sense).
+Our proposed coverage protocol uses a simple energy model defined by~\cite{ChinhVu} that based on ~\cite{raghunathan2002energy} with some modification as energy consumption model for each wireless sensor node in the network and for all the simulations.
+
+The modification is to add the energy consumption for receiving the packets as well as we ignore the part that related to the sensing range because we used fixed sensing range. The new energy consumption model will take inro account the energy consumption for communication (packet transmission/reception), data sensing and computational energy. 
+
+There are four subsystems in each sensor node that consume energy: the micro-controller
+unit (MCU) subsystem which is capable of computation, communication subsystem which is responsible for
+transmitting/receiving messages, sensing subsystem that collects data, and the powe suply which supplies power to the complete sensor node ~\cite{raghunathan2002energy}. In our model, we will concentrate on first three main subsystems and each subsystem can be turned on or off depending on the current status of the sensor which is summarized in Table~\ref{table4}.
+
+\begin{table}[ht]
+\caption{The Energy Consumption Model}
+% title of Table
+\centering
+% used for centering table
+\begin{tabular}{|c|c|c|c|c|}
+% centered columns (4 columns)
+      \hline
+%inserts double horizontal lines
+Sensor mode & MCU   & Radio & Sensing & Power (mW) \\ [0.5ex]
+\hline
+% inserts single horizontal line
+Listening & ON & ON & ON & 20.05 \\
+% inserting body of the table
+\hline
+Active & ON & OFF & ON & 9.72 \\
+\hline
+Sleep & OFF & OFF & OFF & 0.02 \\
+\hline
+ \multicolumn{4}{|c|}{Energy needed to send/receive a 1-bit} & 0.2575\\
+ \hline
+\end{tabular}
+
+\label{table4}
+% is used to refer this table in the text
+\end{table}
+
+For the simplicity, we ignore the energy needed to turn on the
+radio, to start up the sensor node, the transition from mode to another, etc. We also do not consider the need of collecting sensing data. Thus, when a sensor becomes active (i.e., it already decides it status), it can turn its radio off to save battery. Since our couverage optimization protocol uses two types of the packets, the size of the INFO-Packet and Status-Packet are 112 bits and 16 bits respectively. The value of energy spent to send a message shown in Table~\ref{table4} is obtained by using the equation in ~\cite{raghunathan2002energy} to calculate the energy cost for transmitting messages and we propose the same value for receiving the packets.
+
+
+We  performed  simulations for  five different densities varying from 50 to 250~nodes. Experimental results
+were  obtained from  randomly generated  networks in  which  nodes are
+deployed over a  $(50 \times 25)~m^2 $ sensing  field. More precisely, the deployment is controlled at a coarse scale in   order to ensure that the  deployed nodes can fully cover the sensing
+  field with the given sensing range.
+The energy of  each node in a  network is initialized  randomly within the
+range 50-75~joules.  Each  sensor  node will  not participate in the next round if its remaining energy is less than $E_{thr}$, the minimum energy needed for the node to stay alive during one round. 
+
+In the simulations, we introduce the following performance metrics to
+evaluate the  efficiency of our approach: 
+
+\begin{enumerate}[i)]
+  
+\item {Coverage Ratio (CR):} the coverage ratio measures how much the area of a sensor field is  covered. In our case, we treated the sensing fields as a grid, and used each grid point as a sample point
+for calculating the coverage. The coverage ratio can be calculated by:
+\begin{equation*}
+\scriptsize
+\mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100.
+\end{equation*}
+Where: $n$ is the Number of Covered Grid points by the Active Sensors of the all subregions of the network during the current sensing phase and $N$ is total number of grid points in the sensing field of the network.
+The accuracy of this method depends on the distance between grids. In our
+simulations, the sensing field has been divided into 50 by 25 grid points, which means
+there are $51 \times 26~ = ~ 1326$ points in total. Therefore, for our simulations, the error in the coverage calculation is less than ~ 1 $\% $.
+
+\item{ Number of Active Sensors Ratio(ASR):} It is important to have as few active nodes as possible in each round,
+in  order to  minimize  the communication  overhead  and maximize  the
+network lifetime.The Active Sensors Ratio is defined as follows:
+\begin{equation*}
+\scriptsize
+\mbox{ASR}(\%) = \sum\limits_{r=1}^R \left( \frac{\mbox{$A_r$}}{\mbox{$S$}} \times 100 \right) .
+\end{equation*}
+Where: $A_r$ is the number of active sensors in the subregion $r$ during the current sensing phase, $S$ is the total number of sensors in the network, and $R$ is the total number of the subregions in the network.
+
+\item {Energy Saving  Ratio(ESR):} is defined by:
+\begin{equation*}
+\scriptsize
+\mbox{ESR}(\%) = \sum\limits_{r=1}^R \left( \frac{\mbox{${ES}_r$}}{\mbox{$S$}} \times 100 \right) .
+\end{equation*}
+Where: ${ES}_r$ is the number of alive sensors in subregion $r$ during this round. The  longer the ratio  is,  the more  redundant sensor  nodes are switched off, and consequently  the longer the  network may  live.
+
+\item {Energy Consumption:}
+
+ Energy Consumption (EC) can be seen as the total energy consumed by the sensors during the lifetime of the network divided by the total number of rounds. The EC can be computed as follow: \\
+ \begin{equation*}
+\scriptsize
+\mbox{EC} =  \frac{\mbox{$\sum\limits_{d=1}^D \left( E^c_d + E^l_d + E^a_d + E^s_d \right)$ }}{\mbox{$D$}}   .
+\end{equation*}
+%\begin{equation*}
+%\scriptsize
+%\mbox{EC} =  \frac{\mbox{$\sum\limits_{d=1}^D E^c_d$}}{\mbox{$D$}} + \frac{\mbox{$\sum\limits_{d=1}^D %E^l_d$}}{\mbox{$D$}} + \frac{\mbox{$\sum\limits_{d=1}^D E^a_d$}}{\mbox{$D$}} + %\frac{\mbox{$\sum\limits_{d=1}^D E^s_d$}}{\mbox{$D$}}.
+%\end{equation*}
+
+Where: D is the total number of rounds. 
+The total energy consumed by the sensors (EC) comes through taking into consideration four main energy factors, which are $E^c_d$, $E^l_d$, $E^a_d$, and $E^s_d$.
+The factor $E^c_d$ represents the  energy consumption  resulting  from  wireless  communications  is  calculated by taking into account the  energy spent by  all the nodes when  transmitting and
+receiving  packets during round $d$. The $E^l_d$ represents the energy consumed by all the sensors during the listening mode before taking the decision to go Active or Sleep in round $d$. The $E^a_d$ and $E^s_d$  are refered to enegy consumed by the turned on and turned off sensors in the period of sensing during the round $d$. 
+
+\item {Network Lifetime:} we  have defined the network  lifetime as the  time until all
+nodes  have  been drained  of  their  energy  or each  sensor  network monitoring  an area has become  disconnected.
+
+
+\item {Execution Time:} a  sensor  node has  limited  energy  resources  and computing  power,
+therefore it is important that the proposed algorithm has the shortest
+possible execution  time. The energy of  a sensor node  must be mainly
+used   for  the  sensing   phase,  not   for  the   pre-sensing  ones.   
+  
+\item {The number of stopped simulation runs:} we  will study the percentage of simulations, which are stopped due to network disconnections per round.
+
+\end{enumerate}
+
+\subsection{Performance Comparison for differnet subregions}
+\label{sub1}
+In this subsection, we will study the performance of our approach for a different number of subregions (Leaders).
+10~simulation runs are performed  with different network topologies for each node  density. The results presented hereafter are the average of these 10 runs.  
+Our approach are called strategy 1 ( With 1 Leader), strategy 2 ( With 2 Leaders), strategy 3 ( With 4 Leaders), and strategy 4 ( With 8 Leaders), strategy 5 ( With 16 Leaders) and strategy 6 ( With 32 Leaders). The strategy 1 ( With 1 Leader) is a centralized approach on all the area of the interest, while  strategy 2 ( With 2 Leaders), strategy 3 ( With 4 Leaders), strategy 4 ( With 8 Leaders), strategy 5 ( With 16 Leaders) and strategy 6 ( With 32 Leaders) are distributed on two, four, eight, sixteen, and thirty-two subregions respectively.  
+\subsubsection{The impact of the number of rounds on the coverage ratio} 
+In this experiment, Figure~\ref{fig3} shows  the impact  of the
+number of rounds on the  average coverage ratio for 150 deployed nodes
+for the  four strategies.  
+\parskip 0pt    
+\begin{figure}[h!]
+\centering
+ \includegraphics[scale=0.43] {R1/CR.eps} 
+\caption{The impact of the number of rounds on the coverage ratio for 150 deployed nodes}
+\label{fig3}
+\end{figure} 
+
+It can be  seen that the six strategies
+give  nearly similar  coverage  ratios  during  the first  three rounds.  
+As shown in  the figure ~\ref{fig3}, when we increase the number of sub-regions, It will leads to cover the area of interest for a larger number of rounds. Coverage ratio decreases when the number of rounds increases due to dead nodes. Although  some nodes are dead,
+thanks to  strategy~5 and strategy~6,  other nodes are  preserved to  ensure the
+coverage. Moreover, when  we have a dense sensor network, it leads to
+maintain the full coverage for a larger number of rounds. Strategy~5 and strategy~6 are
+slightly more efficient than other strategies, because they subdivides
+the area of interest into 16~subregions and 32~subregions if one of the subregions becomes
+disconnected, the coverage may be still ensured in the remaining subregions.
+
+\subsubsection{The impact of the number of rounds on the active sensors ratio} 
+ Figure~\ref{fig4} shows the average active nodes ratio versus the number of rounds
+for 150 deployed nodes.
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R1/ASR.eps}  
+\caption{The impact of the number of rounds on the active sensors ratio for 150 deployed nodes }
+\label{fig4}
+\end{figure} 
+
+The  results presented  in figure~\ref{fig4}  show the superiority of
+the proposed  strategy~5 and strategy~6, in comparison with the other strategies. The
+strategy with less number of leaders uses less active nodes than the other strategies, which uses a more number of leaders until the last rounds, because it uses central control on
+the larger area of the sensing field. The  advantage of the strategy~5 and strategy~6 are
+that even if a network is disconnected in one subregion, the other ones
+usually  continues the optimization process,  and  this extends the lifetime of the network.
+
+\subsubsection{The impact of the number of rounds on the energy saving ratio} 
+In this experiment, we consider a performance metric linked to energy. Figure~\ref{fig5} shows the average energy saving ratio versus number of rounds for all six strategies and for 150 deployed nodes.
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R1/ESR.eps}  
+\caption{The impact of the number of rounds on the energy saving ratio for 150 deployed nodes}
+\label{fig5}
+\end{figure} 
+
+The simulation results show that our strategies allow to efficiently
+save energy by turning off some sensors during the sensing phase. As
+expected, the strategy~5 and strategy~6 are usually slightly better than
+the other strategies, because the distributed optimization on larger number of subregions permits to minimize the energy needed for communication and It led to save more energy obviously. Indeed,  when there are more than one subregion more nodes remain awake near the border shared by them but the energy consumed by these nodes have no effect in comparison with the energy consumed by the communication. Note that again as the number of rounds increases the strategy~5 and strategy~6 becomes the most performing one, since it takes longer to have the Sixteen or Thirty-two subregion networks simultaneously disconnected.
+
+\subsubsection{The percentage of stopped simulation runs}
+Figure~\ref{fig6} illustrates the percentage of stopped simulation
+runs per round for 150 deployed nodes. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.43]{R1/SR.eps} 
+\caption{The percentage of stopped simulation runs compared to the number of rounds for 150 deployed nodes }
+\label{fig6}
+\end{figure} 
+It can be observed that the strategy~1 is the approach which stops first because it apply the centralized  control on all the area of interest that is why it is first exhibits network disconnections. Thus, as explained previously, in case of the strategy~5 and strategy~6 with several subregions the optimization effectively  continues as long as a network in a subregion is still connected. This longer partial coverage optimization participates in extending the network lifetime.
+
+\subsubsection{The Energy Consumption}
+In this experiment, we study the effect of the energy consumed by the sensors during the communication, listening, active, and sleep modes for different network densities. Figure~\ref{fig7} illustrates the energy consumption for the different
+network  sizes and for the four proposed stratgies. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R1/EC.eps} 
+\caption{The Energy Consumption}
+\label{fig7}
+\end{figure} 
+
+The results show that the strategy  with  eight  leaders  is  the  most  competitive  from  the energy
+consumption point of view.  The other strategies have a  high energy  consumption  due  to  many
+communications as well as the energy consumed during the listening before taking the decision. In fact,  a distributed  method on the subregions greatly reduces the number  of communications and the time of listening so thanks to the  partitioning of the initial
+network in several independent subnetworks. 
+
+
+\subsubsection{The impact of the number of sensors on execution time}
+In this experiment, we study the the impact of the size of the network on the excution time of the our distributed optimization approach. Table~\ref{table1} gives the average execution times in seconds for the decision phase (solving of the optimization problem) during one round. They are given for the different  approaches and various numbers of sensors. We can see from Table~\ref{table1}, that the strategy~6 has very low execution times in comparison with other strategies, because it distributed on larger number of small subregions.  Conversely, the strategy~1 which requires to solve an optimization problem considering all the nodes presents  high execution times.
+%Moreover, increasing the network size by 50~nodes multiplies the time by  almost a factor of 10. 
+The strategy~6 has more suitable times.  We think that in distributed fashion the solving of the  optimization problem in a subregion can be tackled by sensor nodes. Overall, to be able to deal  with very large networks,  a distributed method is clearly required.
+\begin{table}[ht]
+\caption{The Execution Time(s) vs The Number of Sensors}
+% title of Table
+\centering
+% used for centering table
+\begin{tabular}{|c|c|c|c|c|c|}
+%\begin{tcolorbox}[tab2,tabularx={X|Y|Y|Y|Y|Y|Y}]
+% centered columns (4 columns)
+      \hline
+%inserts double horizontal lines
+\cellcolor[gray]{0.8} Strategy &  \multicolumn{5}{|c|}{\cellcolor[gray]{0.8} The Number of Sensors } \\
+ \cellcolor[gray]{0.8} Name &\cellcolor[gray]{0.8} 50 & \cellcolor[gray]{0.8} 100  & \cellcolor[gray]{0.8} 150  & \cellcolor[gray]{0.8} 200 & \cellcolor[gray]{0.8} 250 \\ [0.5ex]
+\hline\hline
+% inserts single horizontal line
+\cellcolor[gray]{0.8} Strategy~1 &     0.1848 &        1.8957 &        12.2119 &       152.2581 &      1542.5396 \\
+\hline
+\cellcolor[gray]{0.8} Strategy~2       & 0.0466 &      0.2190 &        0.6323  & 2.2853 &      5.6561 \\
+\hline
+
+\cellcolor[gray]{0.8} Strategy~3 &     0.0118 &        0.0445 &        0.0952 &        0.1849 &        0.3148  \\
+\hline
+
+\cellcolor[gray]{0.8} Strategy~4 &     0.0041 &        0.0127 &        0.0271 &        0.0484 &        0.0723 \\
+\hline
+
+\cellcolor[gray]{0.8} Strategy~5 &     0.0025 &        0.0037  & 0.0061 &      0.0083 &        0.0126   \\
+\hline
+
+\cellcolor[gray]{0.8} Strategy~6 &     0.0008  & 0.0022 &      0.0022 &        0.0032 &        0.0035  \\
+\hline
+%inserts single line
+\end{tabular}
+%\end{tcolorbox}
+\label{table1}
+% is used to refer this table in the text
+\end{table}
+
+
+\subsubsection{The Network Lifetime}
+Finally, in  figure~\ref{fig8}, the
+network  lifetime for different  network sizes  and for the four strategies is illustrated. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R1/LT.eps}  
+\caption{The Network Lifetime }
+\label{fig8}
+\end{figure} 
+We see that the strategy 1 results in execution times that quickly become unsuitable for a sensor network as well as the energy consumed during the communication seems to be huge because it used a centralised control on the all the area of interest.
+
+As  highlighted by figure~\ref{fig8},  the network  lifetime obviously
+increases when  the size  of the network  increases, with  our approach strategy~6
+that leads to the larger lifetime improvement. By choosing the best 
+suited nodes, for each round, to cover the area of interest and by
+letting the other ones sleep in order to be used later in next rounds,
+our strategy~6 efficiently prolonges the network lifetime. Comparison shows that
+the Strategy~6, which uses 32 leaders, is the best one because it is robust to network disconnection during the network lifetime. It also  means that distributing the protocol in each node and
+subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network.
+
+
+\subsection{Performance Comparison for Different Primary Point Models}
+\label{sub2}
+Based on the results, which are conducted in subsection~\ref{sub1}, we will study the performance of the Strategy~4 approach for a different primary point models. The objective of this comparison is to select the suitable primary point  model to be used by our DiLCO protocol. 
+50~simulation runs are performed  with different  network  topologies for each node density. The  results presented hereafter are the average of these 50 runs.  
+In this comparisons, our approaches are called Model~1( With 5 Primary Points), Model~2 ( With 9 Primary Points), Model~3 ( With 13 Primary Points), Model~4 ( With 17 Primary Points), and Model~5 ( With 21 Primary Points). The simulation will applied with strategy~4 by subdividing the area of interest into eight subregions and distribute our strategy~4 approach on the all subregions. 
+
+\subsubsection{The impact of the number of rounds on the coverage ratio} 
+In this experiment, we Figure~\ref{fig33} shows  the impact  of the
+number of rounds on the  average coverage ratio for 150 deployed nodes
+for the  four strategies.  
+\parskip 0pt    
+\begin{figure}[h!]
+\centering
+ \includegraphics[scale=0.5] {R2/CR.eps} 
+\caption{The impact of the number of rounds on the coverage ratio for 150 deployed nodes}
+\label{fig33}
+\end{figure} 
+It is shown that all models provides a very near coverage ratios during the first twelve rounds, with very small superiority for the models with higher number of primary points.
+Moreover, when the number of rounds increases, coverage
+ratio produced by Model~3, Model~4 and Model~5 decreases in comparison with Model~1 and Model~2 due to the high energy consumption during the listening to take the decision after finishing optimization process for larger number of primary points. As shown in figure ~\ref{fig33}, Coverage ratio decreases when the number of rounds increases  due to dead nodes. Although  some nodes are dead,
+thanks to  Model~2, which is slightly more efficient than other Models, because Model~2 balances between the number of rounds and the better coverage ratio in comparison with other Models.
+
+\subsubsection{The impact of the number of rounds on the active sensors ratio} 
+ Figure~\ref{fig44} shows the average active nodes ratio versus the number of rounds
+for 150 deployed nodes.
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R2/ASR.eps}  
+\caption{The impact of the number of rounds on the active sensors ratio for 150 deployed nodes }
+\label{fig44}
+\end{figure} 
+
+The  results presented  in figure~\ref{fig44}  show the  superiority of
+the proposed  Model 1, in comparison with the other Models. The
+model with less number of primary points uses less active nodes than the other models, which uses a more number of primary points to represent the area of the sensor. According to the results that presented in figure~\ref{fig33}, we observe that although the Model~1 continue to a larger number of rounds, but it has less coverage ratio compared with other models.The advantage of the Model~2 approach is to use less number of active nodes for each round compared with Model~3,  Model~4 and Model~5, and this led to continue for a larger number of rounds with extending the network lifetime. Model~2 has a better coverage ratio compared to Model~1 and acceptable number of rounds.
+
+\subsubsection{The impact of the number of rounds on the energy saving ratio} 
+In this experiment, we study the effect of increasing primary points on the energy conservation in the wireless sensor network. Figure~\ref{fig55} shows the average Energy Saving Ratio versus number of rounds for all four Models and for 150 deployed nodes.
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R2/ESR.eps}  
+\caption{The impact of the number of rounds on the energy saving ratio for 150 deployed nodes}
+\label{fig55}
+\end{figure} 
+The simulation results show that our Models allow to efficiently
+save energy by turning off the redundant  sensors during the sensing phase.
+ As expected, the Model 1 is usually slightly better than the other Models, because it turn on a less number of nodes during the sensing phase in comparison with other models and according to the results, which are observed in figure ~\ref{fig33}, and It led to save more energy obviously.
+ Indeed,  when there are more primary points to represent the area of the sensor leads to activate more nodes to cover them and in the same time ensuring more coverage ratio. From the previous presented results, we see it is preferable to choose the model that balance between the coverage ratio and the number of rounds. The Model~2 becomes the most performing one, since it could apply this requirement where, It can cover the area of interest with a good coverage ratio and for a larger number of rounds prolonging the lifetime of the wireless sensor network.
+
+\subsubsection{The percentage of stopped simulation runs}
+In this study, we want to show the effect of increasing the primary points on the number of stopped simulation runs for each round. Figure~\ref{fig66} illustrates the percentage of stopped simulation
+runs per round for 150 deployed nodes. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R2/SR.eps} 
+\caption{The percentage of stopped simulation runs compared to the number of rounds for 150 deployed nodes }
+\label{fig66}
+\end{figure} 
+As shown in Figure~\ref{fig66}, when the number of primary points increase leads to increase the percentage of the stopped simulation runs per rounds and starting from round 19 until the the network is died. The reason behind the increase is the increase in the sensors dead when the primary points increases. We can observe that the Model~1 is a better than other models because it conserve more energy by turn on less number of sensors during the sensing phase, but in the same time it preserve the coverage with a less coverage ratio in comparison with other models. Model~2 seems to be more suitable to be used in wireless sensor networks.
+
+
+\subsubsection{The Energy Consumption}
+In this experiment, we study the effect of increasing the primary points to represent the area of the sensor on the energy consumed by the wireless sensor network for different network densities. Figure~\ref{fig77} illustrates the energy consumption for the different network sizes and for the five proposed Models. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R2/EC.eps} 
+\caption{The Energy Consumption}
+\label{fig77}
+\end{figure} 
+
+We see from the results presented in Figure~\ref{fig77}, The energy consumed by the network for each round increases when the primary points increases, because the decision for optimization process will takes more time leads to consume more energy during the listening mode. The  results show  that the Model~1 is  the  most  competitive  from  the energy consumption point of view but the worst one from coverage ratio point of view. The other Models  have a  high energy  consumption  due  to  the increase in the primary points, which are led to increase the energy consumption during the listening mode before taking the optimization decision. In fact, we see that the Model~2 is a good candidate to be used the wireless sensor network because I have a good coverage ratio and a suitable energy consumption in comparison with other models. 
+
+
+\subsubsection{The impact of the number of sensors on execution time}
+In this experiment, we study the the impact of the increase in primary points on the excution time of the our distributed optimization approach. Figure~\ref{figt} gives the average execution times in seconds for the decision phase (solving of the optimization problem) during one round.  
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R2/T.eps}  
+\caption{The Execution Time(s) vs The Number of Sensors }
+\label{figt}
+\end{figure} 
+
+They  are given for  the different primary point models and
+various numbers of sensors. We can see from Figure~\ref{figt}, that the Model~1 has  lower execution time in comparison with other Models, because it used smaller number of primary points to represent the area of the sensor.  Conversely, the other primary point models  presents  higher  execution  times.
+Moreover, the Model~2 has more suitable times, coverage ratio, and saving energy ratio leads to continue for a larger number of rounds extending the network lifetime. We  think that a good primary point model, this one that balances between the coverage ratio and the number of rounds during the lifetime of the network.
+
+\subsubsection{The Network Lifetime}
+Finally, we will study the effect of increasing the primary points on the lifetime of the network. In figure~\ref{fig88}, the network  lifetime for different network sizes and for the five proposed models is illustrated. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R2/LT.eps}  
+\caption{The Network Lifetime }
+\label{fig88}
+\end{figure} 
+As  highlighted by figure~\ref{fig88},  the network  lifetime obviously
+increases when  the size  of the network  increases, with  our approach Model~1
+that leads to  the larger lifetime improvement.
+Comparison shows that the Model~1, which uses less number of primary points , is the best one because it is less energy consumption during the network lifetime. It is also  the worst one from the point of view of coverage ratio. Our proposed Model~2 efficiently prolongs the network lifetime with a good coverage ratio in comparison with other models.
+\subsection{Performance Comparison for Different Approaches}
+Based on the results, which are conducted from previous two subsections, ~\ref{sub1} and \ref{sub2}, we found that Our DiLCO protocol with Strategy~5 and Strategy~6 with Model~2 are the best candidate to be compared with other two approches. The first approach, called DESK that proposed by ~\cite{ChinhVu}, which is a full distributed coverage algorithm. The second approach, called GAF ~\cite{xu2001geography}, consists in dividing the region into fixed squares.   During the  decision phase,  in  each square,  one sensor  is
+chosen to remain on during the sensing phase time. In this subsection, 50 simulation runs are
+performed with different network topologies. The results
+presented hereafter are the average of these 50 runs.
+
+\subsubsection{The impact of the number of rounds on the coverage ratio} 
+In this experiment, Figure~\ref{fig333} shows  the impact  of the
+number of rounds on the  average coverage ratio for 150 deployed nodes
+for the  three approaches.  
+\parskip 0pt    
+\begin{figure}[h!]
+\centering
+ \includegraphics[scale=0.45] {R3/CR.eps} 
+\caption{The impact of the number of rounds on the coverage ratio for 150 deployed nodes}
+\label{fig333}
+\end{figure} 
+
+It is shown that DESK and GAF provides a
+a little better coverage ratio with 99.99\% and 99.92\% against 99.26\% and 99.0\% produced by
+our approaches Strategy~5 and Strategy~6 for the lowest number of rounds.
+This is due to the fact that our DiLCO protocol with Strategy~5  and Strategy~6 put in sleep mode
+redundant sensors using optimization (which lightly decreases the coverage ratio) while there are more nodes are active in the case of DESK and GAF.
+Moreover, when the number of rounds increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, Our DiLCO protocol with Strategy~5  and Strategy~6 maintains almost full coverage. This is because it optimize the coverage and the lifetime in wireless sensor network by selecting the best representative sensor nodes to take the reponsibilty of coverage during the sensing phase and this will leads to continue for a larger number of rounds and prolonging the network lifetime; although some nodes are dead, sensor activity scheduling of our protocol chooses other nodes to ensure the coverage of the area of interest. 
+
+\subsubsection{The impact of the number of rounds on the active sensors ratio} 
+It is important to have as few active nodes as possible in each round,
+in  order to  minimize  the communication  overhead  and maximize  the
+network lifetime. Figure~\ref{fig444} shows the average active nodes ratio versus the number of rounds for 150 deployed nodes. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R3/ASR.eps}  
+\caption{The impact of the number of rounds on the active sensors ratio for 150 deployed nodes }
+\label{fig444}
+\end{figure} 
+
+The  results presented  in figure~\ref{fig444}  show the  superiority of
+the proposed DiLCO protocol with Strategy~5 and Strategy~6, in comparison with the other approaches.  We can observe that DESK and GAF have 37.5 \% and 44.5 \% active nodes and our DiLCO protocol with Strategy~5 and Strategy~6 competes perfectly with only 24.8 \% and 26.8 \%  active nodes for the first four rounds. Then as the number of rounds increases our DiLCO protocol with Strategy~5 and Strategy~6 have larger number of active nodes in comparison with DESK and GAF, especially from tenth round because DiLCO gives a better coverage ratio after tenth round than other approaches. We see that the DESK and GAF have less number of active nodes because there are many nodes are died due to the high energy consumption by the redundant nodes during the sensing phase. 
+
+\subsubsection{The impact of the number of rounds on the energy saving ratio} 
+In this experiment, we will perform a comparison study for the performance of our protocol with Strategy~4 with two other approaches from the point of view of energy conservation. Figure~\ref{fig555} shows the average Energy Saving Ratio versus number of rounds for all three approaches and for 150 deployed nodes.
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R3/ESR.eps}  
+\caption{The impact of the number of rounds on the energy saving ratio for 150 deployed nodes}
+\label{fig555}
+\end{figure} 
+The simulation results show that DESK protocol has
+energy saving ratio 100 \% during the first three rounds. After that, the energy saving ratio of DESK decreased obviously during the next rounds due to the died nodes until the died of the network in the $15^{th}$ round.  
+
+On the other side, our DiLCO protocol with Strategy~5 and Strategy~6 have the same energy saving ratio 100 \% during the first four rounds. From the $5^{th}$ round to $12^{th}$ round, GAF provides a beter energy saving ratio because it employs a load balancing for energy usage so that all the nodes remain up and running together as long as possible by selecting the node with higher lifetime in each square and at each round, so it success to prolong the lifetime without taking the coverage ratio into account but it postpond the the increase in the dead nodes until the  $13^{th}$ round. After that, our DiLCO protocol  with Strategy~5 and Strategy~6 allow to efficiently
+save energy by turning off the redundant sensors during the sensing phase. As
+expected, our DiLCO protocol with  with Strategy~5 and Strategy~6 is usually slightly better than the other approaches, because the distributed optimization on the subregions permits to minimize the energy needed for communication as well as turn off all the redundant sensor nodes, which are led to save more energy obviously and increase the lifetime of the network. Note that again as the number of rounds increases, our DiLCO protocol becomes the most performing one, since it is distributed the optimization process on the 16  or 32 subregion networks simultaneously so as to optimize the coverage and the lifetime in the network.
+
+\subsubsection{The percentage of stopped simulation runs}
+The results presented in this experiment, is to show the comparison of our DiLCO protocol with Strategy~5 and Strategy~6 with other two approaches from the point of view the stopped simulation runs per round.
+Figure~\ref{fig666} illustrates the percentage of stopped simulation
+runs per round for 150 deployed nodes. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.4]{R3/SR.eps} 
+\caption{The percentage of stopped simulation runs compared to the number of rounds for 150 deployed nodes }
+\label{fig666}
+\end{figure} 
+It can be  observed that the DESK is the approach, which stops first because it consumes more energy for communication as well as it turn on a large number of redundant nodes during the sensing phase. Our DiLCO protocol with Strategy~5 and Strategy~6 have less stopped simulation runs in comparison with DESK and GAFbecause it distributed the optimization on several subregions in order to optimize the coverage and the lifetime of the network by activating a less number of nodes during the sensing phase leading to extend the network lifetime and coverage preservation.The optimization effectively continues as long as a network in a subregion is still connected.
+
+\subsubsection{The Energy Consumption}
+In this experiment, we study the effect of the energy consumed by the wireless sensor network during the communication, listening, active, and sleep modes for different network densities and compare it with other approaches. Figure~\ref{fig777} illustrates the energy consumption for the different
+network sizes and for the four approaches. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R3/EC.eps} 
+\caption{The Energy Consumption}
+\label{fig777}
+\end{figure} 
+The  results show  that our DiLCO protocol with Strategy~5 and Strategy~6 are  the  most  competitive  from  the energy consumption point of view.  The other approaches have a  high energy  consumption  due  to  activating a larger number of redundant nodes as well as the energy consumed for communication, active and listening modes. In fact,  a distributed  method on the subregions greatly reduces the number  of communications and the time of listening so thanks to the  partitioning of the initial network into several independent subnetworks. 
+
+\subsubsection{The Network Lifetime}
+Finally, In this experiment, we will show the superiority of our DiLCO protocol with Strategy~5 and Strategy~6 against other two approaches in prolonging the network lifetime. In Figure~\ref{fig888}, the
+network  lifetime for different  network sizes and for the four approaches. 
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R3/LT.eps}  
+\caption{The Network Lifetime }
+\label{fig888}
+\end{figure} 
+
+As highlighted by figure~\ref{fig888}, the network lifetime obviously
+increases when the size of the network increases, with our DiLCO protocol with Strategy~5 and Strategy~6
+that leads to maximize the lifetime of the network compared with other approaches. 
+By choosing the best suited nodes, for each round, by optimizing the coverage and lifetime of the network to cover the area of interest and by
+letting the other ones sleep in order to be used later in next rounds, our DiLCO protocol with Strategy~5 and Strategy~6 efficiently prolonges the network lifetime. 
+Comparison shows that our DiLCO protocol with Strategy~5 and Strategy~6, which uses distributed optimization on the subregions, is the best
+one because it is robust to network disconnection during the network lifetime as well as it consume less energy in comparison with other approaches. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed
+independently and simultaneously, is the most relevant way to maximize the lifetime of a network.
+
+\section{Conclusion and Future Works}
+\label{sec:conclusion}
+
+In this paper, we have  addressed the problem of the coverage and the lifetime
+optimization in wireless  sensor networks. This is a key issue as
+sensor nodes have limited resources in terms of memory,  energy and
+computational power. To cope with this problem, the field of sensing
+is divided into smaller subregions using the concept of divide-and-conquer method, and then a multi-rounds coverage protocol will optimize  coverage and  lifetime performances in each subregion.
+The  proposed  protocol  combines  two efficient  techniques:  network
+leader election  and sensor activity scheduling,  where the challenges
+include how to select the  most efficient leader in each subregion and
+the best representative active nodes that will optimize the network lifetime
+while  taking the responsibility of covering the corresponding
+subregion. The network lifetime in each subregion is divided into
+rounds, each round consists  of four phases: (i) Information Exchange,
+(ii) Leader Election, (iii) an optimization-based Decision in order to
+select the  nodes remaining  active for  the  last phase,  and  (iv)
+Sensing.  The  simulations show the relevance  of the proposed DiLCO
+protocol in terms of lifetime, coverage ratio, active sensors ratio,
+energy saving,  energy consumption, execution time, and the number of
+stopped simulation runs due to network disconnection. Indeed, when
+dealing with large and dense wireless sensor networks, a distributed
+approach like the one we propose allows to reduce the difficulty of a
+single global optimization problem by partitioning it in many smaller
+problems, one per subregion, that can be solved more easily.
+
+In  future work, we plan  to study  and propose a coverage optimization protocol, which
+computes  all active sensor schedules in one time, using
+optimization  methods. The round  will still consist of 4 phases, but the
+  decision phase will compute the schedules for several sensing phases
+  which, aggregated together, define a kind of meta-sensing phase.
+The computation of all cover sets in one time is far more
+difficult, but will reduce the communication overhead.
+% use section* for acknowledgement
+%\section*{Acknowledgment}
+
+
+
+
+
+
+
+
+
+%% \linenumbers
+
+%% main text
+%\section{}
+%\label{}
+
+%% The Appendices part is started with the command \appendix;
+%% appendix sections are then done as normal sections
+%% \appendix
+
+%% \section{}
+%% \label{}
+
+%% If you have bibdatabase file and want bibtex to generate the
+%% bibitems, please use
+%%
+%%  \bibliographystyle{elsarticle-num} 
+%%  \bibliography{<your bibdatabase>}
+
+%% else use the following coding to input the bibitems directly in the
+%% TeX file.
+  \bibliographystyle{elsarticle-num} 
+  \bibliography{elsarticle-template-num}
+  
+\end{document}
+
+
+%%\bibitem{}
+
+%\end{thebibliography}
+%\end{document}
+\endinput
+%%
+%% End of file `elsarticle-template-num.tex'.
diff --git a/elsarticle.cls b/elsarticle.cls
new file mode 100644 (file)
index 0000000..1b15bce
--- /dev/null
@@ -0,0 +1,810 @@
+%%\r
+%% This is file `elsarticle.cls',\r
+%% generated with the docstrip utility.\r
+%%\r
+%% The original source files were:\r
+%%\r
+%% elsarticle.dtx  (with options: `class')\r
+%% \r
+%% Copyright 2007, 2008, 2009 Elsevier Ltd\r
+%% \r
+%% This file is part of the 'Elsarticle Bundle'.\r
+%% -------------------------------------------\r
+%% \r
+%% It may be distributed under the conditions of the LaTeX Project Public\r
+%% License, either version 1.2 of this license or (at your option) any\r
+%% later version.  The latest version of this license is in\r
+%%    http://www.latex-project.org/lppl.txt\r
+%% and version 1.2 or later is part of all distributions of LaTeX\r
+%% version 1999/12/01 or later.\r
+%% \r
+%% The list of all files belonging to the 'Elsarticle Bundle' is\r
+%% given in the file `manifest.txt'.\r
+%% \r
+%%\r
+%% $Id: elsarticle.dtx 19 2009-12-17 07:07:52Z rishi $\r
+%%\r
+ \def\RCSfile{elsarticle}%\r
+ \def\RCSversion{1.20b}%\r
+ \def\RCSdate{2009/09/17}%\r
+ \def\@shortjnl{\relax}\r
+ \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd}\r
+ \def\@issn{000-0000}\r
+ \def\@shortjid{elsarticle}\r
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]\r
+\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]\r
+\def\ABD{\AtBeginDocument}\r
+\newif\ifpreprint \preprintfalse\r
+\newif\iflongmktitle \longmktitlefalse\r
+\r
+\def\@blstr{1}\r
+\newdimen\@bls\r
+\@bls=\baselineskip\r
+\r
+\def\@finalWarning{%\r
+  *****************************************************\MessageBreak\r
+   This document is typeset in the CRC style which\MessageBreak\r
+   is not suitable for submission.\MessageBreak\r
+   \MessageBreak\r
+   Please typeset again using 'preprint' option\MessageBreak\r
+   for creating PDF suitable for submission.\MessageBreak\r
+  ******************************************************\MessageBreak\r
+}\r
+\r
+\DeclareOption{preprint}{\global\preprinttrue\r
+  \gdef\@blstr{1}\xdef\jtype{0}%\r
+   \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}\r
+\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}\r
+\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}\r
+\DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}}\r
+\DeclareOption{number}{\xdef\@biboptions{numbers}}\r
+\DeclareOption{numbers}{\xdef\@biboptions{numbers}}\r
+\DeclareOption{longtitle}{\global\longmktitletrue}\r
+\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse\r
+  \ExecuteOptions{twocolumn}}\r
+  \def\jtype{0}\r
+\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}\r
+\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse\r
+  \AtBeginDocument{\@twocolumnfalse}}\r
+\DeclareOption{times}{\IfFileExists{txfonts.sty}%\r
+  {\AtEndOfClass{\RequirePackage{txfonts}%\r
+  \gdef\ttdefault{cmtt}%\r
+   \let\iint\relax\r
+  \let\iiint\relax\r
+  \let\iiiint\relax\r
+  \let\idotsint\relax\r
+  \let\openbox\relax}}{\RequirePackage{times}}}\r
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}\r
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}\r
+\ProcessOptions\r
+\LoadClass{article}\r
+\RequirePackage{graphicx}\r
+\let\comma\@empty\r
+\let\tnotesep\@empty\r
+\def\title#1{\gdef\@title{#1}}\r
+\let\@title\@empty\r
+\r
+\def\elsLabel#1{\@bsphack\protected@write\@auxout{}%\r
+         {\string\Newlabel{#1}{\@currentlabel}}\@esphack}\r
+\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}\r
+\r
+\def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%\r
+}\r
+\r
+\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%\r
+      \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}%\r
+      \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%\r
+}\r
+\let\@tnotemark\@empty\r
+\r
+\let\@tnotes\@empty\r
+\RequirePackage{pifont}\r
+\newcounter{tnote}\r
+\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%\r
+  \refstepcounter{tnote}\elsLabel{#1}%\r
+   \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%\r
+    \footnotetext{#2}}}\r
+\r
+\let\@nonumnotes\@empty\r
+\def\nonumnote#1{\g@addto@macro\@nonumnotes{%\r
+     \let\thefootnote\relax\footnotetext{#1}}}\r
+\r
+\newcounter{fnote}\r
+\def\fnmark[#1]{\let\comma\@empty\r
+    \def\@fnmark{\@for\@@fnmark:=#1\do{%\r
+    \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}%\r
+  \unskip\comma\fnotenum\let\comma,}}%\r
+}\r
+\r
+\let\@fnotes\@empty\let\@fnmark\@empty\r
+\def\fntext[#1]#2{\g@addto@macro\@fnotes{%\r
+     \refstepcounter{fnote}\elsLabel{#1}%\r
+   \def\thefootnote{\thefnote}%\r
+   \global\setcounter{footnote}{\thefnote}%\r
+   \footnotetext{#2}}}\r
+\r
+\def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}%\r
+    \unskip\textsuperscript{\sep\ifcase\cnotenum\or\r
+       $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}\r
+\r
+\let\@cormark\@empty\r
+\let\@cornotes\@empty\r
+\newcounter{cnote}\r
+\def\cortext[#1]#2{\g@addto@macro\@cornotes{%\r
+    \refstepcounter{cnote}\elsLabel{#1}%\r
+    \def\thefootnote{\ifcase\thecnote\or$\ast$\or\r
+    $\ast\ast$\fi}%\r
+    \footnotetext{#2}}}\r
+\r
+\let\@corref\@empty\r
+\def\corref#1{\edef\cnotenum{\elsRef{#1}}%\r
+    \edef\@corref{\ifcase\cnotenum\or\r
+         $\ast$\or$\ast\ast$\fi\hskip-1pt}}\r
+\r
+\def\fnref#1{\fnmark[#1]}\r
+\def\tnoteref#1{\tnotemark[#1]}\r
+\r
+\def\resetTitleCounters{\c@cnote=0\r
+   \c@fnote=0 \c@tnote=0 \c@footnote=0}\r
+\r
+\let\eadsep\@empty\r
+\let\@elseads\@empty\r
+\let\@elsuads\@empty\r
+\let\@cormark\@empty\r
+\def\hashchar{\expandafter\@gobble\string\~}\r
+\def\underscorechar{\expandafter\@gobble\string\_}\r
+\def\lbracechar{\expandafter\@gobble\string\{}\r
+\def\rbracechar{\expandafter\@gobble\string\}}\r
+\r
+\def\ead{\@ifnextchar[{\@uad}{\@ead}}\r
+\gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}%\r
+  \def\{{\string\lbracechar\space}%\r
+   \def~{\hashchar\space}%\r
+   \def\}{\string\rbracechar\space}%\r
+   \edef\tmp{\the\@eadauthor}\r
+   \immediate\write\@auxout{\string\emailauthor\r
+     {#1}{\expandafter\strip@prefix\meaning\tmp}}%\r
+  \egroup\r
+}\r
+\newcounter{ead}\r
+\gdef\emailauthor#1#2{\stepcounter{ead}%\r
+     \g@addto@macro\@elseads{\raggedright%\r
+      \let\corref\@gobble\r
+      \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%\r
+}\r
+\gdef\@uad[#1]#2{\bgroup\r
+  \def~{\string\hashchar\space}%\r
+  \def\_{\string\underscorechar\space}%\r
+   \edef\tmp{\the\@eadauthor}\r
+   \immediate\write\@auxout{\string\urlauthor\r
+     {#2}{\expandafter\strip@prefix\meaning\tmp}}%\r
+  \egroup\r
+}\r
+\def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%\r
+     \raggedright\eadsep\texttt{#1}\space(#2)%\r
+     \def\eadsep{\unskip,\space}}%\r
+}\r
+\r
+\def\elsauthors{}\r
+\def\pprinttitle{}\r
+\let\authorsep\@empty\r
+\let\sep\@empty\r
+\newcounter{author}\r
+\def\author{\@ifnextchar[{\@@author}{\@author}}\r
+\r
+\newtoks\@eadauthor\r
+\def\@@author[#1]#2{\g@addto@macro\elsauthors{%\r
+    \def\baselinestretch{1}%\r
+    \authorsep#2\unskip\textsuperscript{%#1%\r
+      \@for\@@affmark:=#1\do{%\r
+       \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}%\r
+     \unskip\sep\affnum\let\sep=,}%\r
+      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi\r
+      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi\r
+      }%\r
+    \def\authorsep{\unskip,\space}%\r
+    \global\let\sep\@empty\global\let\@corref\@empty\r
+    \global\let\@fnmark\@empty}%\r
+    \@eadauthor={#2}\r
+}\r
+\r
+\def\@author#1{\g@addto@macro\elsauthors{\normalsize%\r
+    \def\baselinestretch{1}%\r
+    \upshape\authorsep#1\unskip\textsuperscript{%\r
+      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi\r
+      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi\r
+      }%\r
+    \def\authorsep{\unskip,\space}%\r
+    \global\let\@fnmark\@empty\r
+    \global\let\@corref\@empty\r
+    \global\let\sep\@empty}%\r
+    \@eadauthor={#1}\r
+}\r
+\r
+\def\elsaddress{}\r
+\def\addsep{\par\vskip6pt}\r
+\def\address{\@ifnextchar[{\@@address}{\@address}}\r
+\r
+\def\@alph#1{%\r
+  \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or\r
+  l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or\r
+  y\or z%\r
+  \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or\r
+  ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or\r
+  av\or aw\or ax\or ay\or az%\r
+  \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or\r
+  bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or\r
+  bv\or bw\or bx\or by\or bz%\r
+  \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or\r
+  ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or\r
+  cv\or cw\or cx\or cy\or cz%\r
+  \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or\r
+  dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or\r
+  dv\or dw\or dx\or dy\or dz%\r
+  \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or\r
+  ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or\r
+  ev\or ew\or ex\or ey\or ez%\r
+  \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or\r
+  fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or\r
+  fv\or fw\or fx\or fy\or fz%\r
+  \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or\r
+  gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or\r
+  gv\or gw\or gx\or gy\or gz%\r
+  \else\@ctrerr\fi}\r
+\r
+\newcounter{affn}\r
+\renewcommand\theaffn{\alph{affn}}\r
+\r
+\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%\r
+    \def\baselinestretch{1}%\r
+     \refstepcounter{affn}\r
+     \xdef\@currentlabel{\theaffn}\r
+     \elsLabel{#1}%\r
+    \textsuperscript{\theaffn}#2\par}}\r
+\r
+\long\def\@address#1{\g@addto@macro\elsauthors{%\r
+    \def\baselinestretch{1}%\r
+    \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%\r
+    \def\authorsep{\par\vskip8pt}}}\r
+\r
+\newbox\absbox\r
+\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup\r
+  \hsize=\textwidth\def\baselinestretch{1}%\r
+  \noindent\unskip\textbf{Abstract}\r
+ \par\medskip\noindent\unskip\ignorespaces}\r
+ {\egroup}\r
+\r
+\newbox\keybox\r
+\def\keyword{%\r
+  \def\sep{\unskip, }%\r
+ \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}\r
+  \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%\r
+  \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%\r
+  \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%\r
+  \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth\r
+  \normalsize\normalfont\def\baselinestretch{1}\r
+  \parskip\z@\r
+  \noindent\textit{Keywords: }\r
+  \raggedright                         % Keywords are not justified.\r
+  \ignorespaces}\r
+\def\endkeyword{\par \egroup}\r
+\r
+\newdimen\Columnwidth\r
+\Columnwidth=\columnwidth\r
+\r
+\def\printFirstPageNotes{%\r
+  \iflongmktitle\r
+   \let\columnwidth=\textwidth\fi\r
+  \ifx\@tnotes\@empty\else\@tnotes\fi\r
+  \ifx\@nonumnotes\@empty\else\@nonumnotes\fi\r
+  \ifx\@cornotes\@empty\else\@cornotes\fi\r
+  \ifx\@elseads\@empty\relax\else\r
+   \let\thefootnote\relax\r
+   \footnotetext{\ifnum\theead=1\relax\r
+      \textit{Email address:\space}\else\r
+      \textit{Email addresses:\space}\fi\r
+     \@elseads}\fi\r
+  \ifx\@elsuads\@empty\relax\else\r
+   \let\thefootnote\relax\r
+   \footnotetext{\textit{URL:\space}%\r
+     \@elsuads}\fi\r
+  \ifx\@fnotes\@empty\else\@fnotes\fi\r
+  \iflongmktitle\if@twocolumn\r
+   \let\columnwidth=\Columnwidth\fi\fi\r
+}\r
+\r
+\long\def\pprintMaketitle{\clearpage\r
+  \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi\r
+  \resetTitleCounters\r
+  \def\baselinestretch{1}%\r
+  \printFirstPageNotes\r
+  \begin{center}%\r
+ \thispagestyle{pprintTitle}%\r
+   \def\baselinestretch{1}%\r
+    \Large\@title\par\vskip18pt\r
+    \normalsize\elsauthors\par\vskip10pt\r
+    \footnotesize\itshape\elsaddress\par\vskip36pt\r
+    \hrule\vskip12pt\r
+    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi\r
+    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi\r
+    \hrule\vskip12pt\r
+    \end{center}%\r
+  \gdef\thefootnote{\arabic{footnote}}%\r
+  }\r
+\r
+\def\printWarning{%\r
+     \mbox{}\par\vfill\par\bgroup\r
+     \fboxsep12pt\fboxrule1pt\r
+     \hspace*{.18\textwidth}\r
+     \fcolorbox{gray50}{gray10}{\box\warnbox}\r
+     \egroup\par\vfill\thispagestyle{empty}\r
+     \setcounter{page}{0}\r
+     \clearpage}\r
+\r
+\long\def\finalMaketitle{%\r
+  \resetTitleCounters\r
+  \def\baselinestretch{1}%\r
+   \MaketitleBox\r
+   \thispagestyle{pprintTitle}%\r
+  \gdef\thefootnote{\arabic{footnote}}%\r
+  }\r
+\r
+\long\def\MaketitleBox{%\r
+  \resetTitleCounters\r
+  \def\baselinestretch{1}%\r
+  \begin{center}%\r
+   \def\baselinestretch{1}%\r
+    \Large\@title\par\vskip18pt\r
+    \normalsize\elsauthors\par\vskip10pt\r
+    \footnotesize\itshape\elsaddress\par\vskip36pt\r
+    \hrule\vskip12pt\r
+    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi\r
+    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi\r
+    \hrule\vskip12pt\r
+    \end{center}%\r
+  }\r
+\r
+\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}\r
+\newdimen\space@left\r
+\def\alarm#1{\typeout{******************************}%\r
+             \typeout{#1}%\r
+             \typeout{******************************}%\r
+}\r
+\long\def\getSpaceLeft{%\global\@twocolumnfalse%\r
+   \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%\r
+   \global\setbox1=\vbox{\hsize=\textwidth\r
+    \let\footnotetext\FNtext\r
+    \printFirstPageNotes}%\r
+    \xdef\noteheight{\the\ht1}%\r
+    \xdef\titleheight{\the\ht0}%\r
+    \@tempdima=\vsize\r
+    \advance\@tempdima-\noteheight\r
+    \advance\@tempdima-1\baselineskip\r
+}\r
+\r
+  \skip\footins=24pt\r
+\r
+\newbox\els@boxa\r
+\newbox\els@boxb\r
+\r
+\ifpreprint\r
+  \def\maketitle{\pprintMaketitle}\r
+  \else\r
+   \ifnum\jtype=1\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \box0%\r
+      \else\r
+       \finalMaketitle\printFirstPageNotes\r
+      \fi\r
+    \gdef\thefootnote{\arabic{footnote}}}%\r
+  \else\r
+ \ifnum\jtype=5\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \twocolumn[\box0]%\printFirstPageNotes\r
+      \else\r
+       \twocolumn[\finalMaketitle]\printFirstPageNotes\r
+     \fi\r
+     \gdef\thefootnote{\arabic{footnote}}}\r
+  \else\r
+  \if@twocolumn\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \twocolumn[\box0]%\r
+      \else\r
+       \twocolumn[\finalMaketitle]\printFirstPageNotes\r
+      \fi\r
+     \gdef\thefootnote{\arabic{footnote}}}%\r
+   \else\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \box0%\r
+     \else\r
+       \finalMaketitle\printFirstPageNotes\r
+      \fi\r
+    \gdef\thefootnote{\arabic{footnote}}}%\r
+   \fi\r
+  \fi\r
+ \fi\r
+\fi\r
+\def\ps@pprintTitle{%\r
+     \let\@oddhead\@empty\r
+     \let\@evenhead\@empty\r
+     \def\@oddfoot{\footnotesize\itshape\r
+       Preprint submitted to \ifx\@journal\@empty Elsevier\r
+       \else\@journal\fi\hfill\today}%\r
+     \let\@evenfoot\@oddfoot}\r
+\def\@seccntDot{.}\r
+\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}\r
+\r
+\renewcommand\section{\@startsection {section}{1}{\z@}%\r
+           {18\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {9\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {\normalsize\bfseries\boldmath}}\r
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%\r
+           {12\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {3\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {\normalfont\normalsize\itshape}}\r
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%\r
+           {12\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {\p@}%\r
+           {\normalfont\normalsize\itshape}}\r
+\r
+\def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}\r
+\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}\r
+\def\els@bparagraph#1{\elsparagraph*{#1.}}\r
+\r
+\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%\r
+           {10\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {-6\p@}%\r
+           {\normalfont\itshape}}\r
+\newdimen\leftMargin\r
+\leftMargin=2em\r
+\newtoks\@enLab  %\newtoks\@enfont\r
+\def\@enQmark{?}\r
+\def\@enLabel#1#2{%\r
+  \edef\@enThe{\noexpand#1{\@enumctr}}%\r
+  \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%\r
+  \@enloop}\r
+\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }\r
+\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}\r
+\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}\r
+\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}\r
+\def\@enloop{\futurelet\@entemp\@enloop@}\r
+\def\@enloop@{%\r
+  \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else\r
+  \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else\r
+  \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else\r
+  \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else\r
+  \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else\r
+  \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else\r
+  \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else\r
+  \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else\r
+                         \let\@tempa\@enOther\r
+             \fi\fi\fi\fi\fi\fi\fi\fi\r
+  \@tempa}\r
+\newlength{\@sep} \newlength{\@@sep}\r
+\setlength{\@sep}{.5\baselineskip plus.2\baselineskip\r
+            minus.2\baselineskip}\r
+\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip\r
+            minus.05\baselineskip}\r
+\providecommand{\sfbc}{\rmfamily\upshape}\r
+\providecommand{\sfn}{\rmfamily\upshape}\r
+\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}\r
+\def\enumerate{%\r
+   \ifnum \@enumdepth >3 \@toodeep\else\r
+      \advance\@enumdepth \@ne\r
+      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi\r
+   \@ifnextchar[{\@@enum@}{\@enum@}}\r
+\def\@@enum@[#1]{%\r
+  \@enLab{}\let\@enThe\@enQmark\r
+  \@enloop#1\@enum@\r
+  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%\r
+   ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi\r
+  \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%\r
+  \expandafter\let\csname the\@enumctr\endcsname\@enThe\r
+  \csname c@\@enumctr\endcsname7\r
+  \expandafter\settowidth\r
+            \csname leftmargin\romannumeral\@enumdepth\endcsname\r
+            {\the\@enLab\hskip\labelsep}%\r
+  \@enum@}\r
+\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%\r
+           {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%\r
+     \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else\r
+           \setlength{\topsep}{\@sep}\fi\r
+     \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%\r
+      \else \setlength{\itemsep}{\@@sep}\fi\r
+     %\setlength\leftmargin{\leftMargin}%%%{1.8em}\r
+     \setlength{\parsep}{0pt plus1pt minus1pt}%\r
+     \setlength{\parskip}{0pt plus1pt minus1pt}\r
+                   }}\r
+\r
+\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else\r
+           \addvspace{\@sep}\fi \endlist}\r
+\r
+\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}\r
+\r
+\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}\r
+\r
+\def\@Itemize[#1]{\def\next{#1}%\r
+  \ifnum \@itemdepth >\thr@@\@toodeep\else\r
+   \advance\@itemdepth\@ne\r
+  \ifx\next\@empty\else\expandafter\def\csname\r
+   labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%\r
+  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%\r
+  \expandafter\list\csname\@itemitem\endcsname\r
+  {\def\makelabel##1{\hss\llap{##1}}}%\r
+ \fi}\r
+\def\newdefinition#1{%\r
+  \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]\r
+\def\@ndfn#1#2{%\r
+  \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}\r
+\def\@xndfn#1#2[#3]{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}\@newctr{#1}[#3]%\r
+     \expandafter\xdef\csname the#1\endcsname{%\r
+       \expandafter\noexpand\csname the#3\endcsname \@dfncountersep\r
+          \@dfncounter{#1}}%\r
+     \global\@namedef{#1}{\@dfn{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@enddefinition}}}\r
+\def\@yndfn#1#2{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}%\r
+     \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%\r
+     \global\@namedef{#1}{\@dfn{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@enddefinition}}}\r
+\def\@odfn#1[#2]#3{%\r
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%\r
+    {\expandafter\@ifdefinable\csname #1\endcsname\r
+    {\global\@namedef{the#1}{\@nameuse{the#2}}\r
+  \global\@namedef{#1}{\@dfn{#2}{#3}}%\r
+  \global\@namedef{end#1}{\@enddefinition}}}}\r
+\def\@dfn#1#2{%\r
+  \refstepcounter{#1}%\r
+  \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}\r
+\def\@xdfn#1#2{%\r
+  \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}\r
+\def\@ydfn#1#2[#3]{%\r
+  \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}\r
+\def\@dfncounter#1{\noexpand\arabic{#1}}\r
+\def\@dfncountersep{.}\r
+\def\@begindefinition#1#2{\trivlist\r
+   \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}\r
+\def\@opargbegindefinition#1#2#3{\trivlist\r
+      \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}\r
+\def\@enddefinition{\endtrivlist}\r
+\r
+\def\@begintheorem#1#2{\trivlist\r
+  \let\baselinestretch\@blstr\r
+   \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}\r
+\def\@opargbegintheorem#1#2#3{\trivlist\r
+  \let\baselinestretch\@blstr\r
+      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}\r
+\r
+\def\newproof#1{%\r
+  \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}\r
+\def\@nprf#1#2{%\r
+  \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}\r
+\def\@xnprf#1#2[#3]{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}\@newctr{#1}[#3]%\r
+     \expandafter\xdef\csname the#1\endcsname{%\r
+       \expandafter\noexpand\csname the#3\endcsname \@prfcountersep\r
+          \@prfcounter{#1}}%\r
+     \global\@namedef{#1}{\@prf{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@endproof}}}\r
+\def\@ynprf#1#2{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}%\r
+     \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%\r
+     \global\@namedef{#1}{\@prf{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@endproof}}}\r
+\def\@oprf#1[#2]#3{%\r
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%\r
+    {\expandafter\@ifdefinable\csname #1\endcsname\r
+    {\global\@namedef{the#1}{\@nameuse{the#2}}%\r
+  \global\@namedef{#1}{\@prf{#2}{#3}}%\r
+  \global\@namedef{end#1}{\@endproof}}}}\r
+\def\@prf#1#2{%\r
+  \refstepcounter{#1}%\r
+  \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}\r
+\def\@xprf#1#2{%\r
+  \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}\r
+\def\@yprf#1#2[#3]{%\r
+  \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}\r
+\def\@prfcounter#1{\noexpand\arabic{#1}}\r
+\def\@prfcountersep{.}\r
+\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr\r
+   \item[\hskip \labelsep{\scshape #1.}]\rmfamily}\r
+\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr\r
+      \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}\r
+\def\@endproof{\endtrivlist}\r
+\newcommand*{\qed}{\hbox{}\hfill$\Box$}\r
+\r
+\@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}\r
+\InputIfFileExists{\jobname.spl}{}{}\r
+\RequirePackage[\@biboptions]{natbib}\r
+\r
+\newwrite\splwrite\r
+\immediate\openout\splwrite=\jobname.spl\r
+\def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%\r
+   \string\g@addto@macro\string\@biboptions{%\r
+    ,\expandafter\strip@prefix\meaning\next}}}\r
+\r
+\let\baselinestretch=\@blstr\r
+\r
+\ifnum\jtype=1\r
+ \RequirePackage{geometry}\r
+ \geometry{twoside,\r
+  paperwidth=210mm,\r
+  paperheight=297mm,\r
+  textheight=562pt,\r
+  textwidth=384pt,\r
+  centering,\r
+  headheight=50pt,\r
+  headsep=12pt,\r
+  footskip=12pt,\r
+  footnotesep=24pt plus 2pt minus 12pt,\r
+ }\r
+ \global\let\bibfont=\footnotesize\r
+ \global\bibsep=0pt\r
+ \if@twocolumn\global\@twocolumnfalse\fi\r
+\else\ifnum\jtype=3\r
+ \RequirePackage{geometry}\r
+ \geometry{twoside,\r
+  paperwidth=210mm,\r
+  paperheight=297mm,\r
+  textheight=622pt,\r
+  textwidth=468pt,\r
+  centering,\r
+  headheight=50pt,\r
+  headsep=12pt,\r
+  footskip=18pt,\r
+  footnotesep=24pt plus 2pt minus 12pt,\r
+  columnsep=2pc\r
+ }\r
+ \global\let\bibfont=\footnotesize\r
+ \global\bibsep=0pt\r
+ \if@twocolumn\input{fleqn.clo}\fi\r
+\else\ifnum\jtype=5\r
+ \RequirePackage{geometry}\r
+ \geometry{twoside,\r
+  paperwidth=210mm,\r
+  paperheight=297mm,\r
+  textheight=682pt,\r
+  textwidth=522pt,\r
+  centering,\r
+ headheight=50pt,\r
+  headsep=12pt,\r
+  footskip=18pt,\r
+  footnotesep=24pt plus 2pt minus 12pt,\r
+  columnsep=18pt\r
+ }%\r
+ \global\let\bibfont=\footnotesize\r
+ \global\bibsep=0pt\r
+ \input{fleqn.clo}\r
+ \global\@twocolumntrue\r
+%%\r
+%% End of option '5p'\r
+%%\r
+\fi\fi\fi\r
+\def\journal#1{\gdef\@journal{#1}}\r
+ \let\@journal\@empty\r
+\newenvironment{frontmatter}{}{\maketitle}\r
+\r
+\long\def\@makecaption#1#2{%\r
+  \vskip\abovecaptionskip\footnotesize\r
+  \sbox\@tempboxa{#1: #2}%\r
+  \ifdim \wd\@tempboxa >\hsize\r
+    #1: #2\par\r
+  \else\r
+    \global \@minipagefalse\r
+    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%\r
+  \fi\r
+  \vskip\belowcaptionskip}\r
+\r
+\AtBeginDocument{\@ifpackageloaded{hyperref}\r
+  {\def\@linkcolor{blue}\r
+   \def\@anchorcolor{blue}\r
+   \def\@citecolor{blue}\r
+   \def\@filecolor{blue}\r
+   \def\@urlcolor{blue}\r
+   \def\@menucolor{blue}\r
+   \def\@pagecolor{blue}\r
+\begingroup\r
+  \@makeother\`%\r
+  \@makeother\=%\r
+  \edef\x{%\r
+    \edef\noexpand\x{%\r
+      \endgroup\r
+      \noexpand\toks@{%\r
+        \catcode 96=\noexpand\the\catcode`\noexpand\`\relax\r
+        \catcode 61=\noexpand\the\catcode`\noexpand\=\relax\r
+      }%\r
+    }%\r
+    \noexpand\x\r
+  }%\r
+\x\r
+\@makeother\`\r
+\@makeother\=\r
+}{}}\r
+%%\r
+\def\appendixname{Appendix }\r
+\renewcommand\appendix{\par\r
+  \setcounter{section}{0}%\r
+  \setcounter{subsection}{0}%\r
+  \setcounter{equation}{0}\r
+  \gdef\thefigure{\@Alph\c@section.\arabic{figure}}%\r
+  \gdef\thetable{\@Alph\c@section.\arabic{table}}%\r
+  \gdef\thesection{\appendixname~\@Alph\c@section}%\r
+  \@addtoreset{equation}{section}%\r
+  \gdef\theequation{\@Alph\c@section.\arabic{equation}}%\r
+  \addtocontents{toc}{\string\let\string\numberline\string\tmptocnumberline}{}{}\r
+}\r
+\r
+%%%% \numberline width calculation for appendix.\r
+\newdimen\appnamewidth\r
+\def\tmptocnumberline#1{%\r
+   \setbox0=\hbox{\appendixname}\r
+   \appnamewidth=\wd0\r
+   \addtolength\appnamewidth{2.5pc}\r
+   \hb@xt@\appnamewidth{#1\hfill}\r
+}\r
+\r
+%% Added for work with amsrefs.sty\r
+\r
+\@ifpackageloaded{amsrefs}%\r
+  {}\r
+  {%\let\bibsection\relax%\r
+  \AtBeginDocument{\def\cites@b#1#2,#3{%\r
+    \begingroup[%\r
+        \toks@{\InnerCite{#2}#1}%\r
+        \ifx\@empty#3\@xp\@gobble\fi\r
+        \cites@c#3%\r
+}}}\r
+%%\r
+%% Added for avoiding clash with cleveref.sty\r
+\r
+\@ifpackageloaded{cleveref}%\r
+ {}\r
+ {\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%\r
+    \refstepcounter{tnote}%\r
+    \immediate\write\@auxout{\string\Newlabel{#1}{\thetnote}}\r
+    \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%\r
+    \footnotetext{#2}}}\r
+%%%\r
+  \def\fntext[#1]#2{\g@addto@macro\@fnotes{%\r
+    \refstepcounter{fnote}%\r
+    \immediate\write\@auxout{\string\Newlabel{#1}{\thefnote}}\r
+    \def\thefootnote{\thefnote}%\r
+    \global\setcounter{footnote}{\thefnote}%\r
+    \footnotetext{#2}}}\r
+%%%\r
+  \def\cortext[#1]#2{\g@addto@macro\@cornotes{%\r
+    \refstepcounter{cnote}%\r
+    \immediate\write\@auxout{\string\Newlabel{#1}{\thecnote}}\r
+    \def\thefootnote{\ifcase\thecnote\or$\ast$\or\r
+    $\ast\ast$\fi}%\r
+    \footnotetext{#2}}}\r
+}\r
+\endinput\r
+%%\r
+%% End of file `elsarticle.cls'.\r
+\r
diff --git a/elsarticle.dtx b/elsarticle.dtx
new file mode 100644 (file)
index 0000000..3ea78d9
--- /dev/null
@@ -0,0 +1,882 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2007, 2008, 2009 by Elsevier Ltd
+% -----------------------------------------------
+% 
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% and version 1.2 or later is part of all distributions of LaTeX 
+% version 1999/12/01 or later.
+%
+% \fi
+% \CheckSum{2196}
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\EnableCrossrefs         
+\CodelineIndex
+\RecordChanges
+\usepackage{comment}
+\begin{document}
+  \DocInput{elsarticle.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+%
+% \changes{v1.1}{2008/09/25}{Initial version}
+%
+%
+% \changes{v1.2}{2009/09/17}{Documentation, templates, and *.bst
+%    has been seperated from this .dtx. Incompatibility problems
+%    with amsref.sty, fncylab.sty have been fixed. Some bugs related
+%    to author/affiliation part have been fixed.}
+%
+% \GetFileInfo{elsarticle.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% 
+%
+% \title{The \textsf{elsarticle.cls} -- Implimentation}
+% \author{Elsevier Ltd}
+%
+% \maketitle
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+%    \begin{macrocode}
+%<*class>
+%% 
+%% $Id: elsarticle.cls,v 1.20 2008-10-13 04:24:12 cvr Exp $
+%%
+ \def\RCSfile{elsarticle}%
+ \def\RCSversion{1.2.0}%
+ \def\RCSdate{2009/09/17}%
+ \def\@shortjnl{\relax}
+ \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd}
+ \def\@issn{000-0000}
+ \def\@shortjid{elsarticle}
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]
+\def\ABD{\AtBeginDocument}
+\newif\ifpreprint \preprintfalse
+\newif\iflongmktitle \longmktitlefalse
+
+\def\@blstr{1}
+\newdimen\@bls
+\@bls=\baselineskip
+
+\def\@finalWarning{%
+  *****************************************************\MessageBreak
+   This document is typeset in the CRC style which\MessageBreak
+   is not suitable for submission.\MessageBreak
+   \MessageBreak
+   Please typeset again using 'preprint' option\MessageBreak
+   for creating PDF suitable for submission.\MessageBreak
+  ******************************************************\MessageBreak
+}
+
+\DeclareOption{preprint}{\global\preprinttrue
+  \gdef\@blstr{1}\xdef\jtype{0}%
+   \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}
+\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}
+\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}
+\DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}}
+\DeclareOption{number}{\xdef\@biboptions{numbers}}
+\DeclareOption{numbers}{\xdef\@biboptions{numbers}}
+\DeclareOption{longtitle}{\global\longmktitletrue}
+\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse
+  \ExecuteOptions{twocolumn}}
+  \def\jtype{0}
+\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}
+\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse
+  \AtBeginDocument{\@twocolumnfalse}}
+\DeclareOption{times}{\IfFileExists{txfonts.sty}%
+  {\AtEndOfClass{\RequirePackage{txfonts}%
+  \gdef\ttdefault{cmtt}%
+   \let\iint\relax
+  \let\iiint\relax
+  \let\iiiint\relax
+  \let\idotsint\relax
+  \let\openbox\relax}}{\RequirePackage{times}}}
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions
+\LoadClass{article}
+\RequirePackage{graphicx}
+%    \end{macrocode}
+% 
+% \section{Preamble}
+%
+%    \begin{macrocode}
+\let\comma\@empty
+\let\tnotesep\@empty
+\def\title#1{\gdef\@title{#1}}
+\let\@title\@empty
+
+\def\elsLabel#1{\@bsphack\protected@write\@auxout{}%
+         {\string\Newlabel{#1}{\@currentlabel}}\@esphack}
+\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}
+
+\def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%
+}
+
+\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%
+      \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}%
+      \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%
+}
+\let\@tnotemark\@empty
+
+\let\@tnotes\@empty
+\RequirePackage{pifont}
+\newcounter{tnote}
+\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%
+  \refstepcounter{tnote}\elsLabel{#1}%
+   \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
+    \footnotetext{#2}}}
+
+\let\@nonumnotes\@empty
+\def\nonumnote#1{\g@addto@macro\@nonumnotes{%
+     \let\thefootnote\relax\footnotetext{#1}}}
+
+\newcounter{fnote}
+\def\fnmark[#1]{\let\comma\@empty
+    \def\@fnmark{\@for\@@fnmark:=#1\do{%
+    \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}%
+  \unskip\comma\fnotenum\let\comma,}}%
+}
+
+\let\@fnotes\@empty\let\@fnmark\@empty
+\def\fntext[#1]#2{\g@addto@macro\@fnotes{%
+     \refstepcounter{fnote}\elsLabel{#1}%
+   \def\thefootnote{\thefnote}%
+   \global\setcounter{footnote}{\thefnote}%
+   \footnotetext{#2}}}
+
+\def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}%
+    \unskip\textsuperscript{\sep\ifcase\cnotenum\or
+       $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}
+
+\let\@cormark\@empty
+\let\@cornotes\@empty
+\newcounter{cnote}
+\def\cortext[#1]#2{\g@addto@macro\@cornotes{%
+    \refstepcounter{cnote}\elsLabel{#1}%
+    \def\thefootnote{\ifcase\thecnote\or$\ast$\or
+    $\ast\ast$\fi}%
+    \footnotetext{#2}}}
+
+\let\@corref\@empty
+%\def\corref#1{\cormark[#1]}
+\def\corref#1{\edef\cnotenum{\elsRef{#1}}%
+    \edef\@corref{\ifcase\cnotenum\or
+         $\ast$\or$\ast\ast$\fi\hskip-1pt}}
+
+\def\fnref#1{\fnmark[#1]}
+\def\tnoteref#1{\tnotemark[#1]}
+
+\def\resetTitleCounters{\c@cnote=0
+   \c@fnote=0 \c@tnote=0 \c@footnote=0}
+
+\let\eadsep\@empty
+\let\@elseads\@empty
+\let\@elsuads\@empty
+\let\@cormark\@empty
+\def\hashchar{\expandafter\@gobble\string\~}
+\def\underscorechar{\expandafter\@gobble\string\_}
+\def\lbracechar{\expandafter\@gobble\string\{}
+\def\rbracechar{\expandafter\@gobble\string\}}
+
+\def\ead{\@ifnextchar[{\@uad}{\@ead}}
+\gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}%
+  \def\{{\string\lbracechar\space}%
+   \def~{\hashchar\space}%
+   \def\}{\string\rbracechar\space}%
+   \edef\tmp{\the\@eadauthor}
+   \immediate\write\@auxout{\string\emailauthor
+     {#1}{\expandafter\strip@prefix\meaning\tmp}}%
+  \egroup
+}
+\newcounter{ead}
+\gdef\emailauthor#1#2{\stepcounter{ead}%
+     \g@addto@macro\@elseads{\raggedright%
+      \let\corref\@gobble
+      \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%
+}
+\gdef\@uad[#1]#2{\bgroup
+  \def~{\string\hashchar\space}%
+  \def\_{\string\underscorechar\space}%
+   \edef\tmp{\the\@eadauthor}
+   \immediate\write\@auxout{\string\urlauthor
+     {#2}{\expandafter\strip@prefix\meaning\tmp}}%
+  \egroup
+}
+\def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%
+     \raggedright\eadsep\texttt{#1}\space(#2)%
+     \def\eadsep{\unskip,\space}}%
+}
+
+\def\elsauthors{}
+\def\pprinttitle{}
+\let\authorsep\@empty
+\let\sep\@empty
+\newcounter{author}
+\def\author{\@ifnextchar[{\@@author}{\@author}}
+
+\newtoks\@eadauthor
+\def\@@author[#1]#2{\g@addto@macro\elsauthors{%
+    \def\baselinestretch{1}%
+    \authorsep#2\unskip\textsuperscript{%#1%
+      \@for\@@affmark:=#1\do{%
+       \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}%
+     \unskip\sep\affnum\let\sep=,}%
+      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
+      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
+      }%
+    \def\authorsep{\unskip,\space}%
+    \global\let\sep\@empty\global\let\@corref\@empty
+    \global\let\@fnmark\@empty}%
+    \@eadauthor={#2}
+}
+
+\def\@author#1{\g@addto@macro\elsauthors{\normalsize%
+    \def\baselinestretch{1}%
+    \upshape\authorsep#1\unskip\textsuperscript{%
+      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
+      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
+      }%
+    \def\authorsep{\unskip,\space}%
+    \global\let\@fnmark\@empty
+    \global\let\sep\@empty}%
+    \@eadauthor={#1}
+}
+
+\def\elsaddress{}
+\def\addsep{\par\vskip6pt}
+\def\address{\@ifnextchar[{\@@address}{\@address}}
+
+\def\@alph#1{%
+  \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or
+  l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
+  y\or z%
+  \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or
+  ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or
+  av\or aw\or ax\or ay\or az%
+  \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or
+  bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or
+  bv\or bw\or bx\or by\or bz%
+  \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or
+  ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or
+  cv\or cw\or cx\or cy\or cz%
+  \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or
+  dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or
+  dv\or dw\or dx\or dy\or dz%
+  \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or
+  ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or
+  ev\or ew\or ex\or ey\or ez%
+  \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or
+  fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or
+  fv\or fw\or fx\or fy\or fz%
+  \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or
+  gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or
+  gv\or gw\or gx\or gy\or gz%
+  \else\@ctrerr\fi}
+
+\newcounter{affn}
+\renewcommand\theaffn{\alph{affn}}
+
+\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%
+    \def\baselinestretch{1}%
+     \refstepcounter{affn}
+     \xdef\@currentlabel{\theaffn}
+     \elsLabel{#1}%
+    \textsuperscript{\theaffn}#2\par}}
+
+\long\def\@address#1{\g@addto@macro\elsauthors{%
+    \def\baselinestretch{1}%
+    \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%
+    \def\authorsep{\par\vskip8pt}}}
+
+\newbox\absbox
+\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup
+  \hsize=\textwidth\def\baselinestretch{1}%
+  \noindent\unskip\textbf{Abstract}
+ \par\medskip\noindent\unskip\ignorespaces}
+ {\egroup}
+
+\newbox\keybox
+\def\keyword{%
+  \def\sep{\unskip, }%
+ \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}
+  \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%
+  \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%
+  \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%
+  \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth
+  \normalsize\normalfont\def\baselinestretch{1}
+  \parskip\z@
+  \noindent\textit{Keywords: }
+  \raggedright                         % Keywords are not justified.
+  \ignorespaces}
+\def\endkeyword{\par \egroup}
+
+\newdimen\Columnwidth
+\Columnwidth=\columnwidth
+
+\def\printFirstPageNotes{%
+  \iflongmktitle
+   \let\columnwidth=\textwidth\fi
+  \ifx\@tnotes\@empty\else\@tnotes\fi
+  \ifx\@nonumnotes\@empty\else\@nonumnotes\fi
+  \ifx\@cornotes\@empty\else\@cornotes\fi
+  \ifx\@elseads\@empty\relax\else
+   \let\thefootnote\relax
+   \footnotetext{\ifnum\theead=1\relax
+      \textit{Email address:\space}\else
+      \textit{Email addresses:\space}\fi
+     \@elseads}\fi
+  \ifx\@elsuads\@empty\relax\else
+   \let\thefootnote\relax
+   \footnotetext{\textit{URL:\space}%
+     \@elsuads}\fi
+  \ifx\@fnotes\@empty\else\@fnotes\fi
+  \iflongmktitle\if@twocolumn
+   \let\columnwidth=\Columnwidth\fi\fi
+}
+
+\long\def\pprintMaketitle{\clearpage
+  \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi
+  \resetTitleCounters
+  \def\baselinestretch{1}%
+  \printFirstPageNotes
+  \begin{center}%
+ \thispagestyle{pprintTitle}%
+   \def\baselinestretch{1}%
+    \Large\@title\par\vskip18pt
+    \normalsize\elsauthors\par\vskip10pt
+    \footnotesize\itshape\elsaddress\par\vskip36pt
+    \hrule\vskip12pt
+    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
+    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
+    \hrule\vskip12pt
+    \end{center}%
+  \gdef\thefootnote{\arabic{footnote}}%
+  }
+
+\def\printWarning{%
+     \mbox{}\par\vfill\par\bgroup
+     \fboxsep12pt\fboxrule1pt
+     \hspace*{.18\textwidth}
+     \fcolorbox{gray50}{gray10}{\box\warnbox}
+     \egroup\par\vfill\thispagestyle{empty}
+     \setcounter{page}{0}
+     \clearpage}
+
+\long\def\finalMaketitle{%
+  \resetTitleCounters
+  \def\baselinestretch{1}%
+   \MaketitleBox
+   \thispagestyle{pprintTitle}%
+  \gdef\thefootnote{\arabic{footnote}}%
+  }
+
+\long\def\MaketitleBox{%
+  \resetTitleCounters
+  \def\baselinestretch{1}%
+  \begin{center}%
+   \def\baselinestretch{1}%
+    \Large\@title\par\vskip18pt
+    \normalsize\elsauthors\par\vskip10pt
+    \footnotesize\itshape\elsaddress\par\vskip36pt
+    \hrule\vskip12pt
+    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
+    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
+    \hrule\vskip12pt
+    \end{center}%
+  }
+
+\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}
+\newdimen\space@left
+\def\alarm#1{\typeout{******************************}%
+             \typeout{#1}%
+             \typeout{******************************}%
+}
+\long\def\getSpaceLeft{%\global\@twocolumnfalse%
+   \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%
+   \global\setbox1=\vbox{\hsize=\textwidth
+    \let\footnotetext\FNtext
+    \printFirstPageNotes}%
+    \xdef\noteheight{\the\ht1}%
+    \xdef\titleheight{\the\ht0}%
+    \@tempdima=\vsize
+    \advance\@tempdima-\noteheight
+    \advance\@tempdima-1\baselineskip
+}
+
+  \skip\footins=24pt
+
+\newbox\els@boxa
+\newbox\els@boxb
+
+\ifpreprint
+  \def\maketitle{\pprintMaketitle}
+  \else
+   \ifnum\jtype=1
+    \def\maketitle{%
+      \iflongmktitle\getSpaceLeft
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima
+       \box\els@boxa\par\resetTitleCounters
+       \thispagestyle{pprintTitle}%
+       \printFirstPageNotes
+       \box0%
+      \else
+       \finalMaketitle\printFirstPageNotes
+      \fi
+    \gdef\thefootnote{\arabic{footnote}}}%
+  \else
+ \ifnum\jtype=5
+    \def\maketitle{%
+      \iflongmktitle\getSpaceLeft
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima
+       \box\els@boxa\par\resetTitleCounters
+       \thispagestyle{pprintTitle}%
+       \printFirstPageNotes
+       \twocolumn[\box0]%\printFirstPageNotes
+      \else
+       \twocolumn[\finalMaketitle]\printFirstPageNotes
+     \fi
+     \gdef\thefootnote{\arabic{footnote}}}
+  \else
+  \if@twocolumn
+    \def\maketitle{%
+      \iflongmktitle\getSpaceLeft
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima
+       \box\els@boxa\par\resetTitleCounters
+       \thispagestyle{pprintTitle}%
+       \printFirstPageNotes
+       \twocolumn[\box0]%
+      \else
+       \twocolumn[\finalMaketitle]\printFirstPageNotes
+      \fi
+     \gdef\thefootnote{\arabic{footnote}}}%
+   \else
+    \def\maketitle{%
+      \iflongmktitle\getSpaceLeft
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima
+       \box\els@boxa\par\resetTitleCounters
+       \thispagestyle{pprintTitle}%
+       \printFirstPageNotes
+       \box0%
+     \else
+       \finalMaketitle\printFirstPageNotes
+      \fi
+    \gdef\thefootnote{\arabic{footnote}}}%
+   \fi
+  \fi
+ \fi
+\fi
+%    \end{macrocode}
+%    
+%\section{Headers/footers}
+%
+%    \begin{macrocode}
+\def\ps@pprintTitle{%
+     \let\@oddhead\@empty
+     \let\@evenhead\@empty
+     \def\@oddfoot{\footnotesize\itshape
+       Preprint submitted to \ifx\@journal\@empty Elsevier
+       \else\@journal\fi\hfill\today}%
+     \let\@evenfoot\@oddfoot}
+%    \end{macrocode}
+%
+% \section{Section headings}
+%
+%    \begin{macrocode}
+\def\@seccntDot{.}
+\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}
+
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+           {18\p@ \@plus 6\p@ \@minus 3\p@}%
+           {9\p@ \@plus 6\p@ \@minus 3\p@}%
+           {\normalsize\bfseries\boldmath}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+           {12\p@ \@plus 6\p@ \@minus 3\p@}%
+           {3\p@ \@plus 6\p@ \@minus 3\p@}%
+           {\normalfont\normalsize\itshape}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+           {12\p@ \@plus 6\p@ \@minus 3\p@}%
+           {\p@}%
+           {\normalfont\normalsize\itshape}}
+
+\def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}
+\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
+\def\els@bparagraph#1{\elsparagraph*{#1.}}
+
+\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%
+           {10\p@ \@plus 6\p@ \@minus 3\p@}%
+           {-6\p@}%
+           {\normalfont\itshape}}
+%    \end{macrocode}
+%
+%\section{List environment}
+%
+%    \begin{macrocode}
+\newdimen\leftMargin
+\leftMargin=2em
+\newtoks\@enLab  %\newtoks\@enfont
+\def\@enQmark{?}
+\def\@enLabel#1#2{%
+  \edef\@enThe{\noexpand#1{\@enumctr}}%
+  \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%
+  \@enloop}
+\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }
+\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}
+\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}
+\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}
+\def\@enloop{\futurelet\@entemp\@enloop@}
+\def\@enloop@{%
+  \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else
+  \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else
+  \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else
+  \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else
+  \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else
+  \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else
+  \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else
+  \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else
+                         \let\@tempa\@enOther
+             \fi\fi\fi\fi\fi\fi\fi\fi
+  \@tempa}
+\newlength{\@sep} \newlength{\@@sep}
+\setlength{\@sep}{.5\baselineskip plus.2\baselineskip
+            minus.2\baselineskip}
+\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip
+            minus.05\baselineskip}
+\providecommand{\sfbc}{\rmfamily\upshape}
+\providecommand{\sfn}{\rmfamily\upshape}
+\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}
+\def\enumerate{%
+   \ifnum \@enumdepth >3 \@toodeep\else
+      \advance\@enumdepth \@ne
+      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi
+   \@ifnextchar[{\@@enum@}{\@enum@}}
+\def\@@enum@[#1]{%
+  \@enLab{}\let\@enThe\@enQmark
+  \@enloop#1\@enum@
+  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
+   ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
+  \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
+  \expandafter\let\csname the\@enumctr\endcsname\@enThe
+  \csname c@\@enumctr\endcsname7
+  \expandafter\settowidth
+            \csname leftmargin\romannumeral\@enumdepth\endcsname
+            {\the\@enLab\hskip\labelsep}%
+  \@enum@}
+\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%
+           {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%
+     \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else
+           \setlength{\topsep}{\@sep}\fi
+     \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%
+      \else \setlength{\itemsep}{\@@sep}\fi
+     %\setlength\leftmargin{\leftMargin}%%%{1.8em}
+     \setlength{\parsep}{0pt plus1pt minus1pt}%
+     \setlength{\parskip}{0pt plus1pt minus1pt}
+                   }}
+
+\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else
+           \addvspace{\@sep}\fi \endlist}
+
+\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}
+
+\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}
+
+\def\@Itemize[#1]{\def\next{#1}%
+  \ifnum \@itemdepth >\thr@@\@toodeep\else
+   \advance\@itemdepth\@ne
+  \ifx\next\@empty\else\expandafter\def\csname
+   labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%
+  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+  \expandafter\list\csname\@itemitem\endcsname
+  {\def\makelabel##1{\hss\llap{##1}}}%
+ \fi}
+%    \end{macrocode}
+%
+%\section{Theorem environment}
+%
+%    \begin{macrocode}
+\def\newdefinition#1{%
+  \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]
+\def\@ndfn#1#2{%
+  \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}
+\def\@xndfn#1#2[#3]{%
+  \expandafter\@ifdefinable\csname #1\endcsname
+    {\@definecounter{#1}\@newctr{#1}[#3]%
+     \expandafter\xdef\csname the#1\endcsname{%
+       \expandafter\noexpand\csname the#3\endcsname \@dfncountersep
+          \@dfncounter{#1}}%
+     \global\@namedef{#1}{\@dfn{#1}{#2}}%
+     \global\@namedef{end#1}{\@enddefinition}}}
+\def\@yndfn#1#2{%
+  \expandafter\@ifdefinable\csname #1\endcsname
+    {\@definecounter{#1}%
+     \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%
+     \global\@namedef{#1}{\@dfn{#1}{#2}}%
+     \global\@namedef{end#1}{\@enddefinition}}}
+\def\@odfn#1[#2]#3{%
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%
+    {\expandafter\@ifdefinable\csname #1\endcsname
+    {\global\@namedef{the#1}{\@nameuse{the#2}}
+  \global\@namedef{#1}{\@dfn{#2}{#3}}%
+  \global\@namedef{end#1}{\@enddefinition}}}}
+\def\@dfn#1#2{%
+  \refstepcounter{#1}%
+  \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}
+\def\@xdfn#1#2{%
+  \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}
+\def\@ydfn#1#2[#3]{%
+  \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
+\def\@dfncounter#1{\noexpand\arabic{#1}}
+\def\@dfncountersep{.}
+\def\@begindefinition#1#2{\trivlist
+   \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}
+\def\@opargbegindefinition#1#2#3{\trivlist
+      \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}
+\def\@enddefinition{\endtrivlist}
+
+\def\@begintheorem#1#2{\trivlist
+  \let\baselinestretch\@blstr
+   \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
+\def\@opargbegintheorem#1#2#3{\trivlist
+  \let\baselinestretch\@blstr
+      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}
+
+\def\newproof#1{%
+  \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}
+\def\@nprf#1#2{%
+  \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}
+\def\@xnprf#1#2[#3]{%
+  \expandafter\@ifdefinable\csname #1\endcsname
+    {\@definecounter{#1}\@newctr{#1}[#3]%
+     \expandafter\xdef\csname the#1\endcsname{%
+       \expandafter\noexpand\csname the#3\endcsname \@prfcountersep
+          \@prfcounter{#1}}%
+     \global\@namedef{#1}{\@prf{#1}{#2}}%
+     \global\@namedef{end#1}{\@endproof}}}
+\def\@ynprf#1#2{%
+  \expandafter\@ifdefinable\csname #1\endcsname
+    {\@definecounter{#1}%
+     \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%
+     \global\@namedef{#1}{\@prf{#1}{#2}}%
+     \global\@namedef{end#1}{\@endproof}}}
+\def\@oprf#1[#2]#3{%
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%
+    {\expandafter\@ifdefinable\csname #1\endcsname
+    {\global\@namedef{the#1}{\@nameuse{the#2}}%
+  \global\@namedef{#1}{\@prf{#2}{#3}}%
+  \global\@namedef{end#1}{\@endproof}}}}
+\def\@prf#1#2{%
+  \refstepcounter{#1}%
+  \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}
+\def\@xprf#1#2{%
+  \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
+\def\@yprf#1#2[#3]{%
+  \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
+\def\@prfcounter#1{\noexpand\arabic{#1}}
+\def\@prfcountersep{.}
+\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr
+   \item[\hskip \labelsep{\scshape #1.}]\rmfamily}
+\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr
+      \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}
+\def\@endproof{\endtrivlist}
+\newcommand*{\qed}{\hbox{}\hfill$\Box$}
+
+\@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}
+\InputIfFileExists{\jobname.spl}{}{}
+\RequirePackage[\@biboptions]{natbib}
+
+\newwrite\splwrite
+\immediate\openout\splwrite=\jobname.spl
+\def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%
+   \string\g@addto@macro\string\@biboptions{%
+    ,\expandafter\strip@prefix\meaning\next}}}
+
+\let\baselinestretch=\@blstr
+
+%    \end{macrocode}
+%
+%\section{Page dimensions and margins for final form}
+%
+%\subsection{Option 1p}
+%
+%    \begin{macrocode}
+\ifnum\jtype=1
+ \RequirePackage{geometry}
+ \geometry{twoside,
+  paperwidth=210mm,
+  paperheight=297mm,
+  textheight=562pt,
+  textwidth=384pt,
+  centering,
+  headheight=50pt,
+  headsep=12pt,
+  footskip=12pt,
+  footnotesep=24pt plus 2pt minus 12pt,
+ }
+ \global\let\bibfont=\footnotesize
+ \global\bibsep=0pt
+ \if@twocolumn\global\@twocolumnfalse\fi
+%
+%    \end{macrocode}
+%
+%\subsection{Option '3p'}
+%
+%    \begin{macrocode}
+\else\ifnum\jtype=3
+ \RequirePackage{geometry}
+ \geometry{twoside,
+  paperwidth=210mm,
+  paperheight=297mm,
+  textheight=622pt,
+  textwidth=468pt,
+  centering,
+  headheight=50pt,
+  headsep=12pt,
+  footskip=18pt,
+  footnotesep=24pt plus 2pt minus 12pt,
+  columnsep=2pc
+ }
+ \global\let\bibfont=\footnotesize
+ \global\bibsep=0pt
+ \if@twocolumn\input{fleqn.clo}\fi
+%    \end{macrocode}
+%
+%\subsection{Option '5p'}
+%
+%    \begin{macrocode}
+\else\ifnum\jtype=5
+ \RequirePackage{geometry}
+ \geometry{twoside,
+  paperwidth=210mm,
+  paperheight=297mm,
+  textheight=682pt,
+  textwidth=522pt,
+  centering,
+ headheight=50pt,
+  headsep=12pt,
+  footskip=18pt,
+  footnotesep=24pt plus 2pt minus 12pt,
+  columnsep=18pt
+ }%
+ \global\let\bibfont=\footnotesize
+ \global\bibsep=0pt
+ \input{fleqn.clo}
+ \global\@twocolumntrue
+%%
+%% End of option '5p'
+%%
+\fi\fi\fi
+%    \end{macrocode}
+%
+%\section{Other items}
+%
+%    \begin{macrocode}
+\def\journal#1{\gdef\@journal{#1}}
+ \let\@journal\@empty
+\newenvironment{frontmatter}{}{\maketitle}
+
+\long\def\@makecaption#1#2{%
+  \vskip\abovecaptionskip\footnotesize
+  \sbox\@tempboxa{#1: #2}%
+  \ifdim \wd\@tempboxa >\hsize
+    #1: #2\par
+  \else
+    \global \@minipagefalse
+    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+  \fi
+  \vskip\belowcaptionskip}
+
+\AtBeginDocument{\@ifpackageloaded{hyperref}
+  {\def\@linkcolor{blue}
+   \def\@anchorcolor{blue}
+   \def\@citecolor{blue}
+   \def\@filecolor{blue}
+   \def\@urlcolor{blue}
+   \def\@menucolor{blue}
+   \def\@pagecolor{blue}
+\begingroup
+  \@makeother\`%
+  \@makeother\=%
+  \edef\x{%
+    \edef\noexpand\x{%
+      \endgroup
+      \noexpand\toks@{%
+        \catcode 96=\noexpand\the\catcode`\noexpand\`\relax
+        \catcode 61=\noexpand\the\catcode`\noexpand\=\relax
+      }%
+    }%
+    \noexpand\x
+  }%
+\x
+\@makeother\`
+\@makeother\=
+}{}}
+%%
+\renewcommand\appendix{\par
+  \setcounter{section}{0}%
+  \setcounter{subsection}{0}%
+  \setcounter{equation}{0}
+  \gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
+  \gdef\thetable{\@Alph\c@section.\arabic{table}}%
+  \gdef\thesection{\appendixname\@Alph\c@section}%
+  \@addtoreset{equation}{section}%
+  \gdef\theequation{\@Alph\c@section.\arabic{equation}}%
+}
+\def\appendixname{Appendix }
+
+%% Added for work with amsrefs.sty
+
+\@ifpackageloaded{amsrefs}%
+  {}
+  {\let\bibsection\relax%
+  \AtBeginDocument{\def\cites@b#1#2,#3{%
+    \begingroup[%
+        \toks@{\InnerCite{#2}#1}%
+        \ifx\@empty#3\@xp\@gobble\fi
+        \cites@c#3%
+}}}
+%
+%%
+%</class>
+%
+%    \end{macrocode}
+% \Finale
+\endinput
+
+%%
+%% End of file 'elsarticle.dtx'
+%%
+
diff --git a/elsarticle.ins b/elsarticle.ins
new file mode 100644 (file)
index 0000000..b6c7481
--- /dev/null
@@ -0,0 +1,66 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%%
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%%
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file 'manifest.txt'.
+%%
+%%
+%%
+\input docstrip.tex
+%%\keepsilent
+
+\preamble
+
+Copyright 2007, 2008, 2009 Elsevier Ltd
+
+This file is part of the 'Elsarticle Bundle'.
+-------------------------------------------
+
+It may be distributed under the conditions of the LaTeX Project Public
+License, either version 1.2 of this license or (at your option) any
+later version.  The latest version of this license is in
+   http://www.latex-project.org/lppl.txt
+and version 1.2 or later is part of all distributions of LaTeX
+version 1999/12/01 or later.
+
+The list of all files belonging to the 'Elsarticle Bundle' is
+given in the file `manifest.txt'.
+
+\endpreamble
+
+\askforoverwritefalse
+
+\generate{\file{elsarticle.cls}{\from{elsarticle.dtx}{class}}}
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{*                                                           *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX:                    *}
+\Msg{*                                                           *}
+\Msg{*     elsarticle.cls                                        *}
+\Msg{*         and                                               *}
+\Msg{*     elsarticle-*.bst                                      *}
+\Msg{*                                                           *}
+\Msg{* To produce the documentation go to the ../contrib folder  *}
+\Msg{* and run the file elsdoc.tex through pdfLaTeX              *}
+\Msg{* or use the Makefile which is far more easier.             *}
+\Msg{*                                                           *}
+\Msg{* Happy TeXing!                                             *}
+\Msg{*                                                           *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/elsarticle.zip b/elsarticle.zip
new file mode 100644 (file)
index 0000000..6dbe09e
Binary files /dev/null and b/elsarticle.zip differ