This repository contains the Julia implementation of the RandomEdge
algorithm, the specification of BlockProx
to graph-guided regularizers.
BlockProx
is a decentralized algorithm for solving the following structured optimization problem in a decentralized manner:
where the objective exhibits two distinct forms of separability:
The variable
For further details on the problem and the algorithm, please refer to our paper:
@article{LKAF25BlockProx,
title={Decentralized Optimization with Topology-Independent Communication},
author={Ying Lin and Yao Kuang and Ahmet Alacaoglu and Michael P. Friedlander},
year={2025},
eprint={},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2509.14488},
}
BlockProx
is licensed under the MIT License (see LICENSE).
-
Install Julia with version higher than 1.11, see installation.
-
Clone this repository.
git clone [email protected]:MPF-Optimization-Laboratory/BlockProx.git cd BlockProx
-
Instantiate this project in
Julia
REPL:using Pkg Pkg.activate(".") Pkg.instantiate()
and wait for automatically installing required packages.
-
Run runcodes from command line:
julia ./runcode_LS.jl julia ./runcode_housing.jl
or inside
Julia
REPL:include("./runcode_LS.jl") include("./runcode_housing.jl")
- All the implementations are included in
src.jl
, with built-in detailed documentations and comments. - There are two runcode files:
runcode_LS.jl
: The runcode for experiments on synthetic data: least squares benchmarks, see Section 6.1 of the paper.runcode_housing.jl
: The runcode for experiments on real data: housing dataset, see Section 6.2 of the paper.