N = 30L # Superset size.
len = 6L # Subset size.
dimen = 5L # Dimension.
set.seed(8120)
v = matrix(runif(N * dimen) * 1000, nrow = N) # Superset.
sol = sample(N, len)
target = colSums(v[sol, ]) # Target sum.
ME = target * 0.03 # Error threshold.
approxNinstance = 1000
validate = function(len, v, target, ME, result)
{
all(unlist(lapply(result, function(x)
all(abs(colSums(v[x, ]) - target) <= ME))))
}
decompedFlsss = FLSSS::decomposeMflsss(
len = len, mV = v, mTarget = target, mME = ME, solutionNeed = 1e6,
approxNinstance = approxNinstance)
str(decompedFlsss$solutionsFound) # See if the agent already found
# some solutions and validate them.
if(length(decompedFlsss$solutionsFound) > 0)
print(validate(len, v, target, ME, decompedFlsss$solutionsFound))
length(decompedFlsss$mflsssObjects) # Number of independent small jobs.
someOtherSolutions = FLSSS::mFLSSSobjRun(
decompedFlsss$mflsssObjects[[620]], tlimit = 3, solutionNeed = 1e6)
if(length(someOtherSolutions) > 0) # Validate solutions.
{
print(someOtherSolutions)
print(validate(len, v, target, ME, someOtherSolutions))
}
Run the code above in your browser using DataLab