Skip to content

Commit 69e59ae

Browse files
testing (wip)
1 parent 865290e commit 69e59ae

File tree

1 file changed

+0
-79
lines changed

1 file changed

+0
-79
lines changed

src/hiopbbpy/opt/BODemoNLP.ipynb

Lines changed: 0 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -4069,85 +4069,6 @@
40694069
"source": [
40704070
"#### Testing Values of Kernels and Bounds with SMT"
40714071
]
4072-
},
4073-
{
4074-
"cell_type": "code",
4075-
"execution_count": 19,
4076-
"metadata": {},
4077-
"outputs": [
4078-
{
4079-
"name": "stdout",
4080-
"output_type": "stream",
4081-
"text": [
4082-
"Lower kernel bounds (kL): [0.52729242 0.91393119 0.52729242]\n",
4083-
"Upper kernel bounds (kU): [0.96078944 1. 0.96078944]\n",
4084-
"\n",
4085-
"Kernel matrix from BnB:\n",
4086-
"[[1. 0.77880078 0.36787944]\n",
4087-
" [0.77880078 1. 0.77880078]\n",
4088-
" [0.36787944 0.77880078 1. ]]\n"
4089-
]
4090-
},
4091-
{
4092-
"ename": "ValueError",
4093-
"evalue": "cannot reshape array of size 2 into shape (1,3)",
4094-
"output_type": "error",
4095-
"traceback": [
4096-
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
4097-
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
4098-
"Cell \u001b[0;32mIn[19], line 43\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;66;03m# === Kernel matrix from SMT ===\u001b[39;00m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;66;03m# SMT uses r = ||(x_i - x_j)/theta|| = Euclidean norm\u001b[39;00m\n\u001b[1;32m 42\u001b[0m r \u001b[38;5;241m=\u001b[39m cdist(x \u001b[38;5;241m/\u001b[39m theta, x \u001b[38;5;241m/\u001b[39m theta, metric\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124meuclidean\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;66;03m# scaled distance\u001b[39;00m\n\u001b[0;32m---> 43\u001b[0m K_smt \u001b[38;5;241m=\u001b[39m \u001b[43mgp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msurrogatesmt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcorr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mKernel matrix from SMT:\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28mprint\u001b[39m(K_smt)\n",
4099-
"File \u001b[0;32m~/Documents/Project/hiop/.venv/lib/python3.9/site-packages/smt/kernels/kernels.py:56\u001b[0m, in \u001b[0;36mPowExp.__call__\u001b[0;34m(self, d, grad_ind, hess_ind, derivative_params)\u001b[0m\n\u001b[1;32m 52\u001b[0m i, nb_limit \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m, \u001b[38;5;28mint\u001b[39m(\u001b[38;5;241m1e4\u001b[39m)\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m i \u001b[38;5;241m*\u001b[39m nb_limit \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m d\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m0\u001b[39m]:\n\u001b[1;32m 54\u001b[0m r[i \u001b[38;5;241m*\u001b[39m nb_limit : (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m*\u001b[39m nb_limit, \u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mexp(\n\u001b[1;32m 55\u001b[0m \u001b[38;5;241m-\u001b[39mnp\u001b[38;5;241m.\u001b[39msum(\n\u001b[0;32m---> 56\u001b[0m \u001b[43mtheta\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreshape\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mn_components\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;241m*\u001b[39m d[i \u001b[38;5;241m*\u001b[39m nb_limit : (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m*\u001b[39m nb_limit, :],\n\u001b[1;32m 58\u001b[0m axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m,\n\u001b[1;32m 59\u001b[0m )\n\u001b[1;32m 60\u001b[0m )\n\u001b[1;32m 61\u001b[0m i \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 63\u001b[0m i \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n",
4100-
"\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 2 into shape (1,3)"
4101-
]
4102-
}
4103-
],
4104-
"source": [
4105-
"import numpy as np\n",
4106-
"from scipy.spatial.distance import cdist # Replace with correct import\n",
4107-
"\n",
4108-
"# === Example data ===\n",
4109-
"x = np.array([\n",
4110-
" [0.0, 0.0],\n",
4111-
" [0.5, 0.5],\n",
4112-
" [1.0, 1.0]\n",
4113-
"])\n",
4114-
"l = np.array([0.2, 0.2])\n",
4115-
"u = np.array([0.8, 0.8])\n",
4116-
"\n",
4117-
"# === Train SMT GP ===\n",
4118-
"theta = np.array([1.0, 1.0])\n",
4119-
"gp = smtKRG(theta=theta, xlimits=np.array([[0,1],[0,1]]), ndim=2, corr=\"pow_exp\")\n",
4120-
"y = np.linalg.norm(x, axis=1).reshape(-1,1) # dummy target\n",
4121-
"gp.train(x, y)\n",
4122-
"\n",
4123-
"# === Instantiate BnB object ===\n",
4124-
"bnb = BnBAlgorithmBase()\n",
4125-
"bnb.theta = theta # match SMT\n",
4126-
"bnb.set_kernel(\"pow_exp\")\n",
4127-
"\n",
4128-
"# === Kernel bounds ===\n",
4129-
"kL, kU = bnb.ker_bounds(x, l, u)\n",
4130-
"print(\"Lower kernel bounds (kL):\", kL)\n",
4131-
"print(\"Upper kernel bounds (kU):\", kU)\n",
4132-
"\n",
4133-
"# === Manual kernel matrix using BnB kernel ===\n",
4134-
"n = len(x)\n",
4135-
"K_manual = np.zeros((n, n))\n",
4136-
"for i in range(n):\n",
4137-
" for j in range(n):\n",
4138-
" d = np.sum(((x[i] - x[j]) / bnb.theta) ** 2) # scaled squared distance\n",
4139-
" K_manual[i, j] = bnb.kernel_func(d)\n",
4140-
"\n",
4141-
"print(\"\\nKernel matrix from BnB:\")\n",
4142-
"print(K_manual)\n",
4143-
"\n",
4144-
"# === Kernel matrix from SMT ===\n",
4145-
"# SMT uses r = ||(x_i - x_j)/theta|| = Euclidean norm\n",
4146-
"r = cdist(x / theta, x / theta, metric='euclidean') # scaled distance\n",
4147-
"K_smt = gp.surrogatesmt.corr.__call__(r)\n",
4148-
"print(\"\\nKernel matrix from SMT:\")\n",
4149-
"print(K_smt)\n"
4150-
]
41514072
}
41524073
],
41534074
"metadata": {

0 commit comments

Comments
 (0)