DOI: 10.5061/dryad.nvx0k6dzp
title: Wavelength-division multiplexing optical Ising simulator enabling fully programmable spin couplings and external magnetic fields

description: Recently various physical systems have been proposed for modeling Ising
 spin Hamiltonians appealing to solve combinatorial optimization problems
 with remarkable performance. However, how to implement arbitrary spin-spin
 interactions is a critical and challenging problem in various kinds of
 unconventional Ising machines. Here we propose a general gauge
 transformation scheme to enable arbitrary spin-spin interactions and
 external magnetic fields as well, by decomposing an Ising Hamiltonian into
 multiple Mattis-type interactions. Based on this scheme, a
 wavelength-division multiplexing spatial photonic Ising machine (SPIM) is
 developed to show the programmable capability of general spin coupling
 interactions. We exploit the wavelength-division multiplexing SPIM to
 simulate three spin systems: pm J models, Sherrington-Kirkpatrick models,
 and only locally connected J1/J2 models and observe the phase transitions
 among the spin-glass, the ferromagnetic, the paramagnetic and the
 stripe-antiferromagnetic phases. We also demonstrate the ground state
 search for solving the Max-Cut problem with the wavelength-division
 multiplexing SPIM. These results promise the realization of
 ultrafast-speed and high-power-efficiency Boltzmann sampling of a
 generalized large-scale Ising model.
description: **These datasets include code as well as experimental data for analyzing
 the solution of the Max-cut problem.** ## Datasets included: A)
 **Experimentally collected data** 1. The three '.mat' files
 correspond to the experimental data for three graphs. For example,
 'ExperimentdataA.mat' corresponds to the experimental data for
 graph A. 2. In each '.mat' file, for the first row: the first
 column represents the element values of the interaction **J**, as a 16\*16
 matrix; the second column represents the values of the temperature during
 each annealing process as an array; and the third column is the number of
 iterations at each temperature; the fourth column represents the plotting
 index, i.e., the index of run taken from the total 100 experimental runs.
 3. In each '.mat' file, the third row shows the experimental
 results obtained from a complete experiment run. For the third row: the
 first column is the detected intensity during annealing process as an
 array; the second column is the Hamiltonian during annealing process as an
 array; the third column is the variation of 16 spin states during
 annealing process as an array. 4. In each '.mat' file, the third
 to 102nd rows, respectively, represent 100 experimental runs. B) **Matlab
 Scripts** 1. Run 'PlotGraphA.m' file to plot the histograms of
 the obtained solutions in 100 runs and the evolution of the Hamiltonian
 for the eight of 100 runs at corresponding temperature for graph A. 2. Run
 'PlotGraphB.m' file to plot the histograms of the obtained
 solutions in 100 runs and the evolution of the Hamiltonian for the eight
 of 100 runs at corresponding temperature for graph B. 3. Run
 'PlotGraphC.m' file to plot the histograms of the obtained
 solutions in 100 runs and the evolution of the Hamiltonian for the eight
 of 100 runs at corresponding temperature for graph C.