mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-30 19:22:28 +00:00 
			
		
		
		
	update notes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									19bc9aa132
								
							
						
					
					
						commit
						97d7723c44
					
				
					 1 changed files with 14 additions and 6 deletions
				
			
		|  | @ -272,15 +272,23 @@ threads-4-cube-shareconflicts | ||||||
| 
 | 
 | ||||||
| </pre> | </pre> | ||||||
| 
 | 
 | ||||||
| Ideas for other knobs that can be added: | Ideas for other knobs that can be tested | ||||||
| 
 | 
 | ||||||
| <il> | <il> | ||||||
| <li> Only cube on literals that exist in initial formula. Don't cube on literals created during search (such as by theory lemmas). | <li> Only cube on literals that exist in initial formula. Don't cube on literals created during search (such as by theory lemmas). | ||||||
| <li> Only share units for literals that exist in the initial formula. | <li> Only share units for literals that exist in the initial formula. | ||||||
|  | <li> Vary the backoff scheme for <b>max_conflict_mul</b> from 1.5 to lower and higher. | ||||||
|  | <li> Vary <b>smt.threads.max_conflicts</b> | ||||||
|  | <li> Replace backoff scheme by a geometric scheme: add <b>conflict_inc</b> (a new parameter) every time and increment <b>conflict_inc</b> | ||||||
| </il> | </il> | ||||||
| 
 | 
 | ||||||
| This requires collecting sub-expressions from the solver state at initialization time. It can be programmed by adding an expr_mark  | <pre> | ||||||
| structure and marking all expressions used in bool_vars after initialization as initial. |   cube_initial_only (bool) (default: false)          only useful when never_cube=false | ||||||
| Then only initial bool_vars are shared as units. |   frugal_cube_only (bool) (default: false)           only useful when never_cube=false | ||||||
| A simpler approach is just to remember the initial number of bool_vars. |   max_conflict_mul (double) (default: 1.5) | ||||||
| Fresh atoms are allocated with higher ordinals anyway. |   never_cube (bool) (default: false) | ||||||
|  |   relevant_units_only (bool) (default: true)         only useful when share_units=true | ||||||
|  |   share_conflicts (bool) (default: true)             only useful when never_cube=false | ||||||
|  |   share_units (bool) (default: true) | ||||||
|  |   share_units_initial_only (bool) (default: false)   only useful when share_units=true | ||||||
|  | </pre> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue