Source code for openjij.utils.graph_utils

from __future__ import annotations
import numpy as np


[docs] def qubo_to_ising(mat: np.ndarray): """Inplace-convert numpy matrix from qubo to ising. Args: mat (np.ndarray): numpy matrix """ mat /= 4 for i in range(mat.shape[0]): mat[i, i] += np.sum(mat[i, :])
[docs] def chimera_to_ind(r: int, c: int, z: int, L: int): """[summary] Args: r (int): row index c (int): column index z (int): in-chimera index (must be from 0 to 7) L (int): height and width of chimera-units (total number of spins is :math:`L \\times L \\times 8`) Raises: ValueError: [description] Returns: int: corresponding Chimera index """ if not (0 <= r < L and 0 <= c < L and 0 <= z < 8): raise ValueError( "0 <= r < L or 0 <= c < L or 0 <= z < 8. " "your input r={}, c={}, z={}, L={}".format(r, c, z, L) ) return r * L * 8 + c * 8 + z