實戰:排程最佳化 API

Vibe Prompt

「幫我用 FastAPI 建立一個工作排程 API,使用最早截止時間優先 (EDD) 策略。」

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI(title="排程最佳化 API")

class Job(BaseModel):
    id: str
    deadline: int
    profit: int
    duration: int

class ScheduleRequest(BaseModel):
    jobs: list[Job]

class ScheduleResponse(BaseModel):
    scheduled: list
    total_profit: int
    algorithm: str

@app.post("/schedule", response_model=ScheduleResponse)
def schedule_jobs(req: ScheduleRequest):
    # 使用最早截止時間優先 (EDD)
    sorted_jobs = sorted(req.jobs, key=lambda j: j.deadline)
    
    scheduled = []
    current_time = 0
    
    for job in sorted_jobs:
        if current_time + job.duration <= job.deadline:
            scheduled.append(job)
            current_time += job.duration
    
    return ScheduleResponse(
        scheduled=[j.id for j in scheduled],
        total_profit=sum(j.profit for j in scheduled),
        algorithm="貪婪 EDD"
    )

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

本日總結

完成了貪婪演算法課程!

  • ✅ Kruskal / Prim MST
  • ✅ Huffman 編碼
  • ✅ 集合覆蓋
  • ✅ 排程 API

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!