Tue 27 Aug 00:14:56 CEST 2024
This commit is contained in:
		
							parent
							
								
									40ae5ee5d3
								
							
						
					
					
						commit
						f616fbd0bb
					
				
							
								
								
									
										60
									
								
								test/test-sat3.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								test/test-sat3.js
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
var L = sat.L 
 | 
			
		||||
 | 
			
		||||
var t1=time(),t2,t3
 | 
			
		||||
 | 
			
		||||
var m = sat.solver()
 | 
			
		||||
 | 
			
		||||
var i,j,i2,j2,row
 | 
			
		||||
var locations=[]
 | 
			
		||||
for (i=0;i<9;i++) {
 | 
			
		||||
  row=[]
 | 
			
		||||
  for(j=0;j<9;j++) {
 | 
			
		||||
    row.push(sat.L.variableBits([i,j], 4));
 | 
			
		||||
  }
 | 
			
		||||
  locations.push(row)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var bits = []
 | 
			
		||||
for(i=0;i<10;i++) bits[i]= L.constantBits(i);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
for (i=0;i<9;i++) {
 | 
			
		||||
  for (j=0;j<9;j++) {
 | 
			
		||||
    sat.R(m,L.greaterThanOrEqual(locations[i][j], bits[1]))
 | 
			
		||||
    sat.R(m,L.lessThanOrEqual(locations[i][j], bits[9]))
 | 
			
		||||
    for(j2=0;j2<9;j2++) {
 | 
			
		||||
      if (j !== j2) {
 | 
			
		||||
        sat.F(m,L.equalBits(locations[i][j], locations[i][j2]))
 | 
			
		||||
      }       
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  for(i2=0;i2<9;i2++) {
 | 
			
		||||
    for (j=0;j<9;j++) {
 | 
			
		||||
      if (i !== i2) {
 | 
			
		||||
        sat.F(m,L.equalBits(locations[i][j], locations[i2][j]))
 | 
			
		||||
      } 
 | 
			
		||||
    }       
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Presets
 | 
			
		||||
sat.R(m,L.equalBits(locations[0][0],bits[2]))
 | 
			
		||||
sat.R(m,L.equalBits(locations[1][0],bits[3]))
 | 
			
		||||
sat.R(m,L.equalBits(locations[0][1],bits[3]))
 | 
			
		||||
sat.R(m,L.equalBits(locations[8][8],bits[3]))
 | 
			
		||||
 | 
			
		||||
t2=time()
 | 
			
		||||
sat.solve(m)
 | 
			
		||||
t3=time()
 | 
			
		||||
for (i=0;i<9;i++) {
 | 
			
		||||
  var row=''
 | 
			
		||||
  for (j=0;j<9;j++) {
 | 
			
		||||
    row = row + ' ' + sat.eval(m,locations[i][j]);
 | 
			
		||||
  }
 | 
			
		||||
  print(row)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print()
 | 
			
		||||
print('Setup  time: '+(t2-t1)+' ms')
 | 
			
		||||
print('Solver time: '+(t3-t2)+' ms')
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user