Bases: Application[EncodedQuadraticProgram, frozenset[Tuple[str, float]]]
              
                Source code in q3as/app/qubo.py
                |  | class Qubo(Application[EncodedQuadraticProgram, frozenset[Tuple[str, float]]]):
    def __init__(self, qp: QuadraticProgram):
        """
        Create a new QUBO application.
        """
        self.program = qp
        self.converter = QuadraticProgramToQubo()
        self.converted = self.converter.convert(qp)
    def name(self) -> ApplicationName:
        return "qubo"
    def encode(self) -> EncodedQuadraticProgram:
        return EncodedQuadraticProgram.encode(self.program)
    @classmethod
    def validate_encoded(cls, encoded: Any) -> EncodedQuadraticProgram:
        return EncodedQuadraticProgram.model_validate(encoded)
    @classmethod
    def decode(cls, encoded: EncodedQuadraticProgram) -> Qubo:
        return Qubo(EncodedQuadraticProgram.decode(encoded))
    def hamiltonian(self):
        """
        Return the Hamiltonian of the QUBO problem.
        """
        return self.converted.to_ising()[0]
    def interpret(self, bit_string: BitString) -> frozenset[Tuple[str, float]]:
        """
        Interpret the bit string as a solution to the QUBO problem. This will return a list of pairs of variable names and their assigned values
        """
        values = self.converter.interpret(np.flip(bit_string.to_list()))
        return frozenset(
            [
                (name, float(values[index]))
                for name, index in self.program.variables_index.items()
            ]
        )
 | 
 
  
            __init__(qp)
    
        Create a new QUBO application.
            
              Source code in q3as/app/qubo.py
              |  | def __init__(self, qp: QuadraticProgram):
    """
    Create a new QUBO application.
    """
    self.program = qp
    self.converter = QuadraticProgramToQubo()
    self.converted = self.converter.convert(qp)
 | 
 
     
 
            hamiltonian()
    
        Return the Hamiltonian of the QUBO problem.
            
              Source code in q3as/app/qubo.py
              |  | def hamiltonian(self):
    """
    Return the Hamiltonian of the QUBO problem.
    """
    return self.converted.to_ising()[0]
 | 
 
     
 
            interpret(bit_string)
    
        Interpret the bit string as a solution to the QUBO problem. This will return a list of pairs of variable names and their assigned values
            
              Source code in q3as/app/qubo.py
              |  | def interpret(self, bit_string: BitString) -> frozenset[Tuple[str, float]]:
    """
    Interpret the bit string as a solution to the QUBO problem. This will return a list of pairs of variable names and their assigned values
    """
    values = self.converter.interpret(np.flip(bit_string.to_list()))
    return frozenset(
        [
            (name, float(values[index]))
            for name, index in self.program.variables_index.items()
        ]
    )
 |