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)
							 |