MCPcopy Create free account
hub / github.com/NeuralNetworkVerification/Marabou / generateInputQuery

Method generateInputQuery

src/nlr/NetworkLevelReasoner.cpp:390–432  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

388}
389
390InputQuery NetworkLevelReasoner::generateInputQuery()
391{
392 InputQuery result;
393
394 // Number of variables
395 unsigned numberOfVariables = 0;
396 for ( const auto &it : _layerIndexToLayer )
397 {
398 unsigned maxVariable = it.second->getMaxVariable();
399 if ( maxVariable > numberOfVariables )
400 numberOfVariables = maxVariable;
401 }
402 ++numberOfVariables;
403 result.setNumberOfVariables( numberOfVariables );
404
405 // Handle the various layers
406 for ( const auto &it : _layerIndexToLayer )
407 generateInputQueryForLayer( result, *it.second );
408
409 // Mark the input variables
410 const Layer *inputLayer = _layerIndexToLayer[0];
411 for ( unsigned i = 0; i < inputLayer->getSize(); ++i )
412 result.markInputVariable( inputLayer->neuronToVariable( i ), i );
413
414 // Mark the output variables
415 const Layer *outputLayer = _layerIndexToLayer[_layerIndexToLayer.size() - 1];
416 for ( unsigned i = 0; i < outputLayer->getSize(); ++i )
417 result.markOutputVariable( outputLayer->neuronToVariable( i ), i );
418
419 // Store any known bounds of all layers
420 for ( const auto &layerPair : _layerIndexToLayer )
421 {
422 const Layer *layer = layerPair.second;
423 for ( unsigned i = 0; i < layer->getSize(); ++i )
424 {
425 unsigned variable = layer->neuronToVariable( i );
426 result.setLowerBound( variable, layer->getLb( i ) );
427 result.setUpperBound( variable, layer->getUb( i ) );
428 }
429 }
430
431 return result;
432}
433
434void NetworkLevelReasoner::reindexNeurons()
435{

Callers 1

Calls 11

getMaxVariableMethod · 0.80
setNumberOfVariablesMethod · 0.80
neuronToVariableMethod · 0.80
getLbMethod · 0.80
getUbMethod · 0.80
getSizeMethod · 0.45
markInputVariableMethod · 0.45
sizeMethod · 0.45
markOutputVariableMethod · 0.45
setLowerBoundMethod · 0.45
setUpperBoundMethod · 0.45

Tested by 1