dwave-system icon indicating copy to clipboard operation
dwave-system copied to clipboard

DWaveSampler does not return desired result

Open willxujun opened this issue 5 years ago • 12 comments

I have the following coefficient matrix which I pass to DwaveSampler as QUBO:

-1000 1002 1000 1002 1024 1022 1024 1022 1000 3 0 3 36 33 36 33 1000 3 0 3 36 33 36 33 1000 2 0 2 24 22 24 22 1000 2 0 2 24 22 24 22 1000 3 0 3 36 33 36 33 1000 3 0 3 36 33 36 33 1000 0 0 0 0 0 0 0
0 -998 1002 1000 1022 1020 1022 1020 3 1003 3 0 33 30 33 30 3 1003 3 0 33 30 33 30 2 1002 2 0 22 20 22 20 2 1002 2 0 22 20 22 20 3 1003 3 0 33 30 33 30 3 1003 3 0 33 30 33 30 0 1000 0 0 0 0 0 0
0 0 -1000 1002 1024 1022 1024 1022 0 3 1000 3 36 33 36 33 0 3 1000 3 36 33 36 33 0 2 1000 2 24 22 24 22 0 2 1000 2 24 22 24 22 0 3 1000 3 36 33 36 33 0 3 1000 3 36 33 36 33 0 0 1000 0 0 0 0 0
0 0 0 -998 1022 1020 1022 1020 3 0 3 1003 33 30 33 30 3 0 3 1003 33 30 33 30 2 0 2 1002 22 20 22 20 2 0 2 1002 22 20 22 20 3 0 3 1003 33 30 33 30 3 0 3 1003 33 30 33 30 0 0 0 1000 0 0 0 0
0 0 0 0 -976 1002 1000 1002 36 33 36 33 1036 3 0 3 36 33 36 33 1036 3 0 3 24 22 24 22 1024 2 0 2 24 22 24 22 1024 2 0 2 36 33 36 33 1036 3 0 3 36 33 36 33 1036 3 0 3 0 0 0 0 1000 0 0 0
0 0 0 0 0 -978 1002 1000 33 30 33 30 3 1033 3 0 33 30 33 30 3 1033 3 0 22 20 22 20 2 1022 2 0 22 20 22 20 2 1022 2 0 33 30 33 30 3 1033 3 0 33 30 33 30 3 1033 3 0 0 0 0 0 0 1000 0 0
0 0 0 0 0 0 -976 1002 36 33 36 33 0 3 1036 3 36 33 36 33 0 3 1036 3 24 22 24 22 0 2 1024 2 24 22 24 22 0 2 1024 2 36 33 36 33 0 3 1036 3 36 33 36 33 0 3 1036 3 0 0 0 0 0 0 1000 0
0 0 0 0 0 0 0 -978 33 30 33 30 3 0 3 1033 33 30 33 30 3 0 3 1033 22 20 22 20 2 0 2 1022 22 20 22 20 2 0 2 1022 33 30 33 30 3 0 3 1033 33 30 33 30 3 0 3 1033 0 0 0 0 0 0 0 1000
0 0 0 0 0 0 0 0 -1000 1004 1000 1004 1048 1044 1048 1044 1000 0 0 0 0 0 0 0 1000 3 0 3 36 33 36 33 1000 3 0 3 36 33 36 33 1000 5 0 5 60 55 60 55 1000 5 0 5 60 55 60 55 1000 2 0 2 24 22 24 22
0 0 0 0 0 0 0 0 0 -996 1004 1000 1044 1040 1044 1040 0 1000 0 0 0 0 0 0 3 1003 3 0 33 30 33 30 3 1003 3 0 33 30 33 30 5 1005 5 0 55 50 55 50 5 1005 5 0 55 50 55 50 2 1002 2 0 22 20 22 20
0 0 0 0 0 0 0 0 0 0 -1000 1004 1048 1044 1048 1044 0 0 1000 0 0 0 0 0 0 3 1000 3 36 33 36 33 0 3 1000 3 36 33 36 33 0 5 1000 5 60 55 60 55 0 5 1000 5 60 55 60 55 0 2 1000 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 -996 1044 1040 1044 1040 0 0 0 1000 0 0 0 0 3 0 3 1003 33 30 33 30 3 0 3 1003 33 30 33 30 5 0 5 1005 55 50 55 50 5 0 5 1005 55 50 55 50 2 0 2 1002 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 -952 1004 1000 1004 0 0 0 0 1000 0 0 0 36 33 36 33 1036 3 0 3 36 33 36 33 1036 3 0 3 60 55 60 55 1060 5 0 5 60 55 60 55 1060 5 0 5 24 22 24 22 1024 2 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 -956 1004 1000 0 0 0 0 0 1000 0 0 33 30 33 30 3 1033 3 0 33 30 33 30 3 1033 3 0 55 50 55 50 5 1055 5 0 55 50 55 50 5 1055 5 0 22 20 22 20 2 1022 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -952 1004 0 0 0 0 0 0 1000 0 36 33 36 33 0 3 1036 3 36 33 36 33 0 3 1036 3 60 55 60 55 0 5 1060 5 60 55 60 55 0 5 1060 5 24 22 24 22 0 2 1024 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -956 0 0 0 0 0 0 0 1000 33 30 33 30 3 0 3 1033 33 30 33 30 3 0 3 1033 55 50 55 50 5 0 5 1055 55 50 55 50 5 0 5 1055 22 20 22 20 2 0 2 1022
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1004 1000 1004 1048 1044 1048 1044 1000 3 0 3 36 33 36 33 1000 3 0 3 36 33 36 33 1000 5 0 5 60 55 60 55 1000 5 0 5 60 55 60 55 1000 2 0 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -996 1004 1000 1044 1040 1044 1040 3 1003 3 0 33 30 33 30 3 1003 3 0 33 30 33 30 5 1005 5 0 55 50 55 50 5 1005 5 0 55 50 55 50 2 1002 2 0 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1004 1048 1044 1048 1044 0 3 1000 3 36 33 36 33 0 3 1000 3 36 33 36 33 0 5 1000 5 60 55 60 55 0 5 1000 5 60 55 60 55 0 2 1000 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -996 1044 1040 1044 1040 3 0 3 1003 33 30 33 30 3 0 3 1003 33 30 33 30 5 0 5 1005 55 50 55 50 5 0 5 1005 55 50 55 50 2 0 2 1002 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -952 1004 1000 1004 36 33 36 33 1036 3 0 3 36 33 36 33 1036 3 0 3 60 55 60 55 1060 5 0 5 60 55 60 55 1060 5 0 5 24 22 24 22 1024 2 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -956 1004 1000 33 30 33 30 3 1033 3 0 33 30 33 30 3 1033 3 0 55 50 55 50 5 1055 5 0 55 50 55 50 5 1055 5 0 22 20 22 20 2 1022 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -952 1004 36 33 36 33 0 3 1036 3 36 33 36 33 0 3 1036 3 60 55 60 55 0 5 1060 5 60 55 60 55 0 5 1060 5 24 22 24 22 0 2 1024 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -956 33 30 33 30 3 0 3 1033 33 30 33 30 3 0 3 1033 55 50 55 50 5 0 5 1055 55 50 55 50 5 0 5 1055 22 20 22 20 2 0 2 1022
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1002 1000 1002 1024 1022 1024 1022 1000 0 0 0 0 0 0 0 1000 3 0 3 36 33 36 33 1000 3 0 3 36 33 36 33 1000 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -998 1002 1000 1022 1020 1022 1020 0 1000 0 0 0 0 0 0 3 1003 3 0 33 30 33 30 3 1003 3 0 33 30 33 30 0 1000 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1002 1024 1022 1024 1022 0 0 1000 0 0 0 0 0 0 3 1000 3 36 33 36 33 0 3 1000 3 36 33 36 33 0 0 1000 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -998 1022 1020 1022 1020 0 0 0 1000 0 0 0 0 3 0 3 1003 33 30 33 30 3 0 3 1003 33 30 33 30 0 0 0 1000 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -976 1002 1000 1002 0 0 0 0 1000 0 0 0 36 33 36 33 1036 3 0 3 36 33 36 33 1036 3 0 3 0 0 0 0 1000 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -978 1002 1000 0 0 0 0 0 1000 0 0 33 30 33 30 3 1033 3 0 33 30 33 30 3 1033 3 0 0 0 0 0 0 1000 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -976 1002 0 0 0 0 0 0 1000 0 36 33 36 33 0 3 1036 3 36 33 36 33 0 3 1036 3 0 0 0 0 0 0 1000 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -978 0 0 0 0 0 0 0 1000 33 30 33 30 3 0 3 1033 33 30 33 30 3 0 3 1033 0 0 0 0 0 0 0 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1002 1000 1002 1024 1022 1024 1022 1000 3 0 3 36 33 36 33 1000 3 0 3 36 33 36 33 1000 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -998 1002 1000 1022 1020 1022 1020 3 1003 3 0 33 30 33 30 3 1003 3 0 33 30 33 30 0 1000 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1002 1024 1022 1024 1022 0 3 1000 3 36 33 36 33 0 3 1000 3 36 33 36 33 0 0 1000 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -998 1022 1020 1022 1020 3 0 3 1003 33 30 33 30 3 0 3 1003 33 30 33 30 0 0 0 1000 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -976 1002 1000 1002 36 33 36 33 1036 3 0 3 36 33 36 33 1036 3 0 3 0 0 0 0 1000 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -978 1002 1000 33 30 33 30 3 1033 3 0 33 30 33 30 3 1033 3 0 0 0 0 0 0 1000 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -976 1002 36 33 36 33 0 3 1036 3 36 33 36 33 0 3 1036 3 0 0 0 0 0 0 1000 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -978 33 30 33 30 3 0 3 1033 33 30 33 30 3 0 3 1033 0 0 0 0 0 0 0 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1003 1000 1003 1036 1033 1036 1033 1000 0 0 0 0 0 0 0 1000 2 0 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -997 1003 1000 1033 1030 1033 1030 0 1000 0 0 0 0 0 0 2 1002 2 0 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1003 1036 1033 1036 1033 0 0 1000 0 0 0 0 0 0 2 1000 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -997 1033 1030 1033 1030 0 0 0 1000 0 0 0 0 2 0 2 1002 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -964 1003 1000 1003 0 0 0 0 1000 0 0 0 24 22 24 22 1024 2 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -967 1003 1000 0 0 0 0 0 1000 0 0 22 20 22 20 2 1022 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -964 1003 0 0 0 0 0 0 1000 0 24 22 24 22 0 2 1024 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -967 0 0 0 0 0 0 0 1000 22 20 22 20 2 0 2 1022
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1003 1000 1003 1036 1033 1036 1033 1000 2 0 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -997 1003 1000 1033 1030 1033 1030 2 1002 2 0 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1003 1036 1033 1036 1033 0 2 1000 2 24 22 24 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -997 1033 1030 1033 1030 2 0 2 1002 22 20 22 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -964 1003 1000 1003 24 22 24 22 1024 2 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -967 1003 1000 22 20 22 20 2 1022 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -964 1003 24 22 24 22 0 2 1024 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -967 22 20 22 20 2 0 2 1022
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1003 1000 1003 1036 1033 1036 1033
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -997 1003 1000 1033 1030 1033 1030
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1000 1003 1036 1033 1036 1033
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -997 1033 1030 1033 1030
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -964 1003 1000 1003
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -967 1003 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -964 1003
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -967

This matrix is 64 by 64. The 64 variables can be tiled, counting index from 0 to 63, into a 8 by 8 decision matrix in row major order, and there are two constraints on this matrix:

  1. forall i from 1 to 64, sum(xik) = 1 (k runs from 1 to 64)
  2. forall k from 1 to 64, sum(xik) =1 (i runs from 1 to 64) Basically, there is exactly a 1 in each row, and exactly a 1 in each column.

I tried this matrix on both DwaveSampler and SimulatedAnnealingSampler. SimulatedAnnealingSampler returns an answer satisfying all constraints, but DwaveSampler does not. My code that engages DwaveSampler is as follows:

sampler = dimod.ScaleComposite(EmbeddingComposite(DWaveSampler()))
response = sampler.sample_qubo(Q, num_reads=10)

What is wrong here? I've also noticed that ScaleComposite matters here, because without it the answer is mostly 0, which is non-sensical.

willxujun avatar Jan 24 '20 02:01 willxujun

Hello @willxujun, I believe that part of the problem might be that you're not using a chain strength parameter. In the sample_qubo statement, please add the parameter 'chain_strength=1500', and please re-run your problem.

joelgdwave avatar Jan 24 '20 14:01 joelgdwave

Just to explain what I'm thinking, the EmbeddingComposite is doing an embedding for you, and as part of finding the embedding, it builds some "chains," in which qubits are constrained to have the same value, so that they behave like a single qubit. If the chain_strength is not enough, those chains will break, and the behavior isn't what we want.

joelgdwave avatar Jan 24 '20 14:01 joelgdwave

Hello @willxujun, my initial work shows that the chain_strength helps, but doesn't yet lead to a "correct solution." Could you share the expected answer that you're seeking?

joelgdwave avatar Jan 24 '20 16:01 joelgdwave

Sure. Here's what I got using the above matrix and SimulatedAnnealingSampler:

[[0 0 0 0 0 1 0 0]
 [0 0 1 0 0 0 0 0]
 [0 0 0 0 0 0 0 1]
 [0 0 0 0 0 0 1 0]
 [1 0 0 0 0 0 0 0]
 [0 0 0 0 1 0 0 0]
 [0 0 0 1 0 0 0 0]
 [0 1 0 0 0 0 0 0]]

so each entry of this solution matrix is a variable with a corresponding index like that of a flattened 2D array in the original problem matrix. For example, entry [1][2], which is a 1, is variable index 10 = (1 x 8 + 2).

willxujun avatar Jan 25 '20 04:01 willxujun

One more question for you, @willxujun. What energy are you expecting? Do you have a calculation of it? (The "permutation matrix" is good, and it matches what I'm getting. I'd like to know the energy number you expect.)

joelgdwave avatar Jan 27 '20 00:01 joelgdwave

I don't have a specific target, but somewhere in the range of -7500 is fine (I'm quoting the result of SimulatedAnnealingSampler here). My answer doesn't seem to be correct even with chain_strength, i.e.

response = sampler.sample_qubo(Q,num_reads=100,chain_strength=1500)

Is there something else I am missing?

willxujun avatar Jan 27 '20 01:01 willxujun

@willxujun, I get -7480 now, with different solvers, so we are indeed in the same range. No, you're not missing anything. This problem is a challenging one for the QPU. There is significant range between the large entries and the small entries (1036 vs. 3, etc.), and it looks like there are a large number of answers which do not have much to differentiate them. It looks like a Traveling Salesman problem (or Eight Queens, or something like it), and we do not get very good results initially with the QPU. I will get back to you within a day or two with some things to suggest, for additional features to try, which may dramatically improve convergence to a much better solution. Thanks for your patience.

joelgdwave avatar Jan 27 '20 14:01 joelgdwave

If it helps, the problem is a Quadratic Assignment problem. Thank you.

willxujun avatar Jan 27 '20 15:01 willxujun

Hello @willxujun, I have not forgotten this. I will come up with a strategy for you. It is taking longer than I'd hoped, but I will get there. Thanks for the additional detail that it is quadratic assignment.

joelgdwave avatar Jan 29 '20 16:01 joelgdwave

Hi, any updates on this? If the original matrix is too difficult, how about the following one? I actually have some code controlling the ratio between the entries, so hopefully the following is more gentle on the QPU.

-7466 7616 7646 8021 8021 8186 8291 8306 7466 430 516 1591 1591 2064 2365 2408 7466 430 516 1591 1591 2064 2365 2408 7466 430 516 1591 1591 2064 2365 2408 7466 430 516 1591 1591 2064 2365 2408 7466 220 264 814 814 1056 1210 1232 7466 220 264 814 814 1056 1210 1232 7466 220 264 814 814 1056 1210 1232
0 -7316 7496 7871 7871 8036 8141 8156 430 7896 86 1161 1161 1634 1935 1978 430 7896 86 1161 1161 1634 1935 1978 430 7896 86 1161 1161 1634 1935 1978 430 7896 86 1161 1161 1634 1935 1978 220 7686 44 594 594 836 990 1012 220 7686 44 594 594 836 990 1012 220 7686 44 594 594 836 990 1012
0 0 -7286 7841 7841 8006 8111 8126 516 86 7982 1075 1075 1548 1849 1892 516 86 7982 1075 1075 1548 1849 1892 516 86 7982 1075 1075 1548 1849 1892 516 86 7982 1075 1075 1548 1849 1892 264 44 7730 550 550 792 946 968 264 44 7730 550 550 792 946 968 264 44 7730 550 550 792 946 968
0 0 0 -6911 7466 7631 7736 7751 1591 1161 1075 9057 0 473 774 817 1591 1161 1075 9057 0 473 774 817 1591 1161 1075 9057 0 473 774 817 1591 1161 1075 9057 0 473 774 817 814 594 550 8280 0 242 396 418 814 594 550 8280 0 242 396 418 814 594 550 8280 0 242 396 418
0 0 0 0 -6911 7631 7736 7751 1591 1161 1075 0 9057 473 774 817 1591 1161 1075 0 9057 473 774 817 1591 1161 1075 0 9057 473 774 817 1591 1161 1075 0 9057 473 774 817 814 594 550 0 8280 242 396 418 814 594 550 0 8280 242 396 418 814 594 550 0 8280 242 396 418
0 0 0 0 0 -6746 7571 7586 2064 1634 1548 473 473 9530 301 344 2064 1634 1548 473 473 9530 301 344 2064 1634 1548 473 473 9530 301 344 2064 1634 1548 473 473 9530 301 344 1056 836 792 242 242 8522 154 176 1056 836 792 242 242 8522 154 176 1056 836 792 242 242 8522 154 176
0 0 0 0 0 0 -6641 7481 2365 1935 1849 774 774 301 9831 43 2365 1935 1849 774 774 301 9831 43 2365 1935 1849 774 774 301 9831 43 2365 1935 1849 774 774 301 9831 43 1210 990 946 396 396 154 8676 22 1210 990 946 396 396 154 8676 22 1210 990 946 396 396 154 8676 22
0 0 0 0 0 0 0 -6626 2408 1978 1892 817 817 344 43 9874 2408 1978 1892 817 817 344 43 9874 2408 1978 1892 817 817 344 43 9874 2408 1978 1892 817 817 344 43 9874 1232 1012 968 418 418 176 22 8698 1232 1012 968 418 418 176 22 8698 1232 1012 968 418 418 176 22 8698
0 0 0 0 0 0 0 0 -7466 7636 7670 8095 8095 8282 8401 8418 7466 460 552 1702 1702 2208 2530 2576 7466 460 552 1702 1702 2208 2530 2576 7466 460 552 1702 1702 2208 2530 2576 7466 200 240 740 740 960 1100 1120 7466 200 240 740 740 960 1100 1120 7466 200 240 740 740 960 1100 1120
0 0 0 0 0 0 0 0 0 -7296 7500 7925 7925 8112 8231 8248 460 7926 92 1242 1242 1748 2070 2116 460 7926 92 1242 1242 1748 2070 2116 460 7926 92 1242 1242 1748 2070 2116 200 7666 40 540 540 760 900 920 200 7666 40 540 540 760 900 920 200 7666 40 540 540 760 900 920
0 0 0 0 0 0 0 0 0 0 -7262 7891 7891 8078 8197 8214 552 92 8018 1150 1150 1656 1978 2024 552 92 8018 1150 1150 1656 1978 2024 552 92 8018 1150 1150 1656 1978 2024 240 40 7706 500 500 720 860 880 240 40 7706 500 500 720 860 880 240 40 7706 500 500 720 860 880
0 0 0 0 0 0 0 0 0 0 0 -6837 7466 7653 7772 7789 1702 1242 1150 9168 0 506 828 874 1702 1242 1150 9168 0 506 828 874 1702 1242 1150 9168 0 506 828 874 740 540 500 8206 0 220 360 380 740 540 500 8206 0 220 360 380 740 540 500 8206 0 220 360 380
0 0 0 0 0 0 0 0 0 0 0 0 -6837 7653 7772 7789 1702 1242 1150 0 9168 506 828 874 1702 1242 1150 0 9168 506 828 874 1702 1242 1150 0 9168 506 828 874 740 540 500 0 8206 220 360 380 740 540 500 0 8206 220 360 380 740 540 500 0 8206 220 360 380
0 0 0 0 0 0 0 0 0 0 0 0 0 -6650 7585 7602 2208 1748 1656 506 506 9674 322 368 2208 1748 1656 506 506 9674 322 368 2208 1748 1656 506 506 9674 322 368 960 760 720 220 220 8426 140 160 960 760 720 220 220 8426 140 160 960 760 720 220 220 8426 140 160
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6531 7483 2530 2070 1978 828 828 322 9996 46 2530 2070 1978 828 828 322 9996 46 2530 2070 1978 828 828 322 9996 46 1100 900 860 360 360 140 8566 20 1100 900 860 360 360 140 8566 20 1100 900 860 360 360 140 8566 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6514 2576 2116 2024 874 874 368 46 10042 2576 2116 2024 874 874 368 46 10042 2576 2116 2024 874 874 368 46 10042 1120 920 880 380 380 160 20 8586 1120 920 880 380 380 160 20 8586 1120 920 880 380 380 160 20 8586
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7466 7636 7670 8095 8095 8282 8401 8418 7466 170 204 629 629 816 935 952 7466 170 204 629 629 816 935 952 7466 250 300 925 925 1200 1375 1400 7466 250 300 925 925 1200 1375 1400 7466 250 300 925 925 1200 1375 1400
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7296 7500 7925 7925 8112 8231 8248 170 7636 34 459 459 646 765 782 170 7636 34 459 459 646 765 782 250 7716 50 675 675 950 1125 1150 250 7716 50 675 675 950 1125 1150 250 7716 50 675 675 950 1125 1150
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7262 7891 7891 8078 8197 8214 204 34 7670 425 425 612 731 748 204 34 7670 425 425 612 731 748 300 50 7766 625 625 900 1075 1100 300 50 7766 625 625 900 1075 1100 300 50 7766 625 625 900 1075 1100
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6837 7466 7653 7772 7789 629 459 425 8095 0 187 306 323 629 459 425 8095 0 187 306 323 925 675 625 8391 0 275 450 475 925 675 625 8391 0 275 450 475 925 675 625 8391 0 275 450 475
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6837 7653 7772 7789 629 459 425 0 8095 187 306 323 629 459 425 0 8095 187 306 323 925 675 625 0 8391 275 450 475 925 675 625 0 8391 275 450 475 925 675 625 0 8391 275 450 475
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6650 7585 7602 816 646 612 187 187 8282 119 136 816 646 612 187 187 8282 119 136 1200 950 900 275 275 8666 175 200 1200 950 900 275 275 8666 175 200 1200 950 900 275 275 8666 175 200
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6531 7483 935 765 731 306 306 119 8401 17 935 765 731 306 306 119 8401 17 1375 1125 1075 450 450 175 8841 25 1375 1125 1075 450 450 175 8841 25 1375 1125 1075 450 450 175 8841 25
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6514 952 782 748 323 323 136 17 8418 952 782 748 323 323 136 17 8418 1400 1150 1100 475 475 200 25 8866 1400 1150 1100 475 475 200 25 8866 1400 1150 1100 475 475 200 25 8866
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7466 7636 7670 8095 8095 8282 8401 8418 7466 170 204 629 629 816 935 952 7466 250 300 925 925 1200 1375 1400 7466 250 300 925 925 1200 1375 1400 7466 250 300 925 925 1200 1375 1400
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7296 7500 7925 7925 8112 8231 8248 170 7636 34 459 459 646 765 782 250 7716 50 675 675 950 1125 1150 250 7716 50 675 675 950 1125 1150 250 7716 50 675 675 950 1125 1150
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7262 7891 7891 8078 8197 8214 204 34 7670 425 425 612 731 748 300 50 7766 625 625 900 1075 1100 300 50 7766 625 625 900 1075 1100 300 50 7766 625 625 900 1075 1100
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6837 7466 7653 7772 7789 629 459 425 8095 0 187 306 323 925 675 625 8391 0 275 450 475 925 675 625 8391 0 275 450 475 925 675 625 8391 0 275 450 475
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6837 7653 7772 7789 629 459 425 0 8095 187 306 323 925 675 625 0 8391 275 450 475 925 675 625 0 8391 275 450 475 925 675 625 0 8391 275 450 475
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6650 7585 7602 816 646 612 187 187 8282 119 136 1200 950 900 275 275 8666 175 200 1200 950 900 275 275 8666 175 200 1200 950 900 275 275 8666 175 200
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6531 7483 935 765 731 306 306 119 8401 17 1375 1125 1075 450 450 175 8841 25 1375 1125 1075 450 450 175 8841 25 1375 1125 1075 450 450 175 8841 25
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6514 952 782 748 323 323 136 17 8418 1400 1150 1100 475 475 200 25 8866 1400 1150 1100 475 475 200 25 8866 1400 1150 1100 475 475 200 25 8866
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7466 7636 7670 8095 8095 8282 8401 8418 7466 250 300 925 925 1200 1375 1400 7466 250 300 925 925 1200 1375 1400 7466 250 300 925 925 1200 1375 1400
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7296 7500 7925 7925 8112 8231 8248 250 7716 50 675 675 950 1125 1150 250 7716 50 675 675 950 1125 1150 250 7716 50 675 675 950 1125 1150
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7262 7891 7891 8078 8197 8214 300 50 7766 625 625 900 1075 1100 300 50 7766 625 625 900 1075 1100 300 50 7766 625 625 900 1075 1100
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6837 7466 7653 7772 7789 925 675 625 8391 0 275 450 475 925 675 625 8391 0 275 450 475 925 675 625 8391 0 275 450 475
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6837 7653 7772 7789 925 675 625 0 8391 275 450 475 925 675 625 0 8391 275 450 475 925 675 625 0 8391 275 450 475
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6650 7585 7602 1200 950 900 275 275 8666 175 200 1200 950 900 275 275 8666 175 200 1200 950 900 275 275 8666 175 200
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6531 7483 1375 1125 1075 450 450 175 8841 25 1375 1125 1075 450 450 175 8841 25 1375 1125 1075 450 450 175 8841 25
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6514 1400 1150 1100 475 475 200 25 8866 1400 1150 1100 475 475 200 25 8866 1400 1150 1100 475 475 200 25 8866
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7466 7546 7562 7762 7762 7850 7906 7914 7466 30 36 111 111 144 165 168 7466 30 36 111 111 144 165 168
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7386 7482 7682 7682 7770 7826 7834 30 7496 6 81 81 114 135 138 30 7496 6 81 81 114 135 138
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7370 7666 7666 7754 7810 7818 36 6 7502 75 75 108 129 132 36 6 7502 75 75 108 129 132
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7170 7466 7554 7610 7618 111 81 75 7577 0 33 54 57 111 81 75 7577 0 33 54 57
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7170 7554 7610 7618 111 81 75 0 7577 33 54 57 111 81 75 0 7577 33 54 57
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7082 7522 7530 144 114 108 33 33 7610 21 24 144 114 108 33 33 7610 21 24
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7026 7474 165 135 129 54 54 21 7631 3 165 135 129 54 54 21 7631 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7018 168 138 132 57 57 24 3 7634 168 138 132 57 57 24 3 7634
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7466 7546 7562 7762 7762 7850 7906 7914 7466 30 36 111 111 144 165 168
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7386 7482 7682 7682 7770 7826 7834 30 7496 6 81 81 114 135 138
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7370 7666 7666 7754 7810 7818 36 6 7502 75 75 108 129 132
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7170 7466 7554 7610 7618 111 81 75 7577 0 33 54 57
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7170 7554 7610 7618 111 81 75 0 7577 33 54 57
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7082 7522 7530 144 114 108 33 33 7610 21 24
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7026 7474 165 135 129 54 54 21 7631 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7018 168 138 132 57 57 24 3 7634
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7466 7546 7562 7762 7762 7850 7906 7914
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7386 7482 7682 7682 7770 7826 7834
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7370 7666 7666 7754 7810 7818
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7170 7466 7554 7610 7618
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7170 7554 7610 7618
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7082 7522 7530
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7026 7474
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7018

I use "external penalty" to iteratively increase the coefficient between some pairs variables, which explains the larger entries. In theory the solution of QPU should converge to a "solution matrix" as the weights increase to some level (which means I have an iteratively changing problem matrix). With simulated annealing solver I am able to get this behaviour, and the matrix above is just a snapshot of a successful iteration.

willxujun avatar Feb 12 '20 10:02 willxujun

@willxujun, I apologize again, for the long delay - thanks for writing. I'm working on this today. I confirm that your second matrix does a little better - although it does not get as close to the solution as SA does (as you noticed). I just need a little more time - thanks for your patience.

joelgdwave avatar Feb 12 '20 13:02 joelgdwave

@willxujun, I started to research this today, and I am still looking for a set of steps for you to follow. One of our technical experts mentioned some techniques which I'm not familiar with, and another person mentioned reverse annealing. My goal is to send you some small snippets of Python code which you can run, to get better answers. The main point is that your overall question - back to the beginning of this thread, 20 days ago - is that you're not doing anything wrong. The problem is a hard one for the D-Wave QPU. Two of the people I spoke to initially said they did not expect good performance by the QPU on this problem, as you noted. The goal is to come up with a recipe for improving the performance, and I will do that.

joelgdwave avatar Feb 12 '20 22:02 joelgdwave