`
郭清明
  • 浏览: 17645 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

背包算法+接近过程

阅读更多
求最接近的解:
declare
   type test_t is table of vw_money%rowtype index by binary_integer;
   res test_t;
   l_row binary_integer:=1;
   sums number;
   cal varchar2(1000);
   seq varchar2(1000);
   j NUMBER;
   lv_result NUMBER;
   lv_target NUMBER := 33;
   lv_cal VARCHAR2(1000);
   lv_seq VARCHAR2(1000);
begin

  SELECT *
  BULK COLLECT INTO res
  FROM vw_money;
 
  --dbms_output.put_line(res.count);
  lv_result := NULL;
  for i in res.first .. 2**res.last-1 loop
      sums:=0;
      seq:='';
      cal:='';
      j:=1;
      WHILE j<=res.count AND res(j).pow<=i LOOP
       if (bitand(i,res(j).pow) <> 0) then  -- 2的幂事先算好了
         sums:=sums+res(j).amount;
         cal:=cal||res(j).amount||'+';
         seq:=seq||res(j).id||',';  
         IF sums - lv_target >= ABS(lv_result - lv_target) THEN        ---- 已经有更接近的答案
            EXIT;
         END IF;
       end if;
       j:=j+1;
      end loop;
      IF lv_result IS NULL OR ABS(sums - lv_target) < ABS(lv_result - lv_target) THEN
         lv_result := sums;
         lv_cal := cal;
         lv_seq := seq;
      END IF;
      IF lv_result = lv_target THEN
         EXIT;
      END IF;
  end loop;
 
  lv_cal:=substr(lv_cal,1,length(lv_cal)-1);
  lv_seq:=substr(lv_seq,1,length(lv_seq)-1);
  dbms_output.put_line('结果是:'||lv_cal||'='||lv_result);
  dbms_output.put_line('序列是:'||lv_seq);

end;
分享到:
评论

相关推荐

    背包问题PSO算法代码

    在PSO算法应用于0-1背包问题的过程中,每个粒子代表一种物品选取方案,其位置向量表示哪些物品被选中,速度向量则表示这些选择的动态变化。粒子的适应度值通常根据背包问题的目标函数计算,即总价值与总重量的比例。...

    蚁群算法_群智能算法;蚁群算法;背包问题_

    通过以上步骤,蚁群算法能够有效地搜索背包问题的解空间,寻找接近全局最优的解。然而,蚁群算法也有其局限性,如易受参数选择影响,收敛速度较慢,可能陷入局部最优等。为改善这些问题,研究者们提出了多种改进策略...

    遗传算法解决多维背包问题(java代码)

    遗传算法是一种基于生物进化原理的优化方法,由John Henry...通过遗传算法,我们可以有效地求解多维背包问题,找到接近最优的物品选取方案,同时避免陷入局部最优。这种应用展示了遗传算法在解决复杂优化问题上的潜力。

    模拟退火算法解决0-1背包问题.zip_-baijiahao_0-1背包问题_syllablepka_模拟退火算法 背包问题_背

    在提供的压缩包文件“模拟退火算法解决0-1背包问题.txt”中,应当包含了具体的MATLAB代码实现,读者可以通过阅读和理解这段代码,了解如何将模拟退火算法应用于0-1背包问题的求解过程。代码中可能包含了对物品数据...

    使用遗传算法 在Python中解决 0-1 背包问题的简单方法_python_代码_下载

    0-1 背包问题是一种经典的组合优化问题,在计算机科学和...通过模拟自然选择过程,它能够在相对较少的计算时间内找到接近最优解的解决方案。同时,Python作为一门广泛使用的编程语言,为实现和理解这类算法提供了便利。

    一种改进的模拟退火算法求解0-1背包问题

    通过实验数据对比,改进的模拟退火算法在求解0-1背包问题上,不仅收敛速度快于传统SA算法,而且在大多数测试案例中能够找到更接近或等于全局最优解的解。这证明了改进算法在解决复杂优化问题上的有效性。 总之,...

    背包问题的遗传算法求解

    在求解背包问题时,自适应遗传算法能够根据当前解的适应度和解空间的特性,智能地调整参数,避免盲目搜索,加速寻找最优解的过程。 五、**案例分析与验证** 为了验证算法的有效性和收敛性,研究者通常会设计实验,...

    鱼群算法 解决背包问题

    鱼的位置和速度代表了解决方案的参数,通过迭代更新,算法逐步接近最优解。 接下来,我们探讨如何将鱼群算法应用于背包问题。在MATLAB环境下,我们需要定义问题的具体参数,如物品的重量和价值,以及背包的最大容量...

    遗传算法解决01背包问题

    【遗传算法解决01背包问题】是通过应用遗传算法这一生物进化原理的计算方法来优化01背包问题的求解过程。01背包问题是一种经典的组合优化问题,它源自实际生活中的资源分配问题,比如在有限的背包容量下,如何选择...

    遗传算法解决背包问题

    通过运行此项目,你可以观察到遗传算法如何迭代地优化解决方案,并最终找到一个接近最优的背包装载方案。这种方法的优势在于其全局搜索能力,能够在复杂问题空间中找到高质量解,而无需依赖于问题的局部特性。然而,...

    遗传算法解决背包问题(C++版本)【源代码+实验报告+可执行文件】

    经过多代迭代,遗传算法逐渐接近最优解。 实验报告通常会包含以下内容:问题定义、算法描述、实验设置、结果分析和性能评估。它可以帮助读者理解算法的工作原理,观察算法在不同参数下的表现,并对优化效果进行量化...

    用混合遗传算法求解背包问题

    《混合遗传算法在背包问题中的应用》 背包问题是一类经典的组合优化问题,在计算机科学、...通过对种群的操作和贪婪修复策略的运用,该算法能够处理复杂的背包问题实例,找到接近全局最优的解,具有较强的实用价值。

    蚁群算法解决01背包问题

    通过这种算法,我们可以有效地探索01背包问题的庞大解空间,找到接近最优的解决方案。在实际应用中,可能还需要对算法进行调优,比如调整参数,改进信息素更新策略,或者引入精英策略等,以提高算法的效率和解决方案...

    蓝桥杯CJ2-11-图论最短路径问题 Bellman-Ford算法+SPFA.pdf

    SPFA(Shortest Path Faster Algorithm)是对Bellman-Ford算法的一种改进,主要用于加速单源最短路径问题的求解过程。SPFA同样能够处理含有负权重边的图,但要求图中不存在负权重循环。它的核心思想是利用队列来存储...

    人工智能实验 C++ 蚁群算法/遗传算法解背包问题

    在本实验中,我们将深入探讨如何使用C++编程语言实现人工智能中的两种经典优化算法——蚁群算法和遗传算法,来解决著名的背包问题。这两种算法都属于全局优化技术,广泛应用于解决复杂的组合优化问题。 首先,让...

    贪心算法在背包问题中的应用

    这种算法并不保证能够找到全局最优解,但在很多情况下能提供接近最优解的结果。贪心算法通常用于解决优化问题,其中的目标是找到最大值或最小值的解决方案。 #### 贪心算法在背包问题中的应用 贪心算法在解决背包...

    matlab遗传算法解决背包问题

    遗传算法是一种模拟自然选择和遗传机制的全局优化方法,通过模拟生物进化过程中的“适者生存”原则,寻找问题的最优解。它通过编码、初始化、选择、交叉和变异等操作,逐步改进种群,逼近最优解。 二、背包问题定义...

    1———和声搜索算法求解背包问题---C

    【标题】:“1———和声搜索算法求解背包问题---C” 【描述】:“解决背包问题的一种比较好的算法,lingo测试过,效果很好” 本文将深入探讨如何使用和声搜索(Harmony Search Algorithm)算法来有效解决经典的...

    遗传算法求解背包问题

    通过合理的参数设置和算法设计,我们可以利用遗传算法找到接近最优的解决方案,尤其在面对大规模问题时,其效果尤为明显。然而,需要注意的是,遗传算法的效果高度依赖于参数的选择和问题的具体特性,因此,在实际...

    遗传算法求解0-1背包问题

    通过遗传算法,我们可以得到接近最优解的物品选择方案,尽管可能无法保证找到全局最优解,但其效率和灵活性使其成为解决0-1背包问题的有效工具。在实际应用中,可以结合具体问题调整遗传算法的参数,如种群大小、...

Global site tag (gtag.js) - Google Analytics