CS算法实战:java、javascript、typescript解决方案库

需积分: 9 0 下载量 155 浏览量 更新于2024-12-02 收藏 164KB ZIP 举报
资源摘要信息:"javalruleetcode-cs-algorithms:CS算法实践repo是一个提供多种编程语言解决方案的代码库,包含了多种编程问题的代码片段,涵盖了多种来源,包括Udemy、AlgoExpert、LeetCode、Educative等。" 标题和描述中提到的知识点主要包括以下几个方面: 1. 编程语言知识:该资源库主要使用Javascript、Typescript、Java和Scala等编程语言,涵盖了这些编程语言的基本语法、数据结构、算法实现等。 2. 数据结构与算法知识:资源库中包含了多个与数据结构和算法相关的问题,如LRU(最近最少使用)算法、字符串处理、数组操作、二叉搜索树(BST)等。 3. 编程实践知识:资源库提供了实际的编程问题解决方案,可以作为编程实践的参考,提高编程能力和解题技巧。 4. 学习资源来源知识:资源库中的问题来源于Udemy、AlgoExpert、LeetCode、Educative等平台,这些都是学习编程和算法的优秀资源。 5. 开源贡献知识:该资源库是开源的,欢迎任何语言的贡献,这也是开源文化的体现。 文件名称列表中的"cs-algorithms-master"表明这是一个主分支的代码库,可能包含了多个版本的代码,方便用户选择和使用。 总之,"javalruleetcode-cs-algorithms:CS算法实践repo"是一个集成了多种编程语言、数据结构与算法、编程实践、学习资源和开源贡献知识的编程资源库,对于提高编程能力和解决编程问题具有重要的参考价值。

将下面这段源码转换为伪代码:def bfgs(fun, grad, x0, iterations, tol): """ Minimization of scalar function of one or more variables using the BFGS algorithm. Parameters ---------- fun : function Objective function. grad : function Gradient function of objective function. x0 : numpy.array, size=9 Initial value of the parameters to be estimated. iterations : int Maximum iterations of optimization algorithms. tol : float Tolerance of optimization algorithms. Returns ------- xk : numpy.array, size=9 Parameters wstimated by optimization algorithms. fval : float Objective function value at xk. grad_val : float Gradient value of objective function at xk. grad_log : numpy.array The record of gradient of objective function of each iteration. """ fval = None grad_val = None x_log = [] y_log = [] grad_log = [] x0 = asarray(x0).flatten() # iterations = len(x0) * 200 old_fval = fun(x0) gfk = grad(x0) k = 0 N = len(x0) I = np.eye(N, dtype=int) Hk = I old_old_fval = old_fval + np.linalg.norm(gfk) / 2 xk = x0 x_log = np.append(x_log, xk.T) y_log = np.append(y_log, fun(xk)) grad_log = np.append(grad_log, np.linalg.norm(xk - x_log[-1:])) gnorm = np.amax(np.abs(gfk)) while (gnorm > tol) and (k < iterations): pk = -np.dot(Hk, gfk) try: alpha, fc, gc, old_fval, old_old_fval, gfkp1 = _line_search_wolfe12(fun, grad, xk, pk, gfk, old_fval, old_old_fval, amin=1e-100, amax=1e100) except _LineSearchError: break x1 = xk + alpha * pk sk = x1 - xk xk = x1 if gfkp1 is None: gfkp1 = grad(x1) yk = gfkp1 - gfk gfk = gfkp1 k += 1 gnorm = np.amax(np.abs(gfk)) grad_log = np.append(grad_log, np.linalg.norm(xk - x_log[-1:])) x_log = np.append(x_log, xk.T) y_log = np.append(y_log, fun(xk)) if (gnorm <= tol): break if not np.isfinite(old_fval): break try: rhok = 1.0 / (np.dot(yk, sk)) except ZeroDivisionError: rhok = 1000.0 if isinf(rhok): rhok = 1000.0 A1 = I - sk[:, np.newaxis] * yk[np.newaxis, :] * rhok A2 = I - yk[:, np.newaxis] * sk[np.newaxis, :] * rhok Hk = np.dot(A1, np.dot(Hk, A2)) + (rhok * sk[:, np.newaxis] * sk[np.newaxis, :]) fval = old_fval grad_val = grad_log[-1] return xk, fval, grad_val, x_log, y_log, grad_log

137 浏览量