Skip to main content

DFNDFL Python Package

The DFNDFL Python package provides tools for solving Direct Function Optimization (DFO) problems. The package allows users to define custom optimization problems and solve them using the algorithms DFNDFL or DFL.

Installation

The package can be installed with pip:

python3 -m pip install dfndfl

Usage

Problem definition

To use the DFNDFL package, first define an optimization problem in a Python file. The problem file should define the following variables:

  • name: string - name of the problem
  • startp: numpy array - the starting point for the continuous problem
  • lb: numpy array - the lower bounds of the continuous problem
  • ub: numpy array - the upper bounds of the continuous problem
  • nint: int - the number of discrete variables (>= 2)
  • ncont: int - the number of continuous variables (>= 2), (the variables are so intended: x[0] ... x[ncont-1] are the continuous variables and x[ncont] ... x[n-1] are the discrete variables)
  • lbmix: numpy array - the actual lower bounds of the mixed integer problem
  • ubmix: numpy array - the actual upper bounds of the mixed integer problem
  • x_initial: numpy array - the actual initial point of the mixed integer problem
  • feval: function handle - function to compute the objective function value (N.B. the point must be reconstructed through the use of reconstruct_xmix before calling feval)

Here's a sample problem definition:

import numpy as np

name      = 'MISO prob. 10'
nint   = 30
ncont  = n-nint
lb     =-15.0*np.ones(n)
ub     = 30.0*np.ones(n)
lbmix  =-15.0*np.ones(n)
ubmix  = 30.0*np.ones(n)
startp =   7.0*np.ones(n) 
x_initial =7.0*np.ones(n) 

def feval(x):  
    f = - 20*np.exp(-0.2*np.sqrt(np.sum(x**2)/15)) - np.exp(np.sum(np.cos(2*np.pi*x))/15)
    return f

Running a problem

To run a problem from the command line, use:

python3 -m dfndfl.run -p path/to/your/problem.py [options]

Command-Line Arguments

The run.py script accepts several command-line arguments to control the optimization process:

Required arguments:

  • -p PROBLEM_PATH, --problem-path PROBLEM_PATH: Path to the Python file containing the problem definition

Optional arguments:

  • -h, --help: Show an help message and exit
  • -c, --constrained: Solve constrained problems
  • -a {DFN_DFL,DFL}, --alg {DFN_DFL,DFL}: Name of algorithm to be used
  • -m MAX_FUN, --max_fun MAX_FUN: Maximum number of function evaluations
  • -o OUTLEV, --outlev OUTLEV: Output level
  • -M NM_MEMORY, --NM_memory NM_MEMORY: History size for nonmonotone linesearch

Logging

The DFNDFL package uses Python's logging module to log results and progress. The logger's name is set as dfndfl.

License

This project is licensed under the GNU General Public License - see the LICENSE for details.

Useful links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dfndfl-1.1.2.tar.gz (59.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dfndfl-1.1.2-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file dfndfl-1.1.2.tar.gz.

File metadata

  • Download URL: dfndfl-1.1.2.tar.gz
  • Upload date:
  • Size: 59.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for dfndfl-1.1.2.tar.gz
Algorithm Hash digest
SHA256 7ec11bcff8adeb17c3e57acf225d374013955f26b4d81f2802f11fe9e992ac10
MD5 efe651210bb7a3a5ffa12477605c76a4
BLAKE2b-256 80011bbe3b00940fda5a29cb5a04af9a42b64fc139fca0eb50fe3aeac55e1795

See more details on using hashes here.

File details

Details for the file dfndfl-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: dfndfl-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 40.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for dfndfl-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 57433a1f122db01ae14f5a8e089968056808a3f4dd5f843d047a67f31634b9f2
MD5 f3aa3af062a215280fec654480870e84
BLAKE2b-256 33478f10b1b14c66c97feb6eb04e33a4712143cb29162d38612ed2301105ce3a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page