Papers › Proximal Policy Optimization Algorithms
Proximal Policy Optimization Algorithms
John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, Oleg Klimov
We propose a new family of policy gradient methods for reinforcement learning, which alternate between sampling data through interaction with the environment, and optimizing a "surrogate" objective function using stochastic gradient ascent. Whereas standard policy gradient methods perform one gradient update per data sample, we propose a novel objective function that enables multiple epochs of minibatch updates. The new methods, which we call proximal policy optimization (PPO), have some of the benefits of trust region policy optimization (TRPO), but they are much simpler to implement, more general, and have better sample complexity (empirically). Our experiments test PPO on a collection of benchmark tasks, including simulated robotic locomotion and Atari game playing, and we show that PPO outperforms other online policy gradient methods, and overall strikes a favorable balance between sample complexity, simplicity, and wall-time.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1707.06347")
Code
Syntology Ran 99 of 176 code samples harvested from 64 repositories linked to this paper; 77 have no recorded run. Of those that ran: 7 ran · honoured contract; 2 ran · violated contract; 27 ran · our draft was wrong; 1 ran · fixture could not drive it; 62 ran with no contract checked.
By repository: community (archive-listed): 172 samples from 64 repositories, 95 ran; 4 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
188 repositories listed; official and paper-mentioned ones first.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
176 samples harvested; 99 ran; 7 honoured the contract we drafted; 77 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 94 of the 176 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 64 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
e9f1207fc08f9fa9 · report
8fc0ce07edd32744 · report
c3cb4b39b7e82812 · report
f7a59411ac390f78 · report
607bb439a428fd2a · report
bab8cee03856463f · report
6ff581679958bf77 · report
2f383d9f3f2f7b4f · report
13b852ad71d18604 · report
b1f30e180cb81a3a · report
4c40cb5849fd342f · report
38803d98e366da6d · report
6dbcf603fe9c4a6f · report
5eac27c1ede5a3f1 · report
d0735a6f70135e3f · report
cc0a6d60ba0d615d · report
1e06bd08fb825800 · report
b4455ab1f545ae9c · report
f1685211d6effd06 · report
1a18a57c9dbc3655 · report
28919ed273c0c995 · report
06c62bb9eacfe08c · report
f2a4b483cf41dcfd · report
75bc51af9c0cf574 · report
088783306dda80fe · report
7f143a6ee276436b · report
bb56e14071f60cba · report
1271c934496f2b53 · report
1ebfd098cf241f3c · report
b48c75c1f791937c · report
00bb1a30b070c324 · report
bd4134c19ff6f1eb · report
20cf521175a91e97 · report
6e26f9d72a957989 · report
e33afa03c0df2bff · report
e3bd893b00cce00e · report
786ef0f1e1c69fc2 · report
08c8acc6b144eabd · report
7dbfda361c907b1e · report
f0b71d0c5374efdf · report
028cd0cc569e4945 · report
c02c0631708465dc · report
ec594f35cdf2f00e · report
be3a23c2176d855c · report
06f3c47cdf2dd979 · report
2eb0c930a45a7472 · report
7539f57b4803c98e · report
049dd1dd7386f7f1 · report
168b3d776129e246 · report
22bcf7bc55b864b8 · report
c169652ebc3cb1c4 · report
6f986aa2d59a44f8 · report
c80e9a362666d32e · report
a78ee4761e8df9d8 · report
7f9dae876ba7e00b · report
ab47bdba4f875268 · report
fbd28096c7f0c30f · report
dea2715df3f6a1e3 · report
181b4202198be200 · report
e626bd567c81f207 · report
63380712f9af778d · report
58ee12a76b1fd1a1 · report
a5b8d69558cb1833 · report
264c9e17d7dfe7eb · report
c511268a73d82fc6 · report
373bf1b3269456e9 · report
b5a22b5e0dce3796 · report
7e7afb47f6ebd451 · report
77393baa1a11c24b · report
476e14ee8b7219ac · report
eb4a6cb62afcb0ec · report
b4f2ea8b3db73cea · report
1cd2e751ff91ca44 · report
1732d17d766f28da · report
c977657d1b1dadef · report
fef4ec37a6ea52e7 · report
1cfc11023c8784d6 · report
92227b56b34a423b · report
b46c632bedd3d8af · report
62a48793f7edb3af · report
356537802e7b2bdb · report
375f0073f16726f9 · report
f2cddb5460e2bc7e · report
f1449fb45454e326 · report
942f9baf61103bea · report
df1fd605b67498ef · report
0db440a845c6a4fa · report
063d29364d7e4f81 · report
2439c728712b51ae · report
b1c9c127240c75d8 · report
6741967893f01eac · report
7c5e74bc668cf5cc · report
a7700bf49f384087 · report
f8348c78f9a4c594 · report
03b48449f3d4d675 · report
5b125d5154c21cbf · report
54ccb8ae3f658c83 · report
bf0c1da602f8a16d · report
d068adb7cb463c20 · report
53db83baee745ffd · report
f473685be4b59e7f · report
c3c2c245443da6e3 · report
64930ee88e057fb9 · report
449ad938cfccea32 · report
d196dcee4a5b1061 · report
d5c516ed0fa589e3 · report
2bddf6daaed4d669 · report
527acc6b195e3ec9 · report
9619638a806c794f · report
2dd687e050a61476 · report
6c7082241ec61d89 · report
deafc9726839a93c · report
6f2b092fd868a348 · report
593f887d35295a28 · report
c004c93ba5634851 · report
708e869097ea91ff · report
f42b9cecada07086 · report
f5415970200a24b5 · report
121aee63a1a24691 · report
14b4f65f714ccf75 · report
a9432edcc1976925 · report
5954e04c0ee7d26e · report
578c10d4e2b66073 · report
ded7302e103e8dd7 · report
cb4776fdb4698c72 · report
f7417c7ed09d5ade · report
1c8d1f046ceeaadf · report
cd66a006bca55706 · report
ea96173e68302d60 · report
3c7b55685f685987 · report
7451a2c222e554d4 · report
86201a6180de4a09 · report
7af85bd3eff93a8f · report
ef96810753b59244 · report
24ed6c73c85ddcca · report
6073c0994e65bae3 · report
df9fd7d088621b72 · report
f51a9f6b2ca368d9 · report
01b7328f523d7756 · report
a01bf852d6ef518a · report
dce583aa0f5fb136 · report
108ec8df92e50f23 · report
55d94edcf36e1447 · report
542d8a7c56874ec9 · report
5dc5fc3b8ad0138c · report
48d2039b794ca629 · report
bce2a8566fa36fda · report
8764b4ca6ce10aca · report
40f05c72bfe4c048 · report
4652f7766f254cc1 · report
2e9e6b5586603bfb · report
9c65b36eec7ec92a · report
db1820f47853260b · report
37c11b4e769d359d · report
c2f17acc73ce8ca9 · report
be674cc9da531aa5 · report
2c9a98eedcdea762 · report
f423e91c2339c824 · report
f20ab80cf000ba69 · report
76b542040b4e4fcf · report
2492441b222787d6 · report
a690a9a71794bce7 · report
6b56455d8ddd9bf1 · report
6647017115e92ee7 · report
8e103b8cabd1203c · report
f5d2e6057543255c · report
7271dace2360dd93 · report
3e7bdf63d50d132e · report
0b170016a5f01a6e · report
887a93fefeaff1d2 · report
01571ae37dfefba2 · report
0a1d06fc0e7bba39 · report
54948e8edd9b8bc1 · report
8758308dc6c0727f · report
a7b323241cd70612 · report
baf2a28d376d7803 · report
Tasks
Results from the paper archive 2025-07-28
| Task | Dataset | Model | Metric | Value | Rank at snapshot | Leaderboard | Report |
|---|---|---|---|---|---|---|---|
| Continuous Control | Lunar Lander (OpenAI Gym) | PPO | Score | 175.14±44.94 | #4 of 5 | Archive leaderboard | report |
| Neural Architecture Search | NATS-Bench Topology, CIFAR-10 | PPO (Schulman et al., 2017) | Test Accuracy | 94.02 | #3 of 11 | Archive leaderboard | report |
| Neural Architecture Search | NATS-Bench Topology, CIFAR-100 | PPO (Schulman et al., 2017) | Test Accuracy | 71.68 | #2 of 11 | Archive leaderboard | report |
| Neural Architecture Search | NATS-Bench Topology, ImageNet16-120 | PPO (Schulman et al., 2017) | Test Accuracy | 44.95 | #3 of 11 | Archive leaderboard | report |
| OpenAI Gym | Ant-v4 | PPO | Average Return | 608.97 | #5 of 5 | Archive leaderboard | report |
| OpenAI Gym | HalfCheetah-v4 | PPO | Average Return | 6006.11 | #5 of 5 | Archive leaderboard | report |
| OpenAI Gym | Hopper-v4 | PPO | Average Return | 790.77 | #5 of 5 | Archive leaderboard | report |
| OpenAI Gym | Humanoid-v4 | PPO | Average Return | 925.89 | #3 of 5 | Archive leaderboard | report |
| OpenAI Gym | Walker2d-v4 | PPO | Average Return | 2739.81 | #4 of 5 | Archive leaderboard | report |
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Methods
Introduced by this paper: PPO
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections