code: def portfolio_optimization(
      weights, expected_returns, covariance_matrix
  ):
      portfolio_return = np.dot(weights, expected_returns)
      portfolio_volatility = np.sqrt(
          np.dot(weights, np.dot(covariance_matrix, weights))
      )
      # maximize portfolio return and minimize portfolio volatility
      return [-portfolio_return, portfolio_volatility]
  
file_path: nevergrad/examples/raytune_nevergrad_biobjective.py
imports: import nevergrad
  import numpy
  import nevergrad
  from ray import train, tune
  from ray.tune.search.nevergrad import NevergradSearch
label_desc: Use image node_id 1 for calling a global function with example usage: portfolio_optimization(weights, expected_returns, covariance_matrix) and returns: list