提問者:bllz22382014-10-12 00:00
我解決NOI問題需要用隨機貪知何實現請各位高手指點激盡
7.1 貪策略定義
7.2 貪策略特點
7.3 典型例題與習題
眾計算機解題策略貪策略算接近思維種解題策略基于貪策略各級各類信息競賽、尤其NPC類問題求解發揮著越越重要作用
7.1 貪策略定義
貪策略:指問題初始狀態發通若干貪選擇優值(或較優解)種解題
其實貪策略詞我便看貪策略總做前看優選擇說貪策略并整體加考慮所做選擇某種意義局部優解許問題自身特性決定該題運用貪策略優解或較優解
例1:n行m列整數矩陣要求每行選數使選n數
本題用貪策略:選n每選相應行值即
例2:N×M格陣每格賦予數(即權)規定每移能向或向右現試找條路徑使其左角至右角所經權
本題用貪策略能優解我2×4矩陣例 3 4 6
1 2 10
若按貪策略求解所路徑:1,3,4,6;
若按態規劃求解所路徑:1,2,10,6
例3:設定n臺處理機p1p2......pn,m作業j1,j2,...jm,處理機并行工作,作業未完能斷作業ji處理機處理間ti,求解佳案,使完m項工作間短?
本題能用貪算求解:理由若n=3,m=6 各作業間別11 7 5 5 4 7
用貪策略解(每作業加先空閑機器)time=15,用搜索策略優間應14,貪策略給我提供線索每臺處理間超15,給搜索提供便
總:
1. 能保證求解佳;
2. 能用求某些或解問題;
3. 能確定某些問題行解范圍特別給搜索算提供依據
7. 2 貪策略特點
貪算特點呢我認適用于貪算解決問題應具2特點:
1、貪選擇性質:
所謂貪選擇性質指應用同規則f原問題變相似、規模更問題、每步都前看似佳選擇種選擇依賴于已做選擇依賴于未做選擇全局看運用貪策略解決問題程序運行程溯程關于貪選擇性質讀者文給貪策略狀態空間圖深刻體
2、局部優解:
我通特點2向家介紹貪策略數描述由于運用貪策略解題每都取優解能夠保證局部優解定貪算家所熟悉態規劃算滿足局部優解貪策略比態規劃間效率更高站用內存更少編寫程序更簡單
7.3 典型例題與習題
例4:背包問題:
背包背包容量M=1507物品物品割任意
要求盡能讓裝入背包物品總價值能超總容量 物品
A
B
C
D
E
F
G
重量
35
30
60
50
40
10
25
價值
10
40
30
50
35
40
30
析:
目標函數: ∑pi
約束條件裝入物品總重量超背包容量:∑wi<=M( M=150)
(1)根據貪策略每挑選價值物品裝入背包結否優
(2)每挑選所占空間物品裝入否能優解
(3)每選取單位容量價值物品解本題策略
程序:
program beibao;
const
m=150;
n=7;
var
xu:integer;
i,j:integer;
goods:array[1..n,0..2] of integer;
ok:array[1..n,1..2] of real;
procedure init;
var
i:integer;
begin
xu:=m;
for i:=1 to n do
begin
write('Enter the price and weight of the ',i,'th goods:');
goods[i,0]:=i;
read(goods[i,1],goods[i,2]);
readln;
ok[i,1]:=0; ok[i,2]:=0;
end;
end;
procedure make;
var
bi:array[1..n] of real;
i,j:integer;
temp1,temp2,temp0:integer;
begin
for i:=1 to n do
bi[i]:=goods[i,1]/goods[i,2];
for i:=1 to n-1 do
for j:=i+1 to n do
begin
if bi[i] 回答者:mxozeu2016-10-12 00:00
#include
提問者:xoji899grb2013-10-29
這道題的貪心算法比較容易理解,我就不多說明了,只是提到一下算法思路1、建立數學模型描述問題。我在這里將時間理解成一條直線,上面有若干個點,可能是某些活動的起始時間點,或終止時間點。在具體一下,如果編程來實現的話,將時間抽
提問者:hsh9882013-03-16
同學啊,明天就要交了,如果真的不知道怎么寫,我給你個及格分吧。不用來這里求助的啦
提問者:lqiiaun02013-12-30
假設第一次A取走了第一個 那么第二次B可以在第二個和最后一個里面選擇一個 假如B選擇的是第二個 那么A只需選走最后一個 就可以保證讓B每次只可以選擇奇數個 B選擇的是最后一個A就選走第二個 總之假如A第一次選擇的是奇數位
提問者:renshang2013-04-09
時間主要是 排序用時了,快速排序 一般是 o(n*logn) 空間 復雜度基本上是 0(1)
提問者:bee05132014-02-05
第一次加滿油 然后在能到達的最遠的加油站再加滿油 如此反復, 最后到達目的地 如果中間某次加油后不能到達下面任何一個加油站 那么就無解
提問者:doory771612014-01-06