▁indexed ▁heap ) ▁is ▁used . ▁▁ ▁function ▁OP T IC S ( DB , ▁e ps , ▁Min P ts ) ▁is ▁▁▁▁▁ ▁for ▁each ▁point ▁p ▁of ▁DB ▁do ▁▁▁▁▁▁▁▁▁ ▁p . re ach ability - distance ▁= ▁UN DEF IN ED ▁▁▁▁▁ ▁for ▁each ▁un process ed ▁point ▁p ▁of ▁DB ▁do ▁▁▁▁▁▁▁▁▁ ▁N ▁= ▁get Ne igh b ors ( p , ▁e ps ) ▁▁▁▁▁▁▁▁▁ ▁mark ▁p ▁as ▁processed ▁▁▁▁▁▁▁▁▁ ▁output ▁p ▁to ▁the ▁ordered ▁list ▁▁▁▁▁▁▁▁▁ ▁if ▁core - distance ( p , ▁e ps , ▁Min P ts ) ▁!= ▁UN DEF IN ED ▁then ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁Se eds ▁= ▁empty ▁priority ▁queue ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁update ( N , ▁p , ▁Se eds , ▁e ps , ▁Min P ts ) ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁for ▁each ▁next ▁q ▁in ▁Se eds ▁do ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁N ' ▁= ▁get Ne igh b ors ( q , ▁e ps ) ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁mark ▁q ▁as ▁processed ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁output ▁q ▁to ▁the ▁ordered ▁list ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁if ▁core - distance ( q , ▁e ps , ▁Min P ts ) ▁!= ▁UN DEF IN ED ▁do ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁ ▁update ( N ', ▁q , ▁Se eds , ▁e ps , ▁Min P ts ) ▁ ▁In ▁update (), ▁the ▁priority ▁queue ▁Se eds ▁is ▁updated ▁with ▁the ▁- ne igh bor hood ▁of ▁ ▁and ▁, ▁respectively : ▁▁ ▁function ▁update ( N , ▁p , ▁Se eds , ▁e ps , ▁Min P ts ) ▁is ▁▁▁▁▁ ▁cor ed ist ▁=