Iteration Objects Pkernel Akernel Pkernel
1000000 3 50.0251 6.91633 49.9749
2000000 4 50.0137 6.9189 49.9863
3000000 3 50.0744 6.70802 49.9256
4000000 4 49.9794 6.67955 50.0206
5000000 5 50.0122 6.64158 49.9878
6000000 13 49.9979 6.48967 50.0021
7000000 38 50.0199 5.25131 49.9801
8000000 286 49.9434 1.48088 50.0566
9000000 333 49.9631 0.0140103 50.0369
10000000 356 50.0272 0.00559696 49.9728
using
using
using namesp
'space rjmcemc;
ce marked point process;
ce simulated annealing;
cle. 2 hpp”
Finfevsection/ Circle. 2 intersection hop)
coordinates / Circle. 2. coordinates. hpp”
ouble> K;
dk de + -
Me te
Sinclude "geometr
typedef geometry :: Simple_cartesian<(
typedef K::Point 2 Point.2;
typedef geometry::Circle 2«K» Circle 2;
typedef Circle.2 object;
pp/energy/intersection.a
#include ”mpp/ co ion/graph.con
a.binary.energy .hpp^
iguration.hpp"
typedef constant_energy<> energyi;
typedef intersection area binary energy«^ area;
typedef multiplies energy«energyil,area» energy2;
typedef graph_configuration<object, energyl, energy2>
configuration;
isson.distribution.hpp"
#include "mpp/direct.sampler.hpp"
typedef poisson distribution distribution;
typedef uniform birth«object» uniform birth;
typedef direct sampler«distribution,uniform birth»
reference process;
'acceptance/ metropolis.acceptance . hpp"
cmc /sampler/ sampler. hpp”
lis_acceptance acceptance;
typedef rjmcmc :: sampler<reference_process,b acceptance,
result_of_make_uniform_birth_death_kernel<object >: type>
sampler;
e/geometric edule. hp
t/max.iteration.end.
"visitor/ostream.visitor.hpp"
tex .visitorohbpp"
#include t p
include "visitor/composite.visitor.hpp"
int main(int argc , char«« argv)
int 1=0;
double energy = (++i<argc) ? atof(argv[i]): —1.
double surface- (++i<argc) ? atof(argv[i]): 10000.;
double rmin = (++i<argc) ? atof(argv[i]): 0.02;
double rmax = (++i<argc) ? atof(argv[i]): 0.1;
double poisson= (++i<argc) ? atof(argv[i]): 200.;
double pbirth = (++i<argc) ? atof(argv[i]): 0.5;
double pdeath = (++i<argc) ? atof(argv[i]): 0.5;
int nbiter = (++i<argc) ? atoi(argv[i]): 10000001;
double temp = (++i<argc) ? atof(argv[i]): 200.;
double deccoef= (++i<argc) ? atof(argv[i]): 0.999999;
int nbdump = (++i<argc) ? atoi(argv[i]): 1000000;
int nbsave = (++i<argc) ? atoi(argv[i]): 1000000;
distribution dpoisson(poisson);
uniform_birth birth( Circle_2(Point_2(0,0),rmin),
Circle 2(Point 2(1.1);rmax) );
reference process reference pdf( dpoisson, birth );
configuration c(energy, surfacexarea());
International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XXXIX-B3, 2012
XXII ISPRS Congress, 25 August — 01 September 2012, Melbourne, Australia
Akernel Accept Time(ms) Temp Ul u2 U
6.92748 6.9219 250 73.5759 3 -7.10543e-14 3
6.9251 6.922 250 27.0671 4 -1.13687e-13 4
6.73041 6.7192 260 9.95741 3 -1.10134e-13 3
6.67465 6.6771 250 3.66312 4 -1.04805e-13 4
6.64542 6.6435 270 1.34759 5 -1.04805e-13 5
6.48753 6.4886 290 0.495749 -13 -1.04583e-13 13
5.25049 5.2509 430 0.182376 -38 -1.04305e-13 38
1.42798 1.4544 1700 0.0670923 -286 1.84745 -284.153
0.00459661 0.0093 3490 0.0246819 -333 8.72057 -324.279
0.00100054 0.0033 3890 0.00907995 -356 18.3511 -337.649
ESOS
“20381 574 =
2970000
742500 1485005 2227500
teraticre
Figure 2: Gilviewer-based wxWidget visitors enabling a runtime
visualization of the configuration (top), and of the temperature
and energy charts (bottom).
sampler samp( reference pdf, acceptance(),
make uniform birth death kernel(birth, pbirth, pdeath)
);
geometric_schedule<doubie> sch(temp,deccoef);
max iteration end test end(nbiter);
ostream visitor osvisitor;
tex visitor texvisitor(" quickstart.");
composite visitor«ostream visitor,tex visitor»
visitor(osvisitor,texvisitor);
visitor.init(nbdump,nbsave);
optimize(c,samp,sch,end,visitor);
return O0;
The main entry point starts by parsing the input parameters, pro-
viding default values. Once the reference Poisson process is in-
stantiated, an empty configuration is created and initialized with
the energy objects. Then, the RIMCMC sampler object samp is
constructed. Finally, the sinuiated annealing Objects are created
and the optimization is performed in place on the configuration
instance c. Figure 1 shows the output of the program, and the re-
sulting circle packing. Its runtime is 11s for 356 circles and 107
iterations.
4.2 Building extraction
The method introduced in (Tournaire et al., 2010) has been imple-
mented within the 1ibrjmcmc library, which extracts buildings
fron
This
to f
depx
nels
DS^
(GS
size
tain:
bilit
acce
Gen
sho
(Ab
sary
ing
evel
com
are
ter (
the |
of tl
bet
con
Imp
sucl
201
imp
strej
In t]
bet
call
be 1
dist
tran
cod
nan
defi
hav