MyNixOS website logo
Description

Euclidean Distance Matrix Completion Tools.

Implements various general algorithms to estimate missing elements of a Euclidean (squared) distance matrix. Includes optimization methods based on semi-definite programming found in Alfakih, Khadani, and Wolkowicz (1999)<doi:10.1023/A:1008655427845>, a non-convex position formulation by Fang and O'Leary (2012)<doi:10.1080/10556788.2011.643888>, and a dissimilarity parameterization formulation by Trosset (2000)<doi:10.1023/A:1008722907820>. When the only non-missing distances are those on the minimal spanning tree, the guided random search algorithm will complete the matrix while preserving the minimal spanning tree following Rahman and Oldford (2018)<doi:10.1137/16M1092350>. Point configurations in specified dimensions can be determined from the completions. Special problems such as the sensor localization problem, as for example in Krislock and Wolkowicz (2010)<doi:10.1137/090759392>, as well as reconstructing the geometry of a molecular structure, as for example in Hendrickson (1995)<doi:10.1137/0805040>, can also be solved. These and other methods are described in the thesis of Adam Rahman(2018)<https://hdl.handle.net/10012/13365>.

edmcr

An R package for Euclidean (squared) distance matrix completion (and determining point configurations based on the completed matrix.)

Description

Implements various general algorithms to estimate missing elements of a Euclidean (squared) distance matrix.
Includes optimization methods based on semi-definite programming, nonparametric position, and dissimilarity parameterization formulas.

When the only non-missing distances are those on the minimal spanning tree, the guided random search algorithm will complete the matrix while preserving the minimal spanning tree.

Point configurations in specified dimensions can be determined from the completions.

Special problems such as the sensor localization problem and reconstructing the geometry of a molecular structure can also be solved.

Online documentation: https://great-northern-diver.github.io/edmcr/

References

  • Alfakih, Khandani, and Wolkowicz (1999) "Solving Euclidean Distance Matrix Completion Problems Via Semidefinite Programming", Computational Optimization and Applications, Volume 12, pages 13–30 doi:10.1023/A:1008655427845
  • Trosset (2000) "Distance Matrix Completion by Numerical Optimization", Computational Optimization and Applications, Volume 17, pages 11–22 doi:10.1023/A:1008722907820
  • Krislock and Henry Wolkowicz (2010) "Explicit sensor network localization using semidefinite representations and facial reductions", SIAM Journal on Optimization, Volume 20(5), pages 2679–2708 doi:10.1137/090759392
  • Fang and O'Leary (2012) "Euclidean Matrix Completion Problems", Optimization Methods and Software, Volume 27, pages 695-717, doi:10.1080/10556788.2011.643888
  • Rahman and Oldford (2018) "Euclidean Distance Matrix Completion and Point Configurations from the Minimal Spanning Tree", SIAM Journal on Optimization, Volume 28, pages 528-550 doi:10.1137/16M1092350
  • Rahman (2018) "Preserving Measured Structure During Generation and Reduction of Multivariate Point Configurations", Doctoral dissertation UWSpace theses http://hdl.handle.net/10012/13365

Other source code:

  • makes use of some C source code (sparse matrix column ordering authored by Stefan I. Larimore and Timothy A. Davis) from the Suite Sparse collection.
Metadata

Version

0.2.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows