You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				| class Action: | |
|     """ Represents an action in the model """ | |
| 
 | |
|     def __init__(self, row_group_start, row_group_end, row, model): | |
|         """ Initialize | |
|         :param row_group_start: Start index of the row group in the matrix | |
|         :param row_group_end: End index of the row group in the matrix | |
|         :param row: Index of the corresponding row in the matrix | |
|         :param model: Corresponding model | |
|         """ | |
|         self.row_group_start = row_group_start | |
|         self.row_group_end = row_group_end | |
|         self.row = row - 1 | |
|         self.model = model | |
|         assert row >= -1 and row + row_group_start <= row_group_end | |
| 
 | |
|     def __iter__(self): | |
|         return self | |
| 
 | |
|     def __next__(self): | |
|         if self.row + self.row_group_start >= self.row_group_end - 1: | |
|             raise StopIteration | |
|         else: | |
|             self.row += 1 | |
|             return self | |
| 
 | |
|     def __str__(self): | |
|         return "{}".format(self.row) | |
| 
 | |
|     def transitions(self): | |
|         """ Get transitions associated with the action | |
|         :return List of tranistions | |
|         """ | |
|         row = self.row_group_start + self.row | |
|         #return self.model.transition_matrix().get_row(self.row_group_start + self.row) | |
|         return self.model.transition_matrix.row_iter(row, row)
 |