diff --git a/codes/utils.py b/codes/utils.py
index 22f48a0b0902d3b3b152167b460559f563f0533b..47ac550e8a969eeb30c1f442c390dbbdfeaecf01 100644
--- a/codes/utils.py
+++ b/codes/utils.py
@@ -273,13 +273,17 @@ def generate_guess(vectors, ndof, scale=0.1):
     """
     guess = {}
     for vector in vectors:
-        amplitude = scale * np.random.rand(ndof, ndof)
-        phase = 2 * np.pi * np.random.rand(ndof, ndof)
-        rand_hermitian = amplitude * np.exp(1j * phase)
-        if np.linalg.norm(np.array(vector)):
-            rand_hermitian += rand_hermitian.T.conj()
-            rand_hermitian /= 2
-        guess[vector] = rand_hermitian
+        if vector not in guess.keys():
+            amplitude = scale * np.random.rand(ndof, ndof)
+            phase = 2 * np.pi * np.random.rand(ndof, ndof)
+            rand_hermitian = amplitude * np.exp(1j * phase)
+            if np.linalg.norm(np.array(vector)) == 0:
+                rand_hermitian += rand_hermitian.T.conj()
+                rand_hermitian /= 2
+                guess[vector] = rand_hermitian
+            else:
+                guess[vector] = rand_hermitian
+                guess[tuple(-np.array(vector))] = rand_hermitian.T.conj()
 
     return guess