zoukankan      html  css  js  c++  java
  • 01分数规划:学习总结

    上午考试考了个01分数规划,,,我炸上天了
    赶紧来补救一下

    问题概述

    01分数规划用于解决这样的问题
    对于确定的数列{(a_1,a_2,...,a_n)}和数列{(b_1,b_2,...,b_n)}
    要求构造出一个01数列{(x_1,x_2,...,x_n)}
    使(frac{sum_{i=1}^na_ix_i}{sum_{i=1}^nb_ix_i})取得最大(最小)值

    解决问题

    首先我们设(R = frac{sum_{i=1}^na_ix_i}{sum_{i=1}^nb_ix_i})
    那么我们的目标就是最优化R(此处包括以下的所有最优均指取到最值)
    我们可以把上式右侧的分母乘到等式左面,然后引入一个函数(f(x))
    这样我们有(f(L) = sum_{i=1}^na_ix_i - Lsum_{i=1}^nb_ix_i)
    然后我们合并两个sigma式
    得到(f(L) = sum_{i=1}^n(a_i - Lb_i)x_i)
    然后我们设(d_i = a_i - Lb_i)
    那么现在加入我们找到了一个答案(可能不是最优)L
    如果我们要最大化R,那么当(f(L) > 0)时,一定有更优解
    我们可以代入最初始的(f(x))的表达式
    会得到(L < frac{sum_{i=1}^na_ix_i}{sum_{i=1}^nb_ix_i})
    所以我们可以利用这个性质来二分求解01分数规划问题.

  • 相关阅读:
    赋值运算符函数
    系统设计面试题分析
    内核线程和用户线程的区别
    线程和进程区别
    TCP程序设计
    UDP程序设计
    死锁,死锁必要条件及处理策略
    Linux进程同步机制
    Windows与Linux下进程间通信技术比较
    Windows下进程通信方式
  • 原文地址:https://www.cnblogs.com/Skyminer/p/6475838.html
Copyright © 2011-2022 走看看