NLP Sampling exampleΒΆ

[ ]:
import optsam as op
import numpy as np
import matplotlib.pylab as plt
import time
[ ]:
def generate_samples(nlp, n):
    solver = op.NLP_Sampler(nlp)
    #solver.setOptions() #access to many options - let's take default
    data = []
    while len(data)<n:
        ret = solver.sample()
        print(ret)
        if ret.feasible:
            data.append(ret.x)
    return np.stack(data)
[ ]:
def display_samples(nlp, data):
    komo = nlp.as_KOMO()
    assert komo is not None, 'this works only for komo problems'
    for x in data:
        phi, J = nlp.evaluate(x)
        komo.view(False, f'data {x}')
        time.sleep(1.)
[ ]:
def main():
    problems = op.get_NLP_Problem_names()
    print('== these are all problems:', problems)

    nlp = op.make_NLP_Problem('IK')
    print('== we pick "IK" as a problem:\n', nlp.report(1), '===')

    data = generate_samples(nlp, 10)
    display_samples(nlp, data)
[ ]:
if __name__ == "__main__":
    main()